diff --git a/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.html b/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.html index b8dbe2bd92..b9640a7ef5 100644 --- a/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.html +++ b/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.html @@ -203,10 +203,19 @@ @if (currentWizardStep; as step) { @switch (step.type) { @case ('instruction') { - - + @if (isLastWizardStep) { + + @if (primaryEntityAction; as action) { + + } + } @else { + + + } } @case ('form') { @@ -222,9 +231,12 @@ {{ 'action.retry' | translate }} } @else if (step.progressDone && isLastWizardStep) { - + + @if (primaryEntityAction; as action) { + + } } } } diff --git a/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.ts b/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.ts index 63fbe90cb2..5b643b1753 100644 --- a/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/iot-hub/device-install-dialog/device-install-dialog.component.ts @@ -15,8 +15,8 @@ /// import { ChangeDetectorRef, Component, Inject, OnInit, ViewChild } from '@angular/core'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Router } from '@angular/router'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { DialogComponent } from '@shared/components/dialog.component'; @@ -216,6 +216,32 @@ export class TbDeviceInstallDialogComponent extends DialogComponent device > gateway > integration + const dashboard = this.entityOutputs.get('dashboard'); + if (dashboard?.url) { + return { url: dashboard.url, label: 'Open Dashboard' }; + } + const device = this.entityOutputs.get('device'); + if (device?.url) { + return { url: device.url, label: 'Open Device' }; + } + const gateway = this.entityOutputs.get('gateway'); + if (gateway?.url) { + return { url: gateway.url, label: 'Open Gateway' }; + } + const integration = this.entityOutputs.get('integration'); + if (integration?.url) { + return { url: integration.url, label: 'Open Integration' }; + } + return null; + } + + openEntity(url: string): void { + this.dialogRef.close('installed'); + this.router.navigateByUrl(url); + } + done(): void { this.dialogRef.close('installed'); }