modify localstorage close #48
This commit is contained in:
8
src/vueLib/models/pageDefaults.ts
Normal file
8
src/vueLib/models/pageDefaults.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import type { Group } from './group';
|
||||
|
||||
export type PageDefault = {
|
||||
groups?: Group[];
|
||||
selectedColumnFilter?: string;
|
||||
selectedColumnOptions?: string[];
|
||||
weekdays?: number[];
|
||||
};
|
||||
@@ -66,6 +66,7 @@ import { ref } from 'vue';
|
||||
import { useAttendeesTable } from './AttendeesTable';
|
||||
import { useMemberTable } from '../members/MembersTable';
|
||||
import { getLocalPageDefaults } from 'src/localstorage/localStorage';
|
||||
import type { PageDefault } from 'src/vueLib/models/pagedefaults';
|
||||
|
||||
//use constants and function of imports
|
||||
const { attendees, updateAttendees } = useAttendeesTable();
|
||||
@@ -95,8 +96,10 @@ const open = async (eventArray: number, event: Event) => {
|
||||
await updateMembers(event.attendees);
|
||||
|
||||
// set custom filter
|
||||
const defaults = getLocalPageDefaults('attendance');
|
||||
setNewFilter(defaults?.stringValue || '', ...(defaults?.filteredValues ?? []));
|
||||
const settings = getLocalPageDefaults('attendance') as PageDefault;
|
||||
if (settings) {
|
||||
setNewFilter(settings.selectedColumnFilter || '', ...(settings.selectedColumnOptions ?? []));
|
||||
}
|
||||
|
||||
// set amount of missing attendace
|
||||
missingAttendanceAmount.value = filteredMembers.value.length;
|
||||
|
||||
@@ -209,12 +209,13 @@ import AddToEvent from 'src/components/AddToEvent.vue';
|
||||
import { databaseName } from 'src/vueLib/models/settings';
|
||||
import { useUserStore } from 'src/vueLib/login/userStore';
|
||||
import { i18n } from 'src/boot/lang';
|
||||
import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage';
|
||||
import type { Responsible } from 'src/vueLib/models/responsible';
|
||||
import type { QTableColumn } from 'quasar';
|
||||
import SearchableInput from '../components/SearchableInput.vue';
|
||||
import FilterSelect from '../components/FilterSelect.vue';
|
||||
import TopButtonGroup from '../components/TopButtonGroup.vue';
|
||||
import { getLocalPageDefaults, setLocalPageDefaults } from 'src/localstorage/localStorage';
|
||||
import type { PageDefault } from 'src/vueLib/models/pagedefaults';
|
||||
|
||||
const inProps = defineProps({
|
||||
addAttendees: { type: Boolean },
|
||||
@@ -285,9 +286,11 @@ onMounted(() => {
|
||||
loading.value = true;
|
||||
localCompareMembers.value = inProps.compareMembers;
|
||||
|
||||
const defaults = getLocalPageDefaults(page.value);
|
||||
selectedColumnFilter.value = defaults?.stringValue || '';
|
||||
selectedColumnOptions.value = defaults?.filteredValues ?? [];
|
||||
const settings = getLocalPageDefaults(page.value) as PageDefault;
|
||||
if (settings) {
|
||||
selectedColumnFilter.value = settings.selectedColumnFilter || '';
|
||||
selectedColumnOptions.value = settings.selectedColumnOptions || [];
|
||||
}
|
||||
|
||||
// set custom filter
|
||||
setNewFilter(selectedColumnFilter.value, ...selectedColumnOptions.value);
|
||||
@@ -369,7 +372,11 @@ function setColumnOptions(columnName: string) {
|
||||
|
||||
async function filterMembers() {
|
||||
setNewFilter(selectedColumnFilter.value, ...(selectedColumnOptions.value || []));
|
||||
setLocalPageDefaults(page.value, selectedColumnFilter.value, selectedColumnOptions.value || []);
|
||||
const settings = <PageDefault>{
|
||||
selectedColumnFilter: selectedColumnFilter.value,
|
||||
selectedColumnOptions: selectedColumnOptions.value,
|
||||
};
|
||||
setLocalPageDefaults(page.value, settings);
|
||||
await updateTable();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user