Source

router/routes.js

/* eslint-disable */

/**
 * @module routes
 * @category Router
 */
import envService from '@/services/env-service.js'
import {
  areModulesWhitelisted,
  getWhitelistedModules,
} from '@/services/modules-service.js'

/**
 * @todo Add functionId if missing (To enable route auditing)
 */
let routes = [
  ...(envService.isProduction()
    ? []
    : [
        {
          path: '/test',
          name: 'test',
          component: () => import('@/views/Test.vue'),
          props: {
            vehicleId: 20499,
            date: '2022-03-4',
            isTest: true,
            timeTo: '09:00',
            isTest: true,
            datesFormatted: '01/01/2019 08:30 - 02/01/2019 18:30',
            vehicleName: 'BOM01',
          },
        },
      ]),
  {
    path: '/login',
    name: 'login_screen',
    component: () =>
      import(/* webpackChunkName: "login" */ '../views/LoginModule.vue'),
  },
  {
    path: '/login-client',
    alias: ['/login-as', '/select-client'],
    name: 'login_as',
    component: () =>
      import(/* webpackChunkName: "login" */ '../views/LoginAs.vue'),
  },
  {
    path: '/menu',
    name: 'app_quickmenu_screen',
    meta: {
      requiredRights: ['GEOV3_QUICKMENU_ACCESSS'],
      allowRedirect: false,
    },
    component: () =>
      import(
        /* webpackChunkName: "quick_menu" */
        '../views/QuickMenuModule/QuickMenuModule.vue'
      ),
  },
  {
    path: '/ecoconduite',
    name: 'ecoconduite_module',
    meta: {
      requiredRights: ['GEOV3_ECOCONDUITE_ACCESS'],
      weight: 2,
      functionId: 369,
    },
    component: () =>
      import(
        /* webpackChunkName: "ecoconduite_module" */
        '../views/EcoConduiteModule.vue'
      ),
    children: [
      {
        path: '/ecoconduite/bloc',
        name: 'ecoconduiteBloc',
        meta: {
          requiredRights: ['GEOV3_ECOCONDUITE_ACCESS'],
        },
        component: () =>
          import(
            /* webpackChunkName: "ecoconduite_module" */
            '@desktop/EcoConduite/EcoConduiteDataBloc.vue'
          ),
      },
      {
        path: '/ecoconduite/table',
        name: 'ecoconduiteTable',
        meta: {
          requiredRights: ['GEOV3_ECOCONDUITE_ACCESS'],
        },
        component: () =>
          import(
            /* webpackChunkName: "ecoconduite_module" */
            '@desktop/EcoConduite/EcoConduiteDataTable.vue'
          ),
      },
      {
        path: '/ecoconduite',
        name: 'ecoconduite_module',
        meta: {
          requiredRights: ['GEOV3_ECOCONDUITE_ACCESS'],
        },
        component: () =>
          import(
            /* webpackChunkName: "ecoconduite_module" */
            '@desktop/EcoConduite/EcoConduiteDataBloc.vue'
          ),
      },
    ],
  },
  {
    path: '/cartography',
    name: 'events_module',
    meta: {
      requiredRights: ['GEOV3_EVENTS_ACCESS'],
      //functionId: 364
    },
    component: () =>
      import(
        /* webpackChunkName: "events_module" */
        '../views/EventsModule.vue'
      ),
  },
  {
    path: '/diagnostics',
    name: 'diagnostics_module',
    meta: {
      requiredRights: ['GEOV3_DIAGNOSTIC_ACCESS'],
    },
    component: () =>
      import(
        /* webpackChunkName: "diagnostics_module" */
        '../views/DiagnosticsModule.vue'
      ),
  },
  {
    path: '/zones',
    name: 'zones_module',
    meta: {
      requiredRights: ['GEOV3_ZONES_ACCESS'],
    },
    component: () =>
      import(/* webpackChunkName: "zones_module" */ '../views/ZonesModule.vue'),
  },
  /*{
    path: '/circuit',
    name: 'circuit_module',
    meta: {
      requiredRights: ['GEOV3_CIRCUIT_ACCESS'],
    },
    component: () =>
      import(
        
        '../views/CircuitModule.vue'
      ),
  },
  {
    path: '/objects',
    name: 'objects_module',
    meta: {
      requiredRights: ['GEOV3_OBJECTS_ACCESS'],
    },
    component: () =>
      import(
        
        '../views/ObjectsModule.vue'
      ),
  },*/
  {
    path: '/dashboard',
    name: 'dashboard_module',
    meta: {
      requiredRights: ['GEOV3_DASHBOARD_ACCESS'],
    },
    component: () =>
      import(
        /* webpackChunkName: "dashboard_module" */
        '../views/DashboardModule.vue'
      ),
  },
  {
    path: '/identification',
    alias: '/sensors',
    name: 'sensors_module',
    meta: {
      requiredRights: ['GEOV3_IDENTIFICATION_ACCESS'],
      functionId: 364,
    },
    component: () =>
      import(
        /* webpackChunkName: "identification" */
        '../views/SensorsModule.vue'
      ),
  },
  {
    path: '/alerts',
    name: 'alerts_module',
    meta: {
      requiredRights: ['GEOV3_ALERTS_ACCESS'],
      weight: 3,
      functionId: 389,
    },
    component: () =>
      import(
        /* webpackChunkName: "alerts_module" */
        '../views/AlertsModule.vue'
      ),
  },
  {
    path: '/',
    name: 'location_module',
    meta: {
      requiredRights: ['GEOV3_LOCALISATION_ACCESS'],
      weight: 1,
      functionId: 356,
    },
    component: () =>
      import(
        /* webpackChunkName: "location_module" */
        '../views/LocationModule.vue'
      ),
  },
]

//If whitelist modules env is provided and match at least one module, add only whitelisted modules:
if (areModulesWhitelisted()) {
  let whitelistedModules = getWhitelistedModules()
  if (routes.filter((r) => whitelistedModules.includes(r.name)).length > 0) {
    routes = routes.filter((r) => {
      return (
        'login_screen'.includes(r.name) || whitelistedModules.includes(r.name)
      )
    })
    console.debug('Routes has been whitelisted', whitelistedModules)
  }
} else {
  console.debug('Routes whitelist skip')
}

routes.push({
  path: '*',
  redirect: '/',
})

/**
 * List of routes
 */
export default routes