smartproc-fe/src/router.js

401 lines
9.5 KiB
JavaScript

/* Master Data */
import JenisPengadaan from './views/master-data/jenis-pengadaan';
import UnitInisiator from './views/master-data/unit-inisiator';
import MetodePengadaan from './views/master-data/metode-pengadaan';
import MetodePenyampaian from './views/master-data/metode-penyampaian';
import JenisKontrak from './views/master-data/jenis-kontrak';
import SumberDana from './views/master-data/sumber-dana';
import StrategiPengadaan from './views/master-data/strategi-pengadaan';
import LokasiPengadaan from './views/master-data/lokasi-pengadaan';
import SupplyPositioningMatrix from './views/master-data/supply-positioning-matrix';
import JenisAnggaran from './views/master-data/jenis-anggaran';
import InstansiPage from './views/master-data/instansi-page';
import BidangPage from './views/master-data/bidang-page';
import JabatanPage from './views/master-data/jabatan-page';
/* Master Konfigurasi */
import RolesConfig from './views/master-config/roles-config';
import UsersConfig from './views/master-config/users-config';
import PermissionsConfig from './views/master-config/permissions-config';
import User from './views/user-page';
/* Master Template */
import RksDaftar from './views/rks-daftar';
/* DRP */
import DrpPenyusunan from './views/drp/drp-penyusunan';
import DrpPengadaanDokumen from './views/drp/drp-pengadaan-dokumen';
import DrpPengadaan from './views/drp/drp-pengadaan';
import DrpDokumen from './views/drp/drp-dokumen';
import DrpApproval from './views/drp/drp-approval'
import RecomendationList from './views/drp/recomendation-list.vue'
import DrpList from './views/drp/drp-list.vue';
import DrpRevisi from './views/drp/drp-revisi';
import DrpCetak from './views/drp/drp-cetak';
/* General */
import auth from "./auth";
import { createRouter, createWebHashHistory } from "vue-router";
import Home from "./views/home-page";
import Profile from "./views/profile-page";
import Tasks from "./views/tasks-page";
import defaultLayout from "./layouts/side-nav-outer-toolbar";
import simpleLayout from "./layouts/single-card";
function loadView(view) {
return () => import (/* webpackChunkName: "login" */ `./views/${view}.vue`)
}
const router = new createRouter({
routes: [
{
path: "/home",
name: "home",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: Home
},
{
path: "/profile",
name: "profile",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: Profile
},
{
path: "/tasks",
name: "tasks",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: Tasks
},
{
path: "/login-form",
name: "login-form",
meta: {
requiresAuth: false,
layout: simpleLayout,
title: "Log In"
},
component: loadView("login-form")
},
{
path: "/reset-password",
name: "reset-password",
meta: {
requiresAuth: false,
layout: simpleLayout,
title: "Lupa Password",
//description: "Please enter the email address that you used to register, and we will send you a link to reset your password via Email."
description: "Silahkan isi alamat email terdaftar, kami akan mengirim link untuk melakukan reset password."
},
component: loadView("reset-password-form")
},
{
path: "/create-account",
name: "create-account",
meta: {
requiresAuth: false,
layout: simpleLayout,
title: "Sign Up"
},
component: loadView("create-account-form"),
},
{
path: "/change-password/:recoveryCode",
name: "change-password",
meta: {
requiresAuth: false,
layout: simpleLayout,
title: "Change Password"
},
component: loadView("change-password-form")
},
{
path: "/",
redirect: "/home"
},
{
path: "/recovery",
redirect: "/home"
},
{
path: "/:pathMatch(.*)*",
redirect: "/home"
},
{
path: "/user-page",
name: "user-page",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: User
},
{
path: "/master-data/jenis-pengadaan",
name: "jenis-pengadaan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: JenisPengadaan
},
{
path: "/master-data/unit-inisiator",
name: "unit-inisiator",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: UnitInisiator
},
{
path: "/master-data/metode-pengadaan",
name: "metode-pengadaan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: MetodePengadaan
},
{
path: "/master-data/metode-penyampaian",
name: "metode-penyampaian",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: MetodePenyampaian
},
{
path: "/master-data/jenis-kontrak",
name: "jenis-kontrak",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: JenisKontrak
},
{
path: "/master-data/sumber-dana",
name: "sumber-dana",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: SumberDana
},
{
path: "/master-data/strategi-pengadaan",
name: "strategi-pengadaan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: StrategiPengadaan
},
{
path: "/master-data/lokasi-pengadaan",
name: "lokasi-pengadaan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: LokasiPengadaan
},
{
path: "/master-data/supply-positioning-matrix",
name: "supply-positioning-matrix",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: SupplyPositioningMatrix
},
{
path: "/master-data/jenis-anggaran",
name: "jenis-anggaran",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: JenisAnggaran
},
{
path: "/master-data/instansi-page",
name: "instansi-page",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: InstansiPage
},
{
path: "/master-data/bidang-page",
name: "bidang-page",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: BidangPage
},
{
path: "/master-data/jabatan-page",
name: "jabatan-page",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: JabatanPage
},
{
path: "/master-config/roles-config",
name: "roles-config",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: RolesConfig
},
{
path: "/master-config/users-config",
name: "users-config",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: UsersConfig
},
{
path: "/master-config/permissions-config",
name: "permissions-config",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: PermissionsConfig
},
{
path: "/rks-daftar",
name: "rks-daftar",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: RksDaftar
},
{
path: "/drp/drp-penyusunan",
name: "drp-penyusunan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpPenyusunan
},
{
path: "/drp/drp-dokumen",
name: "drp-dokumen",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpDokumen
},
{
path: "/drp/drp-pengadaan",
name: "drp-pengadaan",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpPengadaan
},
{
path: "/drp/drp-pengadaan-dokumen",
name: "drp-pengadaan-dokumen",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpPengadaanDokumen
},
{
path: "/drp/drp-approval",
name: "drp-approval",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpApproval
},
{
path: "/drp/drp-approval/list-rekomendasi",
name: "list-rekomendasi",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: RecomendationList
},
{
path: "/drp/drp-approval/drp-list",
name: "list-drp",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpList
},
{
path: "/drp/drp-revisi",
name: "drp-revisi",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpRevisi
},
{
path: "/drp/drp-cetak",
name: "drp-cetak",
meta: {
requiresAuth: true,
layout: defaultLayout
},
component: DrpCetak
}
],
history: createWebHashHistory()
});
router.beforeEach((to, from, next) => {
if (to.name === "login-form" && auth.loggedIn()) {
next({ name: "home" });
}
if (to.matched.some(record => record.meta.requiresAuth)) {
if (!auth.loggedIn()) {
next({
name: "login-form",
query: { redirect: to.fullPath }
});
} else {
next();
}
} else {
next();
}
});
export default router;