agola-web/src/router.js
Simone Gotti 4d0d4eb32c Initial user settings
and user token creation
2019-04-03 17:51:41 +02:00

280 lines
10 KiB
JavaScript

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "./views/Home.vue";
import User from "./views/User.vue";
import Org from "./views/Org.vue";
import Project from "./views/Project.vue";
import ProjectGroup from "./views/ProjectGroup.vue";
import usersettings from "./components/usersettings.vue";
import projects from "./components/projects.vue";
import projectsettings from "./components/projectsettings.vue";
import projectgroupsettings from "./components/projectgroupsettings.vue";
import runs from "./components/runs.vue";
import run from "./components/run.vue";
import task from "./components/task.vue";
import Oauth2 from "./views/Oauth2.vue";
import Register from "./views/Register.vue";
import Login from "./views/Login.vue";
import Logout from "./views/Logout.vue";
import { parseRef } from "@/util/link.js";
Vue.use(VueRouter);
export default new VueRouter({
mode: "history",
routes: [
{
path: "/register",
name: "register",
component: Register,
},
{
path: "/login",
name: "login",
component: Login
},
{
path: "/logout",
name: "logout",
component: Logout
},
{
path: "/oauth2/callback",
name: "oauth2callback",
component: Oauth2
},
{
path: "/",
name: "home",
component: Home
},
{
path: "/user/:username",
component: User,
props: (route) => ({ username: route.params.username }),
children: [
{
path: "",
name: "user",
component: projects,
props: (route) => ({ ownertype: "user", ownername: route.params.username })
},
{
path: "projects",
name: "user projects",
component: projects,
props: (route) => ({ ownertype: "user", ownername: route.params.username })
},
{
path: "runs",
name: "user local runs",
component: runs,
props: (route) => ({ ownertype: "user", username: route.params.username })
},
{
path: "runs/:runid",
name: "user local run",
component: run,
props: (route) => ({ ownertype: "user", ownername: route.params.username, runid: route.params.runid })
},
{
path: "runs/:runid/tasks/:taskid",
name: "user local run task",
component: task,
props: (route) => ({ ownertype: "user", ownername: route.params.username, runid: route.params.runid, taskid: route.params.taskid })
},
{
path: "settings",
name: "user settings",
component: usersettings,
props: (route) => ({ username: route.params.username }),
},
]
},
{
path: "/user/:username/projects/:projectref(.*\\.proj)",
component: Project,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref) }),
children: [
{
path: "",
name: "user project",
component: runs,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref) })
},
{
path: "runs",
name: "user project runs",
component: runs,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref) })
},
{
path: "branches",
name: "user project branches runs",
component: runs,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref), query: "branches" })
},
{
path: "tags",
name: "user project tags runs",
component: runs,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref), query: "tags" })
},
{
path: "pullrequests",
name: "user project pull requests runs",
component: runs,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref), query: "pullrequests" })
},
{
path: "runs/:runid",
name: "user project run",
component: run,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref), runid: route.params.runid })
},
{
path: "runs/:runid/tasks/:taskid",
name: "user project run task",
component: task,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref), runid: route.params.runid, taskid: route.params.taskid })
},
{
path: "settings",
name: "user project settings",
component: projectsettings,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectref: parseRef(route.params.projectref) })
},
]
},
{
path: "/user/:username/projectgroups/:projectgroupref(.*\\.proj)",
component: ProjectGroup,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectgroupref: parseRef(route.params.projectgroupref) }),
children: [
{
path: "",
name: "user project group",
component: projects,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectgroupref: parseRef(route.params.projectgroupref) }),
},
{
path: "projects",
name: "user project group projects",
component: projects,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectgroupref: parseRef(route.params.projectgroupref) })
},
{
path: "settings",
name: "user project group settings",
component: projectgroupsettings,
props: (route) => ({ ownertype: "user", ownername: route.params.username, projectgroupref: parseRef(route.params.projectgroupref) })
},
]
},
{
path: "/org/:orgname",
component: Org,
props: (route) => ({ orgname: route.params.orgname }),
children: [
{
path: "",
name: "org",
component: projects,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname })
},
{
path: "projects",
name: "org projects",
component: projects,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname })
},
]
},
{
path: "/org/:orgname/projects/:projectref(.*\\.proj)",
component: Project,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref) }),
children: [
{
path: "",
name: "org project",
component: runs,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref) })
},
{
path: "runs",
name: "org project runs",
component: runs,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref) })
},
{
path: "branches",
name: "org project branches runs",
component: runs,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref), query: "branches" })
},
{
path: "tags",
name: "org project tags runs",
component: runs,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref), query: "tags" })
},
{
path: "pullrequests",
name: "org project pull requests runs",
component: runs,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref), query: "pullrequests" })
},
{
path: "runs/:runid",
name: "org project run",
component: run,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref), runid: route.params.runid })
},
{
path: "runs/:runid/tasks/:taskid",
name: "org project run task",
component: task,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref), runid: route.params.runid, taskid: route.params.taskid })
},
{
path: "settings",
name: "org project settings",
component: projectsettings,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectref: parseRef(route.params.projectref) })
},
]
},
{
path: "/org/:orgname/projectgroups/:projectgroupref(.*\\.proj)",
component: ProjectGroup,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectgroupref: parseRef(route.params.projectgroupref) }),
children: [
{
path: "",
name: "org project group",
component: projects,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectgroupref: parseRef(route.params.projectgroupref) }),
},
{
path: "projects",
name: "org project group projects",
component: projects,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectgroupref: parseRef(route.params.projectgroupref) })
},
{
path: "settings",
name: "org project group settings",
component: projectgroupsettings,
props: (route) => ({ ownertype: "org", ownername: route.params.orgname, projectgroupref: parseRef(route.params.projectgroupref) })
},
]
},
]
});