@ -47,7 +47,7 @@ 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 { concatMap , map } from 'rxjs/operators' ;
import { EntityService } from "@core/http/entity.service" ;
import { Store } from '@ngrx/store' ;
import { AppState } from '@core/core.state' ;
@ -55,7 +55,7 @@ import { ActionNotificationShow } from '@core/notification/notification.actions'
export class EdgeDownlinkTableConfig extends EntityTableConfig < EdgeEvent , TimePageLink > {
queueStartTs : number ;
private queueStartTs : number ;
constructor ( private attributeService : AttributeService ,
private datePipe : DatePipe ,
@ -85,19 +85,14 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
this . updateColumns ( ) ;
}
fetchEvents ( pageLink : TimePageLink ) : Observable < PageData < EdgeEvent > > {
this . loadEdgeInfo ( ) ;
return this . edgeService . getEdgeEvents ( this . entityId , pageLink ) ;
}
loadEdgeInfo ( ) : void {
this . attributeService . getEntityAttributes ( this . entityId , AttributeScope . SERVER_SCOPE , [ 'queueStartTs' ] )
. subscribe (
attributes = > this . onUpdate ( attributes )
) ;
private fetchEvents ( pageLink : TimePageLink ) : Observable < PageData < EdgeEvent > > {
return this . attributeService . getEntityAttributes ( this . entityId , AttributeScope . SERVER_SCOPE , [ 'queueStartTs' ] ) . pipe (
map ( ( attributes ) = > this . onUpdate ( attributes ) ) ,
concatMap ( ( ) = > this . edgeService . getEdgeEvents ( this . entityId , pageLink ) )
) ;
}
onUpdate ( attributes ) : void {
private onUpdate ( attributes : any ) : void {
this . queueStartTs = 0 ;
let edge = attributes . reduce ( function ( map , attribute ) {
map [ attribute . key ] = attribute ;
@ -108,7 +103,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
}
}
updateColumns ( updateTableColumns : boolean = false ) : void {
private updateColumns ( updateTableColumns : boolean = false ) : void {
this . columns = [ ] ;
this . columns . push (
new DateEntityTableColumn < EdgeEvent > ( 'createdTime' , 'event.event-time' , this . datePipe , '120px' ) ,
@ -117,7 +112,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
new EntityTableColumn < EdgeEvent > ( 'action' , 'edge.event-action' , '25%' ,
entity = > this . translate . instant ( edgeEventActionTypeTranslations . get ( entity . action ) ) , entity = > ( { } ) , false ) ,
new EntityTableColumn < EdgeEvent > ( 'entityId' , 'edge.entity-id' , '40%' ,
( entity ) = > entity . entityId , entity = > ( { } ) , false ) ,
( entity ) = > entity . entityId ? entity . entityId : '' , ( ) = > ( { } ) , false ) ,
new EntityTableColumn < EdgeEvent > ( 'status' , 'event.status' , '10%' ,
( entity ) = > this . updateEdgeEventStatus ( entity . createdTime ) ,
entity = > ( {
@ -143,7 +138,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
}
}
updateEdgeEventStatus ( createdTime : number ) : string {
private updateEdgeEventStatus ( createdTime : number ) : string {
if ( this . queueStartTs && createdTime < this . queueStartTs ) {
return this . translate . instant ( 'edge.deployed' ) ;
} else {
@ -151,22 +146,22 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
}
}
isPending ( createdTime : number ) : boolean {
private isPending ( createdTime : number ) : boolean {
return createdTime > this . queueStartTs ;
}
isEdgeEventHasData ( entity : EdgeEvent ) : boolean {
private isEdgeEventHasData ( entity : EdgeEvent ) : boolean {
return ! ( entity . type === EdgeEventType . ADMIN_SETTINGS ||
entity . action === EdgeEventActionType . DELETED ) ;
}
prepareEdgeEventContent ( entity : EdgeEvent ) : Observable < string > {
private prepareEdgeEventContent ( entity : EdgeEvent ) : Observable < string > {
return this . entityService . getEdgeEventContent ( entity ) . pipe (
map ( ( result ) = > JSON . stringify ( result ) )
) ;
}
showEdgeEventContent ( $event : MouseEvent , content : string , title : string ) : void {
private showEdgeEventContent ( $event : MouseEvent , content : string , title : string ) : void {
if ( $event ) {
$event . stopPropagation ( ) ;
}
@ -181,7 +176,7 @@ export class EdgeDownlinkTableConfig extends EntityTableConfig<EdgeEvent, TimePa
} ) ;
}
showEntityNotFoundError ( ) : void {
private showEntityNotFoundError ( ) : void {
this . store . dispatch ( new ActionNotificationShow (
{
message : this.translate.instant ( 'edge.load-entity-error' ) ,