From fdbf9e7f0a4cb5895032e6da393ace4948057f16 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 10 Apr 2025 08:29:13 +0200 Subject: [PATCH 1/3] enhance: show newsletter recipients --- .../NewsletterMailRecipientsModal.vue | 67 +++++++++++++++++++ .../NewsletterPrintingRecipientsModal.vue | 67 +++++++++++++++++++ .../club/newsletter/newsletterPrintout.ts | 8 +++ 3 files changed, 142 insertions(+) create mode 100644 src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue create mode 100644 src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue diff --git a/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue b/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue new file mode 100644 index 0000000..d51435a --- /dev/null +++ b/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue b/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue new file mode 100644 index 0000000..079d42c --- /dev/null +++ b/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/stores/admin/club/newsletter/newsletterPrintout.ts b/src/stores/admin/club/newsletter/newsletterPrintout.ts index 945ac24..0c7b17a 100644 --- a/src/stores/admin/club/newsletter/newsletterPrintout.ts +++ b/src/stores/admin/club/newsletter/newsletterPrintout.ts @@ -45,6 +45,14 @@ export const useNewsletterPrintoutStore = defineStore("newsletterPrintout", { responseType: "blob", }); }, + fetchNewsletterPrintReceivers(): Promise> { + const newsletterId = useNewsletterStore().activeNewsletter; + return http.get(`/admin/newsletter/${newsletterId}/printrecipients`); + }, + fetchNewsletterMailReceivers(): Promise> { + const newsletterId = useNewsletterStore().activeNewsletter; + return http.get(`/admin/newsletter/${newsletterId}/mailrecipients`); + }, createNewsletterMailPreview() { this.sendingPreview = "loading"; const newsletterId = useNewsletterStore().activeNewsletter; From 7aa0db3684b90689fecd1b9d3370d7f3777ac6f0 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 10 Apr 2025 08:29:25 +0200 Subject: [PATCH 2/3] enhance: prevent accidental newsletter job start --- .../NewsletterMailProgressModal.vue | 2 +- .../NewsletterPrintingProgressModal.vue | 2 +- .../club/newsletter/newsletterPrintout.ts | 4 ++-- .../club/newsletter/NewsletterPrintout.vue | 20 +++++++++++++++---- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/components/admin/club/newsletter/NewsletterMailProgressModal.vue b/src/components/admin/club/newsletter/NewsletterMailProgressModal.vue index 27f1690..9f5250a 100644 --- a/src/components/admin/club/newsletter/NewsletterMailProgressModal.vue +++ b/src/components/admin/club/newsletter/NewsletterMailProgressModal.vue @@ -19,7 +19,7 @@
- +
diff --git a/src/components/admin/club/newsletter/NewsletterPrintingProgressModal.vue b/src/components/admin/club/newsletter/NewsletterPrintingProgressModal.vue index 416c1e1..8e0b57f 100644 --- a/src/components/admin/club/newsletter/NewsletterPrintingProgressModal.vue +++ b/src/components/admin/club/newsletter/NewsletterPrintingProgressModal.vue @@ -19,7 +19,7 @@
- +
diff --git a/src/stores/admin/club/newsletter/newsletterPrintout.ts b/src/stores/admin/club/newsletter/newsletterPrintout.ts index 0c7b17a..97bc4f3 100644 --- a/src/stores/admin/club/newsletter/newsletterPrintout.ts +++ b/src/stores/admin/club/newsletter/newsletterPrintout.ts @@ -124,7 +124,7 @@ export const useNewsletterPrintoutStore = defineStore("newsletterPrintout", { chunk.split("//").forEach((r) => { if (r.trim() != "") { let data = JSON.parse(r); - this.pdfSourceMessages.push(data); + this.pdfSourceMessages.unshift(data); let type: NotificationType = "info"; let timeout = undefined; if (data.factor == "failed") { @@ -146,7 +146,7 @@ export const useNewsletterPrintoutStore = defineStore("newsletterPrintout", { chunk.split("//").forEach((r) => { if (r.trim() != "") { let data = JSON.parse(r); - this.mailSourceMessages.push(data); + this.mailSourceMessages.unshift(data); let type: NotificationType = "info"; let timeout = undefined; if (data.factor == "failed") { diff --git a/src/views/admin/club/newsletter/NewsletterPrintout.vue b/src/views/admin/club/newsletter/NewsletterPrintout.vue index 0580400..3fd49ef 100644 --- a/src/views/admin/club/newsletter/NewsletterPrintout.vue +++ b/src/views/admin/club/newsletter/NewsletterPrintout.vue @@ -27,7 +27,7 @@ primary class="!w-fit whitespace-nowrap flex flex-row gap-2" :disabled="printing != undefined" - @click="createNewsletterPrintout" + @click="openPdfCommit" > Newsletter drucken @@ -39,7 +39,7 @@ primary class="!w-fit whitespace-nowrap flex flex-row gap-2" :disabled="sending != undefined" - @click="createNewsletterSend" + @click="openMailCommit" > Mails versenden @@ -108,10 +108,8 @@ export default defineComponent({ ...mapActions(useModalStore, ["openModal"]), ...mapActions(useNewsletterPrintoutStore, [ "fetchNewsletterPrintout", - "createNewsletterPrintout", "fetchNewsletterPrintoutById", "createNewsletterMailPreview", - "createNewsletterSend", ]), openPdfShow(filename?: string) { this.openModal( @@ -132,6 +130,20 @@ export default defineComponent({ }) .catch(() => {}); }, + openPdfCommit() { + this.openModal( + markRaw( + defineAsyncComponent(() => import("@/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue")) + ) + ); + }, + openMailCommit() { + this.openModal( + markRaw( + defineAsyncComponent(() => import("@/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue")) + ) + ); + }, openPdfLogs() { this.openModal( markRaw( From 552b6f643865959d4fa3dc4078ca5ebf68ace77a Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 10 Apr 2025 11:01:29 +0200 Subject: [PATCH 3/3] enhance: count of receivers in modal --- .../admin/club/newsletter/NewsletterMailRecipientsModal.vue | 3 ++- .../club/newsletter/NewsletterPrintingRecipientsModal.vue | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue b/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue index d51435a..fbc1ed3 100644 --- a/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue +++ b/src/components/admin/club/newsletter/NewsletterMailRecipientsModal.vue @@ -5,6 +5,8 @@
+

keine Empfänger gefunden

+

{{ receivers.length }} Empfänger gefunden

{{ rec.lastname }}, {{ rec.firstname }}

-

keine Empfänger gefunden

diff --git a/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue b/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue index 079d42c..444ea27 100644 --- a/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue +++ b/src/components/admin/club/newsletter/NewsletterPrintingRecipientsModal.vue @@ -5,6 +5,8 @@

+

keine Empfänger gefunden

+

{{ receivers.length }} Empfänger gefunden

{{ rec.lastname }}, {{ rec.firstname }}

-

keine Empfänger gefunden