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,9 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col text-gray-400 text-sm mt-4 items-center">
|
<div class="flex flex-col text-gray-400 text-sm mt-4 items-center">
|
||||||
<div class="flex flex-row gap-2 justify-center">
|
<div class="flex flex-row gap-2 justify-center">
|
||||||
<a href="https://jk-effects.com/privacy" target="_blank">Datenschutz</a>
|
<a ref="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/imprint" target="_blank">Impressum</a>
|
||||||
</div>
|
</div>
|
||||||
<a href="https://jk-effects.com" target="_blank"> © Admin-Portal by JK Effects </a>
|
<a href="https://jk-effects.com" target="_blank"> © Admin-Portal by JK Effects </a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="grow flex flex-col gap-2 overflow-hidden">
|
<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">
|
<div v-if="useSearch" class="relative self-end">
|
||||||
<Spinner v-if="deferingSearch" />
|
|
||||||
<input
|
<input
|
||||||
type="text"
|
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"
|
placeholder="Suche"
|
||||||
v-model="searchString"
|
v-model="searchString"
|
||||||
/>
|
/>
|
||||||
|
@ -88,22 +87,15 @@ const slots = defineSlots<{
|
||||||
const timer = ref(undefined) as undefined | any;
|
const timer = ref(undefined) as undefined | any;
|
||||||
const currentPage = ref(0);
|
const currentPage = ref(0);
|
||||||
const searchString = ref("");
|
const searchString = ref("");
|
||||||
const deferingSearch = ref(false)
|
|
||||||
|
|
||||||
watch(searchString, async () => {
|
watch(searchString, async () => {
|
||||||
deferingSearch.value = true
|
|
||||||
clearTimeout(timer.value);
|
clearTimeout(timer.value);
|
||||||
timer.value = setTimeout(() => {
|
timer.value = setTimeout(() => {
|
||||||
currentPage.value = 0;
|
currentPage.value = 0;
|
||||||
deferingSearch.value = false
|
|
||||||
emit("search", searchString.value);
|
emit("search", searchString.value);
|
||||||
}, 600);
|
}, 600);
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(() => props.totalCount, async () => {
|
|
||||||
currentPage.value = 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
const emit = defineEmits({
|
const emit = defineEmits({
|
||||||
submit(id: number) {
|
submit(id: number) {
|
||||||
return typeof id == "number";
|
return typeof id == "number";
|
||||||
|
@ -112,7 +104,7 @@ const emit = defineEmits({
|
||||||
return typeof offset == "number" && typeof offset == "number" && typeof searchString == "number";
|
return typeof offset == "number" && typeof offset == "number" && typeof searchString == "number";
|
||||||
},
|
},
|
||||||
search(search: string) {
|
search(search: string) {
|
||||||
return typeof search == "string";
|
return typeof search == "number";
|
||||||
},
|
},
|
||||||
clickRow(elem: T) {
|
clickRow(elem: T) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -159,8 +151,7 @@ const loadPage = (newPage: number | ".") => {
|
||||||
if (pageEnd > entryCount.value) pageEnd = entryCount.value;
|
if (pageEnd > entryCount.value) pageEnd = entryCount.value;
|
||||||
|
|
||||||
let loadedElementCount = filterData(props.items, searchString.value, pageStart, pageEnd).length;
|
let loadedElementCount = filterData(props.items, searchString.value, pageStart, pageEnd).length;
|
||||||
console.log(loadedElementCount, props.maxEntriesPerPage, pageStart, pageEnd)
|
if (loadedElementCount < props.maxEntriesPerPage)
|
||||||
if (loadedElementCount < props.maxEntriesPerPage && (pageEnd != props.totalCount || loadedElementCount == 0))
|
|
||||||
emit("loadData", pageStart, props.maxEntriesPerPage, searchString.value);
|
emit("loadData", pageStart, props.maxEntriesPerPage, searchString.value);
|
||||||
|
|
||||||
currentPage.value = newPage;
|
currentPage.value = newPage;
|
||||||
|
|
|
@ -105,8 +105,8 @@ import { defineComponent } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { RouterLink } from "vue-router";
|
import { RouterLink } from "vue-router";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
|
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
|
||||||
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
|
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import TextCopy from "@/components/TextCopy.vue";
|
import TextCopy from "@/components/TextCopy.vue";
|
||||||
|
|
|
@ -143,12 +143,12 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCalendarStore } from "@/stores/admin/club/calendar";
|
import { useCalendarStore } from "@/stores/admin/calendar";
|
||||||
import type { CreateCalendarViewModel } from "@/viewmodels/admin/club/calendar.models";
|
import type { CreateCalendarViewModel } from "@/viewmodels/admin/calendar.models";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
|
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
|
||||||
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
|
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -51,7 +51,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCalendarStore } from "@/stores/admin/club/calendar";
|
import { useCalendarStore } from "@/stores/admin/calendar";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -185,16 +185,16 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCalendarStore } from "@/stores/admin/club/calendar";
|
import { useCalendarStore } from "@/stores/admin/calendar";
|
||||||
import type {
|
import type {
|
||||||
CalendarViewModel,
|
CalendarViewModel,
|
||||||
CreateCalendarViewModel,
|
CreateCalendarViewModel,
|
||||||
UpdateCalendarViewModel,
|
UpdateCalendarViewModel,
|
||||||
} from "@/viewmodels/admin/club/calendar.models";
|
} from "@/viewmodels/admin/calendar.models";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon, TrashIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon, TrashIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
|
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
|
||||||
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
|
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -66,10 +66,6 @@
|
||||||
<label for="birthdate">Geburtsdatum</label>
|
<label for="birthdate">Geburtsdatum</label>
|
||||||
<input type="date" id="birthdate" required />
|
<input type="date" id="birthdate" required />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<label for="internalId">Interne ID (optional)</label>
|
|
||||||
<input type="text" id="internalId" />
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-row gap-2">
|
<div class="flex flex-row gap-2">
|
||||||
<button primary type="submit" :disabled="status == 'loading' || status?.status == 'success'">erstellen</button>
|
<button primary type="submit" :disabled="status == 'loading' || status?.status == 'success'">erstellen</button>
|
||||||
<Spinner v-if="status == 'loading'" class="my-auto" />
|
<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 { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { Salutation } from "@/enums/salutation";
|
import { Salutation } from "@/enums/salutation";
|
||||||
import { useMemberStore } from "@/stores/admin/club/member/member";
|
import { useMemberStore } from "@/stores/admin/member";
|
||||||
import type { CreateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
|
import type { CreateMemberViewModel } from "@/viewmodels/admin/member.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
@ -131,7 +127,6 @@ export default defineComponent({
|
||||||
lastname: formData.lastname.value,
|
lastname: formData.lastname.value,
|
||||||
nameaffix: formData.nameaffix.value,
|
nameaffix: formData.nameaffix.value,
|
||||||
birthdate: formData.birthdate.value,
|
birthdate: formData.birthdate.value,
|
||||||
internalId: formData.internalId.value,
|
|
||||||
};
|
};
|
||||||
this.createMember(createMember)
|
this.createMember(createMember)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|
|
@ -44,8 +44,8 @@ import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { Salutation } from "@/enums/salutation";
|
import { Salutation } from "@/enums/salutation";
|
||||||
import { useMemberStore } from "@/stores/admin/club/member/member";
|
import { useMemberStore } from "@/stores/admin/member";
|
||||||
import type { CreateMemberViewModel } from "@/viewmodels/admin/club/member/member.models";
|
import type { CreateMemberViewModel } from "@/viewmodels/admin/member.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -97,14 +97,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
|
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
import { useAwardStore } from "@/stores/admin/settings/award";
|
import { useAwardStore } from "@/stores/admin/award";
|
||||||
import type { AwardViewModel } from "@/viewmodels/admin/settings/award.models";
|
import type { AwardViewModel } from "@/viewmodels/admin/award.models";
|
||||||
import type { CreateMemberAwardViewModel } from "@/viewmodels/admin/club/member/memberAward.models";
|
import type { CreateMemberAwardViewModel } from "@/viewmodels/admin/memberAward.models";
|
||||||
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
|
import { useMemberAwardStore } from "@/stores/admin/memberAward";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -38,7 +38,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
|
import { useMemberAwardStore } from "@/stores/admin/memberAward";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -98,13 +98,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useAwardStore } from "@/stores/admin/settings/award";
|
import { useAwardStore } from "@/stores/admin/award";
|
||||||
import type {
|
import type {
|
||||||
CreateMemberAwardViewModel,
|
CreateMemberAwardViewModel,
|
||||||
MemberAwardViewModel,
|
MemberAwardViewModel,
|
||||||
UpdateMemberAwardViewModel,
|
UpdateMemberAwardViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/memberAward.models";
|
} from "@/viewmodels/admin/memberAward.models";
|
||||||
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
|
import { useMemberAwardStore } from "@/stores/admin/memberAward";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -125,10 +125,10 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
|
import { useCommunicationStore } from "@/stores/admin/communication";
|
||||||
import type { CreateCommunicationViewModel } from "@/viewmodels/admin/club/member/communication.models";
|
import type { CreateCommunicationViewModel } from "@/viewmodels/admin/communication.models";
|
||||||
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
|
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
|
||||||
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
|
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -41,7 +41,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
|
import { useCommunicationStore } from "@/stores/admin/communication";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -71,12 +71,12 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
|
import { useCommunicationStore } from "@/stores/admin/communication";
|
||||||
import type {
|
import type {
|
||||||
CreateCommunicationViewModel,
|
CreateCommunicationViewModel,
|
||||||
CommunicationViewModel,
|
CommunicationViewModel,
|
||||||
UpdateCommunicationViewModel,
|
UpdateCommunicationViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/communication.models";
|
} from "@/viewmodels/admin/communication.models";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { EnvelopeIcon, PencilIcon, TrashIcon, FireIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -99,14 +99,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
|
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
|
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
|
||||||
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
|
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
|
||||||
import type { CreateMemberExecutivePositionViewModel } from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
|
import type { CreateMemberExecutivePositionViewModel } from "@/viewmodels/admin/memberExecutivePosition.models";
|
||||||
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
|
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -38,7 +38,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
|
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -104,13 +104,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
|
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
|
||||||
import type {
|
import type {
|
||||||
CreateMemberExecutivePositionViewModel,
|
CreateMemberExecutivePositionViewModel,
|
||||||
MemberExecutivePositionViewModel,
|
MemberExecutivePositionViewModel,
|
||||||
UpdateMemberExecutivePositionViewModel,
|
UpdateMemberExecutivePositionViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
|
} from "@/viewmodels/admin/memberExecutivePosition.models";
|
||||||
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
|
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -1,26 +1,42 @@
|
||||||
<template>
|
<template>
|
||||||
<RouterLink
|
<div class="flex flex-col h-fit w-full border border-primary rounded-md">
|
||||||
:to="{ name: 'admin-club-member-overview', params: { memberId: member.id } }"
|
<RouterLink
|
||||||
class="flex flex-col h-fit w-full border border-primary rounded-md"
|
:to="{ name: 'admin-club-member-overview', params: { memberId: member.id } }"
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="bg-primary p-2 text-white flex flex-row justify-between items-center"
|
class="bg-primary p-2 text-white flex flex-row justify-between items-center"
|
||||||
>
|
>
|
||||||
<p>{{ member.lastname }}, {{ member.firstname }} {{ member.nameaffix ? `- ${member.nameaffix}` : "" }}</p>
|
<p>{{ member.lastname }}, {{ member.firstname }} {{ member.nameaffix ? `- ${member.nameaffix}` : "" }}</p>
|
||||||
</div>
|
<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>
|
||||||
|
</RouterLink>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<p v-if="member.internalId">Interne ID: {{ member.internalId }}</p>
|
|
||||||
<p>beigetreten: {{ member.firstMembershipEntry?.start }}</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>
|
<p v-if="member.lastMembershipEntry?.end">ausgetreten: {{ member.lastMembershipEntry?.end }}</p>
|
||||||
</div>
|
</div>
|
||||||
</RouterLink>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
|
import { PencilIcon, TrashIcon, CircleStackIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
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>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
@ -31,5 +47,14 @@ export default defineComponent({
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(useAbilityStore, ["can"]),
|
...mapState(useAbilityStore, ["can"]),
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions(useModalStore, ["openModal"]),
|
||||||
|
openDeleteModal() {
|
||||||
|
// this.openModal(
|
||||||
|
// markRaw(defineAsyncComponent(() => import("@/components/admin/.vue"))),
|
||||||
|
// this.member.id
|
||||||
|
// );
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -106,14 +106,14 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
|
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
import { useQualificationStore } from "@/stores/admin/settings/qualification";
|
import { useQualificationStore } from "@/stores/admin/qualification";
|
||||||
import type { QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
|
import type { QualificationViewModel } from "@/viewmodels/admin/qualification.models";
|
||||||
import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/club/member/memberQualification.models";
|
import type { CreateMemberQualificationViewModel } from "@/viewmodels/admin/memberQualification.models";
|
||||||
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
|
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -41,8 +41,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQualificationStore } from "@/stores/admin/settings/qualification";
|
import { useQualificationStore } from "@/stores/admin/qualification";
|
||||||
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
|
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -105,13 +105,13 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useQualificationStore } from "@/stores/admin/settings/qualification";
|
import { useQualificationStore } from "@/stores/admin/qualification";
|
||||||
import type {
|
import type {
|
||||||
CreateMemberQualificationViewModel,
|
CreateMemberQualificationViewModel,
|
||||||
MemberQualificationViewModel,
|
MemberQualificationViewModel,
|
||||||
UpdateMemberQualificationViewModel,
|
UpdateMemberQualificationViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/memberQualification.models";
|
} from "@/viewmodels/admin/memberQualification.models";
|
||||||
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
|
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -63,6 +63,10 @@
|
||||||
</div>
|
</div>
|
||||||
</Listbox>
|
</Listbox>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="internalId">Interne ID (optional)</label>
|
||||||
|
<input type="text" id="internalId" />
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="start">Startdatum</label>
|
<label for="start">Startdatum</label>
|
||||||
<input type="date" id="start" required />
|
<input type="date" id="start" required />
|
||||||
|
@ -94,10 +98,10 @@ import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
import type { CreateMembershipViewModel } from "@/viewmodels/admin/club/member/membership.models";
|
import type { CreateMembershipViewModel } from "@/viewmodels/admin/membership.models";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
@ -128,6 +132,7 @@ export default defineComponent({
|
||||||
if (this.selectedStatus == undefined) return;
|
if (this.selectedStatus == undefined) return;
|
||||||
let formData = e.target.elements;
|
let formData = e.target.elements;
|
||||||
let createMember: CreateMembershipViewModel = {
|
let createMember: CreateMembershipViewModel = {
|
||||||
|
internalId: formData.internalId.value,
|
||||||
start: formData.start.value,
|
start: formData.start.value,
|
||||||
statusId: this.selectedStatus.id,
|
statusId: this.selectedStatus.id,
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,7 +40,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -63,6 +63,10 @@
|
||||||
</div>
|
</div>
|
||||||
</Listbox>
|
</Listbox>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="internalId">Interne ID (optional)</label>
|
||||||
|
<input type="text" id="internalId" v-model="membership.internalId" />
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="start">Startdatum</label>
|
<label for="start">Startdatum</label>
|
||||||
<input type="date" id="start" required v-model="membership.start" />
|
<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 FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type {
|
import type {
|
||||||
CreateMembershipViewModel,
|
CreateMembershipViewModel,
|
||||||
MembershipViewModel,
|
MembershipViewModel,
|
||||||
UpdateMembershipViewModel,
|
UpdateMembershipViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/membership.models";
|
} from "@/viewmodels/admin/membership.models";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
import isEqual from "lodash.isequal";
|
import isEqual from "lodash.isequal";
|
||||||
import cloneDeep from "lodash.clonedeep";
|
import cloneDeep from "lodash.clonedeep";
|
||||||
</script>
|
</script>
|
||||||
|
@ -165,6 +169,7 @@ export default defineComponent({
|
||||||
let formData = e.target.elements;
|
let formData = e.target.elements;
|
||||||
let updateMembership: UpdateMembershipViewModel = {
|
let updateMembership: UpdateMembershipViewModel = {
|
||||||
id: this.membership.id,
|
id: this.membership.id,
|
||||||
|
internalId: formData.internalId.value,
|
||||||
start: formData.start.value,
|
start: formData.start.value,
|
||||||
end: formData.end.value,
|
end: formData.end.value,
|
||||||
terminationReason: formData.terminationReason.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" />
|
<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" />
|
<TrashIcon v-if="can('delete', 'club', 'member')" class="w-5 h-5 cursor-pointer" @click="openDeleteModal" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="membership.terminationReason" class="p-2">
|
<div v-if="membership.terminationReason || membership.internalId" class="p-2">
|
||||||
<p v-if="membership.terminationReason">Grund: {{ membership.terminationReason }}</p>
|
<p v-if="membership.internalId">Interne ID: {{ membership.internalId }}</p>
|
||||||
|
<p v-if="membership.terminationReason">beendet, weil: {{ membership.terminationReason }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -17,7 +18,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
|
|
|
@ -34,10 +34,10 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
|
import { useProtocolStore } from "@/stores/admin/protocol";
|
||||||
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
|
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
|
||||||
import { useNewsletterStore } from "../../../../stores/admin/club/newsletter/newsletter";
|
import { useNewsletterStore } from "../../../../stores/admin/newsletter";
|
||||||
import type { CreateNewsletterViewModel } from "../../../../viewmodels/admin/club/newsletter/newsletter.models";
|
import type { CreateNewsletterViewModel } from "../../../../viewmodels/admin/newsletter.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -17,8 +17,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
|
import { useProtocolStore } from "@/stores/admin/protocol";
|
||||||
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
|
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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";
|
import { PaperAirplaneIcon } from "@heroicons/vue/24/outline";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
import { useNewsletterPrintoutStore } from "@/stores/admin/club/newsletter/newsletterPrintout";
|
import { useNewsletterPrintoutStore } from "@/stores/admin/newsletterPrintout";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent } from "vue";
|
import { defineComponent } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { ArrowPathIcon, CloudArrowUpIcon, CloudIcon, ExclamationTriangleIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useNewsletterDatesStore } from "@/stores/admin/club/newsletter/newsletterDates";
|
import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
|
||||||
import { useNewsletterRecipientsStore } from "@/stores/admin/club/newsletter/newsletterRecipients";
|
import { useNewsletterRecipientsStore } from "@/stores/admin/newsletterRecipients";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -38,8 +38,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
|
import { useProtocolStore } from "@/stores/admin/protocol";
|
||||||
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
|
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -17,8 +17,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
|
import { useProtocolStore } from "@/stores/admin/protocol";
|
||||||
import type { CreateProtocolViewModel } from "@/viewmodels/admin/club/protocol/protocol.models";
|
import type { CreateProtocolViewModel } from "@/viewmodels/admin/protocol.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -13,7 +13,7 @@ import { defineComponent } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import { useProtocolPrintoutStore } from "@/stores/admin/club/protocol/protocolPrintout";
|
import { useProtocolPrintoutStore } from "@/stores/admin/protocolPrintout";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent } from "vue";
|
import { defineComponent } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { ArrowPathIcon, CloudArrowUpIcon, CloudIcon, ExclamationTriangleIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useProtocolAgendaStore } from "@/stores/admin/club/protocol/protocolAgenda";
|
import { useProtocolAgendaStore } from "@/stores/admin/protocolAgenda";
|
||||||
import { useProtocolPresenceStore } from "@/stores/admin/club/protocol/protocolPresence";
|
import { useProtocolPresenceStore } from "@/stores/admin/protocolPresence";
|
||||||
import { useProtocolDecisionStore } from "@/stores/admin/club/protocol/protocolDecision";
|
import { useProtocolDecisionStore } from "@/stores/admin/protocolDecision";
|
||||||
import { useProtocolVotingStore } from "@/stores/admin/club/protocol/protocolVoting";
|
import { useProtocolVotingStore } from "@/stores/admin/protocolVoting";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { AwardViewModel } from "@/viewmodels/admin/settings/award.models";
|
import type { AwardViewModel } from "@/viewmodels/admin/award.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useAwardStore } from "@/stores/admin/settings/award";
|
import { useAwardStore } from "@/stores/admin/award";
|
||||||
import type { CreateAwardViewModel } from "@/viewmodels/admin/settings/award.models";
|
import type { CreateAwardViewModel } from "@/viewmodels/admin/award.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
import { useAwardStore } from "@/stores/admin/settings/award";
|
import { useAwardStore } from "@/stores/admin/award";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -30,7 +30,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon, EyeIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon, EyeIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { CalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
|
import type { CalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -51,8 +51,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
|
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
|
||||||
import type { CreateCalendarTypeViewModel } from "@/viewmodels/admin/settings/calendarType.models";
|
import type { CreateCalendarTypeViewModel } from "@/viewmodels/admin/calendarType.models";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCalendarTypeStore } from "@/stores/admin/settings/calendarType";
|
import { useCalendarTypeStore } from "@/stores/admin/calendarType";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -33,7 +33,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
|
import type { CommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -78,8 +78,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
|
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
|
||||||
import type { CreateCommunicationTypeViewModel } from "@/viewmodels/admin/settings/communicationType.models";
|
import type { CreateCommunicationTypeViewModel } from "@/viewmodels/admin/communicationType.models";
|
||||||
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
import { Listbox, ListboxButton, ListboxOptions, ListboxOption, ListboxLabel } from "@headlessui/vue";
|
||||||
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid";
|
||||||
import type { CommunicationFieldType } from "@/types/fieldTypes";
|
import type { CommunicationFieldType } from "@/types/fieldTypes";
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useCommunicationTypeStore } from "@/stores/admin/settings/communicationType";
|
import { useCommunicationTypeStore } from "@/stores/admin/communicationType";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
|
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
|
||||||
import type { CreateExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
|
import type { CreateExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
import { useExecutivePositionStore } from "@/stores/admin/settings/executivePosition";
|
import { useExecutivePositionStore } from "@/stores/admin/executivePosition";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/settings/executivePosition.models";
|
import type { ExecutivePositionViewModel } from "@/viewmodels/admin/executivePosition.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -32,8 +32,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
import type { CreateMembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { CreateMembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
import { useMembershipStatusStore } from "@/stores/admin/settings/membershipStatus";
|
import { useMembershipStatusStore } from "@/stores/admin/membershipStatus";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -23,7 +23,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { MembershipStatusViewModel } from "@/viewmodels/admin/settings/membershipStatus.models";
|
import type { MembershipStatusViewModel } from "@/viewmodels/admin/membershipStatus.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,14 +29,14 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { ArchiveBoxArrowDownIcon, ArchiveBoxXMarkIcon } from "@heroicons/vue/24/outline";
|
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 Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import { NewsletterConfigType } from "@/enums/newsletterConfigType";
|
import { NewsletterConfigType } from "@/enums/newsletterConfigType";
|
||||||
import type { AxiosResponse } from "axios";
|
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";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQualificationStore } from "@/stores/admin/settings/qualification";
|
import { useQualificationStore } from "@/stores/admin/qualification";
|
||||||
import type { CreateQualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
|
import type { CreateQualificationViewModel } from "@/viewmodels/admin/qualification.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
import { useQualificationStore } from "@/stores/admin/settings/qualification";
|
import { useQualificationStore } from "@/stores/admin/qualification";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { QualificationViewModel } from "@/viewmodels/admin/settings/qualification.models";
|
import type { QualificationViewModel } from "@/viewmodels/admin/qualification.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -32,9 +32,9 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
|
import { useQueryStoreStore } from "@/stores/admin/queryStore";
|
||||||
import type { CreateQueryViewModel } from "@/viewmodels/admin/settings/query.models";
|
import type { CreateQueryViewModel } from "@/viewmodels/admin/query.models";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
|
import { useQueryStoreStore } from "@/stores/admin/queryStore";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -23,8 +23,8 @@ import { mapState, mapActions, mapWritableState } from "pinia";
|
||||||
import { EyeIcon, PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
import { EyeIcon, PencilIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { QueryViewModel } from "@/viewmodels/admin/settings/query.models";
|
import type { QueryViewModel } from "@/viewmodels/admin/query.models";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -34,9 +34,9 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
|
import { useQueryStoreStore } from "@/stores/admin/queryStore";
|
||||||
import type { CreateQueryViewModel, UpdateQueryViewModel } from "@/viewmodels/admin/settings/query.models";
|
import type { CreateQueryViewModel, UpdateQueryViewModel } from "@/viewmodels/admin/query.models";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -36,8 +36,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useTemplateStore } from "@/stores/admin/settings/template";
|
import { useTemplateStore } from "@/stores/admin/template";
|
||||||
import type { CreateTemplateViewModel } from "@/viewmodels/admin/settings/template.models";
|
import type { CreateTemplateViewModel } from "@/viewmodels/admin/template.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,8 +29,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
|
import { useQueryStoreStore } from "@/stores/admin/queryStore";
|
||||||
import { useTemplateStore } from "@/stores/admin/settings/template";
|
import { useTemplateStore } from "@/stores/admin/template";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -35,8 +35,8 @@ import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, TrashIcon, DocumentDuplicateIcon } from "@heroicons/vue/24/outline";
|
import { PencilIcon, TrashIcon, DocumentDuplicateIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import type { TemplateViewModel } from "@/viewmodels/admin/settings/template.models";
|
import type { TemplateViewModel } from "@/viewmodels/admin/template.models";
|
||||||
import { useTemplateStore } from "@/stores/admin/settings/template";
|
import { useTemplateStore } from "@/stores/admin/template";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { defineComponent } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import { useTemplateUsageStore } from "@/stores/admin/settings/templateUsage";
|
import { useTemplateUsageStore } from "@/stores/admin/templateUsage";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -18,18 +18,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col p-2 gap-2">
|
<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 gap-2 items-center">
|
||||||
<div class="flex flex-row w-full gap-2 items-center">
|
<p class="min-w-16">Kopfzeile:</p>
|
||||||
<p class="min-w-16">Kopfzeile:</p>
|
<select ref="header" id="header" :value="templateUsage.header?.id ?? 'def'">
|
||||||
<select ref="header" id="header" :value="templateUsage.header?.id ?? 'def'">
|
<option value="def">Standard-Vorlage verwenden</option>
|
||||||
<option value="def">Standard-Vorlage verwenden</option>
|
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
||||||
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
</select>
|
||||||
</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>
|
||||||
<div class="flex flex-row gap-2 items-center">
|
<div class="flex flex-row gap-2 items-center">
|
||||||
<p class="min-w-16">Hauptteil:</p>
|
<p class="min-w-16">Hauptteil:</p>
|
||||||
|
@ -38,18 +32,12 @@
|
||||||
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col md:flex-row gap-2 md:items-center">
|
<div class="flex flex-row gap-2 items-center">
|
||||||
<div class="flex flex-row w-full gap-2 items-center">
|
<p class="min-w-16">Fußzeile:</p>
|
||||||
<p class="min-w-16">Fußzeile:</p>
|
<select ref="footer" id="footer" :value="templateUsage.footer?.id ?? 'def'">
|
||||||
<select ref="footer" id="footer" :value="templateUsage.footer?.id ?? 'def'">
|
<option value="def">Standard-Vorlage verwenden</option>
|
||||||
<option value="def">Standard-Vorlage verwenden</option>
|
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
||||||
<option v-for="template in templates" :key="template.id" :value="template.id">{{ template.template }}</option>
|
</select>
|
||||||
</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>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -59,9 +47,9 @@
|
||||||
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
import { defineAsyncComponent, defineComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { ArchiveBoxArrowDownIcon, ArchiveBoxXMarkIcon, EyeIcon } from "@heroicons/vue/24/outline";
|
import { ArchiveBoxArrowDownIcon, ArchiveBoxXMarkIcon, EyeIcon } from "@heroicons/vue/24/outline";
|
||||||
import type { TemplateUsageViewModel } from "@/viewmodels/admin/settings/templateUsage.models";
|
import type { TemplateUsageViewModel } from "@/viewmodels/admin/templateUsage.models";
|
||||||
import { useTemplateStore } from "@/stores/admin/settings/template";
|
import { useTemplateStore } from "@/stores/admin/template";
|
||||||
import { useTemplateUsageStore } from "@/stores/admin/settings/templateUsage";
|
import { useTemplateUsageStore } from "@/stores/admin/templateUsage";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.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 headerId = fromData.header.value === "def" ? null : fromData.header.value;
|
||||||
const bodyId = fromData.body.value === "def" ? null : fromData.body.value;
|
const bodyId = fromData.body.value === "def" ? null : fromData.body.value;
|
||||||
const footerId = fromData.footer.value === "def" ? null : fromData.footer.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.status = "loading"
|
||||||
this.updateTemplateUsage({
|
this.updateTemplateUsage({
|
||||||
|
@ -112,8 +98,6 @@ export default defineComponent({
|
||||||
headerId: headerId,
|
headerId: headerId,
|
||||||
bodyId: bodyId,
|
bodyId: bodyId,
|
||||||
footerId: footerId,
|
footerId: footerId,
|
||||||
headerHeight:headerHeight,
|
|
||||||
footerHeight: footerHeight
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.status = { status: "success" };
|
this.status = { status: "success" };
|
||||||
|
|
|
@ -32,7 +32,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useRoleStore } from "@/stores/admin/user/role";
|
import { useRoleStore } from "@/stores/admin/role";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
|
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
import { mapState, mapActions } from "pinia";
|
||||||
import { PencilIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
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 { RouterLink } from "vue-router";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useUserStore } from "@/stores/admin/user/user";
|
import { useUserStore } from "@/stores/admin/user";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -24,10 +24,10 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, UserGroupIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useInviteStore } from "@/stores/admin/user/invite";
|
import { useInviteStore } from "@/stores/admin/invite";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -45,8 +45,8 @@ import { useModalStore } from "@/stores/modal";
|
||||||
import Spinner from "@/components/Spinner.vue";
|
import Spinner from "@/components/Spinner.vue";
|
||||||
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
import SuccessCheckmark from "@/components/SuccessCheckmark.vue";
|
||||||
import FailureXMark from "@/components/FailureXMark.vue";
|
import FailureXMark from "@/components/FailureXMark.vue";
|
||||||
import { useInviteStore } from "@/stores/admin/user/invite";
|
import { useInviteStore } from "@/stores/admin/invite";
|
||||||
import type { CreateInviteViewModel } from "@/viewmodels/admin/user/invite.models";
|
import type { CreateInviteViewModel } from "@/viewmodels/admin/invite.models";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
|
import { defineComponent, defineAsyncComponent, markRaw, type PropType } from "vue";
|
||||||
import { mapState, mapActions } from "pinia";
|
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 { PencilIcon, UserGroupIcon, WrenchScrewdriverIcon, TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
|
|
|
@ -97,11 +97,11 @@ import {
|
||||||
TrashIcon,
|
TrashIcon,
|
||||||
SparklesIcon,
|
SparklesIcon,
|
||||||
} from "@heroicons/vue/24/outline";
|
} from "@heroicons/vue/24/outline";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
import { useModalStore } from "@/stores/modal";
|
import { useModalStore } from "@/stores/modal";
|
||||||
import Table from "./Table.vue";
|
import Table from "./Table.vue";
|
||||||
import { useAbilityStore } from "@/stores/ability";
|
import { useAbilityStore } from "@/stores/ability";
|
||||||
import { useQueryStoreStore } from "@/stores/admin/settings/queryStore";
|
import { useQueryStoreStore } from "@/stores/admin/queryStore";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -61,7 +61,7 @@ import {
|
||||||
type WhereOperation,
|
type WhereOperation,
|
||||||
type WhereType,
|
type WhereType,
|
||||||
} from "@/types/dynamicQueries";
|
} from "@/types/dynamicQueries";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
import { TrashIcon } from "@heroicons/vue/24/outline";
|
import { TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
|
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 { PlusIcon } from "@heroicons/vue/24/outline";
|
||||||
import JoinTable from "./JoinTable.vue";
|
import JoinTable from "./JoinTable.vue";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { DynamicQueryStructure } from "@/types/dynamicQueries";
|
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 Table from "./Table.vue";
|
||||||
import { TrashIcon } from "@heroicons/vue/24/outline";
|
import { TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import { joinTableName } from "@/helpers/queryFormatter";
|
import { joinTableName } from "@/helpers/queryFormatter";
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { ConditionStructure, WhereType } from "@/types/dynamicQueries";
|
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 { TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
import NestedWhere from "./NestedWhere.vue";
|
import NestedWhere from "./NestedWhere.vue";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { ConditionStructure } from "@/types/dynamicQueries";
|
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 NestedCondition from "./NestedCondition.vue";
|
||||||
import Condition from "./Condition.vue";
|
import Condition from "./Condition.vue";
|
||||||
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";
|
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { OrderByStructure } from "@/types/dynamicQueries";
|
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 OrderStructure from "./OrderStructure.vue";
|
||||||
import { PlusIcon } from "@heroicons/vue/24/outline";
|
import { PlusIcon } from "@heroicons/vue/24/outline";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { OrderByStructure, OrderByType } from "@/types/dynamicQueries";
|
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";
|
import { TrashIcon } from "@heroicons/vue/24/outline";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { ConditionStructure, DynamicQueryStructure, OrderByStructure } from "@/types/dynamicQueries";
|
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 ColumnSelect from "./ColumnSelect.vue";
|
||||||
import Where from "./Where.vue";
|
import Where from "./Where.vue";
|
||||||
import Order from "./Order.vue";
|
import Order from "./Order.vue";
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineComponent } from "vue";
|
import { defineComponent } from "vue";
|
||||||
import { mapState } from "pinia";
|
import { mapState } from "pinia";
|
||||||
import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder";
|
import { useQueryBuilderStore } from "@/stores/admin/queryBuilder";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
import { defineComponent, type PropType } from "vue";
|
import { defineComponent, type PropType } from "vue";
|
||||||
import { mapActions, mapState } from "pinia";
|
import { mapActions, mapState } from "pinia";
|
||||||
import type { ConditionStructure } from "@/types/dynamicQueries";
|
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 NestedCondition from "./NestedCondition.vue";
|
||||||
import Condition from "./Condition.vue";
|
import Condition from "./Condition.vue";
|
||||||
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";
|
import { PlusIcon, RectangleStackIcon } from "@heroicons/vue/24/outline";
|
||||||
|
|
|
@ -320,12 +320,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-qualification",
|
name: "admin-settings-qualification",
|
||||||
component: () => import("@/views/admin/settings/qualification/Qualification.vue"),
|
component: () => import("@/views/admin/settings/Qualification.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-qualification-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" },
|
meta: { type: "update", section: "settings", module: "qualification" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -342,12 +342,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-award",
|
name: "admin-settings-award",
|
||||||
component: () => import("@/views/admin/settings/award/Award.vue"),
|
component: () => import("@/views/admin/settings/Award.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-award-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" },
|
meta: { type: "update", section: "settings", module: "award" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -364,14 +364,14 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-executive_position",
|
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" },
|
meta: { type: "read", section: "settings", module: "executive_position" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-executive_position-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" },
|
meta: { type: "update", section: "settings", module: "executive_position" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -388,12 +388,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-communication_type",
|
name: "admin-settings-communication_type",
|
||||||
component: () => import("@/views/admin/settings/communicationType/CommunicationType.vue"),
|
component: () => import("@/views/admin/settings/CommunicationType.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-communication_type-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" },
|
meta: { type: "update", section: "settings", module: "communication_type" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -410,12 +410,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-membership_status",
|
name: "admin-settings-membership_status",
|
||||||
component: () => import("@/views/admin/settings/membershipStatus/MembershipStatus.vue"),
|
component: () => import("@/views/admin/settings/MembershipStatus.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-membership_status-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" },
|
meta: { type: "update", section: "settings", module: "membership_status" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -432,12 +432,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-settings-calendar_type",
|
name: "admin-settings-calendar_type",
|
||||||
component: () => import("@/views/admin/settings/calendarType/CalendarType.vue"),
|
component: () => import("@/views/admin/settings/CalendarType.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-settings-calendar_type-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" },
|
meta: { type: "update", section: "settings", module: "calendar_type" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -447,7 +447,7 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "query-store",
|
path: "query-store",
|
||||||
name: "admin-settings-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" },
|
meta: { type: "read", section: "settings", module: "query_store" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
},
|
},
|
||||||
|
@ -519,17 +519,17 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-user-user",
|
name: "admin-user-user",
|
||||||
component: () => import("@/views/admin/user/user/User.vue"),
|
component: () => import("@/views/admin/user/User.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "invites",
|
path: "invites",
|
||||||
name: "admin-user-user-invites",
|
name: "admin-user-user-invites",
|
||||||
component: () => import("@/views/admin/user/user/Invite.vue"),
|
component: () => import("@/views/admin/user/Invite.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-user-user-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" },
|
meta: { type: "update", section: "user", module: "user" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -537,7 +537,7 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: ":id/permission",
|
path: ":id/permission",
|
||||||
name: "admin-user-user-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" },
|
meta: { type: "update", section: "user", module: "user" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -545,7 +545,7 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: ":id/roles",
|
path: ":id/roles",
|
||||||
name: "admin-user-user-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" },
|
meta: { type: "update", section: "user", module: "user" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -562,12 +562,12 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "admin-user-role",
|
name: "admin-user-role",
|
||||||
component: () => import("@/views/admin/user/role/Role.vue"),
|
component: () => import("@/views/admin/user/Role.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ":id/edit",
|
path: ":id/edit",
|
||||||
name: "admin-user-role-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" },
|
meta: { type: "update", section: "user", module: "role" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
@ -575,7 +575,7 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: ":id/permission",
|
path: ":id/permission",
|
||||||
name: "admin-user-role-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" },
|
meta: { type: "update", section: "user", module: "role" },
|
||||||
beforeEnter: [abilityAndNavUpdate],
|
beforeEnter: [abilityAndNavUpdate],
|
||||||
props: true,
|
props: true,
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import { useCommunicationStore } from "@/stores/admin/club/member/communication";
|
import { useCommunicationStore } from "@/stores/admin/communication";
|
||||||
import { useMemberStore } from "@/stores/admin/club/member/member";
|
import { useMemberStore } from "@/stores/admin/member";
|
||||||
import { useMemberAwardStore } from "@/stores/admin/club/member/memberAward";
|
import { useMemberAwardStore } from "@/stores/admin/memberAward";
|
||||||
import { useMemberExecutivePositionStore } from "@/stores/admin/club/member/memberExecutivePosition";
|
import { useMemberExecutivePositionStore } from "@/stores/admin/memberExecutivePosition";
|
||||||
import { useMemberQualificationStore } from "@/stores/admin/club/member/memberQualification";
|
import { useMemberQualificationStore } from "@/stores/admin/memberQualification";
|
||||||
import { useMembershipStore } from "@/stores/admin/club/member/membership";
|
import { useMembershipStore } from "@/stores/admin/membership";
|
||||||
|
|
||||||
export async function setMemberId(to: any, from: any, next: any) {
|
export async function setMemberId(to: any, from: any, next: any) {
|
||||||
const member = useMemberStore();
|
const member = useMemberStore();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { useNewsletterStore } from "@/stores/admin/club/newsletter/newsletter";
|
import { useNewsletterStore } from "@/stores/admin/newsletter";
|
||||||
import { useNewsletterDatesStore } from "@/stores/admin/club/newsletter/newsletterDates";
|
import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
|
||||||
import { useNewsletterRecipientsStore } from "@/stores/admin/club/newsletter/newsletterRecipients";
|
import { useNewsletterRecipientsStore } from "@/stores/admin/newsletterRecipients";
|
||||||
import { useNewsletterPrintoutStore } from "../stores/admin/club/newsletter/newsletterPrintout";
|
import { useNewsletterPrintoutStore } from "../stores/admin/newsletterPrintout";
|
||||||
|
|
||||||
export async function setNewsletterId(to: any, from: any, next: any) {
|
export async function setNewsletterId(to: any, from: any, next: any) {
|
||||||
const newsletter = useNewsletterStore();
|
const newsletter = useNewsletterStore();
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import { useProtocolStore } from "@/stores/admin/club/protocol/protocol";
|
import { useProtocolStore } from "@/stores/admin/protocol";
|
||||||
import { useProtocolAgendaStore } from "@/stores/admin/club/protocol/protocolAgenda";
|
import { useProtocolAgendaStore } from "@/stores/admin/protocolAgenda";
|
||||||
import { useProtocolDecisionStore } from "@/stores/admin/club/protocol/protocolDecision";
|
import { useProtocolDecisionStore } from "@/stores/admin/protocolDecision";
|
||||||
import { useProtocolPresenceStore } from "@/stores/admin/club/protocol/protocolPresence";
|
import { useProtocolPresenceStore } from "@/stores/admin/protocolPresence";
|
||||||
import { useProtocolVotingStore } from "@/stores/admin/club/protocol/protocolVoting";
|
import { useProtocolVotingStore } from "@/stores/admin/protocolVoting";
|
||||||
import { useProtocolPrintoutStore } from "../stores/admin/club/protocol/protocolPrintout";
|
import { useProtocolPrintoutStore } from "../stores/admin/protocolPrintout";
|
||||||
|
|
||||||
export async function setProtocolId(to: any, from: any, next: any) {
|
export async function setProtocolId(to: any, from: any, next: any) {
|
||||||
const protocol = useProtocolStore();
|
const protocol = useProtocolStore();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
|
|
|
@ -3,7 +3,7 @@ import type {
|
||||||
CreateCalendarViewModel,
|
CreateCalendarViewModel,
|
||||||
UpdateCalendarViewModel,
|
UpdateCalendarViewModel,
|
||||||
CalendarViewModel,
|
CalendarViewModel,
|
||||||
} from "@/viewmodels/admin/club/calendar.models";
|
} from "@/viewmodels/admin/calendar.models";
|
||||||
import { http } from "@/serverCom";
|
import { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
|
|
|
@ -3,7 +3,7 @@ import type {
|
||||||
CreateCalendarTypeViewModel,
|
CreateCalendarTypeViewModel,
|
||||||
UpdateCalendarTypeViewModel,
|
UpdateCalendarTypeViewModel,
|
||||||
CalendarTypeViewModel,
|
CalendarTypeViewModel,
|
||||||
} from "@/viewmodels/admin/settings/calendarType.models";
|
} from "@/viewmodels/admin/calendarType.models";
|
||||||
import { http } from "@/serverCom";
|
import { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
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 { useMemberStore } from "./member";
|
||||||
import type {
|
import type {
|
||||||
CreateCommunicationViewModel,
|
CreateCommunicationViewModel,
|
||||||
CommunicationViewModel,
|
CommunicationViewModel,
|
||||||
UpdateCommunicationViewModel,
|
UpdateCommunicationViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/communication.models";
|
} from "@/viewmodels/admin/communication.models";
|
||||||
|
|
||||||
export const useCommunicationStore = defineStore("communication", {
|
export const useCommunicationStore = defineStore("communication", {
|
||||||
state: () => {
|
state: () => {
|
|
@ -3,7 +3,7 @@ import type {
|
||||||
CreateCommunicationTypeViewModel,
|
CreateCommunicationTypeViewModel,
|
||||||
UpdateCommunicationTypeViewModel,
|
UpdateCommunicationTypeViewModel,
|
||||||
CommunicationTypeViewModel,
|
CommunicationTypeViewModel,
|
||||||
} from "@/viewmodels/admin/settings/communicationType.models";
|
} from "@/viewmodels/admin/communicationType.models";
|
||||||
import { http } from "@/serverCom";
|
import { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
import type { CommunicationFieldType } from "@/types/fieldTypes";
|
import type { CommunicationFieldType } from "@/types/fieldTypes";
|
|
@ -3,7 +3,7 @@ import type {
|
||||||
CreateExecutivePositionViewModel,
|
CreateExecutivePositionViewModel,
|
||||||
UpdateExecutivePositionViewModel,
|
UpdateExecutivePositionViewModel,
|
||||||
ExecutivePositionViewModel,
|
ExecutivePositionViewModel,
|
||||||
} from "@/viewmodels/admin/settings/executivePosition.models";
|
} from "@/viewmodels/admin/executivePosition.models";
|
||||||
import { http } from "@/serverCom";
|
import { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { PermissionObject } from "@/types/permissionTypes";
|
import type { PermissionObject } from "@/types/permissionTypes";
|
||||||
import type { AxiosResponse } from "axios";
|
import type { AxiosResponse } from "axios";
|
|
@ -1,8 +1,8 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
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", {
|
export const useMemberStore = defineStore("member", {
|
||||||
state: () => {
|
state: () => {
|
||||||
|
@ -16,11 +16,11 @@ export const useMemberStore = defineStore("member", {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
fetchMembers(offset = 0, count = 25, search = "", clear = false) {
|
fetchMembers(offset = 0, count = 25, clear = false) {
|
||||||
if (clear) this.members = [];
|
if (clear) this.members = [];
|
||||||
this.loading = "loading";
|
this.loading = "loading";
|
||||||
http
|
http
|
||||||
.get(`/admin/member?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`)
|
.get(`/admin/member?offset=${offset}&count=${count}`)
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
this.totalCount = result.data.total;
|
this.totalCount = result.data.total;
|
||||||
result.data.members
|
result.data.members
|
||||||
|
@ -62,7 +62,6 @@ export const useMemberStore = defineStore("member", {
|
||||||
lastname: member.lastname,
|
lastname: member.lastname,
|
||||||
nameaffix: member.nameaffix,
|
nameaffix: member.nameaffix,
|
||||||
birthdate: member.birthdate,
|
birthdate: member.birthdate,
|
||||||
internalId: member.internalId,
|
|
||||||
});
|
});
|
||||||
this.fetchMembers();
|
this.fetchMembers();
|
||||||
return result;
|
return result;
|
||||||
|
@ -74,7 +73,6 @@ export const useMemberStore = defineStore("member", {
|
||||||
lastname: member.lastname,
|
lastname: member.lastname,
|
||||||
nameaffix: member.nameaffix,
|
nameaffix: member.nameaffix,
|
||||||
birthdate: member.birthdate,
|
birthdate: member.birthdate,
|
||||||
internalId: member.internalId,
|
|
||||||
});
|
});
|
||||||
this.fetchMembers();
|
this.fetchMembers();
|
||||||
return result;
|
return result;
|
|
@ -1,14 +1,14 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
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 { useMemberStore } from "./member";
|
||||||
import type {
|
import type {
|
||||||
CreateMemberAwardViewModel,
|
CreateMemberAwardViewModel,
|
||||||
MemberAwardViewModel,
|
MemberAwardViewModel,
|
||||||
UpdateMemberAwardViewModel,
|
UpdateMemberAwardViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/memberAward.models";
|
} from "@/viewmodels/admin/memberAward.models";
|
||||||
|
|
||||||
export const useMemberAwardStore = defineStore("memberAward", {
|
export const useMemberAwardStore = defineStore("memberAward", {
|
||||||
state: () => {
|
state: () => {
|
|
@ -1,14 +1,14 @@
|
||||||
import { defineStore } from "pinia";
|
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 { http } from "@/serverCom";
|
||||||
import type { AxiosResponse } from "axios";
|
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 { useMemberStore } from "./member";
|
||||||
import type {
|
import type {
|
||||||
CreateMemberExecutivePositionViewModel,
|
CreateMemberExecutivePositionViewModel,
|
||||||
MemberExecutivePositionViewModel,
|
MemberExecutivePositionViewModel,
|
||||||
UpdateMemberExecutivePositionViewModel,
|
UpdateMemberExecutivePositionViewModel,
|
||||||
} from "@/viewmodels/admin/club/member/memberExecutivePosition.models";
|
} from "@/viewmodels/admin/memberExecutivePosition.models";
|
||||||
|
|
||||||
export const useMemberExecutivePositionStore = defineStore("memberExecutivePosition", {
|
export const useMemberExecutivePositionStore = defineStore("memberExecutivePosition", {
|
||||||
state: () => {
|
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