diff --git a/src/app/elements/connect/connect-dialog/connect-dialog.component.html b/src/app/elements/connect/connect-dialog/connect-dialog.component.html index 28bfceb9..c1994279 100644 --- a/src/app/elements/connect/connect-dialog/connect-dialog.component.html +++ b/src/app/elements/connect/connect-dialog/connect-dialog.component.html @@ -53,7 +53,7 @@

{{"Connect" | translate}} - {{ asset.name | truncatechars:30 }}

color="primary" style="width: 100%" type="submit" - [disabled]="accounts.length===0 || connectMethod.disabled === true" + [disabled]="isConnectDisabled()" [mat-dialog-close]="outputData" (click)="onConfirm()" > diff --git a/src/app/elements/connect/connect-dialog/connect-dialog.component.ts b/src/app/elements/connect/connect-dialog/connect-dialog.component.ts index 216d567c..773333af 100644 --- a/src/app/elements/connect/connect-dialog/connect-dialog.component.ts +++ b/src/app/elements/connect/connect-dialog/connect-dialog.component.ts @@ -24,6 +24,7 @@ export class ElementConnectDialogComponent implements OnInit { public connectMethod: ConnectMethod = new ConnectMethod(); public preConnectData: ConnectData = new ConnectData(); public onSubmit$: BehaviorSubject = new BehaviorSubject(true); + public isAppletClientMethod = false; constructor(public dialogRef: MatDialogRef, private _settingSvc: SettingService, @@ -42,6 +43,9 @@ export class ElementConnectDialogComponent implements OnInit { if (this.protocols.length === 0) { this.protocols = [{name: 'ssh', port: 22, public: true, setting: {sftp_enabled: true}}]; } + this._settingSvc.appletConnectMethod$.subscribe((state) => { + this.isAppletClientMethod = state === 'client'; + }); this.setDefaults(); } @@ -82,6 +86,22 @@ export class ElementConnectDialogComponent implements OnInit { } } + isConnectDisabled(): Boolean { + if (this.accounts.length === 0) { + return true; + } + if (this.connectMethod.disabled === true) { + return true; + } + if ( + this.connectMethod.component === 'razor' || + (this.connectMethod.type === 'applet' && this.isAppletClientMethod) + ) { + return !this._settingSvc.hasXPack(); + } + return false; + } + onConfirm(downloadRDP = false) { this.outputData.account = this.accountSelected; this.outputData.connectMethod = this.connectMethod;