Commit e7b153b9371044ee26b6e0b60671b06a12dd0104

Authored by Artem Babak
1 parent d5d56294

EdgeEvents without Status

... ... @@ -20,7 +20,7 @@ import {
20 20 EntityTableColumn,
21 21 EntityTableConfig
22 22 } from '@home/models/entity/entities-table-config.models';
23   -import {DebugEventType, Event, EventType} from '@shared/models/event.models';
  23 +import {DebugEventType, EdgeEventType, Event, EventType} from '@shared/models/event.models';
24 24 import {TimePageLink} from '@shared/models/page/page-link';
25 25 import {TranslateService} from '@ngx-translate/core';
26 26 import {DatePipe} from '@angular/common';
... ... @@ -39,6 +39,7 @@ import {
39 39 EventContentDialogData
40 40 } from '@home/components/event/event-content-dialog.component';
41 41 import {sortObjectKeys} from '@core/utils';
  42 +import {RuleChainService} from "@core/http/rule-chain.service";
42 43
43 44 export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
44 45
... ... @@ -60,6 +61,7 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
60 61 constructor(private eventService: EventService,
61 62 private dialogService: DialogService,
62 63 private translate: TranslateService,
  64 + private ruleChainService: RuleChainService,
63 65 private datePipe: DatePipe,
64 66 private dialog: MatDialog,
65 67 public entityId: EntityId,
... ... @@ -119,9 +121,13 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
119 121 this.columns = [];
120 122 this.columns.push(
121 123 new DateEntityTableColumn<Event>('createdTime', 'event.event-time', this.datePipe, '120px'),
122   - // new EntityTableColumn<Event>('server', 'event.server', '100px',
123   - // (entity) => entity.body.server, entity => ({}), false)
124 124 );
  125 + if (this.eventType !== EventType.EDGE_EVENT) {
  126 + this.columns.push(
  127 + new EntityTableColumn<Event>('server', 'event.server', '100px',
  128 + (entity) => entity.body.server, entity => ({}), false)
  129 + );
  130 + }
125 131 switch (this.eventType) {
126 132 case EventType.ERROR:
127 133 this.columns.push(
... ... @@ -175,7 +181,16 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
175 181 new EntityTableColumn<Event>('action', 'event.action', '100%',
176 182 (entity) => entity.action, entity => ({}), false),
177 183 new EntityTableColumn<Event>('entityId', 'event.entityId', '100%',
178   - (entity) => entity.id.id, entity => ({}), false) //TODO: replace this to entity.entityId because of conflict wiht entityId model
  184 + (entity) => entity.id.id, entity => ({}), false), //TODO: replace this to entity.entityId because of conflict wiht entityId model
  185 + new EntityActionTableColumn<Event>('data', 'event.data',
  186 + {
  187 + name: this.translate.instant('action.view'),
  188 + icon: 'more_horiz',
  189 + isEnabled: (entity) => this.checkEdgeEventType(entity),
  190 + onAction: ($event, entity) => this.showEdgeEventContent($event, this.manageEdgeEventContent(entity),
  191 + 'event.data')
  192 + },
  193 + '40px'),
179 194 );
180 195 break;
181 196 case DebugEventType.DEBUG_RULE_NODE:
... ... @@ -268,4 +283,49 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
268 283 }
269 284 });
270 285 }
  286 +
  287 + checkEdgeEventType(entity) {
  288 + return !( entity.type === EdgeEventType.WIDGET_TYPE ||
  289 + entity.type === EdgeEventType.ADMIN_SETTINGS ||
  290 + entity.type === EdgeEventType.WIDGETS_BUNDLE );
  291 + }
  292 +
  293 + manageEdgeEventContent(entity) {
  294 + var content = '';
  295 + switch (entity.type) {
  296 + case EdgeEventType.RELATION:
  297 + content = entity.body;
  298 + break;
  299 + // case EdgeEventType.RULE_CHAIN_METADATA:
  300 + // this.ruleChainService.getRuleChainMetadata(entity.entityId, null).pipe(
  301 + // map(ruleChainMetaData => content = ruleChainMetaData.nodes)
  302 + // );
  303 + // break;
  304 + default:
  305 + content = entity;
  306 + break;
  307 + }
  308 + return JSON.stringify(content);
  309 + }
  310 +
  311 + showEdgeEventContent($event: MouseEvent, content: string, title: string, sortKeys = false): void {
  312 + if ($event) {
  313 + $event.stopPropagation();
  314 + }
  315 + var contentType = ContentType.JSON;
  316 + if (contentType === ContentType.JSON && sortKeys) {
  317 + try {
  318 + content = JSON.stringify(sortObjectKeys(JSON.parse(content)));
  319 + } catch (e) {}
  320 + }
  321 + this.dialog.open<EventContentDialogComponent, EventContentDialogData>(EventContentDialogComponent, {
  322 + disableClose: true,
  323 + panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
  324 + data: {
  325 + content,
  326 + title,
  327 + contentType
  328 + }
  329 + });
  330 + }
