@nodefony/monitoring-bundle
Version:
244 lines (227 loc) • 5.79 kB
JavaScript
import {
createRouter,
createWebHistory
} from "vue-router";
import Store from "@/store";
import HomeView from "@/views/Home.vue";
import Login from "@/views/Login.vue";
import UserHome from "@/views/users/UsersHome.vue";
import UserProfile from "@/views/users/UserProfile.vue";
import UserStepper from "@/views/users/UserStepper.vue";
import Npm from "@/views/npm/npm.vue";
import Routes from "@/views/router/routes.vue";
import Sessions from "@/views/sessions/sessions.vue";
import Reveal from "@/views/presentations/slides/reveal.vue";
import Bundles from "@/views/bundles/Bundle.vue";
import DatabaseDashboard from "@/views/databases/Dashboard.vue";
import Entity from "@/views/databases/Entity";
import Connectors from "@/views/databases/Connector.vue";
import DashboardMonitoring from "@/views/monitoring/Dashboard.vue";
// profiling
import DashboardProfiling from "@/views/profiling/Dashboard.vue";
import RequestsProfiling from "@/views/profiling/Requests.vue";
import RequestProfiling from "@/views/profiling/Request.vue";
// Doc
import Readme from "@/views//nodefony/Readme.vue";
import Swagger from "@/views/documentation/Swagger.vue";
import Graphigl from "@/views/documentation/Graphigl.vue";
import Documentation from "@/views/documentation/Documentation";
// logs
import Logs from "@/views/logs/Logs.vue";
// service
import Service from "@/views/service/Service.vue";
// migrate
import Migrate from "@/views/migrate/Migrate.vue";
// firewall
import Firewall from "@/views/firewall/Firewall.vue";
// PM2
import Pm2 from "@/views/pm2/Pm2.vue";
const ifAuthenticated = (to, from, next) => {
if (Store.getters.isAuthenticated) {
const redirect = window.sessionStorage.getItem("redirect");
if (redirect && !from.name && to.name === "Home") {
const res = JSON.parse(redirect);
window.sessionStorage.removeItem("redirect");
return next({
name: res.routeName,
params: res.params
});
}
return next();
}
try {
return next({
name: "Login"
});
} catch (e) {
return document.location = "/nodefony/login";
}
};
const allReadyLogin = (to, from, next) => {
if (Store.getters.isAuthenticated) {
return next({
name: "Home"
});
}
return next();
};
const routes = [
{
path: "/",
redirect: {
name: "Home"
}
}, {
path: "/home",
name: "Home",
component: HomeView,
beforeEnter: ifAuthenticated
}, {
path: "/login",
name: "Login",
component: Login,
beforeEnter: allReadyLogin
}, {
path: "/users",
name: "usersHome",
component: UserHome,
beforeEnter: ifAuthenticated
}, {
path: "/users/add",
name: "UserStepper",
component: UserStepper,
beforeEnter: ifAuthenticated
}, {
path: "/users/:username",
name: "UserProfile",
props: true,
component: UserProfile,
beforeEnter: ifAuthenticated
}, {
path: "/npm",
name: "Npm",
component: Npm,
beforeEnter: ifAuthenticated
}, {
path: "/routes",
name: "Routes",
component: Routes,
beforeEnter: ifAuthenticated
}, {
path: "/sessions",
name: "Sessions",
component: Sessions,
beforeEnter: ifAuthenticated
}, {
path: "/swagger",
name: "Swagger",
component: Swagger,
beforeEnter: ifAuthenticated
}, {
path: "/documentation",
name: "Documentation",
component: Documentation,
beforeEnter: ifAuthenticated
}, {
path: "/graphigl",
name: "Graphigl",
component: Graphigl,
beforeEnter: ifAuthenticated
}, {
path: "/presentation",
name: "Reveal",
component: Reveal,
beforeEnter: ifAuthenticated
}, {
path: "/bundle/:name",
name: "Bundles",
props: true,
component: Bundles,
beforeEnter: ifAuthenticated
}, {
path: "/database",
name: "DatabaseDashboard",
component: DatabaseDashboard,
beforeEnter: ifAuthenticated,
children: [{
path: "entity/:name",
name: "OrmEntity",
props: true,
components: {
orm: Entity
}
}, {
path: "/database/connectors/:name/schema",
name: "ConnectorsSchema",
props: true,
components: {
orm: Connectors
}
}]
}, {
path: "/database/connectors/:name",
name: "Connectors",
props: true,
component: Connectors,
beforeEnter: ifAuthenticated
}, {
path: "/readme",
name: "nodefonyreadme",
component: Readme,
beforeEnter: ifAuthenticated
}, {
path: "/monitoring/dashboard",
name: "DashboardMonitoring",
component: DashboardMonitoring,
beforeEnter: ifAuthenticated
}, {
path: "/profiling/dashboard",
name: "DashboardProfiling",
component: DashboardProfiling,
beforeEnter: ifAuthenticated
}, {
path: "/profiling/requests",
name: "RequestsProfiling",
component: RequestsProfiling,
beforeEnter: ifAuthenticated
}, {
path: "/profiling/requests/:id",
name: "RequestProfiling",
props: true,
component: RequestProfiling,
beforeEnter: ifAuthenticated
}, {
path: "/services",
name: "Services",
component: Service,
beforeEnter: ifAuthenticated
}, {
path: "/logs",
name: "Logs",
component: Logs,
beforeEnter: ifAuthenticated
}, {
path: "/migrate/status",
name: "Migrate",
component: Migrate,
beforeEnter: ifAuthenticated
}, {
path: "/firewall/home",
name: "Firewall",
component: Firewall,
beforeEnter: ifAuthenticated
}, {
path: "/pm2/home",
name: "PM2",
component: Pm2,
beforeEnter: ifAuthenticated
}, {
path: "/:pathMatch(.*)",
component: HomeView
}
];
const router = createRouter({
history: createWebHistory("nodefony"),
routes
});
export default router;