Commit e7b153b9371044ee26b6e0b60671b06a12dd0104

Authored by Artem Babak
1 parent d5d56294

EdgeEvents without Status

@@ -20,7 +20,7 @@ import { @@ -20,7 +20,7 @@ import {
20 EntityTableColumn, 20 EntityTableColumn,
21 EntityTableConfig 21 EntityTableConfig
22 } from '@home/models/entity/entities-table-config.models'; 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 import {TimePageLink} from '@shared/models/page/page-link'; 24 import {TimePageLink} from '@shared/models/page/page-link';
25 import {TranslateService} from '@ngx-translate/core'; 25 import {TranslateService} from '@ngx-translate/core';
26 import {DatePipe} from '@angular/common'; 26 import {DatePipe} from '@angular/common';
@@ -39,6 +39,7 @@ import { @@ -39,6 +39,7 @@ import {
39 EventContentDialogData 39 EventContentDialogData
40 } from '@home/components/event/event-content-dialog.component'; 40 } from '@home/components/event/event-content-dialog.component';
41 import {sortObjectKeys} from '@core/utils'; 41 import {sortObjectKeys} from '@core/utils';
  42 +import {RuleChainService} from "@core/http/rule-chain.service";
42 43
43 export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { 44 export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
44 45
@@ -60,6 +61,7 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { @@ -60,6 +61,7 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
60 constructor(private eventService: EventService, 61 constructor(private eventService: EventService,
61 private dialogService: DialogService, 62 private dialogService: DialogService,
62 private translate: TranslateService, 63 private translate: TranslateService,
  64 + private ruleChainService: RuleChainService,
63 private datePipe: DatePipe, 65 private datePipe: DatePipe,
64 private dialog: MatDialog, 66 private dialog: MatDialog,
65 public entityId: EntityId, 67 public entityId: EntityId,
@@ -119,9 +121,13 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { @@ -119,9 +121,13 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
119 this.columns = []; 121 this.columns = [];
120 this.columns.push( 122 this.columns.push(
121 new DateEntityTableColumn<Event>('createdTime', 'event.event-time', this.datePipe, '120px'), 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 switch (this.eventType) { 131 switch (this.eventType) {
126 case EventType.ERROR: 132 case EventType.ERROR:
127 this.columns.push( 133 this.columns.push(
@@ -175,7 +181,16 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { @@ -175,7 +181,16 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> {
175 new EntityTableColumn<Event>('action', 'event.action', '100%', 181 new EntityTableColumn<Event>('action', 'event.action', '100%',
176 (entity) => entity.action, entity => ({}), false), 182 (entity) => entity.action, entity => ({}), false),
177 new EntityTableColumn<Event>('entityId', 'event.entityId', '100%', 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 break; 195 break;
181 case DebugEventType.DEBUG_RULE_NODE: 196 case DebugEventType.DEBUG_RULE_NODE:
@@ -268,4 +283,49 @@ export class EventTableConfig extends EntityTableConfig<Event, TimePageLink> { @@ -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,6 +24,7 @@ import { EventTableConfig } from './event-table-config';
24 import { EventService } from '@core/http/event.service'; 24 import { EventService } from '@core/http/event.service';
25 import { DialogService } from '@core/services/dialog.service'; 25 import { DialogService } from '@core/services/dialog.service';
26 import { DebugEventType, EventType } from '@shared/models/event.models'; 26 import { DebugEventType, EventType } from '@shared/models/event.models';
  27 +import { RuleChainService } from "@core/http/rule-chain.service";
27 28
28 @Component({ 29 @Component({
29 selector: 'tb-event-table', 30 selector: 'tb-event-table',
@@ -79,6 +80,7 @@ export class EventTableComponent implements OnInit { @@ -79,6 +80,7 @@ export class EventTableComponent implements OnInit {
79 constructor(private eventService: EventService, 80 constructor(private eventService: EventService,
80 private dialogService: DialogService, 81 private dialogService: DialogService,
81 private translate: TranslateService, 82 private translate: TranslateService,
  83 + private ruleChainService: RuleChainService,
82 private datePipe: DatePipe, 84 private datePipe: DatePipe,
83 private dialog: MatDialog) { 85 private dialog: MatDialog) {
84 } 86 }
@@ -89,6 +91,7 @@ export class EventTableComponent implements OnInit { @@ -89,6 +91,7 @@ export class EventTableComponent implements OnInit {
89 this.eventService, 91 this.eventService,
90 this.dialogService, 92 this.dialogService,
91 this.translate, 93 this.translate,
  94 + this.ruleChainService,
92 this.datePipe, 95 this.datePipe,
93 this.dialog, 96 this.dialog,
94 this.entityIdValue, 97 this.entityIdValue,
@@ -19,6 +19,7 @@ import { TenantId } from '@shared/models/id/tenant-id'; @@ -19,6 +19,7 @@ import { TenantId } from '@shared/models/id/tenant-id';
19 import { EntityId } from '@shared/models/id/entity-id'; 19 import { EntityId } from '@shared/models/id/entity-id';
20 import { EventId } from './id/event-id'; 20 import { EventId } from './id/event-id';
21 import { ContentType } from '@shared/models/constants'; 21 import { ContentType } from '@shared/models/constants';
  22 +import { EntityType } from '@shared/models/entity-type.models'
22 23
23 export enum EventType { 24 export enum EventType {
24 ERROR = 'ERROR', 25 ERROR = 'ERROR',
@@ -31,6 +32,28 @@ export enum DebugEventType { @@ -31,6 +32,28 @@ export enum DebugEventType {
31 DEBUG_RULE_NODE = 'DEBUG_RULE_NODE', 32 DEBUG_RULE_NODE = 'DEBUG_RULE_NODE',
32 DEBUG_RULE_CHAIN = 'DEBUG_RULE_CHAIN' 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 export const eventTypeTranslations = new Map<EventType | DebugEventType, string>( 58 export const eventTypeTranslations = new Map<EventType | DebugEventType, string>(
36 [ 59 [