diff --git a/src/components/admin/club/member/MemberNameListModal.vue b/src/components/admin/club/member/MemberNameListModal.vue deleted file mode 100644 index dab66ad..0000000 --- a/src/components/admin/club/member/MemberNameListModal.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - download - schließen - - - - - - - - diff --git a/src/router/index.ts b/src/router/index.ts index 6defe12..e2e484c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -295,6 +295,13 @@ const router = createRouter({ meta: { type: "read", section: "club", module: "query" }, beforeEnter: [abilityAndNavUpdate], }, + { + path: "listprint", + name: "admin-club-listprint", + component: () => import("@/views/admin/club/listprint/ListPrint.vue"), + meta: { type: "read", section: "club", module: "listprint" }, + beforeEnter: [abilityAndNavUpdate], + }, ], }, { diff --git a/src/stores/admin/club/listprint.ts b/src/stores/admin/club/listprint.ts new file mode 100644 index 0000000..65f6cff --- /dev/null +++ b/src/stores/admin/club/listprint.ts @@ -0,0 +1,40 @@ +import { defineStore } from "pinia"; +import { http } from "@/serverCom"; + +export const useListPrintStore = defineStore("listprint", { + actions: { + async printList({ + title, + queryStore, + headerId, + bodyId, + footerId, + headerHeight, + footerHeight, + }: { + title: string; + queryStore: string; + headerId?: string; + bodyId?: string; + footerId?: string; + headerHeight?: number; + footerHeight?: number; + }) { + return http.post( + `/admin/listprint`, + { + title, + queryStore, + headerId, + bodyId, + footerId, + headerHeight, + footerHeight, + }, + { + responseType: "blob", + } + ); + }, + }, +}); diff --git a/src/stores/admin/club/member/member.ts b/src/stores/admin/club/member/member.ts index fb7ea49..30d778b 100644 --- a/src/stores/admin/club/member/member.ts +++ b/src/stores/admin/club/member/member.ts @@ -124,10 +124,5 @@ export const useMemberStore = defineStore("member", { this.fetchMembers(); return result; }, - async printMemberList() { - return http.get(`/admin/member/print/namelist`, { - responseType: "blob", - }); - }, }, }); diff --git a/src/stores/admin/navigation.ts b/src/stores/admin/navigation.ts index c32fb96..cc9024a 100644 --- a/src/stores/admin/navigation.ts +++ b/src/stores/admin/navigation.ts @@ -92,6 +92,7 @@ export const useNavigationStore = defineStore("navigation", { ...(abilityStore.can("read", "club", "protocol") ? [{ key: "protocol", title: "Protokolle" }] : []), ...(abilityStore.can("read", "club", "newsletter") ? [{ key: "newsletter", title: "Newsletter" }] : []), ...(abilityStore.can("read", "club", "query") ? [{ key: "query_builder", title: "Query Builder" }] : []), + ...(abilityStore.can("read", "club", "listprint") ? [{ key: "listprint", title: "Liste Drucken" }] : []), ], }, configuration: { diff --git a/src/types/permissionTypes.ts b/src/types/permissionTypes.ts index a031c0e..e9ed138 100644 --- a/src/types/permissionTypes.ts +++ b/src/types/permissionTypes.ts @@ -6,6 +6,7 @@ export type PermissionModule = | "newsletter" | "newsletter_config" | "protocol" + | "listprint" | "qualification" | "award" | "executive_position" @@ -50,6 +51,7 @@ export const permissionModules: Array = [ "newsletter", "newsletter_config", "protocol", + "listprint", "qualification", "award", "executive_position", @@ -68,7 +70,7 @@ export const permissionModules: Array = [ ]; export const permissionTypes: Array = ["read", "create", "update", "delete"]; export const sectionsAndModules: SectionsAndModulesObject = { - club: ["member", "calendar", "newsletter", "protocol", "query"], + club: ["member", "calendar", "newsletter", "protocol", "query", "listprint"], configuration: [ "qualification", "award", diff --git a/src/views/admin/club/listprint/ListPrint.vue b/src/views/admin/club/listprint/ListPrint.vue new file mode 100644 index 0000000..b193917 --- /dev/null +++ b/src/views/admin/club/listprint/ListPrint.vue @@ -0,0 +1,155 @@ + + + + + Liste Drucken + + + + + + + Titel: + + + + Query: + + (system) alle Mitglieder + (system) alle Mitglieder mit laufender Mitgliedschaft + + {{ query.title }} + + + + + + Kopfzeile: + + Standard-Vorlage verwenden + + {{ template.template }} + + + + + Höhe [mm]: + + + + + Hauptteil: + + Standard-Vorlage verwenden + (system) Mitgliederliste + + {{ template.template }} + + + + + + Fußzeile: + + Standard-Vorlage verwenden + + {{ template.template }} + + + + + Höhe [mm]: + + + + + Liste drucken + zurücksetzen + + + + + + + + + + download + + + + + + + + + + diff --git a/src/views/admin/club/members/Member.vue b/src/views/admin/club/members/Member.vue index 2794fd5..59b8b9f 100644 --- a/src/views/admin/club/members/Member.vue +++ b/src/views/admin/club/members/Member.vue @@ -3,9 +3,6 @@ Mitglieder - - - @@ -69,11 +66,6 @@ export default defineComponent({ markRaw(defineAsyncComponent(() => import("@/components/admin/club/member/CreateMemberModal.vue"))) ); }, - openPrintModal() { - this.openModal( - markRaw(defineAsyncComponent(() => import("@/components/admin/club/member/MemberNameListModal.vue"))) - ); - }, }, });
Titel:
Query:
Kopfzeile:
Höhe [mm]:
Hauptteil:
Fußzeile: