route rename

This commit is contained in:
Julian Krauser 2025-02-15 11:41:27 +01:00
parent 9d96a3f921
commit 84e1d42041
21 changed files with 102 additions and 95 deletions

View file

@ -12,8 +12,10 @@
:disableSubLink="true" :disableSubLink="true"
/> />
<TopLevelLink <TopLevelLink
v-else-if="routeName == 'account' || routeName.includes('account-') || routeName == 'docs' || routeName.includes('docs-')" v-else-if="
:link="{ key: 'club', title: 'Zur Verwaltung', levelDefault: '' }" routeName == 'account' || routeName.includes('account-') || routeName == 'docs' || routeName.includes('docs-')
"
:link="{ key: 'club', title: 'Zur Admin Oberfläche', levelDefault: '' }"
:disableSubLink="true" :disableSubLink="true"
/> />
</div> </div>

View file

@ -2,7 +2,9 @@
<header class="flex flex-row h-16 min-h-16 justify-between p-3 md:px-5 bg-white shadow-sm"> <header class="flex flex-row h-16 min-h-16 justify-between p-3 md:px-5 bg-white shadow-sm">
<RouterLink to="/" class="flex flex-row gap-2 align-bottom w-fit h-full"> <RouterLink to="/" class="flex flex-row gap-2 align-bottom w-fit h-full">
<img src="/Logo.png" alt="LOGO" class="h-full w-auto" /> <img src="/Logo.png" alt="LOGO" class="h-full w-auto" />
<h1 v-if="false" class="font-bold text-3xl w-fit whitespace-nowrap">{{config.app_name_overwrite || "FF Admin"}}</h1> <h1 v-if="false" class="font-bold text-3xl w-fit whitespace-nowrap">
{{ config.app_name_overwrite || "FF Admin" }}
</h1>
</RouterLink> </RouterLink>
<div class="flex flex-row gap-2 items-center"> <div class="flex flex-row gap-2 items-center">
<div v-if="authCheck" class="hidden md:flex flex-row gap-2 h-full align-middle"> <div v-if="authCheck" class="hidden md:flex flex-row gap-2 h-full align-middle">
@ -13,8 +15,13 @@
:link="item" :link="item"
/> />
<TopLevelLink <TopLevelLink
v-else-if="routeName == 'account' || routeName.includes('account-') || routeName == 'docs' || routeName.includes('docs-')" v-else-if="
:link="{ key: 'club', title: 'Zur Verwaltung', levelDefault: '' }" routeName == 'account' ||
routeName.includes('account-') ||
routeName == 'docs' ||
routeName.includes('docs-')
"
:link="{ key: 'club', title: 'Zur Admin Oberfläche', levelDefault: '' }"
:disable-sub-link="true" :disable-sub-link="true"
/> />
</div> </div>
@ -30,7 +37,7 @@ import { useAuthStore } from "@/stores/auth";
import { useNavigationStore } from "@/stores/admin/navigation"; import { useNavigationStore } from "@/stores/admin/navigation";
import TopLevelLink from "./admin/TopLevelLink.vue"; import TopLevelLink from "./admin/TopLevelLink.vue";
import UserMenu from "./UserMenu.vue"; import UserMenu from "./UserMenu.vue";
import { config } from "@/config" import { config } from "@/config";
</script> </script>
<script lang="ts"> <script lang="ts">

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'award')" v-if="can('update', 'configuration', 'award')"
:to="{ name: 'admin-settings-award-edit', params: { id: award.id } }" :to="{ name: 'admin-configuration-award-edit', params: { id: award.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -12,7 +12,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'calendar_type')" v-if="can('update', 'configuration', 'calendar_type')"
:to="{ name: 'admin-settings-calendar_type-edit', params: { id: calendarType.id } }" :to="{ name: 'admin-configuration-calendar_type-edit', params: { id: calendarType.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'communication_type')" v-if="can('update', 'configuration', 'communication_type')"
:to="{ name: 'admin-settings-communication_type-edit', params: { id: communicationType.id } }" :to="{ name: 'admin-configuration-communication_type-edit', params: { id: communicationType.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'executive_position')" v-if="can('update', 'configuration', 'executive_position')"
:to="{ name: 'admin-settings-executive_position-edit', params: { id: executivePosition.id } }" :to="{ name: 'admin-configuration-executive_position-edit', params: { id: executivePosition.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'membership_status')" v-if="can('update', 'configuration', 'membership_status')"
:to="{ name: 'admin-settings-membership_status-edit', params: { id: membershipStatus.id } }" :to="{ name: 'admin-configuration-membership_status-edit', params: { id: membershipStatus.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'qualification')" v-if="can('update', 'configuration', 'qualification')"
:to="{ name: 'admin-settings-qualification-edit', params: { id: qualification.id } }" :to="{ name: 'admin-configuration-qualification-edit', params: { id: qualification.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -5,7 +5,7 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'salutation')" v-if="can('update', 'configuration', 'salutation')"
:to="{ name: 'admin-settings-salutation-edit', params: { id: salutation.id } }" :to="{ name: 'admin-configuration-salutation-edit', params: { id: salutation.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -70,7 +70,7 @@ export default defineComponent({
this.status = { status: "success" }; this.status = { status: "success" };
this.timeout = setTimeout(() => { this.timeout = setTimeout(() => {
this.closeModal(); this.closeModal();
this.$router.push({ name: "admin-settings-template-edit", params: { id: res.data } }); this.$router.push({ name: "admin-configuration-template-edit", params: { id: res.data } });
}, 1500); }, 1500);
}) })
.catch(() => { .catch(() => {

View file

@ -5,7 +5,7 @@
<div class="flex flex-row justify-end w-24"> <div class="flex flex-row justify-end w-24">
<RouterLink <RouterLink
v-if="can('update', 'configuration', 'template')" v-if="can('update', 'configuration', 'template')"
:to="{ name: 'admin-settings-template-edit', params: { id: template.id } }" :to="{ name: 'admin-configuration-template-edit', params: { id: template.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>
@ -78,7 +78,7 @@ export default defineComponent({
this.status = { status: "success" }; this.status = { status: "success" };
this.timeout = setTimeout(() => { this.timeout = setTimeout(() => {
this.status = null; this.status = null;
this.$router.push({ name: "admin-settings-template-edit", params: { id: res.data } }); this.$router.push({ name: "admin-configuration-template-edit", params: { id: res.data } });
}, 2000); }, 2000);
}) })
.catch(() => { .catch(() => {

View file

@ -75,7 +75,6 @@ export default defineComponent({
}, },
fileDrop(event: DragEvent) { fileDrop(event: DragEvent) {
const file = event.dataTransfer?.files[0]; const file = event.dataTransfer?.files[0];
console.log("hi", file);
if (file?.type.toLocaleLowerCase() != "application/json") return; if (file?.type.toLocaleLowerCase() != "application/json") return;
this.uploadFile(file); this.uploadFile(file);
}, },

View file

@ -5,13 +5,13 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('admin', 'management', 'role')" v-if="can('admin', 'management', 'role')"
:to="{ name: 'admin-user-role-permission', params: { id: role.id } }" :to="{ name: 'admin-management-role-permission', params: { id: role.id } }"
> >
<WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>
<RouterLink <RouterLink
v-if="can('update', 'management', 'role')" v-if="can('update', 'management', 'role')"
:to="{ name: 'admin-user-role-edit', params: { id: role.id } }" :to="{ name: 'admin-management-role-edit', params: { id: role.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -8,19 +8,19 @@
<div class="flex flex-row"> <div class="flex flex-row">
<RouterLink <RouterLink
v-if="can('admin', 'management', 'user')" v-if="can('admin', 'management', 'user')"
:to="{ name: 'admin-user-user-roles', params: { id: user.id } }" :to="{ name: 'admin-management-user-roles', params: { id: user.id } }"
> >
<UserGroupIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <UserGroupIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>
<RouterLink <RouterLink
v-if="can('admin', 'management', 'user')" v-if="can('admin', 'management', 'user')"
:to="{ name: 'admin-user-user-permission', params: { id: user.id } }" :to="{ name: 'admin-management-user-permission', params: { id: user.id } }"
> >
<WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>
<RouterLink <RouterLink
v-if="can('update', 'management', 'user')" v-if="can('update', 'management', 'user')"
:to="{ name: 'admin-user-user-edit', params: { id: user.id } }" :to="{ name: 'admin-management-user-edit', params: { id: user.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -8,13 +8,13 @@
</div> </div>
<RouterLink <RouterLink
v-if="can('admin', 'management', 'webapi')" v-if="can('admin', 'management', 'webapi')"
:to="{ name: 'admin-user-webapi-permission', params: { id: webapi.id } }" :to="{ name: 'admin-management-webapi-permission', params: { id: webapi.id } }"
> >
<WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <WrenchScrewdriverIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>
<RouterLink <RouterLink
v-if="can('update', 'management', 'webapi')" v-if="can('update', 'management', 'webapi')"
:to="{ name: 'admin-user-webapi-edit', params: { id: webapi.id } }" :to="{ name: 'admin-management-webapi-edit', params: { id: webapi.id } }"
> >
<PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" /> <PencilIcon class="w-5 h-5 p-1 box-content cursor-pointer" />
</RouterLink> </RouterLink>

View file

@ -298,34 +298,34 @@ const router = createRouter({
], ],
}, },
{ {
path: "settings", path: "configuration",
name: "admin-settings", name: "admin-configuration",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration" }, meta: { type: "read", section: "configuration" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-default", name: "admin-configuration-default",
component: () => import("@/views/admin/ViewSelect.vue"), component: () => import("@/views/admin/ViewSelect.vue"),
meta: { type: "read", section: "configuration" }, meta: { type: "read", section: "configuration" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
}, },
{ {
path: "qualification", path: "qualification",
name: "admin-settings-qualification-route", name: "admin-configuration-qualification-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "qualification" }, meta: { type: "read", section: "configuration", module: "qualification" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-qualification", name: "admin-configuration-qualification",
component: () => import("@/views/admin/configuration/qualification/Qualification.vue"), component: () => import("@/views/admin/configuration/qualification/Qualification.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-qualification-edit", name: "admin-configuration-qualification-edit",
component: () => import("@/views/admin/configuration/qualification/QualificationEdit.vue"), component: () => import("@/views/admin/configuration/qualification/QualificationEdit.vue"),
meta: { type: "update", section: "configuration", module: "qualification" }, meta: { type: "update", section: "configuration", module: "qualification" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -335,19 +335,19 @@ const router = createRouter({
}, },
{ {
path: "award", path: "award",
name: "admin-settings-award-route", name: "admin-configuration-award-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "award" }, meta: { type: "read", section: "configuration", module: "award" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-award", name: "admin-configuration-award",
component: () => import("@/views/admin/configuration/award/Award.vue"), component: () => import("@/views/admin/configuration/award/Award.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-award-edit", name: "admin-configuration-award-edit",
component: () => import("@/views/admin/configuration/award/AwardEdit.vue"), component: () => import("@/views/admin/configuration/award/AwardEdit.vue"),
meta: { type: "update", section: "configuration", module: "award" }, meta: { type: "update", section: "configuration", module: "award" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -357,21 +357,21 @@ const router = createRouter({
}, },
{ {
path: "executive-position", path: "executive-position",
name: "admin-settings-executive_position-route", name: "admin-configuration-executive_position-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "executive_position" }, meta: { type: "read", section: "configuration", module: "executive_position" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-executive_position", name: "admin-configuration-executive_position",
component: () => import("@/views/admin/configuration/executivePosition/ExecutivePosition.vue"), component: () => import("@/views/admin/configuration/executivePosition/ExecutivePosition.vue"),
meta: { type: "read", section: "configuration", module: "executive_position" }, meta: { type: "read", section: "configuration", module: "executive_position" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-executive_position-edit", name: "admin-configuration-executive_position-edit",
component: () => import("@/views/admin/configuration/executivePosition/ExecutivePositionEdit.vue"), component: () => import("@/views/admin/configuration/executivePosition/ExecutivePositionEdit.vue"),
meta: { type: "update", section: "configuration", module: "executive_position" }, meta: { type: "update", section: "configuration", module: "executive_position" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -381,19 +381,19 @@ const router = createRouter({
}, },
{ {
path: "communication-type", path: "communication-type",
name: "admin-settings-communication_type-route", name: "admin-configuration-communication_type-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "communication_type" }, meta: { type: "read", section: "configuration", module: "communication_type" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-communication_type", name: "admin-configuration-communication_type",
component: () => import("@/views/admin/configuration/communicationType/CommunicationType.vue"), component: () => import("@/views/admin/configuration/communicationType/CommunicationType.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-communication_type-edit", name: "admin-configuration-communication_type-edit",
component: () => import("@/views/admin/configuration/communicationType/CommunicationTypeEdit.vue"), component: () => import("@/views/admin/configuration/communicationType/CommunicationTypeEdit.vue"),
meta: { type: "update", section: "configuration", module: "communication_type" }, meta: { type: "update", section: "configuration", module: "communication_type" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -403,19 +403,19 @@ const router = createRouter({
}, },
{ {
path: "status", path: "status",
name: "admin-settings-membership_status-route", name: "admin-configuration-membership_status-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "membership_status" }, meta: { type: "read", section: "configuration", module: "membership_status" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-membership_status", name: "admin-configuration-membership_status",
component: () => import("@/views/admin/configuration/membershipStatus/MembershipStatus.vue"), component: () => import("@/views/admin/configuration/membershipStatus/MembershipStatus.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-membership_status-edit", name: "admin-configuration-membership_status-edit",
component: () => import("@/views/admin/configuration/membershipStatus/MembershipStatusEdit.vue"), component: () => import("@/views/admin/configuration/membershipStatus/MembershipStatusEdit.vue"),
meta: { type: "update", section: "configuration", module: "membership_status" }, meta: { type: "update", section: "configuration", module: "membership_status" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -425,19 +425,19 @@ const router = createRouter({
}, },
{ {
path: "salutation", path: "salutation",
name: "admin-settings-salutation-route", name: "admin-configuration-salutation-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "salutation" }, meta: { type: "read", section: "configuration", module: "salutation" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-salutation", name: "admin-configuration-salutation",
component: () => import("@/views/admin/configuration/salutation/Salutation.vue"), component: () => import("@/views/admin/configuration/salutation/Salutation.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-salutation-edit", name: "admin-configuration-salutation-edit",
component: () => import("@/views/admin/configuration/salutation/SalutationEdit.vue"), component: () => import("@/views/admin/configuration/salutation/SalutationEdit.vue"),
meta: { type: "update", section: "configuration", module: "salutation" }, meta: { type: "update", section: "configuration", module: "salutation" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -447,19 +447,19 @@ const router = createRouter({
}, },
{ {
path: "calendar-type", path: "calendar-type",
name: "admin-settings-calendar_type-route", name: "admin-configuration-calendar_type-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "calendar_type" }, meta: { type: "read", section: "configuration", module: "calendar_type" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-calendar_type", name: "admin-configuration-calendar_type",
component: () => import("@/views/admin/configuration/calendarType/CalendarType.vue"), component: () => import("@/views/admin/configuration/calendarType/CalendarType.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-calendar_type-edit", name: "admin-configuration-calendar_type-edit",
component: () => import("@/views/admin/configuration/calendarType/CalendarTypeEdit.vue"), component: () => import("@/views/admin/configuration/calendarType/CalendarTypeEdit.vue"),
meta: { type: "update", section: "configuration", module: "calendar_type" }, meta: { type: "update", section: "configuration", module: "calendar_type" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -469,32 +469,32 @@ const router = createRouter({
}, },
{ {
path: "query-store", path: "query-store",
name: "admin-settings-query_store", name: "admin-configuration-query_store",
component: () => import("@/views/admin/configuration/queryStore/QueryStore.vue"), component: () => import("@/views/admin/configuration/queryStore/QueryStore.vue"),
meta: { type: "read", section: "configuration", module: "query_store" }, meta: { type: "read", section: "configuration", module: "query_store" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
}, },
{ {
path: "template", path: "template",
name: "admin-settings-template-route", name: "admin-configuration-template-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "configuration", module: "template" }, meta: { type: "read", section: "configuration", module: "template" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-settings-template", name: "admin-configuration-template",
component: () => import("@/views/admin/configuration/template/Template.vue"), component: () => import("@/views/admin/configuration/template/Template.vue"),
}, },
{ {
path: "info", path: "info",
name: "admin-settings-template-info", name: "admin-configuration-template-info",
component: () => import("@/views/admin/configuration/template/UsageInfo.vue"), component: () => import("@/views/admin/configuration/template/UsageInfo.vue"),
props: true, props: true,
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-settings-template-edit", name: "admin-configuration-template-edit",
component: () => import("@/views/admin/configuration/template/TemplateEdit.vue"), component: () => import("@/views/admin/configuration/template/TemplateEdit.vue"),
meta: { type: "update", section: "configuration", module: "template" }, meta: { type: "update", section: "configuration", module: "template" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -504,14 +504,14 @@ const router = createRouter({
}, },
{ {
path: "template-usage", path: "template-usage",
name: "admin-settings-template_usage", name: "admin-configuration-template_usage",
component: () => import("@/views/admin/configuration/templateUsage/TemplateUsage.vue"), component: () => import("@/views/admin/configuration/templateUsage/TemplateUsage.vue"),
meta: { type: "read", section: "configuration", module: "template_usage" }, meta: { type: "read", section: "configuration", module: "template_usage" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
}, },
{ {
path: "newsletter-config", path: "newsletter-config",
name: "admin-settings-newsletter_config", name: "admin-configuration-newsletter_config",
component: () => import("@/views/admin/configuration/newsletterConfig/NewsletterConfig.vue"), component: () => import("@/views/admin/configuration/newsletterConfig/NewsletterConfig.vue"),
meta: { type: "read", section: "configuration", module: "newsletter_config" }, meta: { type: "read", section: "configuration", module: "newsletter_config" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -519,39 +519,39 @@ const router = createRouter({
], ],
}, },
{ {
path: "user", path: "management",
name: "admin-user", name: "admin-management",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "management" }, meta: { type: "read", section: "management" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-user-default", name: "admin-management-default",
component: () => import("@/views/admin/ViewSelect.vue"), component: () => import("@/views/admin/ViewSelect.vue"),
meta: { type: "read", section: "management" }, meta: { type: "read", section: "management" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
}, },
{ {
path: "user", path: "user",
name: "admin-user-user-route", name: "admin-management-user-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "management", module: "user" }, meta: { type: "read", section: "management", module: "user" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-user-user", name: "admin-management-user",
component: () => import("@/views/admin/management/user/User.vue"), component: () => import("@/views/admin/management/user/User.vue"),
}, },
{ {
path: "invites", path: "invites",
name: "admin-user-user-invites", name: "admin-management-user-invites",
component: () => import("@/views/admin/management/user/Invite.vue"), component: () => import("@/views/admin/management/user/Invite.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-user-user-edit", name: "admin-management-user-edit",
component: () => import("@/views/admin/management/user/UserEdit.vue"), component: () => import("@/views/admin/management/user/UserEdit.vue"),
meta: { type: "update", section: "management", module: "user" }, meta: { type: "update", section: "management", module: "user" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -559,7 +559,7 @@ const router = createRouter({
}, },
{ {
path: ":id/permission", path: ":id/permission",
name: "admin-user-user-permission", name: "admin-management-user-permission",
component: () => import("@/views/admin/management/user/UserEditPermission.vue"), component: () => import("@/views/admin/management/user/UserEditPermission.vue"),
meta: { type: "update", section: "management", module: "user" }, meta: { type: "update", section: "management", module: "user" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -567,7 +567,7 @@ const router = createRouter({
}, },
{ {
path: ":id/roles", path: ":id/roles",
name: "admin-user-user-roles", name: "admin-management-user-roles",
component: () => import("@/views/admin/management/user/UserEditRoles.vue"), component: () => import("@/views/admin/management/user/UserEditRoles.vue"),
meta: { type: "update", section: "management", module: "user" }, meta: { type: "update", section: "management", module: "user" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -577,19 +577,19 @@ const router = createRouter({
}, },
{ {
path: "role", path: "role",
name: "admin-user-role-route", name: "admin-management-role-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "management", module: "role" }, meta: { type: "read", section: "management", module: "role" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-user-role", name: "admin-management-role",
component: () => import("@/views/admin/management/role/Role.vue"), component: () => import("@/views/admin/management/role/Role.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-user-role-edit", name: "admin-management-role-edit",
component: () => import("@/views/admin/management/role/RoleEdit.vue"), component: () => import("@/views/admin/management/role/RoleEdit.vue"),
meta: { type: "update", section: "management", module: "role" }, meta: { type: "update", section: "management", module: "role" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -597,7 +597,7 @@ const router = createRouter({
}, },
{ {
path: ":id/permission", path: ":id/permission",
name: "admin-user-role-permission", name: "admin-management-role-permission",
component: () => import("@/views/admin/management/role/RoleEditPermission.vue"), component: () => import("@/views/admin/management/role/RoleEditPermission.vue"),
meta: { type: "update", section: "management", module: "role" }, meta: { type: "update", section: "management", module: "role" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -607,19 +607,19 @@ const router = createRouter({
}, },
{ {
path: "webapi", path: "webapi",
name: "admin-user-webapi-route", name: "admin-management-webapi-route",
component: () => import("@/views/RouterView.vue"), component: () => import("@/views/RouterView.vue"),
meta: { type: "read", section: "management", module: "webapi" }, meta: { type: "read", section: "management", module: "webapi" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-user-webapi", name: "admin-management-webapi",
component: () => import("@/views/admin/management/webapi/Webapi.vue"), component: () => import("@/views/admin/management/webapi/Webapi.vue"),
}, },
{ {
path: ":id/edit", path: ":id/edit",
name: "admin-user-webapi-edit", name: "admin-management-webapi-edit",
component: () => import("@/views/admin/management/webapi/WebapiEdit.vue"), component: () => import("@/views/admin/management/webapi/WebapiEdit.vue"),
meta: { type: "update", section: "management", module: "webapi" }, meta: { type: "update", section: "management", module: "webapi" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -627,7 +627,7 @@ const router = createRouter({
}, },
{ {
path: ":id/permission", path: ":id/permission",
name: "admin-user-webapi-permission", name: "admin-management-webapi-permission",
component: () => import("@/views/admin/management/webapi/WebapiEditPermission.vue"), component: () => import("@/views/admin/management/webapi/WebapiEditPermission.vue"),
meta: { type: "update", section: "management", module: "webapi" }, meta: { type: "update", section: "management", module: "webapi" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
@ -637,25 +637,25 @@ const router = createRouter({
}, },
{ {
path: "backup", path: "backup",
name: "admin-user-backup-route", name: "admin-management-backup-route",
component: () => import("@/views/admin/management/backup/BackupRouting.vue"), component: () => import("@/views/admin/management/backup/BackupRouting.vue"),
meta: { type: "read", section: "management", module: "backup" }, meta: { type: "read", section: "management", module: "backup" },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],
children: [ children: [
{ {
path: "", path: "",
name: "admin-user-backup", name: "admin-management-backup",
redirect: { name: "admin-user-backup-generated" }, redirect: { name: "admin-management-backup-generated" },
}, },
{ {
path: "generated", path: "generated",
name: "admin-user-backup-generated", name: "admin-management-backup-generated",
component: () => import("@/views/admin/management/backup/GeneratedBackup.vue"), component: () => import("@/views/admin/management/backup/GeneratedBackup.vue"),
beforeEnter: [setBackupPage], beforeEnter: [setBackupPage],
}, },
{ {
path: "uploads", path: "uploads",
name: "admin-user-backup-uploaded", name: "admin-management-backup-uploaded",
component: () => import("@/views/admin/management/backup/UploadedBackup.vue"), component: () => import("@/views/admin/management/backup/UploadedBackup.vue"),
beforeEnter: [setBackupPage], beforeEnter: [setBackupPage],
}, },
@ -663,7 +663,7 @@ const router = createRouter({
}, },
{ {
path: "version", path: "version",
name: "admin-user-version", name: "admin-management-version",
component: () => import("@/views/admin/management/version/VersionDisplay.vue"), component: () => import("@/views/admin/management/version/VersionDisplay.vue"),
meta: { admin: true }, meta: { admin: true },
beforeEnter: [abilityAndNavUpdate], beforeEnter: [abilityAndNavUpdate],

View file

@ -1,12 +1,11 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import { useAbilityStore } from "@/stores/ability"; import { useAbilityStore } from "@/stores/ability";
import router from "@/router"; import router from "@/router";
import type { PermissionSection } from "../../types/permissionTypes";
export interface navigationModel { export type navigationModel = {
club: navigationSplitModel; [key in topLevelNavigationType]: navigationSplitModel;
settings: navigationSplitModel; };
user: navigationSplitModel;
}
export interface navigationSplitModel { export interface navigationSplitModel {
topTitle?: string; topTitle?: string;
@ -15,7 +14,7 @@ export interface navigationSplitModel {
main: Array<navigationLinkModel>; main: Array<navigationLinkModel>;
} }
export type topLevelNavigationType = "club" | "settings" | "user"; export type topLevelNavigationType = PermissionSection;
export interface topLevelNavigationModel { export interface topLevelNavigationModel {
key: topLevelNavigationType; key: topLevelNavigationType;
@ -61,8 +60,8 @@ export const useNavigationStore = defineStore("navigation", {
...(abilityStore.canSection("read", "configuration") ...(abilityStore.canSection("read", "configuration")
? [ ? [
{ {
key: "settings", key: "configuration",
title: "Einstellungen", title: "Konfiguration",
levelDefault: "salutation", levelDefault: "salutation",
} as topLevelNavigationModel, } as topLevelNavigationModel,
] ]
@ -70,8 +69,8 @@ export const useNavigationStore = defineStore("navigation", {
...(abilityStore.canSection("read", "management") ...(abilityStore.canSection("read", "management")
? [ ? [
{ {
key: "user", key: "management",
title: "Benutzer", title: "Verwaltung",
levelDefault: "user", levelDefault: "user",
} as topLevelNavigationModel, } as topLevelNavigationModel,
] ]
@ -95,7 +94,7 @@ export const useNavigationStore = defineStore("navigation", {
...(abilityStore.can("read", "club", "query") ? [{ key: "query_builder", title: "Query Builder" }] : []), ...(abilityStore.can("read", "club", "query") ? [{ key: "query_builder", title: "Query Builder" }] : []),
], ],
}, },
settings: { configuration: {
mainTitle: "Einstellungen", mainTitle: "Einstellungen",
main: [ main: [
{ key: "divider1", title: "Mitgliederdaten" }, { key: "divider1", title: "Mitgliederdaten" },
@ -131,7 +130,7 @@ export const useNavigationStore = defineStore("navigation", {
: []), : []),
], ],
}, },
user: { management: {
mainTitle: "Benutzer", mainTitle: "Benutzer",
main: [ main: [
...(abilityStore.can("read", "management", "user") ? [{ key: "user", title: "Benutzer" }] : []), ...(abilityStore.can("read", "management", "user") ? [{ key: "user", title: "Benutzer" }] : []),

View file

@ -3,7 +3,7 @@
<template #topBar> <template #topBar>
<div class="flex flex-row items-center justify-between pt-5 pb-3 px-7"> <div class="flex flex-row items-center justify-between pt-5 pb-3 px-7">
<h1 class="font-bold text-xl h-8">Templates</h1> <h1 class="font-bold text-xl h-8">Templates</h1>
<RouterLink :to="{ name: 'admin-settings-template-info' }"> <RouterLink :to="{ name: 'admin-configuration-template-info' }">
<InformationCircleIcon class="text-gray-500 h-5 w-5" /> <InformationCircleIcon class="text-gray-500 h-5 w-5" />
</RouterLink> </RouterLink>
</div> </div>

View file

@ -48,8 +48,8 @@ export default defineComponent({
data() { data() {
return { return {
tabs: [ tabs: [
{ route: "admin-user-backup-generated", title: "Erstellt" }, { route: "admin-management-backup-generated", title: "Erstellt" },
{ route: "admin-user-backup-uploaded", title: "Uploads" }, { route: "admin-management-backup-uploaded", title: "Uploads" },
], ],
}; };
}, },

View file

@ -1,7 +1,7 @@
<template> <template>
<MainTemplate> <MainTemplate>
<template #headerInsert> <template #headerInsert>
<RouterLink :to="{ name: 'admin-user-user' }" class="text-primary">zurück zur Nutzerliste</RouterLink> <RouterLink :to="{ name: 'admin-management-user' }" class="text-primary">zurück zur Nutzerliste</RouterLink>
</template> </template>
<template #topBar> <template #topBar>
<div class="flex flex-row items-center justify-between pt-5 pb-3 px-7"> <div class="flex flex-row items-center justify-between pt-5 pb-3 px-7">

View file

@ -14,7 +14,7 @@
<button v-if="can('create', 'management', 'user')" primary class="!w-fit" @click="inviteUser"> <button v-if="can('create', 'management', 'user')" primary class="!w-fit" @click="inviteUser">
Nutzer einladen Nutzer einladen
</button> </button>
<RouterLink button primary-outline :to="{ name: 'admin-user-user-invites' }" class="!w-fit"> <RouterLink button primary-outline :to="{ name: 'admin-management-user-invites' }" class="!w-fit">
offene Einladungen offene Einladungen
</RouterLink> </RouterLink>
</div> </div>