forked from vikunja/frontend
konrad
6b1ebbabb7
Fix saving Cleanup Fix single value prepare Add prepare percent done stub Fix populating filters with saved values when editing for single values Fix populating filters with saved values when editing Add edit filter view page Hide adding new tasks to pseudolists Make sure all filter values are passed as strings as per requirement from the api Add redirect to list after creating it Add creating saved filter Add filter by percent done Add end date filter Add start date filter Add extra checkbox to enable/disable priority filter Add changing priority Add more filter stubs Fix dates for filters Add saved filter create form Add include nulls and concat to filter options Add new saved filter component Co-authored-by: kolaente <k@knt.li> Reviewed-on: vikunja/frontend#239 Co-Authored-By: konrad <konrad@kola-entertainments.de> Co-Committed-By: konrad <konrad@kola-entertainments.de>
271 lines
6.7 KiB
JavaScript
271 lines
6.7 KiB
JavaScript
import Vue from 'vue'
|
|
import Router from 'vue-router'
|
|
|
|
import HomeComponent from '../views/Home'
|
|
import NotFoundComponent from '../views/404'
|
|
import LoadingComponent from '../components/misc/loading'
|
|
import ErrorComponent from '../components/misc/error'
|
|
// User Handling
|
|
import LoginComponent from '../views/user/Login'
|
|
import RegisterComponent from '../views/user/Register'
|
|
// Tasks
|
|
import ShowTasksInRangeComponent from '../views/tasks/ShowTasksInRange'
|
|
import LinkShareAuthComponent from '../views/sharing/LinkSharingAuth'
|
|
import TaskDetailViewModal from '../views/tasks/TaskDetailViewModal'
|
|
import TaskDetailView from '../views/tasks/TaskDetailView'
|
|
import ListNamespaces from '../views/namespaces/ListNamespaces'
|
|
// Team Handling
|
|
import ListTeamsComponent from '../views/teams/ListTeams'
|
|
// Label Handling
|
|
import ListLabelsComponent from '../views/labels/ListLabels'
|
|
// Migration
|
|
import MigrationComponent from '../views/migrator/Migrate'
|
|
import MigrateServiceComponent from '../views/migrator/MigrateService'
|
|
// List Views
|
|
import ShowListComponent from '../views/list/ShowList'
|
|
import Kanban from '../views/list/views/Kanban'
|
|
import List from '../views/list/views/List'
|
|
import Gantt from '../views/list/views/Gantt'
|
|
import Table from '../views/list/views/Table'
|
|
// Saved Filters
|
|
import CreateSavedFilter from '@/views/filters/CreateSavedFilter'
|
|
|
|
const PasswordResetComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "user-settings" */'../views/user/PasswordReset'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
const GetPasswordResetComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "user-settings" */'../views/user/RequestPasswordReset'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
const UserSettingsComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "user-settings" */'../views/user/Settings'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
// List Handling
|
|
const NewListComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/list/NewList'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
const EditListComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/list/EditListView'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
// Namespace Handling
|
|
const NewNamespaceComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/namespaces/NewNamespace'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
const EditNamespaceComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/namespaces/EditNamespace'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
|
|
const EditTeamComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/teams/EditTeam'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
const NewTeamComponent = () => ({
|
|
component: import(/* webpackPrefetch: true *//* webpackChunkName: "settings" */'../views/teams/NewTeam'),
|
|
loading: LoadingComponent,
|
|
error: ErrorComponent,
|
|
timeout: 60000,
|
|
})
|
|
|
|
Vue.use(Router)
|
|
|
|
export default new Router({
|
|
mode: 'history',
|
|
scrollBehavior(to, from, savedPosition) {
|
|
// If the user is using their forward/backward keys to navigate, we want to restore the scroll view
|
|
if (savedPosition) {
|
|
return savedPosition
|
|
}
|
|
|
|
// Scroll to anchor should still work
|
|
if (to.hash) {
|
|
return {
|
|
selector: to.hash,
|
|
}
|
|
}
|
|
|
|
// Otherwise just scroll to the top
|
|
return {x: 0, y: 0}
|
|
},
|
|
routes: [
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: HomeComponent,
|
|
},
|
|
{
|
|
path: '*',
|
|
name: '404',
|
|
component: NotFoundComponent,
|
|
},
|
|
{
|
|
path: '/login',
|
|
name: 'user.login',
|
|
component: LoginComponent,
|
|
},
|
|
{
|
|
path: '/get-password-reset',
|
|
name: 'user.password-reset.request',
|
|
component: GetPasswordResetComponent,
|
|
},
|
|
{
|
|
path: '/password-reset',
|
|
name: 'user.password-reset.reset',
|
|
component: PasswordResetComponent,
|
|
},
|
|
{
|
|
path: '/register',
|
|
name: 'user.register',
|
|
component: RegisterComponent,
|
|
},
|
|
{
|
|
path: '/user/settings',
|
|
name: 'user.settings',
|
|
component: UserSettingsComponent,
|
|
},
|
|
{
|
|
path: '/share/:share/auth',
|
|
name: 'link-share.auth',
|
|
component: LinkShareAuthComponent,
|
|
},
|
|
{
|
|
path: '/namespaces',
|
|
name: 'namespaces.index',
|
|
component: ListNamespaces,
|
|
},
|
|
{
|
|
path: '/namespaces/new',
|
|
name: 'namespace.create',
|
|
component: NewNamespaceComponent,
|
|
},
|
|
{
|
|
path: '/namespaces/:id/edit',
|
|
name: 'namespace.edit',
|
|
component: EditNamespaceComponent,
|
|
},
|
|
{
|
|
path: '/namespaces/:id/list',
|
|
name: 'list.create',
|
|
component: NewListComponent,
|
|
},
|
|
{
|
|
path: '/lists/:id/edit',
|
|
name: 'list.edit',
|
|
component: EditListComponent,
|
|
},
|
|
{
|
|
path: '/tasks/:id',
|
|
name: 'task.detail',
|
|
component: TaskDetailView,
|
|
},
|
|
{
|
|
path: '/tasks/by/:type',
|
|
name: 'tasks.range',
|
|
component: ShowTasksInRangeComponent,
|
|
},
|
|
{
|
|
path: '/lists/:listId',
|
|
name: 'list.index',
|
|
component: ShowListComponent,
|
|
children: [
|
|
{
|
|
path: '/lists/:listId/list',
|
|
name: 'list.list',
|
|
component: List,
|
|
children: [
|
|
{
|
|
path: '/tasks/:id',
|
|
name: 'task.list.detail',
|
|
component: TaskDetailViewModal,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/lists/:listId/gantt',
|
|
name: 'list.gantt',
|
|
component: Gantt,
|
|
children: [
|
|
{
|
|
path: '/tasks/:id',
|
|
name: 'task.gantt.detail',
|
|
component: TaskDetailViewModal,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/lists/:listId/table',
|
|
name: 'list.table',
|
|
component: Table,
|
|
},
|
|
{
|
|
path: '/lists/:listId/kanban',
|
|
name: 'list.kanban',
|
|
component: Kanban,
|
|
children: [
|
|
{
|
|
path: '/tasks/:id',
|
|
name: 'task.kanban.detail',
|
|
component: TaskDetailViewModal,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/teams',
|
|
name: 'teams.index',
|
|
component: ListTeamsComponent,
|
|
},
|
|
{
|
|
path: '/teams/new',
|
|
name: 'teams.create',
|
|
component: NewTeamComponent,
|
|
},
|
|
{
|
|
path: '/teams/:id/edit',
|
|
name: 'teams.edit',
|
|
component: EditTeamComponent,
|
|
},
|
|
{
|
|
path: '/labels',
|
|
name: 'labels.index',
|
|
component: ListLabelsComponent,
|
|
},
|
|
{
|
|
path: '/migrate',
|
|
name: 'migrate.start',
|
|
component: MigrationComponent,
|
|
},
|
|
{
|
|
path: '/migrate/:service',
|
|
name: 'migrate.service',
|
|
component: MigrateServiceComponent,
|
|
},
|
|
{
|
|
path: '/filters/new',
|
|
name: 'filters.create',
|
|
component: CreateSavedFilter,
|
|
},
|
|
],
|
|
}) |