Commit 585f60fe15ab3912ab428cc9e93c31014584540c

Authored by Artem Babak
1 parent 29f64d93

Edge rulechains: open/export from 'edge' scope

... ... @@ -59,21 +59,6 @@ const routes: Routes = [
59 59 }
60 60 },
61 61 {
62   - path: ':edgeId/ruleChains',
63   - component: EntitiesTableComponent,
64   - data: {
65   - auth: [Authority.TENANT_ADMIN],
66   - ruleChainsType: 'edge',
67   - breadcrumb: {
68   - label: 'edge.edge-rulechains',
69   - icon: 'settings_ethernet'
70   - },
71   - },
72   - resolve: {
73   - entitiesTableConfig: RuleChainsTableConfigResolver
74   - }
75   - },
76   - {
77 62 path: ':edgeId/assets',
78 63 component: EntitiesTableComponent,
79 64 data: {
... ... @@ -157,6 +142,50 @@ const routes: Routes = [
157 142 ]
158 143 },
159 144 {
  145 + path: ':edgeId/ruleChains',
  146 + data: {
  147 + breadcrumb: {
  148 + label: 'edge.edge-rulechains',
  149 + icon: 'settings_ethernet'
  150 + }
  151 + },
  152 + children: [
  153 + {
  154 + path: '',
  155 + component: EntitiesTableComponent,
  156 + data: {
  157 + auth: [Authority.TENANT_ADMIN],
  158 + title: 'edge.rulechains',
  159 + ruleChainsType: 'edge'
  160 + },
  161 + resolve: {
  162 + entitiesTableConfig: RuleChainsTableConfigResolver
  163 + }
  164 + },
  165 + {
  166 + path: ':ruleChainId',
  167 + component: RuleChainPageComponent,
  168 + canDeactivate: [ConfirmOnExitGuard],
  169 + data: {
  170 + breadcrumb: {
  171 + labelFunction: ruleChainBreadcumbLabelFunction,
  172 + icon: 'settings_ethernet'
  173 + } as BreadCrumbConfig<RuleChainPageComponent>,
  174 + auth: [Authority.TENANT_ADMIN],
  175 + title: 'rulechain.edge-rulechain',
  176 + import: false,
  177 + ruleChainType: RuleChainType.EDGE
  178 + },
  179 + resolve: {
  180 + ruleChain: RuleChainResolver,
  181 + ruleChainMetaData: ResolvedRuleChainMetaDataResolver,
  182 + ruleNodeComponents: RuleNodeComponentsResolver,
  183 + tooltipster: TooltipsterResolver
  184 + }
  185 + }
  186 + ]
  187 + },
  188 + {
160 189 path: 'ruleChains',
161 190 data: {
162 191 breadcrumb: {
... ...
... ... @@ -19,19 +19,19 @@
19 19 <button mat-raised-button color="primary"
20 20 [disabled]="(isLoading$ | async)"
21 21 (click)="onEntityAction($event, 'open')"
22   - [fxShow]="!isEdit && (ruleChainScope === 'tenant' || ruleChainScope === 'edges')">
  22 + [fxShow]="!isEdit">
23 23 {{'rulechain.open-rulechain' | translate }}
24 24 </button>
25 25 <button mat-raised-button color="primary"
26 26 [disabled]="(isLoading$ | async)"
27 27 (click)="onEntityAction($event, 'export')"
28   - [fxShow]="!isEdit && (ruleChainScope === 'tenant' || ruleChainScope === 'edges')">
  28 + [fxShow]="!isEdit">
29 29 {{'rulechain.export' | translate }}
30 30 </button>
31 31 <button mat-raised-button color="primary"
32 32 [disabled]="(isLoading$ | async)"
33 33 (click)="onEntityAction($event, 'setRoot')"
34   - [fxShow]="!isEdit && !entity?.root && ruleChainScope === 'tenant'">
  34 + [fxShow]="!isEdit && ((!entity?.root && ruleChainScope === 'tenant') || (!isEdgeRootRuleChain() && ruleChainScope === 'edge'))">
35 35 {{'rulechain.set-root' | translate }}
36 36 </button>
37 37 <button mat-raised-button color="primary"
... ... @@ -54,12 +54,6 @@
54 54 </button>
55 55 <button mat-raised-button color="primary"
56 56 [disabled]="(isLoading$ | async)"
57   - (click)="onEntityAction($event, 'setRoot')"
58   - [fxShow]="!isEdit && !isEdgeRootRuleChain() && ruleChainScope === 'edge'">
59   - {{'rulechain.set-root' | translate }}
60   - </button>
61   - <button mat-raised-button color="primary"
62   - [disabled]="(isLoading$ | async)"
63 57 (click)="onEntityAction($event, 'unassignFromEdge')"
64 58 [fxShow]="!isEdit && !isEdgeRootRuleChain() && ruleChainScope === 'edge'">
65 59 {{'edge.unassign-from-edge' | translate }}
... ... @@ -67,7 +61,7 @@
67 61 <button mat-raised-button color="primary"
68 62 [disabled]="(isLoading$ | async)"
69 63 (click)="onEntityAction($event, 'delete')"
70   - [fxShow]="!hideDelete() && !isEdit && (ruleChainScope === 'tenant' || ruleChainScope === 'edges')">
  64 + [fxShow]="!hideDelete() && !isEdit && ruleChainScope !== 'edge'">
71 65 {{'rulechain.delete' | translate }}
72 66 </button>
73 67 <div fxLayout="row">
... ...
... ... @@ -211,53 +211,51 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
211 211
212 212 configureCellActions(ruleChainScope: string): Array<CellActionDescriptor<RuleChain>> {
213 213 const actions: Array<CellActionDescriptor<RuleChain>> = [];
214   - if (ruleChainScope === 'tenant' || ruleChainScope === 'edges') {
  214 + actions.push(
  215 + {
  216 + name: this.translate.instant('rulechain.open-rulechain'),
  217 + icon: 'settings_ethernet',
  218 + isEnabled: () => true,
  219 + onAction: ($event, entity) => this.openRuleChain($event, entity)
  220 + },
  221 + {
  222 + name: this.translate.instant('rulechain.export'),
  223 + icon: 'file_download',
  224 + isEnabled: () => true,
  225 + onAction: ($event, entity) => this.exportRuleChain($event, entity)
  226 + }
  227 + );
  228 + if (ruleChainScope === 'tenant') {
215 229 actions.push(
216 230 {
217   - name: this.translate.instant('rulechain.open-rulechain'),
218   - icon: 'settings_ethernet',
219   - isEnabled: () => true,
220   - onAction: ($event, entity) => this.openRuleChain($event, entity)
  231 + name: this.translate.instant('rulechain.set-root'),
  232 + icon: 'flag',
  233 + isEnabled: (entity) => this.isNonRootRuleChain(entity),
  234 + onAction: ($event, entity) => this.setRootRuleChain($event, entity)
  235 + }
  236 + );
  237 + }
  238 + if (ruleChainScope === 'edges') {
  239 + actions.push(
  240 + {
  241 + name: this.translate.instant('rulechain.set-edge-template-root-rulechain'),
  242 + icon: 'flag',
  243 + isEnabled: (entity) => this.isNonRootRuleChain(entity),
  244 + onAction: ($event, entity) => this.setEdgeTemplateRootRuleChain($event, entity)
221 245 },
222 246 {
223   - name: this.translate.instant('rulechain.export'),
224   - icon: 'file_download',
225   - isEnabled: () => true,
226   - onAction: ($event, entity) => this.exportRuleChain($event, entity)
  247 + name: this.translate.instant('rulechain.set-auto-assign-to-edge'),
  248 + icon: 'bookmark_outline',
  249 + isEnabled: (entity) => this.isNotAutoAssignToEdgeRuleChain(entity),
  250 + onAction: ($event, entity) => this.setAutoAssignToEdgeRuleChain($event, entity)
  251 + },
  252 + {
  253 + name: this.translate.instant('rulechain.unset-auto-assign-to-edge'),
  254 + icon: 'bookmark',
  255 + isEnabled: (entity) => this.isAutoAssignToEdgeRuleChain(entity),
  256 + onAction: ($event, entity) => this.unsetAutoAssignToEdgeRuleChain($event, entity)
227 257 }
228 258 );
229   - if (ruleChainScope === 'tenant') {
230   - actions.push(
231   - {
232   - name: this.translate.instant('rulechain.set-root'),
233   - icon: 'flag',
234   - isEnabled: (entity) => this.isNonRootRuleChain(entity),
235   - onAction: ($event, entity) => this.setRootRuleChain($event, entity)
236   - }
237   - );
238   - }
239   - if (ruleChainScope === 'edges') {
240   - actions.push(
241   - {
242   - name: this.translate.instant('rulechain.set-edge-template-root-rulechain'),
243   - icon: 'flag',
244   - isEnabled: (entity) => this.isNonRootRuleChain(entity),
245   - onAction: ($event, entity) => this.setEdgeTemplateRootRuleChain($event, entity)
246   - },
247   - {
248   - name: this.translate.instant('rulechain.set-auto-assign-to-edge'),
249   - icon: 'bookmark_outline',
250   - isEnabled: (entity) => this.isNotAutoAssignToEdgeRuleChain(entity),
251   - onAction: ($event, entity) => this.setAutoAssignToEdgeRuleChain($event, entity)
252   - },
253   - {
254   - name: this.translate.instant('rulechain.unset-auto-assign-to-edge'),
255   - icon: 'bookmark',
256   - isEnabled: (entity) => this.isAutoAssignToEdgeRuleChain(entity),
257   - onAction: ($event, entity) => this.unsetAutoAssignToEdgeRuleChain($event, entity)
258   - }
259   - );
260   - }
261 259 }
262 260 if (ruleChainScope === 'edge') {
263 261 actions.push(
... ... @@ -301,6 +299,8 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
301 299 }
302 300 if (this.config.componentsData.ruleChainScope === 'edges') {
303 301 this.router.navigateByUrl(`edges/ruleChains/${ruleChain.id.id}`);
  302 + } else if (this.config.componentsData.ruleChainScope === 'edge') {
  303 + this.router.navigateByUrl(`edges/${this.config.componentsData.edgeId}/ruleChains/${ruleChain.id.id}`);
304 304 } else {
305 305 this.router.navigateByUrl(`ruleChains/${ruleChain.id.id}`);
306 306 }
... ...