You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.9 KiB
91 lines
2.9 KiB
|
4 years ago
|
import {createStore} from 'vuex'
|
||
|
|
|
||
|
|
export default createStore({
|
||
|
|
state: {
|
||
|
|
trackers: [],
|
||
|
|
archive: [],
|
||
|
|
settings: {
|
||
|
|
theme: 'materia'
|
||
|
|
},
|
||
|
|
trashed: {},
|
||
|
|
selectedTracker: {}
|
||
|
|
},
|
||
|
|
mutations: {
|
||
|
|
loadSavedData(state) {
|
||
|
|
let storedTrackers = localStorage.getItem('trackers');
|
||
|
|
if (storedTrackers !== null && storedTrackers !== undefined) {
|
||
|
|
state.trackers = JSON.parse(storedTrackers);
|
||
|
|
}
|
||
|
|
|
||
|
|
let storedArchive = localStorage.getItem('archive');
|
||
|
|
if (storedArchive !== null && storedArchive !== undefined) {
|
||
|
|
state.archive = JSON.parse(storedArchive);
|
||
|
|
}
|
||
|
|
|
||
|
|
let storedSettings = localStorage.getItem('settings');
|
||
|
|
state.settings = storedSettings == null ? {
|
||
|
|
theme: '',
|
||
|
|
dashboardLogo: 'assets/img/logo.png',
|
||
|
|
trackerSystemUrl: '',
|
||
|
|
showPT: true,
|
||
|
|
dontShowMinutes: false,
|
||
|
|
linkTarget: '_blank',
|
||
|
|
} : storedSettings;
|
||
|
|
},
|
||
|
|
createTracker(state) {
|
||
|
|
state.trackers.pushToBeginning({
|
||
|
|
tracking: false,
|
||
|
|
number: '#',
|
||
|
|
trackingStarted: null,
|
||
|
|
trackingStopped: null,
|
||
|
|
history: []
|
||
|
|
});
|
||
|
|
},
|
||
|
|
createTimebox(state) {
|
||
|
|
state.trackers.pushToBeginning({
|
||
|
|
tracking: false,
|
||
|
|
number: 'Timebox ',
|
||
|
|
trackingStarted: null,
|
||
|
|
trackingStopped: null,
|
||
|
|
isTimeBox: true,
|
||
|
|
history: []
|
||
|
|
});
|
||
|
|
},
|
||
|
|
saveTrackers(state) {
|
||
|
|
localStorage.setItem('trackers', JSON.stringify(state.trackers));
|
||
|
|
localStorage.setItem('archive', JSON.stringify(state.archive));
|
||
|
|
},
|
||
|
|
deleteTracker(state, index, archive) {
|
||
|
|
let message = '';
|
||
|
|
|
||
|
|
if (archive) {
|
||
|
|
Object.assign(state.trashed, state.archive[index]);
|
||
|
|
state.archive.splice(index, 1);
|
||
|
|
} else {
|
||
|
|
Object.assign(state.trashed, state.trackers[index]);
|
||
|
|
state.trackers.splice(index, 1);
|
||
|
|
}
|
||
|
|
|
||
|
|
return message;
|
||
|
|
},
|
||
|
|
restoreTrashed(state) {
|
||
|
|
let restoredTracker = {};
|
||
|
|
Object.assign(restoredTracker, state.trashed);
|
||
|
|
state.trashed = {};
|
||
|
|
|
||
|
|
state.trackers.pushToBeginning(restoredTracker);
|
||
|
|
},
|
||
|
|
archiveTracker(state, index) {
|
||
|
|
state.archive.pushToBeginning(state.trackers[index]);
|
||
|
|
state.trackers.splice(index, 1);
|
||
|
|
},
|
||
|
|
reactivateTracker(state, index) {
|
||
|
|
state.trackers.pushToBeginning(state.archive[index]);
|
||
|
|
state.archive.splice(index, 1);
|
||
|
|
},
|
||
|
|
selectTracker(state, tracker) {
|
||
|
|
state.selectedTracker = tracker;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
})
|