Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

151 linhas
4.7 KiB

  1. import {NgModule} from '@angular/core';
  2. import {Routes, RouterModule} from '@angular/router';
  3. import {ProfileComponent} from "@app/_views/profile/profile.component";
  4. import {UserDetailComponent} from "@app/_views/user/user-detail/user-detail.component";
  5. import {userGuard} from "@app/_guards/user.guard";
  6. import {adminGuard} from "@app/_guards/admin.guard";
  7. import {UsersComponent} from "@app/_views/user/users.component";
  8. import {TwoColumnComponent} from "@app/_components/layout/two-column/two-column.component";
  9. import {DashboardComponent} from "@app/_views/dashboard/dashboard.component";
  10. import {BaseDataComponent} from "@app/_views/base-data/base-data.component";
  11. import {LocationDetailComponent} from "@app/_views/location/location-detail/location-detail.component";
  12. import {ZoneDetailComponent} from "@app/_views/zone/zone-detail/zone-detail.component";
  13. import {VesselDetailComponent} from "@app/_views/vessel/vessel-detail/vessel-detail.component";
  14. import {
  15. ShippingCompanyDetailComponent
  16. } from "@app/_views/shipping-company/shipping-company-detail/shipping-company-detail.component";
  17. import {TripComponent} from "@app/_views/trip/trip.component";
  18. import {TripDetailComponent} from "@app/_views/trip/trip-detail/trip-detail.component";
  19. import {UserTripComponent} from "@app/_views/user-trip/user-trip.component";
  20. import {UserTripDetailComponent} from "@app/_views/user-trip/user-trip-detail/user-trip-detail.component";
  21. const accountModule = () => import('@app/_views/account/account.module').then(x => x.AccountModule);
  22. export const ROUTE_DASHBOARD = 'dashboard';
  23. export const ROUTE_BASE_DATA = 'base-data';
  24. export const ROUTE_LOCATIONS = 'locations';
  25. export const ROUTE_SHIPPING_COMPANIES = 'shipping-companies';
  26. export const ROUTE_TRIPS = 'trips';
  27. export const ROUTE_USER_TRIPS = 'user-trips';
  28. export const ROUTE_PROFILE = 'profile';
  29. export const ROUTE_USERS = 'users';
  30. export const ROUTE_VESSELS = 'vessels';
  31. export const ROUTE_ZONES = 'zones';
  32. const routes: Routes = [
  33. {
  34. path: 'account',
  35. loadChildren:
  36. accountModule
  37. },
  38. {
  39. path: ROUTE_DASHBOARD,
  40. component: TwoColumnComponent,
  41. canActivate: [userGuard],
  42. children: [
  43. {path: '', component: DashboardComponent},
  44. ]
  45. },
  46. {
  47. path: ROUTE_BASE_DATA,
  48. component: TwoColumnComponent,
  49. canActivate: [userGuard],
  50. children: [
  51. {path: '', component: BaseDataComponent},
  52. ]
  53. },
  54. {
  55. path: ROUTE_LOCATIONS,
  56. component: TwoColumnComponent,
  57. canActivate: [userGuard],
  58. children: [
  59. {path: ':id', component: LocationDetailComponent},
  60. ]
  61. },
  62. {
  63. path: ROUTE_TRIPS,
  64. component: TwoColumnComponent,
  65. canActivate: [userGuard],
  66. children: [
  67. {path: '', component: TripComponent},
  68. ]
  69. },
  70. {
  71. path: ROUTE_TRIPS,
  72. component: TwoColumnComponent,
  73. canActivate: [userGuard],
  74. children: [
  75. {path: ':id', component: TripDetailComponent},
  76. ]
  77. },
  78. {
  79. path: ROUTE_USER_TRIPS,
  80. component: TwoColumnComponent,
  81. canActivate: [userGuard],
  82. children: [
  83. {path: '', component: UserTripComponent},
  84. ]
  85. },
  86. {
  87. path: ROUTE_USER_TRIPS,
  88. component: TwoColumnComponent,
  89. canActivate: [userGuard],
  90. children: [
  91. {path: ':id', component: UserTripDetailComponent},
  92. ]
  93. },
  94. {
  95. path: ROUTE_ZONES,
  96. component: TwoColumnComponent,
  97. canActivate: [userGuard],
  98. children: [
  99. {path: ':id', component: ZoneDetailComponent},
  100. ]
  101. },
  102. {
  103. path: ROUTE_VESSELS,
  104. component: TwoColumnComponent,
  105. canActivate: [userGuard],
  106. children: [
  107. {path: ':id', component: VesselDetailComponent},
  108. ]
  109. },
  110. {
  111. path: ROUTE_SHIPPING_COMPANIES,
  112. component: TwoColumnComponent,
  113. canActivate: [userGuard],
  114. children: [
  115. {path: ':id', component: ShippingCompanyDetailComponent},
  116. ]
  117. },
  118. {
  119. path: ROUTE_PROFILE,
  120. component: TwoColumnComponent,
  121. canActivate: [userGuard],
  122. children: [
  123. {path: '', component: ProfileComponent},
  124. ]
  125. },
  126. {
  127. path: ROUTE_USERS,
  128. component: TwoColumnComponent,
  129. canActivate: [userGuard, adminGuard],
  130. children: [
  131. {path: '', component: UsersComponent},
  132. {path: ':id', component: UserDetailComponent},
  133. ]
  134. },
  135. // otherwise redirect to home
  136. {
  137. path: '**',
  138. redirectTo: ROUTE_DASHBOARD
  139. }
  140. ];
  141. @NgModule({
  142. imports: [RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})],
  143. exports: [RouterModule]
  144. })
  145. export class AppRoutingModule {
  146. }