add new event and attendance table with automatic now timestamp
All checks were successful
Build Quasar SPA and Go Backend for memberApp / build-spa (push) Successful in 2m34s
Build Quasar SPA and Go Backend for memberApp / build-backend (amd64, .exe, windows) (push) Successful in 5m39s
Build Quasar SPA and Go Backend for memberApp / build-backend (amd64, , linux) (push) Successful in 5m46s
Build Quasar SPA and Go Backend for memberApp / build-backend (arm, 6, , linux) (push) Successful in 5m32s
Build Quasar SPA and Go Backend for memberApp / build-backend (arm64, , linux) (push) Successful in 5m35s

This commit is contained in:
Adrian Zürcher
2025-11-04 10:59:56 +01:00
parent 632163d751
commit aec741f094
39 changed files with 1343 additions and 229 deletions

21
src/pages/EventsTable.vue Normal file
View File

@@ -0,0 +1,21 @@
<template>
<q-page>
<EventsTable />
<DialogFrame ref="dialog" header-title="Test Frame">
<EventsTable ref="EventDialog" />
</DialogFrame>
<DialogFrame ref="uploadDialog" header-title="Test Frame">
<EventsTable ref="EventDialog" />
</DialogFrame>
</q-page>
</template>
<script setup lang="ts">
import EventsTable from 'src/vueLib/tables/events/EventsTable.vue';
import DialogFrame from 'src/vueLib/dialog/DialogFrame.vue';
import { ref } from 'vue';
import type { EventDialog } from 'src/vueLib/tables/events/EventsTable.vue';
const dialog = ref();
const EventDialog = ref<EventDialog>();
</script>

View File

@@ -21,6 +21,7 @@ onMounted(() => {
const forwardToPage = async () => {
await nextTick();
await router.push('/members');
const lastRoute = sessionStorage.getItem('lastRoute') || '/members';
await router.push(lastRoute);
};
</script>

View File

@@ -9,9 +9,6 @@
<MembersTable ref="memberDialog" />
<q-btn @click="getSelection">Get Selected</q-btn>
</DialogFrame>
<div class="row">
<q-btn @click="open">Click Me</q-btn>
</div>
</q-page>
</template>
@@ -20,15 +17,12 @@ import MembersTable from 'src/vueLib/tables/members/MembersTable.vue';
import DialogFrame from 'src/vueLib/dialog/DialogFrame.vue';
import { ref } from 'vue';
import type { MemberDialog } from 'src/vueLib/tables/members/MembersTable.vue';
import type { Members } from 'src/vueLib/models/member';
const dialog = ref();
const memberDialog = ref<MemberDialog>();
const open = () => dialog.value?.open();
function getSelection() {
const selected = memberDialog.value?.getSelected();
if (selected === undefined) return;
console.log(65, selected[0]?.id);
function getSelection(): Members {
return memberDialog.value?.getSelected() || [];
}
</script>

View File

@@ -139,11 +139,9 @@ import { reactive, ref, watch } from 'vue';
import { appApi } from 'src/boot/axios';
import { useNotify } from 'src/vueLib/general/useNotify';
import { type Settings } from 'src/vueLib/models/settings';
import { useLogin } from 'src/vueLib/login/useLogin';
import { useUserStore } from 'src/vueLib/login/userStore';
const { NotifyResponse } = useNotify();
const { getUser } = useLogin();
const colorGroup = ref(false);
const user = useUserStore();
@@ -185,8 +183,12 @@ function save() {
localStorage.setItem('secondaryColor', settings.secondaryColor);
localStorage.setItem('secondaryColorText', settings.secondaryColorText);
const tempuser = user.user;
if (tempuser) {
tempuser.settings = settings;
}
appApi
.post('settings/update', { user: getUser()?.username, settings })
.post('users/update', tempuser)
.then((resp) => NotifyResponse(resp.data.message))
.catch((err) => NotifyResponse(err, 'error'));
}