Commit b63087d53f4157c40a982de1a11cf624132305a9

Authored by Volodymyr Babak
1 parent ead9fd9e

Moved edge rule chains and edges to edge management page

@@ -228,26 +228,9 @@ export class MenuService { @@ -228,26 +228,9 @@ export class MenuService {
228 { 228 {
229 id: guid(), 229 id: guid(),
230 name: 'rulechain.rulechains', 230 name: 'rulechain.rulechains',
231 - type: 'toggle', 231 + type: 'link',
232 path: '/ruleChains', 232 path: '/ruleChains',
233 - height: '80px',  
234 icon: 'settings_ethernet', 233 icon: 'settings_ethernet',
235 - pages: [  
236 - {  
237 - id: guid(),  
238 - name: 'rulechain.core-rulechains',  
239 - type: 'link',  
240 - path: '/ruleChains/core',  
241 - icon: 'settings_ethernet'  
242 - },  
243 - {  
244 - id: guid(),  
245 - name: 'rulechain.edge-rulechains',  
246 - type: 'link',  
247 - path: '/ruleChains/edge',  
248 - icon: 'router'  
249 - }  
250 - ]  
251 }, 234 },
252 { 235 {
253 id: guid(), 236 id: guid(),
@@ -287,10 +270,27 @@ export class MenuService { @@ -287,10 +270,27 @@ export class MenuService {
287 }, 270 },
288 { 271 {
289 id: guid(), 272 id: guid(),
290 - name: 'edge.edges',  
291 - type: 'link', 273 + name: 'edge.management',
  274 + type: 'toggle',
292 path: '/edges', 275 path: '/edges',
293 - icon: 'router' 276 + height: '80px',
  277 + icon: 'router',
  278 + pages: [
  279 + {
  280 + id: guid(),
  281 + name: 'edge.edges',
  282 + type: 'link',
  283 + path: '/edges',
  284 + icon: 'router'
  285 + },
  286 + {
  287 + id: guid(),
  288 + name: 'rulechain.edge-rulechains',
  289 + type: 'link',
  290 + path: '/edges/ruleChains',
  291 + icon: 'settings_ethernet'
  292 + }
  293 + ]
294 }, 294 },
295 { 295 {
296 id: guid(), 296 id: guid(),
@@ -335,11 +335,6 @@ export class MenuService { @@ -335,11 +335,6 @@ export class MenuService {
335 name: 'rulechain.rulechains', 335 name: 'rulechain.rulechains',
336 icon: 'settings_ethernet', 336 icon: 'settings_ethernet',
337 path: '/ruleChains' 337 path: '/ruleChains'
338 - },  
339 - {  
340 - name: 'rulechain.edge-rulechains',  
341 - icon: 'router',  
342 - path: '/edgesRuleChains'  
343 } 338 }
344 ] 339 ]
345 }, 340 },
@@ -396,6 +391,11 @@ export class MenuService { @@ -396,6 +391,11 @@ export class MenuService {
396 name: 'edge.edges', 391 name: 'edge.edges',
397 icon: 'router', 392 icon: 'router',
398 path: '/edges' 393 path: '/edges'
  394 + },
  395 + {
  396 + name: 'rulechain.edge-rulechains',
  397 + icon: 'settings_ethernet',
  398 + path: '/edges/ruleChains'
399 } 399 }
400 ] 400 ]
401 }, 401 },
@@ -27,6 +27,15 @@ import { RuleChainsTableConfigResolver } from "@home/pages/rulechain/rulechains- @@ -27,6 +27,15 @@ import { RuleChainsTableConfigResolver } from "@home/pages/rulechain/rulechains-
27 import { DashboardPageComponent } from "@home/pages/dashboard/dashboard-page.component"; 27 import { DashboardPageComponent } from "@home/pages/dashboard/dashboard-page.component";
28 import { dashboardBreadcumbLabelFunction, DashboardResolver } from "@home/pages/dashboard/dashboard-routing.module"; 28 import { dashboardBreadcumbLabelFunction, DashboardResolver } from "@home/pages/dashboard/dashboard-routing.module";
29 import { BreadCrumbConfig } from "@shared/components/breadcrumb"; 29 import { BreadCrumbConfig } from "@shared/components/breadcrumb";
  30 +import {RuleChainPageComponent} from "@home/pages/rulechain/rulechain-page.component";
  31 +import {ConfirmOnExitGuard} from "@core/guards/confirm-on-exit.guard";
  32 +import {ruleChainType} from "@shared/models/rule-chain.models";
  33 +import {
  34 + importRuleChainBreadcumbLabelFunction,
  35 + ResolvedRuleChainMetaDataResolver,
  36 + ruleChainBreadcumbLabelFunction, RuleChainImportGuard,
  37 + RuleChainResolver, RuleNodeComponentsResolver
  38 +} from "@home/pages/rulechain/rulechain-routing.module";
