Newsletter base views and Data display
This commit is contained in:
parent
9ef171b913
commit
be2bd5e6e3
14 changed files with 941 additions and 14 deletions
|
@ -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",
|
||||
|
|
24
src/router/newsletterGuard.ts
Normal file
24
src/router/newsletterGuard.ts
Normal 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();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue