|
@@ -56,6 +56,11 @@ import { EntityViewComponent } from '@modules/home/pages/entity-view/entity-view |
|
@@ -56,6 +56,11 @@ import { EntityViewComponent } from '@modules/home/pages/entity-view/entity-view |
56
|
import { EntityViewTableHeaderComponent } from '@modules/home/pages/entity-view/entity-view-table-header.component';
|
56
|
import { EntityViewTableHeaderComponent } from '@modules/home/pages/entity-view/entity-view-table-header.component';
|
57
|
import { EntityViewId } from '@shared/models/id/entity-view-id';
|
57
|
import { EntityViewId } from '@shared/models/id/entity-view-id';
|
58
|
import { EntityViewTabsComponent } from '@home/pages/entity-view/entity-view-tabs.component';
|
58
|
import { EntityViewTabsComponent } from '@home/pages/entity-view/entity-view-tabs.component';
|
|
|
59
|
+import { EdgeService } from "@core/http/edge.service";
|
|
|
60
|
+import {
|
|
|
61
|
+ AddEntitiesToEdgeDialogComponent,
|
|
|
62
|
+ AddEntitiesToEdgeDialogData
|
|
|
63
|
+} from "@home/dialogs/add-entities-to-edge-dialog.component";
|
59
|
|
64
|
|
60
|
@Injectable()
|
65
|
@Injectable()
|
61
|
export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig<EntityViewInfo>> {
|
66
|
export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig<EntityViewInfo>> {
|
|
@@ -63,11 +68,13 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -63,11 +68,13 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
63
|
private readonly config: EntityTableConfig<EntityViewInfo> = new EntityTableConfig<EntityViewInfo>();
|
68
|
private readonly config: EntityTableConfig<EntityViewInfo> = new EntityTableConfig<EntityViewInfo>();
|
64
|
|
69
|
|
65
|
private customerId: string;
|
70
|
private customerId: string;
|
|
|
71
|
+ private edgeId: string;
|
66
|
|
72
|
|
67
|
constructor(private store: Store<AppState>,
|
73
|
constructor(private store: Store<AppState>,
|
68
|
private broadcast: BroadcastService,
|
74
|
private broadcast: BroadcastService,
|
69
|
private entityViewService: EntityViewService,
|
75
|
private entityViewService: EntityViewService,
|
70
|
private customerService: CustomerService,
|
76
|
private customerService: CustomerService,
|
|
|
77
|
+ private edgeService: EdgeService,
|
71
|
private dialogService: DialogService,
|
78
|
private dialogService: DialogService,
|
72
|
private translate: TranslateService,
|
79
|
private translate: TranslateService,
|
73
|
private datePipe: DatePipe,
|
80
|
private datePipe: DatePipe,
|
|
@@ -111,6 +118,7 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -111,6 +118,7 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
111
|
entityViewType: ''
|
118
|
entityViewType: ''
|
112
|
};
|
119
|
};
|
113
|
this.customerId = routeParams.customerId;
|
120
|
this.customerId = routeParams.customerId;
|
|
|
121
|
+ this.edgeId = routeParams.edgeId;
|
114
|
return this.store.pipe(select(selectAuthUser), take(1)).pipe(
|
122
|
return this.store.pipe(select(selectAuthUser), take(1)).pipe(
|
115
|
tap((authUser) => {
|
123
|
tap((authUser) => {
|
116
|
if (authUser.authority === Authority.CUSTOMER_USER) {
|
124
|
if (authUser.authority === Authority.CUSTOMER_USER) {
|
|
@@ -128,7 +136,11 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -128,7 +136,11 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
128
|
} else {
|
136
|
} else {
|
129
|
this.config.tableTitle = parentCustomer.title + ': ' + this.translate.instant('entity-view.entity-views');
|
137
|
this.config.tableTitle = parentCustomer.title + ': ' + this.translate.instant('entity-view.entity-views');
|
130
|
}
|
138
|
}
|
131
|
- } else {
|
139
|
+ } else if (this.config.componentsData.entityViewScope === 'edge') {
|
|
|
140
|
+ this.edgeService.getEdge(this.edgeId).pipe(map(edge =>
|
|
|
141
|
+ this.config.tableTitle = edge.name + ': ' + this.translate.instant('entity-view.entity-views'))).subscribe();
|
|
|
142
|
+ }
|
|
|
143
|
+ else {
|
132
|
this.config.tableTitle = this.translate.instant('entity-view.entity-views');
|
144
|
this.config.tableTitle = this.translate.instant('entity-view.entity-views');
|
133
|
}
|
145
|
}
|
134
|
this.config.columns = this.configureColumns(this.config.componentsData.entityViewScope);
|
146
|
this.config.columns = this.configureColumns(this.config.componentsData.entityViewScope);
|
|
@@ -167,6 +179,9 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -167,6 +179,9 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
167
|
this.config.entitiesFetchFunction = pageLink =>
|
179
|
this.config.entitiesFetchFunction = pageLink =>
|
168
|
this.entityViewService.getTenantEntityViewInfos(pageLink, this.config.componentsData.entityViewType);
|
180
|
this.entityViewService.getTenantEntityViewInfos(pageLink, this.config.componentsData.entityViewType);
|
169
|
this.config.deleteEntity = id => this.entityViewService.deleteEntityView(id.id);
|
181
|
this.config.deleteEntity = id => this.entityViewService.deleteEntityView(id.id);
|
|
|
182
|
+ } else if (entityViewScope === 'edge') {
|
|
|
183
|
+ this.config.entitiesFetchFunction = pageLink =>
|
|
|
184
|
+ this.entityViewService.getEdgeEntityViews(this.edgeId, pageLink, this.config.componentsData.entityViewType);
|
170
|
} else {
|
185
|
} else {
|
171
|
this.config.entitiesFetchFunction = pageLink =>
|
186
|
this.config.entitiesFetchFunction = pageLink =>
|
172
|
this.entityViewService.getCustomerEntityViewInfos(this.customerId, pageLink, this.config.componentsData.entityViewType);
|
187
|
this.entityViewService.getCustomerEntityViewInfos(this.customerId, pageLink, this.config.componentsData.entityViewType);
|
|
@@ -220,6 +235,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -220,6 +235,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
220
|
}
|
235
|
}
|
221
|
);
|
236
|
);
|
222
|
}
|
237
|
}
|
|
|
238
|
+ if (entityViewScope === 'edge') {
|
|
|
239
|
+ actions.push(
|
|
|
240
|
+ {
|
|
|
241
|
+ name: this.translate.instant('edge.unassign-from-edge'),
|
|
|
242
|
+ icon: 'portable_wifi_off',
|
|
|
243
|
+ isEnabled: (entity) => true,
|
|
|
244
|
+ onAction: ($event, entity) => this.unassignFromEdge($event, entity)
|
|
|
245
|
+ }
|
|
|
246
|
+ );
|
|
|
247
|
+ }
|
223
|
return actions;
|
248
|
return actions;
|
224
|
}
|
249
|
}
|
225
|
|
250
|
|
|
@@ -245,6 +270,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -245,6 +270,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
245
|
}
|
270
|
}
|
246
|
);
|
271
|
);
|
247
|
}
|
272
|
}
|
|
|
273
|
+ if (entityViewScope === 'edge') {
|
|
|
274
|
+ actions.push(
|
|
|
275
|
+ {
|
|
|
276
|
+ name: this.translate.instant('entity-view.unassign-entity-views-from-edge'),
|
|
|
277
|
+ icon: 'portable_wifi_off',
|
|
|
278
|
+ isEnabled: true,
|
|
|
279
|
+ onAction: ($event, entities) => this.unassignEntityViewsFromEdge($event, entities)
|
|
|
280
|
+ }
|
|
|
281
|
+ );
|
|
|
282
|
+ }
|
248
|
return actions;
|
283
|
return actions;
|
249
|
}
|
284
|
}
|
250
|
|
285
|
|
|
@@ -260,6 +295,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -260,6 +295,16 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
260
|
}
|
295
|
}
|
261
|
);
|
296
|
);
|
262
|
}
|
297
|
}
|
|
|
298
|
+ if (entityViewScope === 'edge') {
|
|
|
299
|
+ actions.push(
|
|
|
300
|
+ {
|
|
|
301
|
+ name: this.translate.instant('entity-view.assign-new-entity-view'),
|
|
|
302
|
+ icon: 'add',
|
|
|
303
|
+ isEnabled: () => true,
|
|
|
304
|
+ onAction: ($event) => this.addEntityViewsToEdge($event)
|
|
|
305
|
+ }
|
|
|
306
|
+ );
|
|
|
307
|
+ }
|
263
|
return actions;
|
308
|
return actions;
|
264
|
}
|
309
|
}
|
265
|
|
310
|
|
|
@@ -400,4 +445,74 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
|
@@ -400,4 +445,74 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
400
|
return false;
|
445
|
return false;
|
401
|
}
|
446
|
}
|
402
|
|
447
|
|
|
|
448
|
+ addEntityViewsToEdge($event: Event) {
|
|
|
449
|
+ if ($event) {
|
|
|
450
|
+ $event.stopPropagation();
|
|
|
451
|
+ }
|
|
|
452
|
+ this.dialog.open<AddEntitiesToEdgeDialogComponent, AddEntitiesToEdgeDialogData,
|
|
|
453
|
+ boolean>(AddEntitiesToEdgeDialogComponent, {
|
|
|
454
|
+ disableClose: true,
|
|
|
455
|
+ panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
|
|
|
456
|
+ data: {
|
|
|
457
|
+ edgeId: this.edgeId,
|
|
|
458
|
+ entityType: EntityType.ENTITY_VIEW
|
|
|
459
|
+ }
|
|
|
460
|
+ }).afterClosed()
|
|
|
461
|
+ .subscribe((res) => {
|
|
|
462
|
+ if (res) {
|
|
|
463
|
+ this.config.table.updateData();
|
|
|
464
|
+ }
|
|
|
465
|
+ });
|
|
|
466
|
+ }
|
|
|
467
|
+
|
|
|
468
|
+ unassignFromEdge($event: Event, entityView: EntityViewInfo) {
|
|
|
469
|
+ if ($event) {
|
|
|
470
|
+ $event.stopPropagation();
|
|
|
471
|
+ }
|
|
|
472
|
+ this.dialogService.confirm(
|
|
|
473
|
+ this.translate.instant('entity-view.unassign-entity-view-from-edge-title', {entityViewName: entityView.name}),
|
|
|
474
|
+ this.translate.instant('entity-view.unassign-entity-view-from-edge-text'),
|
|
|
475
|
+ this.translate.instant('action.no'),
|
|
|
476
|
+ this.translate.instant('action.yes'),
|
|
|
477
|
+ true
|
|
|
478
|
+ ).subscribe((res) => {
|
|
|
479
|
+ if (res) {
|
|
|
480
|
+ this.entityViewService.unassignEntityViewFromEdge(this.edgeId, entityView.id.id).subscribe(
|
|
|
481
|
+ () => {
|
|
|
482
|
+ this.config.table.updateData();
|
|
|
483
|
+ }
|
|
|
484
|
+ );
|
|
|
485
|
+ }
|
|
|
486
|
+ }
|
|
|
487
|
+ );
|
|
|
488
|
+ }
|
|
|
489
|
+
|
|
|
490
|
+ unassignEntityViewsFromEdge($event: Event, entityViews: Array<EntityViewInfo>) {
|
|
|
491
|
+ if ($event) {
|
|
|
492
|
+ $event.stopPropagation();
|
|
|
493
|
+ }
|
|
|
494
|
+ this.dialogService.confirm(
|
|
|
495
|
+ this.translate.instant('entity-view.unassign-entity-views-from-edge-title', {count: entityViews.length}),
|
|
|
496
|
+ this.translate.instant('entity-view.unassign-entity-views-from-edge-text'),
|
|
|
497
|
+ this.translate.instant('action.no'),
|
|
|
498
|
+ this.translate.instant('action.yes'),
|
|
|
499
|
+ true
|
|
|
500
|
+ ).subscribe((res) => {
|
|
|
501
|
+ if (res) {
|
|
|
502
|
+ const tasks: Observable<any>[] = [];
|
|
|
503
|
+ entityViews.forEach(
|
|
|
504
|
+ (entityView) => {
|
|
|
505
|
+ tasks.push(this.entityViewService.unassignEntityViewFromEdge(this.edgeId, entityView.id.id));
|
|
|
506
|
+ }
|
|
|
507
|
+ );
|
|
|
508
|
+ forkJoin(tasks).subscribe(
|
|
|
509
|
+ () => {
|
|
|
510
|
+ this.config.table.updateData();
|
|
|
511
|
+ }
|
|
|
512
|
+ );
|
|
|
513
|
+ }
|
|
|
514
|
+ }
|
|
|
515
|
+ );
|
|
|
516
|
+ }
|
|
|
517
|
+
|
403
|
} |
518
|
} |