Restore selected date-range for transaction list

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2024-02-03 00:22:05 +01:00
parent 217ddbbf44
commit 81b50f9dc7
Signed by: luzifer
SSH key fingerprint: SHA256:/xtE5lCgiRDQr8SLxHMS92ZBlACmATUmF1crK16Ks4E
2 changed files with 25 additions and 2 deletions

View file

@ -17,6 +17,7 @@
<div class="col d-flex align-items-center justify-content-end">
<range-selector
v-model="timeRange"
store-key="account-overview"
/>
</div>
</div>

View file

@ -84,8 +84,14 @@ export default {
created() {
const date = new Date()
const start = this.modelValue.start || new Date(date.getFullYear(), date.getMonth(), 1)
const end = this.modelValue.end || new Date(date.getFullYear(), date.getMonth() + 1, 0)
let start = this.modelValue.start || new Date(date.getFullYear(), date.getMonth(), 1)
let end = this.modelValue.end || new Date(date.getFullYear(), date.getMonth() + 1, 0)
if (this.storeKey && localStorage.getItem(`accounting:range-select:${this.storeKey}`)) {
const stored = JSON.parse(localStorage.getItem(`accounting:range-select:${this.storeKey}`))
start = new Date(stored.start)
end = new Date(stored.end)
}
this.dateComponents = {
fromMonth: start.getMonth(),
@ -116,6 +122,17 @@ export default {
} else {
this.end = new Date(this.dateComponents.fromYear, this.dateComponents.fromMonth + 1, 1, 0)
}
if (this.storeKey) {
localStorage.setItem(
`accounting:range-select:${this.storeKey}`,
JSON.stringify({
end: new Date(this.dateComponents.toYear, this.dateComponents.toMonth, 1),
start: new Date(this.dateComponents.fromYear, this.dateComponents.fromMonth, 1),
}),
)
}
this.$emit('update:modelValue', { end: this.end, start: this.start })
},
},
@ -146,6 +163,11 @@ export default {
default: 2020,
type: Number,
},
storeKey: {
default: null,
type: String,
},
},
watch: {