71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import { RouteConfig } from 'vue-router';
|
|
import TodoLists from '@/views/Todos/TodoLists.vue';
|
|
import TodoList from '@/views/Todos/TodoList.vue';
|
|
import Todo from '@/views/Todos/Todo.vue';
|
|
import Settings from '@/views/Group/Settings.vue';
|
|
import Resources from '@/views/Resources/Resources.vue';
|
|
import ResourceFolder from '@/views/Resources/ResourceFolder.vue';
|
|
|
|
export enum GroupsRouteName {
|
|
TODO_LISTS = 'TODO_LISTS',
|
|
TODO_LIST = 'TODO_LIST',
|
|
TODO = 'TODO',
|
|
GROUP_SETTINGS = 'GROUP_SETTINGS',
|
|
PUBLIC_SETTINGS = 'PUBLIC_SETTINGS',
|
|
RESOURCES = 'RESOURCES',
|
|
RESOURCE_FOLDER_ROOT = 'RESOURCE_FOLDER_ROOT',
|
|
RESOURCE_FOLDER = 'RESOURCE_FOLDER',
|
|
}
|
|
|
|
export const groupsRoutes: RouteConfig[] = [
|
|
{
|
|
path: '/@:preferredUsername/todo-lists',
|
|
name: GroupsRouteName.TODO_LISTS,
|
|
component: TodoLists,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/todo-lists/:id',
|
|
name: GroupsRouteName.TODO_LIST,
|
|
component: TodoList,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/todo/:todoId',
|
|
name: GroupsRouteName.TODO,
|
|
component: Todo,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/@:preferredUsername/resources',
|
|
name: GroupsRouteName.RESOURCE_FOLDER_ROOT,
|
|
component: ResourceFolder,
|
|
props: { path: '/' },
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/@:preferredUsername/resources/:path+',
|
|
name: GroupsRouteName.RESOURCE_FOLDER,
|
|
component: ResourceFolder,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
},
|
|
{
|
|
path: '/settings',
|
|
component: Settings,
|
|
props: true,
|
|
meta: { requiredAuth: true },
|
|
redirect: { name: GroupsRouteName.PUBLIC_SETTINGS },
|
|
name: GroupsRouteName.GROUP_SETTINGS,
|
|
children: [
|
|
{
|
|
path: 'public',
|
|
name: GroupsRouteName.PUBLIC_SETTINGS,
|
|
},
|
|
],
|
|
},
|
|
];
|