]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | import { CommonModule } from '@angular/common'; |
2 | import { NgModule } from '@angular/core'; | |
3 | import { FormsModule, ReactiveFormsModule } from '@angular/forms'; | |
4 | import { RouterModule, Routes } from '@angular/router'; | |
5 | ||
9f95a23c TL |
6 | import { TreeModule } from 'angular-tree-component'; |
7 | import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation'; | |
11fdf7f2 TL |
8 | import { BsDatepickerModule } from 'ngx-bootstrap/datepicker'; |
9 | import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; | |
10 | import { ModalModule } from 'ngx-bootstrap/modal'; | |
11 | import { ProgressbarModule } from 'ngx-bootstrap/progressbar'; | |
12 | import { TabsModule } from 'ngx-bootstrap/tabs'; | |
13 | import { TooltipModule } from 'ngx-bootstrap/tooltip'; | |
14 | ||
15 | import { ActionLabels, URLVerbs } from '../../shared/constants/app.constants'; | |
16 | import { FeatureTogglesGuardService } from '../../shared/services/feature-toggles-guard.service'; | |
17 | import { SharedModule } from '../../shared/shared.module'; | |
eafe8130 | 18 | import { IscsiSettingComponent } from './iscsi-setting/iscsi-setting.component'; |
11fdf7f2 TL |
19 | import { IscsiTabsComponent } from './iscsi-tabs/iscsi-tabs.component'; |
20 | import { IscsiTargetDetailsComponent } from './iscsi-target-details/iscsi-target-details.component'; | |
21 | import { IscsiTargetDiscoveryModalComponent } from './iscsi-target-discovery-modal/iscsi-target-discovery-modal.component'; | |
22 | import { IscsiTargetFormComponent } from './iscsi-target-form/iscsi-target-form.component'; | |
23 | import { IscsiTargetImageSettingsModalComponent } from './iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component'; | |
24 | import { IscsiTargetIqnSettingsModalComponent } from './iscsi-target-iqn-settings-modal/iscsi-target-iqn-settings-modal.component'; | |
25 | import { IscsiTargetListComponent } from './iscsi-target-list/iscsi-target-list.component'; | |
26 | import { IscsiComponent } from './iscsi/iscsi.component'; | |
27 | import { MirroringModule } from './mirroring/mirroring.module'; | |
28 | import { OverviewComponent as RbdMirroringComponent } from './mirroring/overview/overview.component'; | |
29 | import { RbdConfigurationFormComponent } from './rbd-configuration-form/rbd-configuration-form.component'; | |
30 | import { RbdConfigurationListComponent } from './rbd-configuration-list/rbd-configuration-list.component'; | |
31 | import { RbdDetailsComponent } from './rbd-details/rbd-details.component'; | |
32 | import { RbdFormComponent } from './rbd-form/rbd-form.component'; | |
11fdf7f2 | 33 | import { RbdListComponent } from './rbd-list/rbd-list.component'; |
9f95a23c TL |
34 | import { RbdNamespaceFormModalComponent } from './rbd-namespace-form/rbd-namespace-form-modal.component'; |
35 | import { RbdNamespaceListComponent } from './rbd-namespace-list/rbd-namespace-list.component'; | |
36 | import { RbdPerformanceComponent } from './rbd-performance/rbd-performance.component'; | |
37 | import { RbdSnapshotFormModalComponent } from './rbd-snapshot-form/rbd-snapshot-form-modal.component'; | |
11fdf7f2 | 38 | import { RbdSnapshotListComponent } from './rbd-snapshot-list/rbd-snapshot-list.component'; |
9f95a23c | 39 | import { RbdTabsComponent } from './rbd-tabs/rbd-tabs.component'; |
11fdf7f2 TL |
40 | import { RbdTrashListComponent } from './rbd-trash-list/rbd-trash-list.component'; |
41 | import { RbdTrashMoveModalComponent } from './rbd-trash-move-modal/rbd-trash-move-modal.component'; | |
42 | import { RbdTrashPurgeModalComponent } from './rbd-trash-purge-modal/rbd-trash-purge-modal.component'; | |
43 | import { RbdTrashRestoreModalComponent } from './rbd-trash-restore-modal/rbd-trash-restore-modal.component'; | |
44 | ||
45 | @NgModule({ | |
46 | entryComponents: [ | |
47 | RbdDetailsComponent, | |
9f95a23c TL |
48 | RbdNamespaceFormModalComponent, |
49 | RbdSnapshotFormModalComponent, | |
11fdf7f2 TL |
50 | RbdTrashMoveModalComponent, |
51 | RbdTrashRestoreModalComponent, | |
52 | RbdTrashPurgeModalComponent, | |
53 | IscsiTargetDetailsComponent, | |
54 | IscsiTargetImageSettingsModalComponent, | |
55 | IscsiTargetIqnSettingsModalComponent, | |
56 | IscsiTargetDiscoveryModalComponent | |
57 | ], | |
58 | imports: [ | |
59 | CommonModule, | |
60 | MirroringModule, | |
61 | FormsModule, | |
62 | ReactiveFormsModule, | |
63 | TabsModule.forRoot(), | |
64 | ProgressbarModule.forRoot(), | |
65 | BsDropdownModule.forRoot(), | |
66 | BsDatepickerModule.forRoot(), | |
67 | TooltipModule.forRoot(), | |
68 | ModalModule.forRoot(), | |
69 | SharedModule, | |
70 | RouterModule, | |
9f95a23c TL |
71 | NgBootstrapFormValidationModule, |
72 | TreeModule.forRoot() | |
11fdf7f2 TL |
73 | ], |
74 | declarations: [ | |
75 | RbdListComponent, | |
76 | IscsiComponent, | |
eafe8130 | 77 | IscsiSettingComponent, |
11fdf7f2 TL |
78 | IscsiTabsComponent, |
79 | IscsiTargetListComponent, | |
80 | RbdDetailsComponent, | |
81 | RbdFormComponent, | |
9f95a23c TL |
82 | RbdNamespaceFormModalComponent, |
83 | RbdNamespaceListComponent, | |
11fdf7f2 | 84 | RbdSnapshotListComponent, |
9f95a23c | 85 | RbdSnapshotFormModalComponent, |
11fdf7f2 TL |
86 | RbdTrashListComponent, |
87 | RbdTrashMoveModalComponent, | |
11fdf7f2 TL |
88 | RbdTrashRestoreModalComponent, |
89 | RbdTrashPurgeModalComponent, | |
90 | IscsiTargetDetailsComponent, | |
91 | IscsiTargetFormComponent, | |
92 | IscsiTargetImageSettingsModalComponent, | |
93 | IscsiTargetIqnSettingsModalComponent, | |
94 | IscsiTargetDiscoveryModalComponent, | |
95 | RbdConfigurationListComponent, | |
9f95a23c TL |
96 | RbdConfigurationFormComponent, |
97 | RbdTabsComponent, | |
98 | RbdPerformanceComponent | |
11fdf7f2 TL |
99 | ], |
100 | exports: [RbdConfigurationListComponent, RbdConfigurationFormComponent] | |
101 | }) | |
102 | export class BlockModule {} | |
103 | ||
104 | /* The following breakdown is needed to allow importing block.module without | |
105 | the routes (e.g.: this module is imported by pool.module for RBD QoS | |
106 | components) | |
107 | */ | |
108 | const routes: Routes = [ | |
109 | { path: '', redirectTo: 'rbd', pathMatch: 'full' }, | |
110 | { | |
111 | path: 'rbd', | |
112 | canActivate: [FeatureTogglesGuardService], | |
113 | data: { breadcrumbs: 'Images' }, | |
114 | children: [ | |
9f95a23c TL |
115 | { path: '', component: RbdListComponent }, |
116 | { | |
117 | path: 'namespaces', | |
118 | component: RbdNamespaceListComponent, | |
119 | data: { breadcrumbs: 'Namespaces' } | |
120 | }, | |
121 | { | |
122 | path: 'trash', | |
123 | component: RbdTrashListComponent, | |
124 | data: { breadcrumbs: 'Trash' } | |
125 | }, | |
126 | { | |
127 | path: 'performance', | |
128 | component: RbdPerformanceComponent, | |
129 | data: { breadcrumbs: 'Overall Performance' } | |
130 | }, | |
11fdf7f2 TL |
131 | { |
132 | path: URLVerbs.CREATE, | |
133 | component: RbdFormComponent, | |
134 | data: { breadcrumbs: ActionLabels.CREATE } | |
135 | }, | |
136 | { | |
9f95a23c | 137 | path: `${URLVerbs.EDIT}/:image_spec`, |
11fdf7f2 TL |
138 | component: RbdFormComponent, |
139 | data: { breadcrumbs: ActionLabels.EDIT } | |
140 | }, | |
141 | { | |
9f95a23c | 142 | path: `${URLVerbs.CLONE}/:image_spec/:snap`, |
11fdf7f2 TL |
143 | component: RbdFormComponent, |
144 | data: { breadcrumbs: ActionLabels.CLONE } | |
145 | }, | |
146 | { | |
9f95a23c | 147 | path: `${URLVerbs.COPY}/:image_spec`, |
11fdf7f2 TL |
148 | component: RbdFormComponent, |
149 | data: { breadcrumbs: ActionLabels.COPY } | |
150 | }, | |
151 | { | |
9f95a23c | 152 | path: `${URLVerbs.COPY}/:image_spec/:snap`, |
11fdf7f2 TL |
153 | component: RbdFormComponent, |
154 | data: { breadcrumbs: ActionLabels.COPY } | |
155 | } | |
156 | ] | |
157 | }, | |
158 | { | |
159 | path: 'mirroring', | |
160 | component: RbdMirroringComponent, | |
161 | canActivate: [FeatureTogglesGuardService], | |
162 | data: { breadcrumbs: 'Mirroring' } | |
163 | }, | |
164 | // iSCSI | |
165 | { | |
166 | path: 'iscsi', | |
167 | canActivate: [FeatureTogglesGuardService], | |
168 | data: { breadcrumbs: 'iSCSI' }, | |
169 | children: [ | |
170 | { path: '', redirectTo: 'overview', pathMatch: 'full' }, | |
171 | { path: 'overview', component: IscsiComponent, data: { breadcrumbs: 'Overview' } }, | |
172 | { | |
173 | path: 'targets', | |
174 | data: { breadcrumbs: 'Targets' }, | |
175 | children: [ | |
176 | { path: '', component: IscsiTargetListComponent }, | |
177 | { | |
eafe8130 | 178 | path: URLVerbs.CREATE, |
11fdf7f2 | 179 | component: IscsiTargetFormComponent, |
eafe8130 | 180 | data: { breadcrumbs: ActionLabels.CREATE } |
11fdf7f2 TL |
181 | }, |
182 | { | |
183 | path: `${URLVerbs.EDIT}/:target_iqn`, | |
184 | component: IscsiTargetFormComponent, | |
185 | data: { breadcrumbs: ActionLabels.EDIT } | |
186 | } | |
187 | ] | |
188 | } | |
189 | ] | |
190 | } | |
191 | ]; | |
192 | ||
193 | @NgModule({ | |
194 | imports: [BlockModule, RouterModule.forChild(routes)] | |
195 | }) | |
196 | export class RoutedBlockModule {} |