mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-05 20:10:57 +00:00
Frontend updates
This commit is contained in:
189
frontend/src/stores/fireflyiii.js
vendored
Normal file
189
frontend/src/stores/fireflyiii.js
vendored
Normal file
@@ -0,0 +1,189 @@
|
||||
import {defineStore} from 'pinia';
|
||||
import {
|
||||
endOfDay,
|
||||
endOfMonth,
|
||||
endOfQuarter,
|
||||
endOfWeek,
|
||||
startOfDay,
|
||||
startOfMonth,
|
||||
startOfQuarter,
|
||||
startOfWeek,
|
||||
startOfYear,
|
||||
subDays
|
||||
} from "date-fns";
|
||||
|
||||
export const useFireflyIIIStore = defineStore('counter', {
|
||||
state: () => ({
|
||||
drawerState: true, viewRange: '1M', listPageSize: 10, range: {
|
||||
start: null, end: null
|
||||
}, defaultRange: {
|
||||
start: null, end: null
|
||||
}, currencyCode: 'AAA', currencyId: '0', cacheKey: 'initial'
|
||||
}),
|
||||
|
||||
getters: {
|
||||
getViewRange(state) {
|
||||
return state.viewRange;
|
||||
},
|
||||
|
||||
getListPageSize(state) {
|
||||
return state.listPageSize;
|
||||
},
|
||||
|
||||
getCurrencyCode(state) {
|
||||
return state.currencyCode;
|
||||
}, getCurrencyId(state) {
|
||||
return state.currencyId;
|
||||
},
|
||||
|
||||
getRange(state) {
|
||||
return state.range;
|
||||
}, getDefaultRange(state) {
|
||||
return state.defaultRange;
|
||||
},
|
||||
|
||||
getCacheKey(state) {
|
||||
return state.cacheKey;
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
// actions
|
||||
refreshCacheKey() {
|
||||
let cacheKey = Math.random().toString(36).replace(/[^a-z]+/g, '').slice(0, 8);
|
||||
this.setCacheKey(cacheKey);
|
||||
},
|
||||
|
||||
resetRange() {
|
||||
let defaultRange = this.defaultRange;
|
||||
this.setRange(defaultRange);
|
||||
},
|
||||
|
||||
setDatesFromViewRange() {
|
||||
let start;
|
||||
let end;
|
||||
let viewRange = this.viewRange;
|
||||
|
||||
let today = new Date;
|
||||
switch (viewRange) {
|
||||
case 'last365':
|
||||
start = startOfDay(subDays(today, 365));
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'last90':
|
||||
start = startOfDay(subDays(today, 90));
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'last30':
|
||||
start = startOfDay(subDays(today, 30));
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'last7':
|
||||
start = startOfDay(subDays(today, 7));
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'YTD':
|
||||
start = startOfYear(today);
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'QTD':
|
||||
start = startOfQuarter(today);
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case 'MTD':
|
||||
start = startOfMonth(today);
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case '1D':
|
||||
// today:
|
||||
start = startOfDay(today);
|
||||
end = endOfDay(today);
|
||||
break;
|
||||
case '1W':
|
||||
// this week:
|
||||
start = startOfDay(startOfWeek(today, {weekStartsOn: 1}));
|
||||
end = endOfDay(endOfWeek(today, {weekStartsOn: 1}));
|
||||
break;
|
||||
case '1M':
|
||||
// this month:
|
||||
start = startOfDay(startOfMonth(today));
|
||||
end = endOfDay(endOfMonth(today));
|
||||
break;
|
||||
case '3M':
|
||||
// this quarter
|
||||
start = startOfDay(startOfQuarter(today));
|
||||
end = endOfDay(endOfQuarter(today));
|
||||
break;
|
||||
case '6M':
|
||||
// this half-year
|
||||
if (today.getMonth() <= 5) {
|
||||
start = new Date(today);
|
||||
start.setMonth(0);
|
||||
start.setDate(1);
|
||||
start = startOfDay(start);
|
||||
end = new Date(today);
|
||||
end.setMonth(5);
|
||||
end.setDate(30);
|
||||
end = endOfDay(start);
|
||||
}
|
||||
if (today.getMonth() > 5) {
|
||||
start = new Date(today);
|
||||
start.setMonth(6);
|
||||
start.setDate(1);
|
||||
start = startOfDay(start);
|
||||
end = new Date(today);
|
||||
end.setMonth(11);
|
||||
end.setDate(31);
|
||||
end = endOfDay(start);
|
||||
}
|
||||
break;
|
||||
case '1Y':
|
||||
// this year
|
||||
start = new Date(today);
|
||||
start.setMonth(0);
|
||||
start.setDate(1);
|
||||
start = startOfDay(start);
|
||||
|
||||
end = new Date(today);
|
||||
end.setMonth(11);
|
||||
end.setDate(31);
|
||||
end = endOfDay(end);
|
||||
break;
|
||||
}
|
||||
this.setRange({start: start, end: end});
|
||||
this.setDefaultRange({start: start, end: end});
|
||||
},
|
||||
|
||||
// mutators
|
||||
|
||||
increment() {
|
||||
this.counter++
|
||||
},
|
||||
updateViewRange(viewRange) {
|
||||
this.viewRange = viewRange;
|
||||
},
|
||||
|
||||
updateListPageSize(value) {
|
||||
this.listPageSize = value;
|
||||
},
|
||||
|
||||
setRange(value) {
|
||||
this.range = value;
|
||||
return value;
|
||||
},
|
||||
|
||||
setDefaultRange(value) {
|
||||
this.defaultRange = value;
|
||||
},
|
||||
|
||||
setCurrencyCode(value) {
|
||||
this.currencyCode = value;
|
||||
}, setCurrencyId(value) {
|
||||
this.currencyId = value;
|
||||
},
|
||||
|
||||
setCacheKey(value) {
|
||||
this.cacheKey = value;
|
||||
}
|
||||
}
|
||||
})
|
Reference in New Issue
Block a user