30 39
31 const routes: Routes = [ 40 const routes: Routes = [
32 { 41 {
@@ -147,6 +156,68 @@ const routes: Routes = [ @@ -147,6 +156,68 @@ const routes: Routes = [
147 } 156 }
148 ] 157 ]
149 }, 158 },
  159 + {
  160 + path: 'ruleChains',
  161 + data: {
  162 + breadcrumb: {
  163 + label: 'rulechain.edge-rulechains',
  164 + icon: 'settings_ethernet'
  165 + }
  166 + },
  167 + children: [
  168 + {
  169 + path: '',
  170 + component: EntitiesTableComponent,
  171 + data: {
  172 + auth: [Authority.TENANT_ADMIN],
  173 + title: 'rulechain.edge-rulechains',
  174 + ruleChainsType: 'edges'
  175 + },
  176 + resolve: {
  177 + entitiesTableConfig: RuleChainsTableConfigResolver
  178 + }
  179 + },
  180 + {
  181 + path: ':ruleChainId',
  182 + component: RuleChainPageComponent,
  183 + canDeactivate: [ConfirmOnExitGuard],
  184 + data: {
  185 + breadcrumb: {
  186 + labelFunction: ruleChainBreadcumbLabelFunction,
  187 + icon: 'settings_ethernet'
  188 + } as BreadCrumbConfig<RuleChainPageComponent>,
  189 + auth: [Authority.TENANT_ADMIN],
  190 + title: 'rulechain.edge-rulechain',
  191 + import: false,
  192 + ruleChainType: ruleChainType.edge
  193 + },
  194 + resolve: {
  195 + ruleChain: RuleChainResolver,
  196 + ruleChainMetaData: ResolvedRuleChainMetaDataResolver,
  197 + ruleNodeComponents: RuleNodeComponentsResolver
  198 + }
  199 + },
  200 + {
  201 + path: 'ruleChain/import',
  202 + component: RuleChainPageComponent,
  203 + canActivate: [RuleChainImportGuard],
  204 + canDeactivate: [ConfirmOnExitGuard],
  205 + data: {
  206 + breadcrumb: {
  207 + labelFunction: importRuleChainBreadcumbLabelFunction,
  208 + icon: 'settings_ethernet'
  209 + } as BreadCrumbConfig<RuleChainPageComponent>,
  210 + auth: [Authority.TENANT_ADMIN],
  211 + title: 'rulechain.edge-rulechain',
  212 + import: true,
  213 + ruleChainType: ruleChainType.edge
  214 + },
  215 + resolve: {
  216 + ruleNodeComponents: RuleNodeComponentsResolver
  217 + }
  218 + }
  219 + ]
  220 + }
