diff --git a/ui-ngx/src/app/core/http/edge.service.ts b/ui-ngx/src/app/core/http/edge.service.ts index 4490c772f4..fe54696615 100644 --- a/ui-ngx/src/app/core/http/edge.service.ts +++ b/ui-ngx/src/app/core/http/edge.service.ts @@ -14,14 +14,16 @@ /// limitations under the License. /// -import {Inject, Injectable} from '@angular/core'; +import { Injectable } from '@angular/core'; import { defaultHttpOptionsFromConfig, RequestConfig } from './http-utils'; import { Observable } from 'rxjs'; import { HttpClient } from '@angular/common/http'; -import { PageLink } from '@shared/models/page/page-link'; +import { PageLink, TimePageLink } from '@shared/models/page/page-link'; import { PageData } from '@shared/models/page/page-data'; import { EntitySubtype } from '@app/shared/models/entity-type.models'; import { Edge, EdgeInfo, EdgeSearchQuery } from "@shared/models/edge.models"; +import { EntityId } from "@shared/models/id/entity-id"; +import { Event } from "@shared/models/event.models"; @Injectable({ providedIn: 'root' }) @@ -96,4 +98,8 @@ export class EdgeService { return this.http.post>('/api/edges', query, defaultHttpOptionsFromConfig(config)); } + public getEdgeEvents(entityId: EntityId, pageLink: TimePageLink, config?: RequestConfig): Observable> { + return this.http.get>(`/api/edge/${entityId.id}/events` + `${pageLink.toQuery()}`, + defaultHttpOptionsFromConfig(config)); + } } diff --git a/ui-ngx/src/app/core/http/event.service.ts b/ui-ngx/src/app/core/http/event.service.ts index 5c66a10c03..62a8a01780 100644 --- a/ui-ngx/src/app/core/http/event.service.ts +++ b/ui-ngx/src/app/core/http/event.service.ts @@ -38,4 +38,9 @@ export class EventService { `${pageLink.toQuery()}&tenantId=${tenantId}`, defaultHttpOptionsFromConfig(config)); } + + public getEdgeEvents(entityId: EntityId, pageLink: TimePageLink, config?: RequestConfig): Observable> { + return this.http.get>(`/api/edge/${entityId.id}/events` + `${pageLink.toQuery()}`, + defaultHttpOptionsFromConfig(config)); + } } diff --git a/ui-ngx/src/app/modules/home/components/event/event-table-config.ts b/ui-ngx/src/app/modules/home/components/event/event-table-config.ts index a0bed03aad..297214ca96 100644 --- a/ui-ngx/src/app/modules/home/components/event/event-table-config.ts +++ b/ui-ngx/src/app/modules/home/components/event/event-table-config.ts @@ -20,25 +20,25 @@ import { EntityTableColumn, EntityTableConfig } from '@home/models/entity/entities-table-config.models'; -import { DebugEventType, Event, EventType } from '@shared/models/event.models'; -import { TimePageLink } from '@shared/models/page/page-link'; -import { TranslateService } from '@ngx-translate/core'; -import { DatePipe } from '@angular/common'; -import { MatDialog } from '@angular/material/dialog'; -import { EntityId } from '@shared/models/id/entity-id'; -import { EventService } from '@app/core/http/event.service'; -import { EventTableHeaderComponent } from '@home/components/event/event-table-header.component'; -import { EntityTypeResource } from '@shared/models/entity-type.models'; -import { Observable } from 'rxjs'; -import { PageData } from '@shared/models/page/page-data'; -import { Direction } from '@shared/models/page/sort-order'; -import { DialogService } from '@core/services/dialog.service'; -import { ContentType } from '@shared/models/constants'; +import {DebugEventType, Event, EventType} from '@shared/models/event.models'; +import {TimePageLink} from '@shared/models/page/page-link'; +import {TranslateService} from '@ngx-translate/core'; +import {DatePipe} from '@angular/common'; +import {MatDialog} from '@angular/material/dialog'; +import {EntityId} from '@shared/models/id/entity-id'; +import {EventService} from '@app/core/http/event.service'; +import {EventTableHeaderComponent} from '@home/components/event/event-table-header.component'; +import {EntityTypeResource} from '@shared/models/entity-type.models'; +import {Observable} from 'rxjs'; +import {PageData} from '@shared/models/page/page-data'; +import {Direction} from '@shared/models/page/sort-order'; +import {DialogService} from '@core/services/dialog.service'; +import {ContentType} from '@shared/models/constants'; import { EventContentDialogComponent, EventContentDialogData } from '@home/components/event/event-content-dialog.component'; -import { sortObjectKeys } from '@core/utils'; +import {sortObjectKeys} from '@core/utils'; export class EventTableConfig extends EntityTableConfig { @@ -104,7 +104,11 @@ export class EventTableConfig extends EntityTableConfig { } fetchEvents(pageLink: TimePageLink): Observable> { - return this.eventService.getEvents(this.entityId, this.eventType, this.tenantId, pageLink); + if (this.eventTypeValue === EventType.EDGE_EVENT) { + return this.eventService.getEdgeEvents(this.entityId, pageLink); + } else { + return this.eventService.getEvents(this.entityId, this.eventType, this.tenantId, pageLink); + } } updateColumns(updateTableColumns: boolean = false): void { @@ -159,6 +163,12 @@ export class EventTableConfig extends EntityTableConfig { () => ({}), () => undefined, true) ); break; + case EventType.EDGE_EVENT: + this.columns.push( + new EntityTableColumn('type', 'event.type', '100%', + (entity) => entity.type, entity => ({}), false), + ); + break; case DebugEventType.DEBUG_RULE_NODE: case DebugEventType.DEBUG_RULE_CHAIN: this.columns[0].width = '100px'; diff --git a/ui-ngx/src/app/shared/models/event.models.ts b/ui-ngx/src/app/shared/models/event.models.ts index 9be2ef0a58..b5a2148b6c 100644 --- a/ui-ngx/src/app/shared/models/event.models.ts +++ b/ui-ngx/src/app/shared/models/event.models.ts @@ -64,8 +64,9 @@ export interface StatsEventBody extends BaseEventBody { } export interface EdgeEventBody extends BaseEventBody { - messagesProcessed: number; - errorsOccurred: number; + type: string; + action: string; + entityId: string; } export interface DebugRuleNodeEventBody extends BaseEventBody { @@ -81,7 +82,7 @@ export interface DebugRuleNodeEventBody extends BaseEventBody { error: string; } -export type EventBody = ErrorEventBody & LcEventEventBody & StatsEventBody & DebugRuleNodeEventBody; +export type EventBody = ErrorEventBody & LcEventEventBody & StatsEventBody & DebugRuleNodeEventBody & EdgeEventBody; export interface Event extends BaseData { tenantId: TenantId;