157 lines
4.7 KiB
TypeScript
157 lines
4.7 KiB
TypeScript
import { RouteConfig } from 'vue-router';
|
|
import Settings from '@/views/Settings.vue';
|
|
import AccountSettings from '@/views/Settings/AccountSettings.vue';
|
|
import Preferences from '@/views/Settings/Preferences.vue';
|
|
import Notifications from '@/views/Settings/Notifications.vue';
|
|
import Dashboard from '@/views/Admin/Dashboard.vue';
|
|
import AdminSettings from '@/views/Admin/Settings.vue';
|
|
import Follows from '@/views/Admin/Follows.vue';
|
|
import Followings from '@/components/Admin/Followings.vue';
|
|
import Followers from '@/components/Admin/Followers.vue';
|
|
import ReportList from '@/views/Moderation/ReportList.vue';
|
|
import Report from '@/views/Moderation/Report.vue';
|
|
import Logs from '@/views/Moderation/Logs.vue';
|
|
import EditIdentity from '@/views/Account/children/EditIdentity.vue';
|
|
|
|
|
|
export enum SettingsRouteName {
|
|
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',
|
|
RELAYS = 'Relays',
|
|
RELAY_FOLLOWINGS = 'Followings',
|
|
RELAY_FOLLOWERS = 'Followers',
|
|
MODERATION = 'MODERATION',
|
|
REPORTS = 'Reports',
|
|
REPORT = 'Report',
|
|
REPORT_LOGS = 'Logs',
|
|
CREATE_IDENTITY = 'CreateIdentity',
|
|
UPDATE_IDENTITY = 'UpdateIdentity',
|
|
IDENTITIES = 'IDENTITIES',
|
|
}
|
|
|
|
export const settingsRoutes: RouteConfig[] = [
|
|
{
|
|
path: '/settings',
|
|
component: Settings,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS },
|
|
name: SettingsRouteName.SETTINGS,
|
|
children: [
|
|
{
|
|
path: 'account',
|
|
name: SettingsRouteName.ACCOUNT_SETTINGS,
|
|
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL },
|
|
},
|
|
{
|
|
path: 'account/general',
|
|
name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL,
|
|
component: AccountSettings,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: 'preferences',
|
|
name: SettingsRouteName.PREFERENCES,
|
|
component: Preferences,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: 'notifications',
|
|
name: SettingsRouteName.NOTIFICATIONS,
|
|
component: Notifications,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: 'admin',
|
|
name: SettingsRouteName.ADMIN,
|
|
redirect: { name: SettingsRouteName.ADMIN_DASHBOARD },
|
|
},
|
|
{
|
|
path: 'admin/dashboard',
|
|
name: SettingsRouteName.ADMIN_DASHBOARD,
|
|
component: Dashboard,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: 'admin/settings',
|
|
name: SettingsRouteName.ADMIN_SETTINGS,
|
|
component: AdminSettings,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: 'admin/relays',
|
|
name: SettingsRouteName.RELAYS,
|
|
redirect: { name: SettingsRouteName.RELAY_FOLLOWINGS },
|
|
component: Follows,
|
|
children: [
|
|
{
|
|
path: 'followings',
|
|
name: SettingsRouteName.RELAY_FOLLOWINGS,
|
|
component: Followings,
|
|
},
|
|
{
|
|
path: 'followers',
|
|
name: SettingsRouteName.RELAY_FOLLOWERS,
|
|
component: Followers,
|
|
},
|
|
],
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/moderation',
|
|
name: SettingsRouteName.MODERATION,
|
|
redirect: { name: SettingsRouteName.REPORTS },
|
|
},
|
|
{
|
|
path: '/moderation/reports/:filter?',
|
|
name: SettingsRouteName.REPORTS,
|
|
component: ReportList,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/moderation/report/:reportId',
|
|
name: SettingsRouteName.REPORT,
|
|
component: Report,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/moderation/logs',
|
|
name: SettingsRouteName.REPORT_LOGS,
|
|
component: Logs,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/identity',
|
|
name: SettingsRouteName.IDENTITIES,
|
|
redirect: { name: SettingsRouteName.UPDATE_IDENTITY },
|
|
},
|
|
{
|
|
path: '/identity/create',
|
|
name: SettingsRouteName.CREATE_IDENTITY,
|
|
component: EditIdentity,
|
|
props: (route) => ({ identityName: route.params.identityName, isUpdate: false }),
|
|
},
|
|
{
|
|
path: '/identity/update/:identityName?',
|
|
name: SettingsRouteName.UPDATE_IDENTITY,
|
|
component: EditIdentity,
|
|
props: (route) => ({ identityName: route.params.identityName, isUpdate: true }),
|
|
},
|
|
],
|
|
},
|
|
];
|