routes.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. import type { RouteRecordRaw } from 'vue-router'
  3. import { ticketInformationRoutes } from './views/TicketInformation/plugins'
  4. const routes: RouteRecordRaw[] = [
  5. {
  6. path: '/tickets/:internalId(\\d+)',
  7. name: 'TicketDetailView',
  8. props: true,
  9. component: () => import('./views/TicketDetailView.vue'),
  10. meta: {
  11. title: __('Ticket'), // TODO needs to be the ticket title/number (should be done inside of the route component?)
  12. requiresAuth: true,
  13. requiredPermission: ['ticket.agent', 'ticket.customer'],
  14. level: 3,
  15. },
  16. },
  17. {
  18. path: '/tickets/:internalId(\\d+)/information',
  19. component: () =>
  20. import('./views/TicketInformation/TicketInformationView.vue'),
  21. name: 'TicketInformationView',
  22. props: true,
  23. children: ticketInformationRoutes,
  24. meta: {
  25. title: __('Ticket information'),
  26. requiresAuth: true,
  27. requiredPermission: ['ticket.agent', 'ticket.customer'],
  28. hasHeader: true,
  29. level: 4,
  30. },
  31. },
  32. {
  33. path: '/tickets/view/:overviewLink?',
  34. name: 'TicketOverview',
  35. props: true,
  36. component: () => import('./views/TicketOverview.vue'),
  37. meta: {
  38. title: __('Tickets'),
  39. requiresAuth: true,
  40. requiredPermission: ['ticket.agent', 'ticket.customer'],
  41. hasBottomNavigation: true,
  42. level: 2,
  43. },
  44. },
  45. {
  46. path: '/tickets/create',
  47. name: 'TicketCreate',
  48. props: true,
  49. component: () => import('./views/TicketCreate.vue'),
  50. meta: {
  51. title: __('Ticket Create'),
  52. requiresAuth: true,
  53. requiredPermission: ['ticket.agent', 'ticket.customer'],
  54. level: 2,
  55. },
  56. },
  57. ]
  58. export default routes