Newsletter base views and Data display

This commit is contained in:
Julian Krauser 2024-12-26 13:57:45 +01:00
parent 9ef171b913
commit be2bd5e6e3
14 changed files with 941 additions and 14 deletions

View file

@ -8,6 +8,7 @@ import { abilityAndNavUpdate } from "./adminGuard";
import type { PermissionType, PermissionSection, PermissionModule } from "@/types/permissionTypes";
import { resetMemberStores, setMemberId } from "./memberGuard";
import { resetProtocolStores, setProtocolId } from "./protocolGuard";
import { resetNewsletterStores, setNewsletterId } from "./newsletterGuard";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@ -174,10 +175,51 @@ const router = createRouter({
},
{
path: "newsletter",
name: "admin-club-newsletter",
component: () => import("@/views/admin/ViewSelect.vue"),
name: "admin-club-newsletter-route",
component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "club", module: "newsletter" },
beforeEnter: [abilityAndNavUpdate],
children: [
{
path: "",
name: "admin-club-newsletter",
component: () => import("@/views/admin/club/newsletter/Newsletter.vue"),
beforeEnter: [resetNewsletterStores],
},
{
path: ":newsletterId",
name: "admin-club-newsletter-routing",
component: () => import("@/views/admin/club/newsletter/NewsletterRouting.vue"),
beforeEnter: [setNewsletterId],
props: true,
children: [
{
path: "overview",
name: "admin-club-newsletter-overview",
component: () => import("@/views/admin/club/newsletter/NewsletterOverview.vue"),
props: true,
},
{
path: "recipients",
name: "admin-club-newsletter-recipients",
component: () => import("@/views/admin/club/newsletter/NewsletterRecipients.vue"),
props: true,
},
{
path: "dates",
name: "admin-club-newsletter-dates",
component: () => import("@/views/admin/club/newsletter/NewsletterDates.vue"),
props: true,
},
{
path: "printout",
name: "admin-club-newsletter-printout",
component: () => import("@/views/admin/club/newsletter/NewsletterPrintout.vue"),
props: true,
},
],
},
],
},
{
path: "protocol",

View file

@ -0,0 +1,24 @@
import { useNewsletterStore } from "@/stores/admin/newsletter";
import { useNewsletterDatesStore } from "@/stores/admin/newsletterDates";
import { useNewsletterRecipientsStore } from "@/stores/admin/newsletterRecipients";
export async function setNewsletterId(to: any, from: any, next: any) {
const newsletter = useNewsletterStore();
newsletter.activeNewsletter = to.params?.newsletterId ?? null;
useNewsletterDatesStore().$reset();
useNewsletterRecipientsStore().$reset();
next();
}
export async function resetNewsletterStores(to: any, from: any, next: any) {
const newsletter = useNewsletterStore();
newsletter.activeNewsletter = null;
newsletter.activeNewsletterObj = null;
useNewsletterDatesStore().$reset();
useNewsletterRecipientsStore().$reset();
next();
}