modify localstorage close #48

This commit is contained in:
Adrian Zürcher
2026-02-13 12:27:30 +01:00
parent 3f02afde85
commit 0026f68320
5 changed files with 139 additions and 27 deletions

View File

@@ -0,0 +1,8 @@
import type { Group } from './group';
export type PageDefault = {
groups?: Group[];
selectedColumnFilter?: string;
selectedColumnOptions?: string[];
weekdays?: number[];
};

View File

@@ -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;

View File

@@ -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();
}