150 ] 221 ]
151 }] 222 }]
152 223
@@ -48,7 +48,8 @@ import { @@ -48,7 +48,8 @@ import {
48 RuleChainConnectionInfo, 48 RuleChainConnectionInfo,
49 RuleChainImport, 49 RuleChainImport,
50 RuleChainMetaData, 50 RuleChainMetaData,
51 - ruleChainNodeComponent 51 + ruleChainNodeComponent,
  52 + ruleChainType
52 } from '@shared/models/rule-chain.models'; 53 } from '@shared/models/rule-chain.models';
53 import { FcItemInfo, FlowchartConstants, NgxFlowchartComponent, UserCallbacks } from 'ngx-flowchart/dist/ngx-flowchart'; 54 import { FcItemInfo, FlowchartConstants, NgxFlowchartComponent, UserCallbacks } from 'ngx-flowchart/dist/ngx-flowchart';
54 import { 55 import {
@@ -119,6 +120,8 @@ export class RuleChainPageComponent extends PageComponent @@ -119,6 +120,8 @@ export class RuleChainPageComponent extends PageComponent
119 isDirtyValue: boolean; 120 isDirtyValue: boolean;
120 isInvalid = false; 121 isInvalid = false;
121 122
  123 + ruleChainType: string;
  124 +
122 errorTooltips: {[nodeId: string]: JQueryTooltipster.ITooltipsterInstance} = {}; 125 errorTooltips: {[nodeId: string]: JQueryTooltipster.ITooltipsterInstance} = {};
123 isFullscreen = false; 126 isFullscreen = false;
124 127
@@ -288,6 +291,7 @@ export class RuleChainPageComponent extends PageComponent @@ -288,6 +291,7 @@ export class RuleChainPageComponent extends PageComponent
288 private init() { 291 private init() {
289 this.initHotKeys(); 292 this.initHotKeys();
290 this.isImport = this.route.snapshot.data.import; 293 this.isImport = this.route.snapshot.data.import;
  294 + this.ruleChainType = this.route.snapshot.data.ruleChainType;
291 if (this.isImport) { 295 if (this.isImport) {
292 const ruleChainImport: RuleChainImport = this.itembuffer.getRuleChainImport(); 296 const ruleChainImport: RuleChainImport = this.itembuffer.getRuleChainImport();
293 this.ruleChain = ruleChainImport.ruleChain; 297 this.ruleChain = ruleChainImport.ruleChain;
@@ -1281,7 +1285,11 @@ export class RuleChainPageComponent extends PageComponent @@ -1281,7 +1285,11 @@ export class RuleChainPageComponent extends PageComponent
1281 if (this.isImport) { 1285 if (this.isImport) {
1282 this.isDirtyValue = false; 1286 this.isDirtyValue = false;
1283 this.isImport = false; 1287 this.isImport = false;
1284 - this.router.navigateByUrl(`ruleChains/${this.route.snapshot.data.ruleChainType.toLowerCase()}/${this.ruleChain.id.id}`); 1288 + if (this.ruleChainType !== ruleChainType.edge) {
  1289 + this.router.navigateByUrl(`ruleChains/${this.ruleChain.id.id}`);
  1290 + } else {
  1291 + this.router.navigateByUrl(`edges/ruleChains/${this.ruleChain.id.id}`);
  1292 + }
1285 } else { 1293 } else {
1286 this.createRuleChainModel(); 1294 this.createRuleChainModel();
1287 } 1295 }
@@ -123,140 +123,54 @@ const routes: Routes = [ @@ -123,140 +123,54 @@ const routes: Routes = [
123 children: [ 123 children: [
124 { 124 {
125 path: '', 125 path: '',
126 - redirectTo: '/ruleChains/core',  
127 - pathMatch: 'full',  
128 component: EntitiesTableComponent, 126 component: EntitiesTableComponent,
129 data: { 127 data: {
130 auth: [Authority.TENANT_ADMIN], 128 auth: [Authority.TENANT_ADMIN],
131 - title: 'rulechain.rulechains' 129 + title: 'rulechain.rulechains',
  130 + ruleChainsType: 'tenant'
132 }, 131 },
133 resolve: { 132 resolve: {
134 entitiesTableConfig: RuleChainsTableConfigResolver 133 entitiesTableConfig: RuleChainsTableConfigResolver
135 } 134 }
136 }, 135 },
137 { 136 {
138 - path: 'core', 137 + path: ':ruleChainId',
  138 + component: RuleChainPageComponent,
  139 + canDeactivate: [ConfirmOnExitGuard],
139 data: { 140 data: {
140 breadcrumb: { 141 breadcrumb: {
141 - label: 'rulechain.core-rulechains', 142 + labelFunction: ruleChainBreadcumbLabelFunction,
142 icon: 'settings_ethernet' 143 icon: 'settings_ethernet'
143 - } 144 + } as BreadCrumbConfig<RuleChainPageComponent>,
  145 + auth: [Authority.TENANT_ADMIN],
  146 + title: 'rulechain.rulechain',
  147 + import: false,
  148 + ruleChainType: ruleChainType.core
144 }, 149 },
145 - children: [  
146 - {  
147 - path: '',  
148 - component: EntitiesTableComponent,  
149 - data: {  
150 - auth: [Authority.TENANT_ADMIN],  
151 - title: 'rulechain.rulechains',  
152 - ruleChainsType: 'tenant'  
153 - },  
154 - resolve: {  
155 - entitiesTableConfig: RuleChainsTableConfigResolver  
156 - },  
157 - },  
158 - {  
159 - path: ':ruleChainId',  
160 - component: RuleChainPageComponent,  
161 - canDeactivate: [ConfirmOnExitGuard],  
162 - data: {  
163 - breadcrumb: {  
164 - labelFunction: ruleChainBreadcumbLabelFunction,  
165 - icon: 'settings_ethernet'  
166 - } as BreadCrumbConfig<RuleChainPageComponent>,  
167 - auth: [Authority.TENANT_ADMIN],  
168 - title: 'rulechain.rulechain',  
169 - import: false,  
170 - ruleChainType: ruleChainType.core  
171 - },  
172 - resolve: {  
173 - ruleChain: RuleChainResolver,  
174 - ruleChainMetaData: ResolvedRuleChainMetaDataResolver,  
175 - ruleNodeComponents: RuleNodeComponentsResolver  
176 - }  
177 - },  
178 - {  
179 - path: 'ruleChain/import',  
180 - component: RuleChainPageComponent,  
181 - canActivate: [RuleChainImportGuard],  
182 - canDeactivate: [ConfirmOnExitGuard],  
183 - data: {  
184 - breadcrumb: {  
185 - labelFunction: importRuleChainBreadcumbLabelFunction,  
186 - icon: 'settings_ethernet'  
187 - } as BreadCrumbConfig<RuleChainPageComponent>,  
188 - auth: [Authority.TENANT_ADMIN],  
189 - title: 'rulechain.rulechain',  
190 - import: true,  
191 - ruleChainType: ruleChainType.core  
192 - },  
193 - resolve: {  
194 - ruleNodeComponents: RuleNodeComponentsResolver  
195 - }  
196 - }  
197 - ] 150 + resolve: {
  151 + ruleChain: RuleChainResolver,
  152 + ruleChainMetaData: ResolvedRuleChainMetaDataResolver,
  153 + ruleNodeComponents: RuleNodeComponentsResolver
  154 + }
198 }, 155 },
199 { 156 {
200 - path: 'edge', 157 + path: 'ruleChain/import',
  158 + component: RuleChainPageComponent,
  159 + canActivate: [RuleChainImportGuard],
  160 + canDeactivate: [ConfirmOnExitGuard],
201 data: { 161 data: {
202 breadcrumb: { 162 breadcrumb: {
203 - label: 'rulechain.edge-rulechains', 163 + labelFunction: importRuleChainBreadcumbLabelFunction,
204 icon: 'settings_ethernet' 164 icon: 'settings_ethernet'
205 - } 165 + } as BreadCrumbConfig<RuleChainPageComponent>,
  166 + auth: [Authority.TENANT_ADMIN],
  167 + title: 'rulechain.rulechain',
  168 + import: true,
  169 + ruleChainType: ruleChainType.core
206 }, 170 },
207 - children: [  
208 - {  
209 - path: '',  
210 - component: EntitiesTableComponent,  
211 - data: {  
212 - auth: [Authority.TENANT_ADMIN],  
213 - title: 'rulechain.edge-rulechains',  
214 - ruleChainsType: 'edges'  
215 - },  
216 - resolve: {  
217 - entitiesTableConfig: RuleChainsTableConfigResolver  
218 - }  
219 - },  
220 - {  
221 - path: ':ruleChainId',  
222 - component: RuleChainPageComponent,  
223 - canDeactivate: [ConfirmOnExitGuard],  
224 - data: {  
225 - breadcrumb: {  
226 - labelFunction: ruleChainBreadcumbLabelFunction,  
227 - icon: 'settings_ethernet'  
228 - } as BreadCrumbConfig<RuleChainPageComponent>,  
229 - auth: [Authority.TENANT_ADMIN],  
230 - title: 'rulechain.edge-rulechain',  
231 - import: false,  
232 - ruleChainType: ruleChainType.edge  
233 - },  
234 - resolve: {  
235 - ruleChain: RuleChainResolver,  
236 - ruleChainMetaData: ResolvedRuleChainMetaDataResolver,  
237 - ruleNodeComponents: RuleNodeComponentsResolver  
238 - }  
239 - },  
240 - {  
241 - path: 'ruleChain/import',  
242 - component: RuleChainPageComponent,  
243 - canActivate: [RuleChainImportGuard],  
244 - canDeactivate: [ConfirmOnExitGuard],  
245 - data: {  
246 - breadcrumb: {  
247 - labelFunction: importRuleChainBreadcumbLabelFunction,  
248 - icon: 'settings_ethernet'  
249 - } as BreadCrumbConfig<RuleChainPageComponent>,  
250 - auth: [Authority.TENANT_ADMIN],  
251 - title: 'rulechain.edge-rulechain',  
252 - import: true,  
253 - ruleChainType: ruleChainType.edge  
254 - },  
255 - resolve: {  
256 - ruleNodeComponents: RuleNodeComponentsResolver  
257 - }  
258 - }  
259 - ] 171 + resolve: {
  172 + ruleNodeComponents: RuleNodeComponentsResolver
  173 + }
260 } 174 }
261 ] 175 ]
262 } 176 }
@@ -169,7 +169,7 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< @@ -169,7 +169,7 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
169 169
170 configureEntityFunctions(ruleChainScope: string): void { 170 configureEntityFunctions(ruleChainScope: string): void {
171 if (ruleChainScope === 'tenant') { 171 if (ruleChainScope === 'tenant') {
172 - this.config.tableTitle = this.translate.instant('rulechain.core-rulechains'); 172 + this.config.tableTitle = this.translate.instant('rulechain.rulechains');
173 this.config.entitiesFetchFunction = pageLink => this.fetchRuleChains(pageLink); 173 this.config.entitiesFetchFunction = pageLink => this.fetchRuleChains(pageLink);
174 } else if (ruleChainScope === 'edges') { 174 } else if (ruleChainScope === 'edges') {
175 this.config.tableTitle = this.translate.instant('rulechain.edge-rulechains'); 175 this.config.tableTitle = this.translate.instant('rulechain.edge-rulechains');