diff --git a/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table-config.ts b/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table-config.ts index 64bac0313f..f4562b1b20 100644 --- a/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table-config.ts +++ b/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table-config.ts @@ -21,7 +21,8 @@ import { EntityTableConfig } from '@home/models/entity/entities-table-config.models'; import { - EdgeEvent, edgeEventActionTypeTranslations, + EdgeEvent, + edgeEventActionTypeTranslations, EdgeEventStatus, edgeEventStatusColor, EdgeEventType, @@ -42,17 +43,13 @@ import { EventContentDialogComponent, EventContentDialogData } from '@home/components/event/event-content-dialog.component'; -import { sortObjectKeys } from '@core/utils'; import { RuleChainService } from '@core/http/rule-chain.service'; import { AttributeService } from '@core/http/attribute.service'; import { AttributeScope } from '@shared/models/telemetry/telemetry.models'; import { EdgeDownlinkTableHeaderComponent } from '@home/components/edge/edge-downlink-table-header.component'; import { EdgeService } from '@core/http/edge.service'; import { map } from 'rxjs/operators'; -import { AssetService } from '@core/http/asset.service'; -import { DeviceService } from '@core/http/device.service'; -import { EntityViewService } from '@core/http/entity-view.service'; -import { EventTableHeaderComponent } from '@home/components/event/event-table-header.component'; +import { EntityService } from "@core/http/entity.service"; export class EdgeDownlinkTableConfig extends EntityTableConfig { @@ -61,9 +58,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig this.onUpdate(attributes) + ); + } + + onUpdate(attributes) { + this.queueStartTs = 0; + let edge = attributes.reduce(function (map, attribute) { + map[attribute.key] = attribute; + return map; + }, {}); + if (edge.queueStartTs) { + this.queueStartTs = edge.queueStartTs.lastUpdateTs; + } + } + updateColumns(updateTableColumns: boolean = false): void { this.columns = []; this.columns.push( @@ -132,31 +145,23 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig(EventContentDialogComponent, { - disableClose: true, - panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], - data: { - content, - title, - contentType - } - }); + } + + isPending(createdTime) { + return createdTime > this.queueStartTs; } isEdgeEventHasData(edgeEventType: EdgeEventType) { switch (edgeEventType) { - case EdgeEventType.WIDGET_TYPE: + case EdgeEventType.DEVICE_PROFILE: case EdgeEventType.WIDGETS_BUNDLE: + case EdgeEventType.WIDGET_TYPE: case EdgeEventType.ADMIN_SETTINGS: return false; default: @@ -165,89 +170,50 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig { - return JSON.stringify(asset); - }) - ); case EdgeEventType.DEVICE: - return this.deviceService.getDevice(entity.entityId, null).pipe( - map((device) => { - return JSON.stringify(device); - }) - ); + case EdgeEventType.ASSET: + case EdgeEventType.EDGE: case EdgeEventType.ENTITY_VIEW: - return this.entityViewService.getEntityView(entity.entityId, null).pipe( - map((entityView) => { - return JSON.stringify(entityView); + case EdgeEventType.TENANT: + case EdgeEventType.CUSTOMER: + case EdgeEventType.DASHBOARD: + case EdgeEventType.USER: + case EdgeEventType.RULE_CHAIN: + case EdgeEventType.ALARM: + return this.entityService.getEntity(entity.type, entity.entityId, { ignoreLoading: true, ignoreErrors: true }).pipe( + map((entity) => { + return JSON.stringify(entity); }) ); + case EdgeEventType.RELATION: + return of(JSON.stringify(entity.body)); case EdgeEventType.RULE_CHAIN_METADATA: return this.ruleChainService.getRuleChainMetadata(entity.entityId, null).pipe( map((ruleChainMetaData) => { return JSON.stringify(ruleChainMetaData.nodes); }) ); - default: - return of(JSON.stringify(entity)); + case EdgeEventType.DEVICE_PROFILE: + case EdgeEventType.WIDGETS_BUNDLE: + case EdgeEventType.WIDGET_TYPE: + case EdgeEventType.ADMIN_SETTINGS: + return of(null); } } - showEdgeEventContent($event: MouseEvent, content: string, title: string, sortKeys = false): void { + showEdgeEventContent($event: MouseEvent, content: string, title: string): void { if ($event) { $event.stopPropagation(); } - var contentType = ContentType.JSON; - if (contentType === ContentType.JSON && sortKeys) { - try { - content = JSON.stringify(sortObjectKeys(JSON.parse(content))); - } catch (e) { - } - } this.dialog.open(EventContentDialogComponent, { disableClose: true, panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], data: { content, title, - contentType + contentType: ContentType.JSON } }); } - - updateEdgeEventStatus(createdTime) { - if (this.queueStartTs && createdTime < this.queueStartTs) { - return this.translate.instant('edge.deployed'); - } else { - return this.translate.instant('edge.pending'); - } - } - - isPending(createdTime) { - return createdTime > this.queueStartTs; - } - - loadEdgeInfo() { - this.attributeService.getEntityAttributes(this.entityId, AttributeScope.SERVER_SCOPE, ['queueStartTs']) - .subscribe( - attributes => this.onUpdate(attributes) - ); - } - - onUpdate(attributes) { - this.queueStartTs = 0; - let edge = attributes.reduce(function (map, attribute) { - map[attribute.key] = attribute; - return map; - }, {}); - if (edge.queueStartTs) { - this.queueStartTs = edge.queueStartTs.lastUpdateTs; - } - } } - diff --git a/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table.component.ts b/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table.component.ts index e6ad61998e..b0eb5f4c30 100644 --- a/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/edge/edge-downlink-table.component.ts @@ -25,9 +25,7 @@ import { DialogService } from '@core/services/dialog.service'; import { RuleChainService } from '@core/http/rule-chain.service'; import { AttributeService } from '@core/http/attribute.service'; import { EdgeService } from '@core/http/edge.service'; -import { DeviceService } from '@core/http/device.service'; -import { AssetService } from '@core/http/asset.service'; -import { EntityViewService } from '@core/http/entity-view.service'; +import { EntityService } from "@core/http/entity.service"; @Component({ selector: 'tb-edge-downlink-table', @@ -71,9 +69,7 @@ export class EdgeDownlinkTableComponent implements OnInit { edgeDownlinkTableConfig: EdgeDownlinkTableConfig; constructor(private edgeService: EdgeService, - private deviceService: DeviceService, - private assetService: AssetService, - private entityViewService: EntityViewService, + private entityService: EntityService, private dialogService: DialogService, private translate: TranslateService, private attributeService: AttributeService, @@ -88,9 +84,7 @@ export class EdgeDownlinkTableComponent implements OnInit { this.edgeService, this.dialogService, this.translate, - this.deviceService, - this.assetService, - this.entityViewService, + this.entityService, this.ruleChainService, this.attributeService, this.datePipe, diff --git a/ui-ngx/src/app/shared/models/edge.models.ts b/ui-ngx/src/app/shared/models/edge.models.ts index 22146a5f76..fd7cb57706 100644 --- a/ui-ngx/src/app/shared/models/edge.models.ts +++ b/ui-ngx/src/app/shared/models/edge.models.ts @@ -59,6 +59,7 @@ export enum EdgeEventType { USER = "USER", CUSTOMER = "CUSTOMER", RELATION = "RELATION", + TENANT = "TENANT", WIDGETS_BUNDLE = "WIDGETS_BUNDLE", WIDGET_TYPE = "WIDGET_TYPE", ADMIN_SETTINGS = "ADMIN_SETTINGS" @@ -105,6 +106,7 @@ export const edgeEventTypeTranslations = new Map( [EdgeEventType.USER, 'edge-event.type-user'], [EdgeEventType.CUSTOMER, 'edge-event.type-customer'], [EdgeEventType.RELATION, 'edge-event.type-relation'], + [EdgeEventType.TENANT, 'edge-event.type-tenant'], [EdgeEventType.WIDGETS_BUNDLE, 'edge-event.type-widgets-bundle'], [EdgeEventType.WIDGET_TYPE, 'edge-event.type-widgets-type'], [EdgeEventType.ADMIN_SETTINGS, 'edge-event.type-admin-settings']