Compare commits
No commits in common. "f2ace3a2e525c5668c6f1abbca13202c16a2535d" and "79a4594878a9a3937a58be6cceec01ce1d86f69c" have entirely different histories.
f2ace3a2e5
...
79a4594878
204 changed files with 433 additions and 440 deletions
src
components
FormBottomBar.vuePagination.vue
admin
club
calendar
member
CreateMemberModal.vueDeleteMemberModal.vueMemberAwardCreateModal.vueMemberAwardDeleteModal.vueMemberAwardEditModal.vueMemberAwardListItem.vueMemberCommunicationCreateModal.vueMemberCommunicationDeleteModal.vueMemberCommunicationEditModal.vueMemberCommunicationListItem.vueMemberExecutivePositionCreateModal.vueMemberExecutivePositionDeleteModal.vueMemberExecutivePositionEditModal.vueMemberExecutivePositionListItem.vueMemberListItem.vueMemberQualificationCreateModal.vueMemberQualificationDeleteModal.vueMemberQualificationEditModal.vueMemberQualificationListItem.vueMembershipCreateModal.vueMembershipDeleteModal.vueMembershipEditModal.vueMembershipListItem.vue
newsletter
CreateNewsletterModal.vueCurrentlySyncingModal.vueNewsletterListItem.vueNewsletterPreviewModal.vueNewsletterSyncing.vue
protocol
settings
award
calendarType
communicationType
executivePosition
membershipStatus
newsletterConfig
qualification
queryStore
template
templateUsage
user
queryBuilder
router
stores/admin
|
@ -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"> © Admin-Portal by JK Effects </a>
|
||||
</div>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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(() => {
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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" };
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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";
|
||||
|
|
@ -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";
|
||||
|
|
@ -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";
|
||||
|
|
@ -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: () => {
|
|
@ -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";
|
|
@ -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";
|
||||
|
|
@ -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";
|
|
@ -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;
|
|
@ -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: () => {
|
|
@ -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
Loading…
Add table
Reference in a new issue