|
|
|
@ -55,26 +55,28 @@ |
|
|
|
@if (item.type === ItemType.CALCULATED_FIELD || item.type === ItemType.RULE_CHAIN || item.type === ItemType.DEVICE) { |
|
|
|
<!-- CF/RC/Device: description + author (no image) --> |
|
|
|
<div class="dlg-info"> |
|
|
|
@if (isInstalled()) { |
|
|
|
<div class="dlg-info-status-row"> |
|
|
|
<span class="dlg-installed-badge"> |
|
|
|
<mat-icon>check</mat-icon> |
|
|
|
{{ 'iot-hub.installed' | translate }} v{{ installedItem.version }} |
|
|
|
</span> |
|
|
|
<a class="dlg-info-link" (click)="openEntityDetails()"> |
|
|
|
<mat-icon>open_in_new</mat-icon> |
|
|
|
{{ 'iot-hub.open-item-type-details' | translate:{ type: getTypeLabel() } }} |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
} |
|
|
|
@if (item.description) { |
|
|
|
<div class="dlg-description"> |
|
|
|
<tb-markdown [data]="item.description"></tb-markdown> |
|
|
|
<div class="dlg-info-text"> |
|
|
|
@if (isInstalled()) { |
|
|
|
<div class="dlg-info-status-row"> |
|
|
|
<span class="dlg-installed-badge"> |
|
|
|
<mat-icon>check</mat-icon> |
|
|
|
{{ 'iot-hub.installed' | translate }} v{{ installedItem.version }} |
|
|
|
</span> |
|
|
|
<a class="dlg-info-link" (click)="openEntityDetails()"> |
|
|
|
<mat-icon>open_in_new</mat-icon> |
|
|
|
{{ 'iot-hub.open-item-type-details' | translate:{ type: getTypeLabel() } }} |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
} |
|
|
|
@if (item.description) { |
|
|
|
<div class="dlg-description"> |
|
|
|
<tb-markdown [data]="item.description"></tb-markdown> |
|
|
|
</div> |
|
|
|
} |
|
|
|
<div class="dlg-author" (click)="navigateToCreator()"> |
|
|
|
<tb-icon>person</tb-icon> |
|
|
|
<span>{{ item.creatorDisplayName }}</span> |
|
|
|
</div> |
|
|
|
} |
|
|
|
<div class="dlg-author" (click)="navigateToCreator()"> |
|
|
|
<tb-icon>person</tb-icon> |
|
|
|
<span>{{ item.creatorDisplayName }}</span> |
|
|
|
</div> |
|
|
|
<div class="dlg-info-actions"> |
|
|
|
@if (!isInstalled()) { |
|
|
|
@ -87,7 +89,6 @@ |
|
|
|
</button> |
|
|
|
} |
|
|
|
@if (isInstalled()) { |
|
|
|
<span class="dlg-info-actions-spacer"></span> |
|
|
|
<button mat-stroked-button color="warn" (click)="deleteItem()"> |
|
|
|
<mat-icon>delete</mat-icon> |
|
|
|
{{ 'iot-hub.remove' | translate }} |
|
|
|
@ -144,37 +145,44 @@ |
|
|
|
} |
|
|
|
</div> |
|
|
|
<div class="dlg-info"> |
|
|
|
<!-- Installed status + links row --> |
|
|
|
@if (isInstalled()) { |
|
|
|
<div class="dlg-info-status-row"> |
|
|
|
<span class="dlg-installed-badge"> |
|
|
|
<mat-icon>check</mat-icon> |
|
|
|
{{ 'iot-hub.installed' | translate }} v{{ installedItem.version }} |
|
|
|
</span> |
|
|
|
@if (isSameVersion() && item.type === ItemType.SOLUTION_TEMPLATE) { |
|
|
|
<a class="dlg-info-link" (click)="openSolutionInstructions()"> |
|
|
|
<mat-icon>info_outline</mat-icon> |
|
|
|
{{ 'iot-hub.solution-instructions' | translate }} |
|
|
|
</a> |
|
|
|
} |
|
|
|
<a class="dlg-info-link" (click)="openEntityDetails()"> |
|
|
|
<mat-icon>open_in_new</mat-icon> |
|
|
|
<div class="dlg-info-text"> |
|
|
|
<!-- Installed status + links row --> |
|
|
|
@if (isInstalled()) { |
|
|
|
<div class="dlg-info-status-row"> |
|
|
|
<span class="dlg-installed-badge"> |
|
|
|
<mat-icon>check</mat-icon> |
|
|
|
{{ 'iot-hub.installed' | translate }} v{{ installedItem.version }} |
|
|
|
</span> |
|
|
|
@if (item.type === ItemType.SOLUTION_TEMPLATE) { |
|
|
|
{{ 'iot-hub.goto-main-dashboard' | translate }} |
|
|
|
<div class="dlg-info-links-row"> |
|
|
|
@if (isSameVersion()) { |
|
|
|
<a class="dlg-info-link" (click)="openSolutionInstructions()"> |
|
|
|
<mat-icon>info_outline</mat-icon> |
|
|
|
{{ 'iot-hub.solution-instructions' | translate }} |
|
|
|
</a> |
|
|
|
} |
|
|
|
<a class="dlg-info-link" (click)="openEntityDetails()"> |
|
|
|
<mat-icon>open_in_new</mat-icon> |
|
|
|
{{ 'iot-hub.goto-main-dashboard' | translate }} |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
} @else { |
|
|
|
{{ 'iot-hub.open-item-type-details' | translate:{ type: getTypeLabel() } }} |
|
|
|
<a class="dlg-info-link" (click)="openEntityDetails()"> |
|
|
|
<mat-icon>open_in_new</mat-icon> |
|
|
|
{{ 'iot-hub.open-item-type-details' | translate:{ type: getTypeLabel() } }} |
|
|
|
</a> |
|
|
|
} |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
} |
|
|
|
@if (item.description) { |
|
|
|
<div class="dlg-description"> |
|
|
|
<tb-markdown [data]="item.description"></tb-markdown> |
|
|
|
</div> |
|
|
|
} |
|
|
|
@if (item.description) { |
|
|
|
<div class="dlg-description"> |
|
|
|
<tb-markdown [data]="item.description"></tb-markdown> |
|
|
|
</div> |
|
|
|
} |
|
|
|
<div class="dlg-author" (click)="navigateToCreator()"> |
|
|
|
<tb-icon>person</tb-icon> |
|
|
|
<span>{{ item.creatorDisplayName }}</span> |
|
|
|
</div> |
|
|
|
} |
|
|
|
<div class="dlg-author" (click)="navigateToCreator()"> |
|
|
|
<tb-icon>person</tb-icon> |
|
|
|
<span>{{ item.creatorDisplayName }}</span> |
|
|
|
</div> |
|
|
|
<!-- Action buttons --> |
|
|
|
<div class="dlg-info-actions"> |
|
|
|
@ -188,7 +196,6 @@ |
|
|
|
</button> |
|
|
|
} |
|
|
|
@if (isInstalled()) { |
|
|
|
<span class="dlg-info-actions-spacer"></span> |
|
|
|
<button mat-stroked-button color="warn" (click)="deleteItem()"> |
|
|
|
<mat-icon>delete</mat-icon> |
|
|
|
{{ 'iot-hub.remove' | translate }} |
|
|
|
|