Files
pleno-vue/src/router.js
T
Jepp9350 5567a43c9a Add collected order invoice management and improve edit logic
Introduce collected order invoice views, tables, and detailed navigation for superuser dashboards. Enhance `showEditOrderItemForm` to support an optional callback, streamlining post-submission actions. These changes improve invoice handling and editing workflows for better usability.
2025-03-03 15:36:40 +01:00

362 lines
11 KiB
JavaScript

/**
* Router
*/
import { createRouter, createWebHistory } from 'vue-router';
/** Middleware */
import authMiddleware from './middleware/authMiddleware.js';
import guestMiddleware from "@/middleware/guestMiddleware.js";
import adminMiddleware from './middleware/adminMiddleware.js';
import superUserMiddleware from "@/middleware/superUserMiddleware.js";
/** Views */
/**
* Default page
*/
import DefaultPage from "@/views/DefaultPage.vue";
/** Auth */
import Login from './views/auth/Login.vue';
import Register from './views/auth/Register.vue';
/** Dashboards */
import SuperUserDashboard from './views/dashboards/SuperUserDashboard.vue';
import DepartmentDashboard from './views/dashboards/DepartmentDashboard.vue';
import UserDashboard from './views/dashboards/UserDashboard.vue';
/** Dashboard: SuperUser */
import Departments from "@/views/dashboards/superUserDashboard/Departments.vue";
import Users from "@/views/dashboards/superUserDashboard/Users.vue";
import Products from "@/views/dashboards/superUserDashboard/Products.vue";
import Orders from "@/views/dashboards/superUserDashboard/Orders.vue";
import NumberPlateScanners from "@/views/dashboards/superUserDashboard/NumberPlateScanners.vue";
import Statistics from "@/views/dashboards/superUserDashboard/statistics/Statistics.vue";
/** Dashboard: Department */
import DepartmentPos from "@/views/dashboards/departmentDashboard/modules/Pos/DepartmentPos.vue";
import DepartmentPosOrders from "@/views/dashboards/departmentDashboard/modules/Pos/DepartmentPosOrders.vue";
import DepartmentPosOrder from "@/views/dashboards/departmentDashboard/modules/Pos/DepartmentPosOrder.vue";
/**
* Dashboard: User
*/
import MyVehicles from "@/views/dashboards/userDashboard/vehicles/MyVehicles.vue";
/** Errors */
import NotFound from './views/errors/NotFound.vue';
import MyOrders from "@/views/dashboards/userDashboard/orders/MyOrders.vue";
import NewVehicle from "@/views/dashboards/userDashboard/vehicles/NewVehicle.vue";
import MyBookings from "@/views/dashboards/userDashboard/bookings/MyBookings.vue";
import DatabaseOverview from "@/views/dashboards/superUserDashboard/system/DatabaseOverview.vue";
import DepartmentBookings from "@/views/dashboards/departmentDashboard/modules/bookings/DepartmentBookings.vue";
import Employee from "@/views/auth/Employee.vue";
import User from "@/views/dashboards/superUserDashboard/user/User.vue";
import UserOrders from "@/views/dashboards/superUserDashboard/user/UserOrders.vue";
import UserPricing from "@/views/dashboards/superUserDashboard/user/UserPricing.vue";
import Department from "@/views/dashboards/superUserDashboard/department/Department.vue";
import DepartmentPricing from "@/views/dashboards/superUserDashboard/department/DepartmentPricing.vue";
import MyOrder from "@/views/dashboards/userDashboard/orders/MyOrder.vue";
import StatisticsOverview from "@/views/dashboards/superUserDashboard/statistics/StatisticsOverview.vue";
import Configuration from "@/views/dashboards/superUserDashboard/configuration/Configuration.vue";
import ConfigurationEconomic from "@/views/dashboards/superUserDashboard/configuration/ConfigurationEconomic.vue";
import ConfigurationReCAPTCHA from "@/views/dashboards/superUserDashboard/configuration/ConfigurationReCAPTCHA.vue";
import ConfigurationEmail from "@/views/dashboards/superUserDashboard/configuration/ConfigurationEmail.vue";
import ConfigurationBackups from "@/views/dashboards/superUserDashboard/configuration/ConfigurationBackups.vue";
import Categories from "@/views/dashboards/superUserDashboard/Categories.vue";
import Customers from "@/views/dashboards/superUserDashboard/Customers.vue";
import DepartmentCategories from "@/views/dashboards/superUserDashboard/department/DepartmentCategories.vue";
import ConfigurationMotorAPI from "@/views/dashboards/superUserDashboard/configuration/ConfigurationMotorAPI.vue";
import ConfigurationStripe from "@/views/dashboards/superUserDashboard/configuration/ConfigurationStripe.vue";
import Roles from "@/views/dashboards/superUserDashboard/roles/Roles.vue";
import SuperUserRolesPermissions from "@/views/dashboards/superUserDashboard/roles/SuperUserRolesPermissions.vue";
import DepartmentStripeTerminalsReaders from "@/views/dashboards/superUserDashboard/department/stripe/DepartmentStripeTerminalsReaders.vue";
import DepartmentStripeSetup from "@/views/dashboards/superUserDashboard/department/stripe/DepartmentStripeSetup.vue";
import CollectedOrderInvoices from "@/views/dashboards/superUserDashboard/CollectedOrderInvoices.vue";
import CollectedOrderInvoice
from "@/views/dashboards/superUserDashboard/collectedOrderInvoice/collectedOrderInvoice.vue";
// Export the router as router
export const router = createRouter({
history: createWebHistory(),
routes: [
{
name: 'default',
path: '/',
component: DefaultPage,
meta: { middleware: authMiddleware }
},
{
name: 'dashboard',
path: '/user',
component: UserDashboard,
meta: { middleware: authMiddleware }
},
{
name: 'myvehicles',
path: '/user/vehicles',
component: MyVehicles,
meta: { middleware: authMiddleware }
},
{
name: 'myvehiclesnew',
path: '/user/vehicles/new',
component: NewVehicle,
meta: { middleware: authMiddleware }
},
{
name: 'mybookings',
path: '/user/bookings',
component: MyBookings,
meta: { middleware: authMiddleware }
},
{
name: 'myorders',
path: '/user/orders',
component: MyOrders,
meta: { middleware: authMiddleware }
},
{
name: 'myorder',
path: '/user/orders/:orderId',
component: MyOrder,
meta: { middleware: authMiddleware }
},
{
name: 'login',
path: '/login',
component: Login,
meta: { middleware: guestMiddleware }
},
{
name: 'register',
path: '/register',
component: Register,
meta: { middleware: guestMiddleware }
},
{
name: 'adminlogin',
path: '/admin/login',
component: Employee,
meta: { middleware: guestMiddleware }
},
{
name: 'admin',
path: '/admin',
component: DepartmentDashboard,
meta: { middleware: adminMiddleware }
},
{
name: 'department',
path: '/admin/:departmentId',
component: DepartmentDashboard,
meta: { middleware: adminMiddleware }
},
{
name: 'pos',
path: '/admin/:departmentId/modules/pos',
component: DepartmentPos,
meta: { middleware: adminMiddleware }
},
{
name: 'posorders',
path: '/admin/:departmentId/modules/pos/orders',
component: DepartmentPosOrders,
meta: { middleware: adminMiddleware }
},
{
name: 'posorder',
path: '/admin/:departmentId/modules/pos/orders/:orderId',
component: DepartmentPosOrder,
meta: { middleware: adminMiddleware }
},
{
name: 'bookings',
path: '/admin/:departmentId/modules/bookings',
component: DepartmentBookings,
meta: { middleware: adminMiddleware }
},
{
name: 'superuser',
path: '/superuser',
component: SuperUserDashboard,
meta: { middleware: superUserMiddleware }
},
{
name: 'departments',
path: '/superuser/departments',
component: Departments,
meta: { middleware: superUserMiddleware }
},
{
name: 'departmentsoverview',
path: '/superuser/departments/:departmentId',
component: Department,
meta: { middleware: superUserMiddleware }
},
{
name: 'departmentspricing',
path: '/superuser/departments/:departmentId/pricing',
component: DepartmentPricing,
meta: { middleware: superUserMiddleware }
},
{
name: 'departmentscategories',
path: '/superuser/departments/:departmentId/categories',
component: DepartmentCategories,
meta: { middleware: superUserMiddleware }
},
{
name: 'departmentsterminalsreaders',
path: '/superuser/departments/:departmentId/stripe/terminals/readers',
component: DepartmentStripeTerminalsReaders,
meta: { middleware: superUserMiddleware }
},
{
name: 'departmentsstripesetup',
path: '/superuser/departments/:departmentId/stripe/setup',
component: DepartmentStripeSetup,
meta: { middleware: superUserMiddleware }
},
{
name: 'users',
path: '/superuser/users',
component: Users,
meta: { middleware: superUserMiddleware }
},
{
name: 'user',
path: '/superuser/users/:userId',
component: User,
meta: { middleware: superUserMiddleware }
},
{
name: 'userorders',
path: '/superuser/users/:userId/orders',
component: UserOrders,
meta: { middleware: superUserMiddleware }
},
{
name: 'userpricing',
path: '/superuser/users/:userId/pricing',
component: UserPricing,
meta: { middleware: superUserMiddleware }
},
{
name: 'products',
path: '/superuser/products',
component: Products,
meta: { middleware: superUserMiddleware }
},
{
name: 'collectedorderinvoices',
path: '/superuser/invoices',
component: CollectedOrderInvoices,
meta: { middleware: superUserMiddleware }
},
{
name: 'collectedorderinvoice',
path: '/superuser/invoices/:collectedOrderInvoiceId',
component: CollectedOrderInvoice,
meta: { middleware: superUserMiddleware }
},
{
name: 'orders',
path: '/superuser/orders',
component: Orders,
meta: { middleware: superUserMiddleware }
},
{
name: 'scanners',
path: '/superuser/scanners',
component: NumberPlateScanners,
meta: { middleware: superUserMiddleware }
},
{
name: 'categories',
path: '/superuser/categories',
component: Categories,
meta: { middleware: superUserMiddleware }
},
{
name: 'systemdatabase',
path: '/superuser/system/database',
component: DatabaseOverview,
meta: { middleware: superUserMiddleware }
},
{
name: 'statistics',
path: '/superuser/statistics',
component: StatisticsOverview,
meta: { middleware: superUserMiddleware }
},
{
name: 'statisticsOther',
path: '/superuser/statistics/other',
component: Statistics,
meta: { middleware: superUserMiddleware }
},
{
name: 'configuration',
path: '/superuser/configuration',
component: Configuration,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationEconomic',
path: '/superuser/configuration/economic',
component: ConfigurationEconomic,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationReCAPTCHA',
path: '/superuser/configuration/recaptcha',
component: ConfigurationReCAPTCHA,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationEmail',
path: '/superuser/configuration/email',
component: ConfigurationEmail,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationBackup',
path: '/superuser/configuration/backup',
component: ConfigurationBackups,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationMotorAPI',
path: '/superuser/configuration/motorapi',
component: ConfigurationMotorAPI,
meta: { middleware: superUserMiddleware }
},
{
name: 'configurationStripe',
path: '/superuser/configuration/stripe',
component: ConfigurationStripe,
meta: { middleware: superUserMiddleware }
},
{
name: 'customers',
path: '/superuser/customers',
component: Customers,
meta: { middleware: superUserMiddleware }
},
{
name: 'roles',
path: '/superuser/roles',
component: Roles,
meta: { middleware: superUserMiddleware }
},
{
name: 'rolesPermissions',
path: '/superuser/roles/:roleId',
component: SuperUserRolesPermissions,
meta: { middleware: superUserMiddleware }
},
{
name: 'notfound',
path: '/:pathMatch(.*)*',
component: NotFound
}
]
});