271 331 }
... ...
... ... @@ -24,6 +24,7 @@ import { EventTableConfig } from './event-table-config';
24 24 import { EventService } from '@core/http/event.service';
25 25 import { DialogService } from '@core/services/dialog.service';
26 26 import { DebugEventType, EventType } from '@shared/models/event.models';
  27 +import { RuleChainService } from "@core/http/rule-chain.service";
27 28
28 29 @Component({
29 30 selector: 'tb-event-table',
... ... @@ -79,6 +80,7 @@ export class EventTableComponent implements OnInit {
79 80 constructor(private eventService: EventService,
80 81 private dialogService: DialogService,
81 82 private translate: TranslateService,
  83 + private ruleChainService: RuleChainService,
82 84 private datePipe: DatePipe,
83 85 private dialog: MatDialog) {
84 86 }
... ... @@ -89,6 +91,7 @@ export class EventTableComponent implements OnInit {
89 91 this.eventService,
90 92 this.dialogService,
91 93 this.translate,
  94 + this.ruleChainService,
92 95 this.datePipe,
93 96 this.dialog,
94 97 this.entityIdValue,
... ...
... ... @@ -19,6 +19,7 @@ import { TenantId } from '@shared/models/id/tenant-id';
19 19 import { EntityId } from '@shared/models/id/entity-id';
20 20 import { EventId } from './id/event-id';
21 21 import { ContentType } from '@shared/models/constants';
  22 +import { EntityType } from '@shared/models/entity-type.models'
22 23
23 24 export enum EventType {
24 25 ERROR = 'ERROR',
... ... @@ -31,6 +32,28 @@ export enum DebugEventType {
31 32 DEBUG_RULE_NODE = 'DEBUG_RULE_NODE',
32 33 DEBUG_RULE_CHAIN = 'DEBUG_RULE_CHAIN'
33 34 }
  35 +//TODO deaflynx filter CE only event types
  36 +export enum EdgeEventType {
  37 + DASHBOARD = "DASHBOARD",
  38 + ASSET = "ASSET",
  39 + DEVICE = "DEVICE",
  40 + ENTITY_VIEW = "ENTITY_VIEW",
  41 + ALARM = "ALARM",
  42 + RULE_CHAIN = "RULE_CHAIN",
  43 + RULE_CHAIN_METADATA = "RULE_CHAIN_METADATA",
  44 + EDGE = "EDGE",
  45 + USER = "USER",
  46 + CUSTOMER = "CUSTOMER",
  47 + RELATION = "RELATION",
  48 + ENTITY_GROUP = "ENTITY_GROUP",
  49 + SCHEDULER_EVENT = "SCHEDULER_EVENT",
  50 + WHITE_LABELING = "WHITE_LABELING",
  51 + LOGIN_WHITE_LABELING = "LOGIN_WHITE_LABELING",
  52 + CUSTOM_TRANSLATION = "CUSTOM_TRANSLATION",
  53 + WIDGETS_BUNDLE = "WIDGETS_BUNDLE",
  54 + WIDGET_TYPE = "WIDGET_TYPE",
  55 + ADMIN_SETTINGS = "ADMIN_SETTINGS"
  56 +}
34 57
35 58 export const eventTypeTranslations = new Map<EventType | DebugEventType, string>(
36 59 [
... ...