2021-10-10 16:24:12 +02:00
|
|
|
import { i18n } from "@/utils/i18n";
|
2022-07-12 10:55:28 +02:00
|
|
|
import { RouteLocationNormalized, RouteRecordRaw } from "vue-router";
|
|
|
|
|
|
|
|
const { t } = i18n.global;
|
2020-03-12 14:29:21 +01:00
|
|
|
|
|
|
|
export enum SettingsRouteName {
|
2020-02-18 08:57:00 +01:00
|
|
|
SETTINGS = "SETTINGS",
|
|
|
|
ACCOUNT_SETTINGS = "ACCOUNT_SETTINGS",
|
|
|
|
ACCOUNT_SETTINGS_GENERAL = "ACCOUNT_SETTINGS_GENERAL",
|
|
|
|
PREFERENCES = "PREFERENCES",
|
|
|
|
NOTIFICATIONS = "NOTIFICATIONS",
|
|
|
|
ADMIN = "ADMIN",
|
|
|
|
ADMIN_DASHBOARD = "ADMIN_DASHBOARD",
|
|
|
|
ADMIN_SETTINGS = "ADMIN_SETTINGS",
|
2021-12-28 11:42:08 +01:00
|
|
|
INSTANCES = "INSTANCES",
|
|
|
|
INSTANCE = "INSTANCE",
|
2020-06-11 19:13:21 +02:00
|
|
|
USERS = "USERS",
|
|
|
|
PROFILES = "PROFILES",
|
|
|
|
ADMIN_PROFILE = "ADMIN_PROFILE",
|
|
|
|
ADMIN_USER_PROFILE = "ADMIN_USER_PROFILE",
|
2020-08-27 11:53:24 +02:00
|
|
|
ADMIN_GROUPS = "ADMIN_GROUPS",
|
|
|
|
ADMIN_GROUP_PROFILE = "ADMIN_GROUP_PROFILE",
|
2020-02-18 08:57:00 +01:00
|
|
|
MODERATION = "MODERATION",
|
2022-01-10 10:17:50 +01:00
|
|
|
REPORTS = "REPORTS",
|
2020-02-18 08:57:00 +01:00
|
|
|
REPORT = "Report",
|
|
|
|
REPORT_LOGS = "Logs",
|
|
|
|
CREATE_IDENTITY = "CreateIdentity",
|
|
|
|
UPDATE_IDENTITY = "UpdateIdentity",
|
|
|
|
IDENTITIES = "IDENTITIES",
|
2020-03-12 14:29:21 +01:00
|
|
|
}
|
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
export const settingsRoutes: RouteRecordRaw[] = [
|
2020-03-12 14:29:21 +01:00
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/settings",
|
2022-07-12 10:55:28 +02:00
|
|
|
component: () => import("@/views/SettingsView.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-03-12 14:29:21 +01:00
|
|
|
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS },
|
|
|
|
name: SettingsRouteName.SETTINGS,
|
|
|
|
children: [
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "account",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.ACCOUNT_SETTINGS,
|
|
|
|
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL },
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: { skip: true },
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "account/general",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Settings/AccountSettings.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Account settings") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "preferences",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.PREFERENCES,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Settings/PreferencesView.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
2022-07-12 10:55:28 +02:00
|
|
|
announcer: { message: (): string => t("Preferences") as string },
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "notifications",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.NOTIFICATIONS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Settings/NotificationsView.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Notifications") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "admin",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.ADMIN,
|
|
|
|
redirect: { name: SettingsRouteName.ADMIN_DASHBOARD },
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "admin/dashboard",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.ADMIN_DASHBOARD,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Dashboard.vue"),
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Admin dashboard") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "admin/settings",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.ADMIN_SETTINGS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Settings.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Admin settings") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
2020-06-11 19:13:21 +02:00
|
|
|
{
|
|
|
|
path: "admin/users",
|
|
|
|
name: SettingsRouteName.USERS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Users.vue"),
|
2020-06-11 19:13:21 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
2022-07-12 10:55:28 +02:00
|
|
|
announcer: { message: (): string => t("Users") as string },
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
2020-06-11 19:13:21 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
path: "admin/users/:id",
|
|
|
|
name: SettingsRouteName.ADMIN_USER_PROFILE,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Admin/AdminUserProfile.vue"),
|
2020-06-11 19:13:21 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: { skip: true },
|
|
|
|
},
|
2020-06-11 19:13:21 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
path: "admin/profiles",
|
|
|
|
name: SettingsRouteName.PROFILES,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Profiles.vue"),
|
2020-06-11 19:13:21 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
2022-07-12 10:55:28 +02:00
|
|
|
announcer: { message: (): string => t("Profiles") as string },
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
2020-06-11 19:13:21 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
path: "admin/profiles/:id",
|
|
|
|
name: SettingsRouteName.ADMIN_PROFILE,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/AdminProfile.vue"),
|
2020-06-11 19:13:21 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-06-11 19:13:21 +02:00
|
|
|
},
|
2020-08-27 11:53:24 +02:00
|
|
|
{
|
|
|
|
path: "admin/groups",
|
|
|
|
name: SettingsRouteName.ADMIN_GROUPS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Admin/GroupProfiles.vue"),
|
2020-08-27 11:53:24 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Group profiles") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-08-27 11:53:24 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
path: "admin/groups/:id",
|
|
|
|
name: SettingsRouteName.ADMIN_GROUP_PROFILE,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Admin/AdminGroupProfile.vue"),
|
2020-08-27 11:53:24 +02:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-08-27 11:53:24 +02:00
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
{
|
2021-12-28 11:42:08 +01:00
|
|
|
path: "admin/instances",
|
|
|
|
name: SettingsRouteName.INSTANCES,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Instances.vue"),
|
2021-12-28 11:42:08 +01:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Instances") as string,
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
2021-12-28 11:42:08 +01:00
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
|
|
|
},
|
2021-12-28 11:42:08 +01:00
|
|
|
{
|
|
|
|
path: "admin/instances/:domain",
|
|
|
|
name: SettingsRouteName.INSTANCE,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Admin/Instance.vue"),
|
2021-12-28 11:42:08 +01:00
|
|
|
props: true,
|
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Instance") as string,
|
2021-12-28 11:42:08 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/moderation",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.MODERATION,
|
|
|
|
redirect: { name: SettingsRouteName.REPORTS },
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2022-01-10 10:17:50 +01:00
|
|
|
path: "/moderation/reports",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.REPORTS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Moderation/ReportList.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Reports list") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/moderation/report/:reportId",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.REPORT,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Moderation/Report.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
2022-07-12 10:55:28 +02:00
|
|
|
announcer: { message: (): string => t("Report") as string },
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/moderation/logs",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.REPORT_LOGS,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> => import("@/views/Moderation/Logs.vue"),
|
2020-03-12 14:29:21 +01:00
|
|
|
props: true,
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Moderation logs") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/identity",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.IDENTITIES,
|
|
|
|
redirect: { name: SettingsRouteName.UPDATE_IDENTITY },
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/identity/create",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.CREATE_IDENTITY,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Account/children/EditIdentity.vue"),
|
|
|
|
props: (route: RouteLocationNormalized): Record<string, unknown> => ({
|
2020-11-27 19:27:44 +01:00
|
|
|
identityName: route.params.identityName,
|
|
|
|
isUpdate: false,
|
|
|
|
}),
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: {
|
|
|
|
requiredAuth: true,
|
|
|
|
announcer: {
|
2022-07-12 10:55:28 +02:00
|
|
|
message: (): string => t("Create identity") as string,
|
2021-10-10 16:24:12 +02:00
|
|
|
},
|
|
|
|
},
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
{
|
2020-02-18 08:57:00 +01:00
|
|
|
path: "/identity/update/:identityName?",
|
2020-03-12 14:29:21 +01:00
|
|
|
name: SettingsRouteName.UPDATE_IDENTITY,
|
2022-07-12 10:55:28 +02:00
|
|
|
component: (): Promise<any> =>
|
|
|
|
import("@/views/Account/children/EditIdentity.vue"),
|
|
|
|
props: (route: RouteLocationNormalized): Record<string, unknown> => ({
|
2020-11-27 19:27:44 +01:00
|
|
|
identityName: route.params.identityName,
|
|
|
|
isUpdate: true,
|
|
|
|
}),
|
2021-10-10 16:24:12 +02:00
|
|
|
meta: { requiredAuth: true, announcer: { skip: true } },
|
2020-03-12 14:29:21 +01:00
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
];
|