diff --git a/app/components/calendar/entry/EntryCreateOrUpdateModal.vue b/app/components/calendar/entry/EntryCreateOrUpdateModal.vue index 21580756f..b9b5ee121 100644 --- a/app/components/calendar/entry/EntryCreateOrUpdateModal.vue +++ b/app/components/calendar/entry/EntryCreateOrUpdateModal.vue @@ -185,7 +185,9 @@ const onSubmitThrottle = useThrottleFn(async (event: FormSubmitEvent) => async () => ( await calendarStore.listCalendars({ - pagination: { offset: 0 }, + pagination: { + offset: 0, + }, onlyPublic: false, minAccessLevel: AccessLevel.EDIT, }) diff --git a/app/components/citizens/CitizensList.vue b/app/components/citizens/CitizensList.vue index dea0ed498..8c43dd051 100644 --- a/app/components/citizens/CitizensList.vue +++ b/app/components/citizens/CitizensList.vue @@ -30,14 +30,24 @@ const query = ref({}); const page = ref(1); const offset = computed(() => (data.value?.pagination?.pageSize ? data.value?.pagination?.pageSize * (page.value - 1) : 0)); +const sort = ref({ + column: 'name', + direction: 'asc', +}); + const { data, pending: loading, refresh, error, -} = useLazyAsyncData(`citizens-${page.value}-${JSON.stringify(query.value)}`, () => listCitizens(), { - transform: (input) => ({ ...input, users: wrapRows(input?.users, columns) }), -}); +} = useLazyAsyncData( + `citizens-${sort.value.column}:${sort.value.direction}-${page.value}-${JSON.stringify(query.value)}`, + () => listCitizens(), + { + transform: (input) => ({ ...input, users: wrapRows(input?.users, columns) }), + watch: [sort], + }, +); async function listCitizens(): Promise { try { @@ -45,6 +55,7 @@ async function listCitizens(): Promise { pagination: { offset: offset.value, }, + sort: sort.value, search: query.value.name ?? '', }; if (query.value.wanted) { @@ -104,6 +115,7 @@ const columns = [ { key: 'name', label: t('common.name'), + sortable: true, }, { key: 'jobLabel', @@ -271,10 +283,12 @@ defineShortcuts({