add filter function to exclude existing records

This commit is contained in:
Adrian Zürcher
2025-11-11 08:12:23 +01:00
parent 2cce310fc4
commit 8d243302f0
3 changed files with 27 additions and 110 deletions

View File

@@ -28,7 +28,7 @@
dense
flat
icon="add"
@click="openAllValueDialog(null)"
@click="openResponsibleDialog"
>
<q-tooltip>{{ $t('addNewResponsible') }}</q-tooltip>
</q-btn>
@@ -49,9 +49,6 @@
<div v-if="selectOption && selected.length > 0">
<q-btn flat dense icon="more_vert" @click="openSubmenu = true" />
<q-menu v-if="openSubmenu" anchor="bottom middle" self="top middle">
<q-item clickable v-close-popup @click="addToEvent" class="text-primary">{{
$t('addToEvent')
}}</q-item>
<q-item
v-if="user.isPermittedTo('responsible', 'delete')"
clickable
@@ -74,14 +71,7 @@
</q-input>
</template>
<template v-slot:body-cell="props">
<q-td
:props="props"
:style="user.isPermittedTo('responsible', 'write') ? 'cursor: pointer' : ''"
@click="
user.isPermittedTo('responsible', 'write') &&
openSingleValueDialog(props.col.label, props.col.name, props.row)
"
>
<q-td :props="props">
{{ props.value }}
</q-td>
</template>
@@ -98,14 +88,6 @@
@click="openSubmenu = true"
/>
<q-menu v-if="openSubmenu" anchor="top right" self="top left">
<q-item
v-if="user.isPermittedTo('responsible', 'write')"
clickable
v-close-popup
@click="openAllValueDialog(props.row)"
class="text-primary"
>{{ $t('edit') }}</q-item
>
<q-item
v-if="user.isPermittedTo('responsible', 'delete')"
clickable
@@ -120,13 +102,18 @@
</template>
</q-table>
</div>
<EditOneDialog
ref="editOneDialog"
endpoint="Responsibles/edit"
query-id
v-on:update="updateResponsibles"
></EditOneDialog>
<EditAllDialog ref="editAllDialog" v-on:updated="updateResponsibles"></EditAllDialog>
<DialogFrame
ref="responsibleDialog"
:header-title="$t('addNewResponsible')"
:height="600"
:width="500"
>
<MembersTable
add-responsible
:compare-members="responsibles"
v-on:update-event="updateResponsibles"
/>
</DialogFrame>
<OkDialog
ref="okDialog"
:dialog-label="$t('delete')"
@@ -143,9 +130,9 @@
<script setup lang="ts">
import { appApi } from 'src/boot/axios';
import { ref, onMounted } from 'vue';
import DialogFrame from 'src/vueLib/dialog/DialogFrame.vue';
import MembersTable from '../members/MembersTable.vue';
import type { Member, Members } from 'src/vueLib/models/member';
import EditOneDialog from 'src/components/EditOneDialog.vue';
import EditAllDialog from 'src/components/ResponsibleEditAllDialog.vue';
import OkDialog from 'src/components/dialog/OkDialog.vue';
import { useNotify } from 'src/vueLib/general/useNotify';
import { useResponsibleTable } from './ResponsibleTable';
@@ -158,9 +145,7 @@ export interface ResponsibleDialog {
}
const { NotifyResponse } = useNotify();
const editOneDialog = ref();
const editAllDialog = ref();
const addToEventDialog = ref();
const responsibleDialog = ref();
const okDialog = ref();
const deleteText = ref('');
const selectOption = ref(false);
@@ -189,14 +174,9 @@ onMounted(() => {
});
});
// opens dialog for all Responsible values
function openSingleValueDialog(label: string, field: string, Responsible: Member) {
editOneDialog.value?.open(label, field, Responsible);
}
//opens dialog for one value
function openAllValueDialog(Responsible: Member | null) {
editAllDialog.value?.open(Responsible);
function openResponsibleDialog() {
responsibleDialog.value?.open();
}
//opens remove dialog
@@ -211,7 +191,7 @@ function openRemoveDialog(...Responsibles: Members) {
}
deleteText.value += "'";
} else {
deleteText.value = String(Responsibles.length) + ' Responsibles';
deleteText.value = String(Responsibles.length) + ' ' + i18n.global.t('responsibles');
}
okDialog.value?.open(Responsibles);
}
@@ -237,10 +217,6 @@ function removeResponsible(...removeResponsibles: Members) {
loading.value = false;
});
}
function addToEvent() {
addToEventDialog.value?.open(i18n.global.t('addToEvent'), selected.value);
}
</script>
<style>