Compare commits

..

No commits in common. "f2ace3a2e525c5668c6f1abbca13202c16a2535d" and "79a4594878a9a3937a58be6cceec01ce1d86f69c" have entirely different histories.

204 changed files with 433 additions and 440 deletions
src
components
FormBottomBar.vuePagination.vue
admin
club
settings
user
queryBuilder
router
stores/admin

View file

@ -1,8 +1,8 @@
<template>
<div class="flex flex-col text-gray-400 text-sm mt-4 items-center">
<div class="flex flex-row gap-2 justify-center">
<a href="https://jk-effects.com/privacy" target="_blank">Datenschutz</a>
<a href="https://jk-effects.com/imprint" target="_blank">Impressum</a>
<a ref="https://jk-effects.com/privacy" target="_blank">Datenschutz</a>
<a ref="https://jk-effects.com/imprint" target="_blank">Impressum</a>
</div>
<a href="https://jk-effects.com" target="_blank"> &copy; Admin-Portal by JK Effects </a>
</div>

View file

@ -1,10 +1,9 @@
<template>
<div class="grow flex flex-col gap-2 overflow-hidden">
<div v-if="useSearch" class="relative self-end flex flex-row items-center gap-2">
<Spinner v-if="deferingSearch" />
<div v-if="useSearch" class="relative self-end">
<input
type="text"
class="!max-w-64 !w-64 rounded-md shadow-sm relative block px-3 py-2 pr-5 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm"
class="w-64 rounded-md shadow-sm relative block px-3 py-2 pr-5 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm"
placeholder="Suche"
v-model="searchString"
/>
@ -88,22 +87,15 @@ const slots = defineSlots<{
const timer = ref(undefined) as undefined | any;
const currentPage = ref(0);
const searchString = ref("");
const deferingSearch = ref(false)
watch(searchString, async () => {
deferingSearch.value = true
clearTimeout(timer.value);
timer.value = setTimeout(() => {
currentPage.value = 0;
deferingSearch.value = false
emit("search", searchString.value);
}, 600);
});
watch(() => props.totalCount, async () => {
currentPage.value = 0;
});
const emit = defineEmits({
submit(id: number) {
return typeof id == "number";
@ -112,7 +104,7 @@ const emit = defineEmits({
return typeof offset == "number" && typeof offset == "number" && typeof searchString == "number";
},
search(search: string) {
return typeof search == "string";
return typeof search == "number";
},
clickRow(elem: T) {
return true;
@ -159,8 +151,7 @@ const loadPage = (newPage: number | ".") => {
if (pageEnd > entryCount.value) pageEnd = entryCount.value;
let loadedElementCount = filterData(props.items, searchString.value, pageStart, pageEnd).length;
console.log(loadedElementCount, props.maxEntriesPerPage, pageStart, pageEnd)
if (loadedElementCount < props.maxEntriesPerPage && (pageEnd != props.totalCount || loadedElementCount == 0))
if (loadedElementCount < props.maxEntriesPerPage)
emit("loadData", pageStart, props.maxEntriesPerPage, searchString.value);
currentPage.value = newPage;

View file

@ -105,8 +105,8 @@ import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { RouterLink } from "vue-router";
import { useModalStore } from "@/stores/modal";
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import TextCopy from "@/components/TextCopy.vue";

View file

@ -143,12 +143,12 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCalendarStore } from "@/stores/admin/club/calendar";
import type { CreateCalendarViewModel } from "@/viewmodels/admin/club/calendar.models";
import { useCalendarStore } from "@/stores/admin/calendar";
import type { CreateCalendarViewModel } from "@/viewmodels/admin/calendar.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
</script>
<script lang="ts">

View file

@ -51,7 +51,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCalendarStore } from "@/stores/admin/club/calendar";
import { useCalendarStore } from "@/stores/admin/calendar";
</script>
<script lang="ts">

View file

@ -185,16 +185,16 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCalendarStore } from "@/stores/admin/club/calendar";
import { useCalendarStore } from "@/stores/admin/calendar";
import type {
CalendarViewModel,
CreateCalendarViewModel,
UpdateCalendarViewModel,
} from "@/viewmodels/admin/club/calendar.models";
} from "@/viewmodels/admin/calendar.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon, TrashIcon } from "@heroicons/vue/20/solid";
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
import cloneDeep from "lodash.clonedeep";
import isEqual from "lodash.isequal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -66,10 +66,6 @@
<label for="birthdate">Geburtsdatum</label>
<input type="date" id="birthdate" required />
</div>
<div>
<label for="internalId">Interne ID (optional)</label>
<input type="text" id="internalId" />
</div>
<div class="flex flex-row gap-2">
<button primary type="submit" :disabled="status == 'loading' || status?.status == 'success'">erstellen</button>
<Spinner v-if="status == 'loading'" class="my-auto" />
@ -98,8 +94,8 @@ import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { Salutation } from "@/enums/salutation";
import { useMemberStore } from "@/stores/admin/club/member/member";
import type { CreateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import { useMemberStore } from "@/stores/admin/member";
import type { CreateMemberViewModel } from "@/viewmodels/admin/member.models";
</script>
<script lang="ts">
@ -131,7 +127,6 @@ export default defineComponent({
lastname: formData.lastname.value,
nameaffix: formData.nameaffix.value,
birthdate: formData.birthdate.value,
internalId: formData.internalId.value,
};
this.createMember(createMember)
.then(() => {

View file

@ -44,8 +44,8 @@ import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { Salutation } from "@/enums/salutation";
import { useMemberStore } from "@/stores/admin/club/member/member";
import type { CreateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import { useMemberStore } from "@/stores/admin/member";
import type { CreateMemberViewModel } from "@/viewmodels/admin/member.models";
</script>
<script lang="ts">

View file

@ -97,14 +97,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useAwardStore } from "@/stores/admin/settings/award";
import type { AwardViewModel } from "@/viewmodels/admin/settings/award.models";
import type { CreateMemberAwardViewModel } from "@/viewmodels/admin/club/member/memberAward.models";
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
import { useMembershipStore } from "@/stores/admin/membership";
import { useAwardStore } from "@/stores/admin/award";
import type { AwardViewModel } from "@/viewmodels/admin/award.models";
import type { CreateMemberAwardViewModel } from "@/viewmodels/admin/memberAward.models";
import { useMemberAwardStore } from "@/stores/admin/memberAward";
</script>
<script lang="ts">

View file

@ -38,7 +38,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
import { useMemberAwardStore } from "@/stores/admin/memberAward";
</script>
<script lang="ts">

View file

@ -98,13 +98,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useAwardStore } from "@/stores/admin/settings/award";
import { useAwardStore } from "@/stores/admin/award";
import type {
CreateMemberAwardViewModel,
MemberAwardViewModel,
UpdateMemberAwardViewModel,
} from "@/viewmodels/admin/club/member/memberAward.models";
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
} from "@/viewmodels/admin/memberAward.models";
import { useMemberAwardStore } from "@/stores/admin/memberAward";
import isEqual from "lodash.isequal";
import cloneDeep from "lodash.clonedeep";
</script>

View file

@ -16,7 +16,7 @@
<script setup lang="ts">
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { MemberAwardViewModel } from "@/viewmodels/admin/club/member/memberAward.models";
import type { MemberAwardViewModel } from "@/viewmodels/admin/memberAward.models";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -125,10 +125,10 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
import type { CreateCommunicationViewModel } from "@/viewmodels/admin/club/member/communication.models";
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
import { useCommunicationStore } from "@/stores/admin/communication";
import type { CreateCommunicationViewModel } from "@/viewmodels/admin/communication.models";
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
</script>
<script lang="ts">

View file

@ -41,7 +41,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
import { useCommunicationStore } from "@/stores/admin/communication";
</script>
<script lang="ts">

View file

@ -71,12 +71,12 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
import { useCommunicationStore } from "@/stores/admin/communication";
import type {
CreateCommunicationViewModel,
CommunicationViewModel,
UpdateCommunicationViewModel,
} from "@/viewmodels/admin/club/member/communication.models";
} from "@/viewmodels/admin/communication.models";
import isEqual from "lodash.isequal";
import cloneDeep from "lodash.clonedeep";
</script>

View file

@ -16,7 +16,7 @@
<script setup lang="ts">
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { CommunicationViewModel } from "@/viewmodels/admin/club/member/communication.models";
import type { CommunicationViewModel } from "@/viewmodels/admin/communication.models";
import { EnvelopeIcon, PencilIcon, TrashIcon, FireIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -99,14 +99,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
import type { CreateMemberExecutivePositionViewModel } from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
import { useMembershipStore } from "@/stores/admin/membership";
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
import type { CreateMemberExecutivePositionViewModel } from "@/viewmodels/admin/memberExecutivePosition.models";
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
</script>
<script lang="ts">

View file

@ -38,7 +38,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
</script>
<script lang="ts">

View file

@ -104,13 +104,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
import type {
CreateMemberExecutivePositionViewModel,
MemberExecutivePositionViewModel,
UpdateMemberExecutivePositionViewModel,
} from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
} from "@/viewmodels/admin/memberExecutivePosition.models";
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
import isEqual from "lodash.isequal";
import cloneDeep from "lodash.clonedeep";
</script>

View file

@ -14,7 +14,7 @@
<script setup lang="ts">
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { MemberExecutivePositionViewModel } from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
import type { MemberExecutivePositionViewModel } from "@/viewmodels/admin/memberExecutivePosition.models";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -1,26 +1,42 @@
<template>
<div class="flex flex-col h-fit w-full border border-primary rounded-md">
<RouterLink
:to="{ name: 'admin-club-member-overview', params: { memberId: member.id } }"
class="flex flex-col h-fit w-full border border-primary rounded-md"
>
<div
class="bg-primary p-2 text-white flex flex-row justify-between items-center"
>
<p>{{ member.lastname }}, {{ member.firstname }} {{ member.nameaffix ? `- ${member.nameaffix}` : "" }}</p>
<div v-if="false" class="flex flex-row">
<RouterLink
v-if="can('read', 'club', 'member')"
:to="{ name: 'admin-club-member-overview', params: { memberId: member.id } }"
>
<CircleStackIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink>
<RouterLink
v-if="can('update', 'club', 'member')"
:to="{ name: 'admin-club-member-edit', params: { id: member.id } }"
>
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink>
<div v-if="can('delete', 'club', 'member')" @click="openDeleteModal">
<TrashIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</div>
<div class="p-2">
<p v-if="member.internalId">Interne ID: {{ member.internalId }}</p>
<p>beigetreten: {{ member.firstMembershipEntry?.start }}</p>
<p v-if="member.lastMembershipEntry?.end">ausgetreten: {{ member.lastMembershipEntry?.end }}, da {{member.lastMembershipEntry?.terminationReason ?? '- kein Grund angegeben'}}</p>
</div>
</RouterLink>
<div class="p-2">
<p>beigetreten: {{ member.firstMembershipEntry?.start }}</p>
<p v-if="member.lastMembershipEntry?.end">ausgetreten: {{ member.lastMembershipEntry?.end }}</p>
</div>
</div>
</template>
<script setup lang="ts">
import { defineComponent, type PropType } from "vue";
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon, CircleStackIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import { useModalStore } from "@/stores/modal";
import type { MemberViewModel } from "@/viewmodels/admin/member.models";
</script>
<script lang="ts">
@ -31,5 +47,14 @@ export default defineComponent({
computed: {
...mapState(useAbilityStore, ["can"]),
},
methods: {
...mapActions(useModalStore, ["openModal"]),
openDeleteModal() {
// this.openModal(
// markRaw(defineAsyncComponent(() => import("@/components/admin/.vue"))),
// this.member.id
// );
},
},
});
</script>

View file

@ -106,14 +106,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useQualificationStore } from "@/stores/admin/settings/qualification";
import type { QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/club/member/memberQualification.models";
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
import { useMembershipStore } from "@/stores/admin/membership";
import { useQualificationStore } from "@/stores/admin/qualification";
import type { QualificationViewModel } from "@/viewmodels/admin/qualification.models";
import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/memberQualification.models";
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
</script>
<script lang="ts">

View file

@ -41,8 +41,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQualificationStore } from "@/stores/admin/settings/qualification";
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
import { useQualificationStore } from "@/stores/admin/qualification";
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
</script>
<script lang="ts">

View file

@ -105,13 +105,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useQualificationStore } from "@/stores/admin/settings/qualification";
import { useQualificationStore } from "@/stores/admin/qualification";
import type {
CreateMemberQualificationViewModel,
MemberQualificationViewModel,
UpdateMemberQualificationViewModel,
} from "@/viewmodels/admin/club/member/memberQualification.models";
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
} from "@/viewmodels/admin/memberQualification.models";
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
import isEqual from "lodash.isequal";
import cloneDeep from "lodash.clonedeep";
</script>

View file

@ -17,7 +17,7 @@
<script setup lang="ts">
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { MemberQualificationViewModel } from "@/viewmodels/admin/club/member/memberQualification.models";
import type { MemberQualificationViewModel } from "@/viewmodels/admin/memberQualification.models";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -63,6 +63,10 @@
</div>
</Listbox>
</div>
<div>
<label for="internalId">Interne ID (optional)</label>
<input type="text" id="internalId" />
</div>
<div>
<label for="start">Startdatum</label>
<input type="date" id="start" required />
@ -94,10 +98,10 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
import { useMembershipStore } from "@/stores/admin/membership";
</script>
<script lang="ts">
@ -128,6 +132,7 @@ export default defineComponent({
if (this.selectedStatus == undefined) return;
let formData = e.target.elements;
let createMember: CreateMembershipViewModel = {
internalId: formData.internalId.value,
start: formData.start.value,
statusId: this.selectedStatus.id,
};

View file

@ -40,7 +40,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useMembershipStore } from "@/stores/admin/membership";
</script>
<script lang="ts">

View file

@ -63,6 +63,10 @@
</div>
</Listbox>
</div>
<div>
<label for="internalId">Interne ID (optional)</label>
<input type="text" id="internalId" v-model="membership.internalId" />
</div>
<div>
<label for="start">Startdatum</label>
<input type="date" id="start" required v-model="membership.start" />
@ -101,13 +105,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type {
CreateMembershipViewModel,
MembershipViewModel,
UpdateMembershipViewModel,
} from "@/viewmodels/admin/club/member/membership.models";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
} from "@/viewmodels/admin/membership.models";
import { useMembershipStore } from "@/stores/admin/membership";
import isEqual from "lodash.isequal";
import cloneDeep from "lodash.clonedeep";
</script>
@ -165,6 +169,7 @@ export default defineComponent({
let formData = e.target.elements;
let updateMembership: UpdateMembershipViewModel = {
id: this.membership.id,
internalId: formData.internalId.value,
start: formData.start.value,
end: formData.end.value,
terminationReason: formData.terminationReason.value,

View file

@ -8,8 +8,9 @@
<PencilIcon v-if="can('update', 'club', 'member')" class="w-5 h-5 cursor-pointer" @click="openEditModal" />
<TrashIcon v-if="can('delete', 'club', 'member')" class="w-5 h-5 cursor-pointer" @click="openDeleteModal" />
</div>
<div v-if="membership.terminationReason" class="p-2">
<p v-if="membership.terminationReason">Grund: {{ membership.terminationReason }}</p>
<div v-if="membership.terminationReason || membership.internalId" class="p-2">
<p v-if="membership.internalId">Interne ID: {{ membership.internalId }}</p>
<p v-if="membership.terminationReason">beendet, weil: {{ membership.terminationReason }}</p>
</div>
</div>
</template>
@ -17,7 +18,7 @@
<script setup lang="ts">
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { MembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
import type { MembershipViewModel } from "@/viewmodels/admin/membership.models";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useModalStore } from "@/stores/modal";
import { useAbilityStore } from "@/stores/ability";

View file

@ -34,10 +34,10 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
import { useNewsletterStore } from "../../../../stores/admin/club/newsletter/newsletter";
import type { CreateNewsletterViewModel } from "../../../../viewmodels/admin/club/newsletter/newsletter.models";
import { useProtocolStore } from "@/stores/admin/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
import { useNewsletterStore } from "../../../../stores/admin/newsletter";
import type { CreateNewsletterViewModel } from "../../../../viewmodels/admin/newsletter.models";
</script>
<script lang="ts">

View file

@ -17,8 +17,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
import { useProtocolStore } from "@/stores/admin/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
</script>
<script lang="ts">

View file

@ -16,7 +16,7 @@
<script setup lang="ts">
import { defineComponent, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { NewsletterViewModel } from "@/viewmodels/admin/club/newsletter/newsletter.models";
import type { NewsletterViewModel } from "@/viewmodels/admin/newsletter.models";
import { PaperAirplaneIcon } from "@heroicons/vue/24/outline";
</script>

View file

@ -15,7 +15,7 @@ import { mapState, mapActions } from "pinia";
import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import type { AxiosResponse } from "axios";
import { useNewsletterPrintoutStore } from "@/stores/admin/club/newsletter/newsletterPrintout";
import { useNewsletterPrintoutStore } from "@/stores/admin/newsletterPrintout";
</script>
<script lang="ts">

View file

@ -16,10 +16,10 @@
<script setup lang="ts">
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter";
import { useNewsletterStore } from "@/stores/admin/newsletter";
import { ArrowPathIcon, CloudArrowUpIcon, CloudIcon, ExclamationTriangleIcon } from "@heroicons/vue/24/outline";
import { useNewsletterDatesStore } from "@/stores/admin/club/newsletter/newsletterDates";
import { useNewsletterRecipientsStore } from "@/stores/admin/club/newsletter/newsletterRecipients";
import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
import { useNewsletterRecipientsStore } from "@/stores/admin/newsletterRecipients";
</script>
<script lang="ts">

View file

@ -38,8 +38,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
import { useProtocolStore } from "@/stores/admin/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
</script>
<script lang="ts">

View file

@ -17,8 +17,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
import { useProtocolStore } from "@/stores/admin/protocol";
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
</script>
<script lang="ts">

View file

@ -15,7 +15,7 @@
<script setup lang="ts">
import { defineComponent, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { ProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
import type { ProtocolViewModel } from "@/viewmodels/admin/protocol.models";
</script>
<script lang="ts">

View file

@ -13,7 +13,7 @@ import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import { useProtocolPrintoutStore } from "@/stores/admin/club/protocol/protocolPrintout";
import { useProtocolPrintoutStore } from "@/stores/admin/protocolPrintout";
</script>
<script lang="ts">

View file

@ -16,12 +16,12 @@
<script setup lang="ts">
import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { useProtocolStore } from "@/stores/admin/protocol";
import { ArrowPathIcon, CloudArrowUpIcon, CloudIcon, ExclamationTriangleIcon } from "@heroicons/vue/24/outline";
import { useProtocolAgendaStore } from "@/stores/admin/club/protocol/protocolAgenda";
import { useProtocolPresenceStore } from "@/stores/admin/club/protocol/protocolPresence";
import { useProtocolDecisionStore } from "@/stores/admin/club/protocol/protocolDecision";
import { useProtocolVotingStore } from "@/stores/admin/club/protocol/protocolVoting";
import { useProtocolAgendaStore } from "@/stores/admin/protocolAgenda";
import { useProtocolPresenceStore } from "@/stores/admin/protocolPresence";
import { useProtocolDecisionStore } from "@/stores/admin/protocolDecision";
import { useProtocolVotingStore } from "@/stores/admin/protocolVoting";
</script>
<script lang="ts">

View file

@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { AwardViewModel } from "@/viewmodels/admin/settings/award.models";
import type { AwardViewModel } from "@/viewmodels/admin/award.models";
</script>
<script lang="ts">

View file

@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useAwardStore } from "@/stores/admin/settings/award";
import type { CreateAwardViewModel } from "@/viewmodels/admin/settings/award.models";
import { useAwardStore } from "@/stores/admin/award";
import type { CreateAwardViewModel } from "@/viewmodels/admin/award.models";
</script>
<script lang="ts">

View file

@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useAwardStore } from "@/stores/admin/settings/award";
import { useRoleStore } from "@/stores/admin/role";
import { useAwardStore } from "@/stores/admin/award";
</script>
<script lang="ts">

View file

@ -30,7 +30,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon, EyeIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
</script>
<script lang="ts">

View file

@ -51,8 +51,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import type { CreateCalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
import type { CreateCalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
</script>

View file

@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
</script>
<script lang="ts">

View file

@ -33,7 +33,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
</script>
<script lang="ts">

View file

@ -78,8 +78,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
import type { CreateCommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
import type { CreateCommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
import type { CommunicationFieldType } from "@/types/fieldTypes";

View file

@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
</script>
<script lang="ts">

View file

@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import type { CreateExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
import type { CreateExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
</script>
<script lang="ts">

View file

@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
import { useRoleStore } from "@/stores/admin/role";
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
</script>
<script lang="ts">

View file

@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
</script>
<script lang="ts">

View file

@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import type { CreateMembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
import type { CreateMembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
</script>
<script lang="ts">

View file

@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
import { useRoleStore } from "@/stores/admin/role";
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
</script>
<script lang="ts">

View file

@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
</script>
<script lang="ts">

View file

@ -29,14 +29,14 @@
import { defineComponent, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import { ArchiveBoxArrowDownIcon, ArchiveBoxXMarkIcon } from "@heroicons/vue/24/outline";
import { useNewsletterConfigStore } from "@/stores/admin/settings/newsletterConfig";
import { useNewsletterConfigStore } from "@/stores/admin/newsletterConfig";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useModalStore } from "@/stores/modal";
import { NewsletterConfigType } from "@/enums/newsletterConfigType";
import type { AxiosResponse } from "axios";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
import { useAbilityStore } from "@/stores/ability";
</script>

View file

@ -36,8 +36,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQualificationStore } from "@/stores/admin/settings/qualification";
import type { CreateQualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
import { useQualificationStore } from "@/stores/admin/qualification";
import type { CreateQualificationViewModel } from "@/viewmodels/admin/qualification.models";
</script>
<script lang="ts">

View file

@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useQualificationStore } from "@/stores/admin/settings/qualification";
import { useRoleStore } from "@/stores/admin/role";
import { useQualificationStore } from "@/stores/admin/qualification";
</script>
<script lang="ts">

View file

@ -29,7 +29,7 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
import type { QualificationViewModel } from "@/viewmodels/admin/qualification.models";
</script>
<script lang="ts">

View file

@ -32,9 +32,9 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import type { CreateQueryViewModel } from "@/viewmodels/admin/settings/query.models";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryStoreStore } from "@/stores/admin/queryStore";
import type { CreateQueryViewModel } from "@/viewmodels/admin/query.models";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
</script>
<script lang="ts">

View file

@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import { useQueryStoreStore } from "@/stores/admin/queryStore";
</script>
<script lang="ts">

View file

@ -23,8 +23,8 @@ import { mapState, mapActions, mapWritableState } from "pinia";
import { EyeIcon, PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { QueryViewModel } from "@/viewmodels/admin/settings/query.models";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import type { QueryViewModel } from "@/viewmodels/admin/query.models";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
</script>
<script lang="ts">

View file

@ -34,9 +34,9 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import type { CreateQueryViewModel, UpdateQueryViewModel } from "@/viewmodels/admin/settings/query.models";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryStoreStore } from "@/stores/admin/queryStore";
import type { CreateQueryViewModel, UpdateQueryViewModel } from "@/viewmodels/admin/query.models";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
</script>
<script lang="ts">

View file

@ -36,8 +36,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useTemplateStore } from "@/stores/admin/settings/template";
import type { CreateTemplateViewModel } from "@/viewmodels/admin/settings/template.models";
import { useTemplateStore } from "@/stores/admin/template";
import type { CreateTemplateViewModel } from "@/viewmodels/admin/template.models";
</script>
<script lang="ts">

View file

@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import { useTemplateStore } from "@/stores/admin/settings/template";
import { useQueryStoreStore } from "@/stores/admin/queryStore";
import { useTemplateStore } from "@/stores/admin/template";
</script>
<script lang="ts">

View file

@ -35,8 +35,8 @@ import { mapState, mapActions } from "pinia";
import { PencilIcon, TrashIcon, DocumentDuplicateIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";
import type { TemplateViewModel } from "@/viewmodels/admin/settings/template.models";
import { useTemplateStore } from "@/stores/admin/settings/template";
import type { TemplateViewModel } from "@/viewmodels/admin/template.models";
import { useTemplateStore } from "@/stores/admin/template";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";

View file

@ -14,7 +14,7 @@ import { defineComponent } from "vue";
import { mapState, mapActions } from "pinia";
import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import { useTemplateUsageStore } from "@/stores/admin/settings/templateUsage";
import { useTemplateUsageStore } from "@/stores/admin/templateUsage";
</script>
<script lang="ts">

View file

@ -18,19 +18,13 @@
</div>
</div>
<div class="flex flex-col p-2 gap-2">
<div class="flex flex-col md:flex-row gap-2 md:items-center">
<div class="flex flex-row w-full gap-2 items-center">
<div class="flex flex-row gap-2 items-center">
<p class="min-w-16">Kopfzeile:</p>
<select ref="header" id="header" :value="templateUsage.header?.id ?? 'def'">
<option value="def">Standard-Vorlage verwenden</option>
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
</select>
</div>
<div class="flex flex-row gap-2 items-center">
<p class="whitespace-nowrap">Höhe [mm]:</p>
<input id="headerHeight" type="number" :min="15" v-model="templateUsage.headerHeight" class="!w-24" placeholder="15">
</div>
</div>
<div class="flex flex-row gap-2 items-center">
<p class="min-w-16">Hauptteil:</p>
<select ref="body" id="body" :value="templateUsage.body?.id ?? 'def'">
@ -38,19 +32,13 @@
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
</select>
</div>
<div class="flex flex-col md:flex-row gap-2 md:items-center">
<div class="flex flex-row w-full gap-2 items-center">
<div class="flex flex-row gap-2 items-center">
<p class="min-w-16">Fußzeile:</p>
<select ref="footer" id="footer" :value="templateUsage.footer?.id ?? 'def'">
<option value="def">Standard-Vorlage verwenden</option>
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
</select>
</div>
<div class="flex flex-row gap-2 items-center">
<p class="whitespace-nowrap">Höhe [mm]:</p>
<input id="footerHeight" type="number" :min="15" v-model="templateUsage.footerHeight" class="!w-24" placeholder="15">
</div>
</div>
</div>
</form>
</template>
@ -59,9 +47,9 @@
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import { ArchiveBoxArrowDownIcon, ArchiveBoxXMarkIcon, EyeIcon } from "@heroicons/vue/24/outline";
import type { TemplateUsageViewModel } from "@/viewmodels/admin/settings/templateUsage.models";
import { useTemplateStore } from "@/stores/admin/settings/template";
import { useTemplateUsageStore } from "@/stores/admin/settings/templateUsage";
import type { TemplateUsageViewModel } from "@/viewmodels/admin/templateUsage.models";
import { useTemplateStore } from "@/stores/admin/template";
import { useTemplateUsageStore } from "@/stores/admin/templateUsage";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
@ -103,8 +91,6 @@ export default defineComponent({
const headerId = fromData.header.value === "def" ? null : fromData.header.value;
const bodyId = fromData.body.value === "def" ? null : fromData.body.value;
const footerId = fromData.footer.value === "def" ? null : fromData.footer.value;
const headerHeight = fromData.footer.value === "" ? null : parseInt(fromData.headerHeight.value);
const footerHeight = fromData.footer.value === "" ? null : parseInt(fromData.footerHeight.value);
this.status = "loading"
this.updateTemplateUsage({
@ -112,8 +98,6 @@ export default defineComponent({
headerId: headerId,
bodyId: bodyId,
footerId: footerId,
headerHeight:headerHeight,
footerHeight: footerHeight
})
.then(() => {
this.status = { status: "success" };

View file

@ -32,7 +32,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useRoleStore } from "@/stores/admin/role";
</script>
<script lang="ts">

View file

@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useRoleStore } from "@/stores/admin/user/role";
import { useRoleStore } from "@/stores/admin/role";
</script>
<script lang="ts">

View file

@ -27,7 +27,7 @@
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import { PencilIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
import type { RoleViewModel } from "@/viewmodels/admin/user/role.models";
import type { RoleViewModel } from "@/viewmodels/admin/role.models";
import { RouterLink } from "vue-router";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";

View file

@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useUserStore } from "@/stores/admin/user/user";
import { useUserStore } from "@/stores/admin/user";
</script>
<script lang="ts">

View file

@ -24,10 +24,10 @@
<script setup lang="ts">
import { defineComponent, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { InviteViewModel } from "@/viewmodels/admin/user/invite.models";
import type { InviteViewModel } from "@/viewmodels/admin/invite.models";
import { PencilIcon, UserGroupIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useInviteStore } from "@/stores/admin/user/invite";
import { useInviteStore } from "@/stores/admin/invite";
</script>
<script lang="ts">

View file

@ -45,8 +45,8 @@ import { useModalStore } from "@/stores/modal";
import Spinner from "@/components/Spinner.vue";
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
import FailureXMark from "@/components/FailureXMark.vue";
import { useInviteStore } from "@/stores/admin/user/invite";
import type { CreateInviteViewModel } from "@/viewmodels/admin/user/invite.models";
import { useInviteStore } from "@/stores/admin/invite";
import type { CreateInviteViewModel } from "@/viewmodels/admin/invite.models";
</script>
<script lang="ts">

View file

@ -53,7 +53,7 @@
<script setup lang="ts">
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
import { mapState, mapActions } from "pinia";
import type { UserViewModel } from "@/viewmodels/admin/user/user.models";
import type { UserViewModel } from "@/viewmodels/admin/user.models";
import { PencilIcon, UserGroupIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
import { useAbilityStore } from "@/stores/ability";
import { useModalStore } from "@/stores/modal";

View file

@ -97,11 +97,11 @@ import {
TrashIcon,
SparklesIcon,
} from "@heroicons/vue/24/outline";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import { useModalStore } from "@/stores/modal";
import Table from "./Table.vue";
import { useAbilityStore } from "@/stores/ability";
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
import { useQueryStoreStore } from "@/stores/admin/queryStore";
</script>
<script lang="ts">

View file

@ -25,7 +25,7 @@
<script setup lang="ts">
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
</script>
<script lang="ts">

View file

@ -61,7 +61,7 @@ import {
type WhereOperation,
type WhereType,
} from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import { TrashIcon } from "@heroicons/vue/24/outline";
</script>

View file

@ -22,7 +22,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import { PlusIcon } from "@heroicons/vue/24/outline";
import JoinTable from "./JoinTable.vue";
</script>

View file

@ -21,7 +21,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import Table from "./Table.vue";
import { TrashIcon } from "@heroicons/vue/24/outline";
import { joinTableName } from "@/helpers/queryFormatter";

View file

@ -20,7 +20,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure, WhereType } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import { TrashIcon } from "@heroicons/vue/24/outline";
import NestedWhere from "./NestedWhere.vue";
</script>

View file

@ -33,7 +33,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import NestedCondition from "./NestedCondition.vue";
import Condition from "./Condition.vue";
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";

View file

@ -23,7 +23,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { OrderByStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import OrderStructure from "./OrderStructure.vue";
import { PlusIcon } from "@heroicons/vue/24/outline";
</script>

View file

@ -22,7 +22,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { OrderByStructure, OrderByType } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import { TrashIcon } from "@heroicons/vue/24/outline";
</script>

View file

@ -12,7 +12,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure, DynamicQueryStructure, OrderByStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import ColumnSelect from "./ColumnSelect.vue";
import Where from "./Where.vue";
import Order from "./Order.vue";

View file

@ -13,7 +13,7 @@
<script setup lang="ts">
import { defineComponent } from "vue";
import { mapState } from "pinia";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
</script>
<script lang="ts">

View file

@ -34,7 +34,7 @@
import { defineComponent, type PropType } from "vue";
import { mapActions, mapState } from "pinia";
import type { ConditionStructure } from "@/types/dynamicQueries";
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
import NestedCondition from "./NestedCondition.vue";
import Condition from "./Condition.vue";
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";

View file

@ -320,12 +320,12 @@ const router = createRouter({
{
path: "",
name: "admin-settings-qualification",
component: () => import("@/views/admin/settings/qualification/Qualification.vue"),
component: () => import("@/views/admin/settings/Qualification.vue"),
},
{
path: ":id/edit",
name: "admin-settings-qualification-edit",
component: () => import("@/views/admin/settings/qualification/QualificationEdit.vue"),
component: () => import("@/views/admin/settings/QualificationEdit.vue"),
meta: { type: "update", section: "settings", module: "qualification" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -342,12 +342,12 @@ const router = createRouter({
{
path: "",
name: "admin-settings-award",
component: () => import("@/views/admin/settings/award/Award.vue"),
component: () => import("@/views/admin/settings/Award.vue"),
},
{
path: ":id/edit",
name: "admin-settings-award-edit",
component: () => import("@/views/admin/settings/award/AwardEdit.vue"),
component: () => import("@/views/admin/settings/AwardEdit.vue"),
meta: { type: "update", section: "settings", module: "award" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -364,14 +364,14 @@ const router = createRouter({
{
path: "",
name: "admin-settings-executive_position",
component: () => import("@/views/admin/settings/executivePosition/ExecutivePosition.vue"),
component: () => import("@/views/admin/settings/ExecutivePosition.vue"),
meta: { type: "read", section: "settings", module: "executive_position" },
beforeEnter: [abilityAndNavUpdate],
},
{
path: ":id/edit",
name: "admin-settings-executive_position-edit",
component: () => import("@/views/admin/settings/executivePosition/ExecutivePositionEdit.vue"),
component: () => import("@/views/admin/settings/ExecutivePositionEdit.vue"),
meta: { type: "update", section: "settings", module: "executive_position" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -388,12 +388,12 @@ const router = createRouter({
{
path: "",
name: "admin-settings-communication_type",
component: () => import("@/views/admin/settings/communicationType/CommunicationType.vue"),
component: () => import("@/views/admin/settings/CommunicationType.vue"),
},
{
path: ":id/edit",
name: "admin-settings-communication_type-edit",
component: () => import("@/views/admin/settings/communicationType/CommunicationTypeEdit.vue"),
component: () => import("@/views/admin/settings/CommunicationTypeEdit.vue"),
meta: { type: "update", section: "settings", module: "communication_type" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -410,12 +410,12 @@ const router = createRouter({
{
path: "",
name: "admin-settings-membership_status",
component: () => import("@/views/admin/settings/membershipStatus/MembershipStatus.vue"),
component: () => import("@/views/admin/settings/MembershipStatus.vue"),
},
{
path: ":id/edit",
name: "admin-settings-membership_status-edit",
component: () => import("@/views/admin/settings/membershipStatus/MembershipStatusEdit.vue"),
component: () => import("@/views/admin/settings/MembershipStatusEdit.vue"),
meta: { type: "update", section: "settings", module: "membership_status" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -432,12 +432,12 @@ const router = createRouter({
{
path: "",
name: "admin-settings-calendar_type",
component: () => import("@/views/admin/settings/calendarType/CalendarType.vue"),
component: () => import("@/views/admin/settings/CalendarType.vue"),
},
{
path: ":id/edit",
name: "admin-settings-calendar_type-edit",
component: () => import("@/views/admin/settings/calendarType/CalendarTypeEdit.vue"),
component: () => import("@/views/admin/settings/CalendarTypeEdit.vue"),
meta: { type: "update", section: "settings", module: "calendar_type" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -447,7 +447,7 @@ const router = createRouter({
{
path: "query-store",
name: "admin-settings-query_store",
component: () => import("@/views/admin/settings/queryStore/QueryStore.vue"),
component: () => import("@/views/admin/settings/QueryStore.vue"),
meta: { type: "read", section: "settings", module: "query_store" },
beforeEnter: [abilityAndNavUpdate],
},
@ -519,17 +519,17 @@ const router = createRouter({
{
path: "",
name: "admin-user-user",
component: () => import("@/views/admin/user/user/User.vue"),
component: () => import("@/views/admin/user/User.vue"),
},
{
path: "invites",
name: "admin-user-user-invites",
component: () => import("@/views/admin/user/user/Invite.vue"),
component: () => import("@/views/admin/user/Invite.vue"),
},
{
path: ":id/edit",
name: "admin-user-user-edit",
component: () => import("@/views/admin/user/user/UserEdit.vue"),
component: () => import("@/views/admin/user/UserEdit.vue"),
meta: { type: "update", section: "user", module: "user" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -537,7 +537,7 @@ const router = createRouter({
{
path: ":id/permission",
name: "admin-user-user-permission",
component: () => import("@/views/admin/user/user/UserEditPermission.vue"),
component: () => import("@/views/admin/user/UserEditPermission.vue"),
meta: { type: "update", section: "user", module: "user" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -545,7 +545,7 @@ const router = createRouter({
{
path: ":id/roles",
name: "admin-user-user-roles",
component: () => import("@/views/admin/user/user/UserEditRoles.vue"),
component: () => import("@/views/admin/user/UserEditRoles.vue"),
meta: { type: "update", section: "user", module: "user" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -562,12 +562,12 @@ const router = createRouter({
{
path: "",
name: "admin-user-role",
component: () => import("@/views/admin/user/role/Role.vue"),
component: () => import("@/views/admin/user/Role.vue"),
},
{
path: ":id/edit",
name: "admin-user-role-edit",
component: () => import("@/views/admin/user/role/RoleEdit.vue"),
component: () => import("@/views/admin/user/RoleEdit.vue"),
meta: { type: "update", section: "user", module: "role" },
beforeEnter: [abilityAndNavUpdate],
props: true,
@ -575,7 +575,7 @@ const router = createRouter({
{
path: ":id/permission",
name: "admin-user-role-permission",
component: () => import("@/views/admin/user/role/RoleEditPermission.vue"),
component: () => import("@/views/admin/user/RoleEditPermission.vue"),
meta: { type: "update", section: "user", module: "role" },
beforeEnter: [abilityAndNavUpdate],
props: true,

View file

@ -1,9 +1,9 @@
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
import { useMemberStore } from "@/stores/admin/club/member/member";
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
import { useMembershipStore } from "@/stores/admin/club/member/membership";
import { useCommunicationStore } from "@/stores/admin/communication";
import { useMemberStore } from "@/stores/admin/member";
import { useMemberAwardStore } from "@/stores/admin/memberAward";
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
import { useMembershipStore } from "@/stores/admin/membership";
export async function setMemberId(to: any, from: any, next: any) {
const member = useMemberStore();

View file

@ -1,7 +1,7 @@
import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter";
import { useNewsletterDatesStore } from "@/stores/admin/club/newsletter/newsletterDates";
import { useNewsletterRecipientsStore } from "@/stores/admin/club/newsletter/newsletterRecipients";
import { useNewsletterPrintoutStore } from "../stores/admin/club/newsletter/newsletterPrintout";
import { useNewsletterStore } from "@/stores/admin/newsletter";
import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
import { useNewsletterRecipientsStore } from "@/stores/admin/newsletterRecipients";
import { useNewsletterPrintoutStore } from "../stores/admin/newsletterPrintout";
export async function setNewsletterId(to: any, from: any, next: any) {
const newsletter = useNewsletterStore();

View file

@ -1,9 +1,9 @@
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
import { useProtocolAgendaStore } from "@/stores/admin/club/protocol/protocolAgenda";
import { useProtocolDecisionStore } from "@/stores/admin/club/protocol/protocolDecision";
import { useProtocolPresenceStore } from "@/stores/admin/club/protocol/protocolPresence";
import { useProtocolVotingStore } from "@/stores/admin/club/protocol/protocolVoting";
import { useProtocolPrintoutStore } from "../stores/admin/club/protocol/protocolPrintout";
import { useProtocolStore } from "@/stores/admin/protocol";
import { useProtocolAgendaStore } from "@/stores/admin/protocolAgenda";
import { useProtocolDecisionStore } from "@/stores/admin/protocolDecision";
import { useProtocolPresenceStore } from "@/stores/admin/protocolPresence";
import { useProtocolVotingStore } from "@/stores/admin/protocolVoting";
import { useProtocolPrintoutStore } from "../stores/admin/protocolPrintout";
export async function setProtocolId(to: any, from: any, next: any) {
const protocol = useProtocolStore();

View file

@ -1,5 +1,5 @@
import { defineStore } from "pinia";
import type { CreateAwardViewModel, UpdateAwardViewModel, AwardViewModel } from "@/viewmodels/admin/settings/award.models";
import type { CreateAwardViewModel, UpdateAwardViewModel, AwardViewModel } from "@/viewmodels/admin/award.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";

View file

@ -3,7 +3,7 @@ import type {
CreateCalendarViewModel,
UpdateCalendarViewModel,
CalendarViewModel,
} from "@/viewmodels/admin/club/calendar.models";
} from "@/viewmodels/admin/calendar.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";

View file

@ -3,7 +3,7 @@ import type {
CreateCalendarTypeViewModel,
UpdateCalendarTypeViewModel,
CalendarTypeViewModel,
} from "@/viewmodels/admin/settings/calendarType.models";
} from "@/viewmodels/admin/calendarType.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";

View file

@ -1,14 +1,14 @@
import { defineStore } from "pinia";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/member.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { MemberViewModel } from "@/viewmodels/admin/member.models";
import { useMemberStore } from "./member";
import type {
CreateCommunicationViewModel,
CommunicationViewModel,
UpdateCommunicationViewModel,
} from "@/viewmodels/admin/club/member/communication.models";
} from "@/viewmodels/admin/communication.models";
export const useCommunicationStore = defineStore("communication", {
state: () => {

View file

@ -3,7 +3,7 @@ import type {
CreateCommunicationTypeViewModel,
UpdateCommunicationTypeViewModel,
CommunicationTypeViewModel,
} from "@/viewmodels/admin/settings/communicationType.models";
} from "@/viewmodels/admin/communicationType.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
import type { CommunicationFieldType } from "@/types/fieldTypes";

View file

@ -3,7 +3,7 @@ import type {
CreateExecutivePositionViewModel,
UpdateExecutivePositionViewModel,
ExecutivePositionViewModel,
} from "@/viewmodels/admin/settings/executivePosition.models";
} from "@/viewmodels/admin/executivePosition.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";

View file

@ -1,5 +1,5 @@
import { defineStore } from "pinia";
import type { CreateInviteViewModel, InviteViewModel } from "@/viewmodels/admin/user/invite.models";
import type { CreateInviteViewModel, InviteViewModel } from "@/viewmodels/admin/invite.models";
import { http } from "@/serverCom";
import type { PermissionObject } from "@/types/permissionTypes";
import type { AxiosResponse } from "axios";

View file

@ -1,8 +1,8 @@
import { defineStore } from "pinia";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/member.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { MemberViewModel } from "@/viewmodels/admin/member.models";
export const useMemberStore = defineStore("member", {
state: () => {
@ -16,11 +16,11 @@ export const useMemberStore = defineStore("member", {
};
},
actions: {
fetchMembers(offset = 0, count = 25, search = "", clear = false) {
fetchMembers(offset = 0, count = 25, clear = false) {
if (clear) this.members = [];
this.loading = "loading";
http
.get(`/admin/member?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`)
.get(`/admin/member?offset=${offset}&count=${count}`)
.then((result) => {
this.totalCount = result.data.total;
result.data.members
@ -62,7 +62,6 @@ export const useMemberStore = defineStore("member", {
lastname: member.lastname,
nameaffix: member.nameaffix,
birthdate: member.birthdate,
internalId: member.internalId,
});
this.fetchMembers();
return result;
@ -74,7 +73,6 @@ export const useMemberStore = defineStore("member", {
lastname: member.lastname,
nameaffix: member.nameaffix,
birthdate: member.birthdate,
internalId: member.internalId,
});
this.fetchMembers();
return result;

View file

@ -1,14 +1,14 @@
import { defineStore } from "pinia";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/member.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { MemberViewModel } from "@/viewmodels/admin/member.models";
import { useMemberStore } from "./member";
import type {
CreateMemberAwardViewModel,
MemberAwardViewModel,
UpdateMemberAwardViewModel,
} from "@/viewmodels/admin/club/member/memberAward.models";
} from "@/viewmodels/admin/memberAward.models";
export const useMemberAwardStore = defineStore("memberAward", {
state: () => {

View file

@ -1,14 +1,14 @@
import { defineStore } from "pinia";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { CreateMemberViewModel, UpdateMemberViewModel } from "@/viewmodels/admin/member.models";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models";
import type { MemberViewModel } from "@/viewmodels/admin/member.models";
import { useMemberStore } from "./member";
import type {
CreateMemberExecutivePositionViewModel,
MemberExecutivePositionViewModel,
UpdateMemberExecutivePositionViewModel,
} from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
} from "@/viewmodels/admin/memberExecutivePosition.models";
export const useMemberExecutivePositionStore = defineStore("memberExecutivePosition", {
state: () => {

Some files were not shown because too many files have changed in this diff Show more