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;