new package dbHandler accesscontrol memeberdb and login with rights
All checks were successful
Build Quasar SPA and Go Backend for memberApp / build-spa (push) Successful in 2m20s
Build Quasar SPA and Go Backend for memberApp / build-backend (amd64, .exe, windows) (push) Successful in 5m27s
Build Quasar SPA and Go Backend for memberApp / build-backend (amd64, , linux) (push) Successful in 5m32s
Build Quasar SPA and Go Backend for memberApp / build-backend (arm, 6, , linux) (push) Successful in 5m28s
Build Quasar SPA and Go Backend for memberApp / build-backend (arm64, , linux) (push) Successful in 5m29s

This commit is contained in:
Adrian Zürcher
2025-10-31 14:54:05 +01:00
parent b0d6bb5512
commit cc3a547961
60 changed files with 1062 additions and 1162 deletions

View File

@@ -13,7 +13,7 @@ export function useMemberTable() {
sortBy: 'firstName',
descending: false,
page: 1,
rowsPerPage: 10,
rowsPerPage: 20,
});
const columns = computed(() => [
@@ -171,7 +171,7 @@ export function useMemberTable() {
loading.value = true;
appApi
.get('secure/members')
.get('members')
.then((resp) => {
if (resp.data === null) {
members.value = [];

View File

@@ -23,10 +23,17 @@
>
<template v-slot:top-left>
<q-btn-group push flat style="color: grey">
<q-btn dense flat icon="add" @click="openAllValueDialog(null)">
<q-btn
v-if="user.isPermittedTo('userSettings', 'write')"
dense
flat
icon="add"
@click="openAllValueDialog(null)"
>
<q-tooltip>{{ $t('addNewMember') }}</q-tooltip>
</q-btn>
<q-btn
v-if="user.isPermittedTo('userSettings', 'write')"
dense
flat
style="color: grey"
@@ -35,7 +42,13 @@
>
<q-tooltip>{{ $t('selectMemberOptions') }}</q-tooltip>
</q-btn>
<q-btn dense flat icon="upload" @click="openUploadDialog">
<q-btn
v-if="user.isPermittedTo('userSettings', 'write')"
dense
flat
icon="upload"
@click="openUploadDialog"
>
<q-tooltip>{{ $t('importCSV') }}</q-tooltip>
</q-btn>
</q-btn-group>
@@ -66,7 +79,11 @@
<q-td
:props="props"
:class="getRowClass(props.row)"
@click="openSingleValueDialog(props.col.label, props.col.name, props.row)"
:style="user.isPermittedTo('userSettings', 'write') ? 'cursor: pointer' : ''"
@click="
user.isPermittedTo('userSettings', 'write') &&
openSingleValueDialog(props.col.label, props.col.name, props.row)
"
>
{{ props.value }}
</q-td>
@@ -82,9 +99,19 @@
</template>
<template v-slot:body-cell-option="props">
<q-td :props="props">
<q-btn flat dense icon="more_vert" @click="openSubmenu = true" />
<q-btn
v-if="
user.isPermittedTo('userSettings', 'write') ||
user.isPermittedTo('userSettings', 'delete')
"
flat
dense
icon="more_vert"
@click="openSubmenu = true"
/>
<q-menu v-if="openSubmenu" anchor="top right" self="top left">
<q-item
v-if="user.isPermittedTo('userSettings', 'write')"
clickable
v-close-popup
@click="openAllValueDialog(props.row)"
@@ -92,6 +119,7 @@
>{{ $t('edit') }}</q-item
>
<q-item
v-if="user.isPermittedTo('userSettings', 'delete')"
clickable
v-close-popup
@click="openRemoveDialog(props.row)"
@@ -104,7 +132,12 @@
</template>
</q-table>
</div>
<EditOneDialog ref="editOneDialog" v-on:update="updateMembers"></EditOneDialog>
<EditOneDialog
ref="editOneDialog"
endpoint="members/edit"
query-id
v-on:update="updateMembers"
></EditOneDialog>
<EditAllDialog ref="editAllDialog" v-on:update="updateMembers"></EditAllDialog>
<OkDialog
ref="okDialog"
@@ -131,6 +164,7 @@ import { useNotify } from 'src/vueLib/general/useNotify';
import { useMemberTable } from './MembersTable';
import UploadDialog from 'src/components/UploadDialog.vue';
import { databaseName } from './MembersTable';
import { useUserStore } from 'src/vueLib/login/userStore';
export interface MemberDialog {
getSelected: () => Members;
@@ -146,6 +180,7 @@ const selectOption = ref(false);
const selected = ref<Members>([]);
const openSubmenu = ref(false);
const filter = ref('');
const user = useUserStore();
const {
members,
@@ -162,7 +197,7 @@ onMounted(() => {
loading.value = true;
appApi
.post('secure/database/open', { dbPath: databaseName.value, create: true })
.post('database/open', { dbPath: databaseName.value, create: true })
.then(() => {
updateMembers();
})
@@ -214,7 +249,7 @@ function removeMember(...removeMembers: Members) {
});
appApi
.post('secure/members/delete', { ids: memberIds })
.post('members/delete', { ids: memberIds })
.then(() => {
updateMembers();
selected.value = [];