/* 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;