This is an automated email from the ASF dual-hosted git repository. wiener pushed a commit to branch edge-extensions in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit 67a5a6e1ce2852ae589c659e612175f365981ac7 Author: Patrick Wiener <[email protected]> AuthorDate: Fri Jun 25 15:31:39 2021 +0200 add offline badge --- .../node-configuration.component.html | 17 ++++------------- .../node-configuration.component.scss | 11 +++++++++++ .../node-configuration/node-configuration.component.ts | 18 ++++++++++++++++++ .../dialog/save-pipeline/save-pipeline.component.html | 2 +- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/ui/src/app/configuration/node-configuration/node-configuration.component.html b/ui/src/app/configuration/node-configuration/node-configuration.component.html index 6cd38e4..96cdbdc 100644 --- a/ui/src/app/configuration/node-configuration/node-configuration.component.html +++ b/ui/src/app/configuration/node-configuration/node-configuration.component.html @@ -93,25 +93,12 @@ </mat-icon> <span>edit</span> </button> -<!-- <button mat-menu-item--> -<!-- [disabled]="!node.active || node.condition === 'OFFLINE'"--> -<!-- matTooltip="Edit node connectivity"--> -<!-- matTooltipPosition="above"--> -<!-- (click)="settings(node)">--> -<!-- <mat-icon--> -<!-- [ngClass]="'node-inactive'">--> -<!-- contactless--> -<!-- </mat-icon>--> -<!-- <span>connectivity</span>--> -<!-- </button>--> </mat-menu> </div> <div mat-card-avatar class="node-header-avatar"> <button mat-icon-button class="node-mat-icon-button" disabled> <mat-icon [ngClass]="'node-inactive'"> storage -<!-- {{node.staticNodeMetadata.type == 'cloud' ? 'cloud' :--> -<!-- node.staticNodeMetadata.type == 'fog' ? 'storage' : 'developer_board'}}--> </mat-icon> </button> </div> @@ -136,6 +123,10 @@ <span *ngIf="node.condition === 'OFFLINE' && !node.active" class="span-node-inactive">lost </span> + <span *ngIf="node.condition === 'OFFLINE' && node.active" + class="span-node-inactive-days">since + {{calculateOfflineTime(node.lastHeartBeatTime)}} + </span> </div> </mat-card-subtitle> </mat-card-header> diff --git a/ui/src/app/configuration/node-configuration/node-configuration.component.scss b/ui/src/app/configuration/node-configuration/node-configuration.component.scss index a51354f..1861a17 100644 --- a/ui/src/app/configuration/node-configuration/node-configuration.component.scss +++ b/ui/src/app/configuration/node-configuration/node-configuration.component.scss @@ -91,6 +91,17 @@ li { margin-right: 2px; } +.span-node-inactive-days{ + font-size: 12px; + font-weight: bold; + color: white; + background: #f1c40f; + border: 1px solid #f1c40f; + padding: 2px; + margin-left: 2px; + margin-right: 2px; +} + .div-sa-tag{ display: inline-block; margin-bottom: 10px; diff --git a/ui/src/app/configuration/node-configuration/node-configuration.component.ts b/ui/src/app/configuration/node-configuration/node-configuration.component.ts index 54a89f4..a33ba8c 100644 --- a/ui/src/app/configuration/node-configuration/node-configuration.component.ts +++ b/ui/src/app/configuration/node-configuration/node-configuration.component.ts @@ -206,4 +206,22 @@ export class NodeConfigurationComponent implements OnInit{ return new Date(heartbeat).toLocaleTimeString(['en-US'], { hour: '2-digit', minute: "2-digit", second: "2-digit" }); } + + calculateOfflineTime(heartbeat: number) { + let now = new Date(); + let seconds = Math.floor((now.getTime() - (new Date(heartbeat).getTime()))/1000); + + const d = Math.floor(seconds / (3600 * 24)); + seconds -= d * 3600 * 24; + const h = Math.floor(seconds / 3600); + seconds -= h * 3600; + const m = Math.floor(seconds / 60); + seconds -= m * 60; + const tmp = []; + (d) && tmp.push(d + 'd'); + (d || h) && tmp.push(h + 'h'); + (d || h || m) && tmp.push(m + 'm'); + //tmp.push(seconds + 's'); + return tmp.join(' '); + } } \ No newline at end of file diff --git a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html index 83cb1b6..a19ab7c 100644 --- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html +++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html @@ -144,7 +144,7 @@ [expanded]="panelOpenState"> <mat-expansion-panel-header> <mat-panel-description> - Modify deployment targets: <b>{{selectedPipelineExecutionPolicy}}</b> + Select node deployment targets: <b>{{selectedPipelineExecutionPolicy}}</b> <mat-icon>storage</mat-icon> </mat-panel-description> </mat-expansion-panel-header>
