diff --git a/src/app/elements/asset-tree/asset-tree.component.ts b/src/app/elements/asset-tree/asset-tree.component.ts index 468d8643..e590910d 100644 --- a/src/app/elements/asset-tree/asset-tree.component.ts +++ b/src/app/elements/asset-tree/asset-tree.component.ts @@ -102,6 +102,7 @@ export class ElementAssetTreeComponent implements OnInit { isShowRMenu = false; rightClickSelectNode: any; isLoadTreeAsync: boolean; + isOpenNewWindow: boolean; filterAssetCancel$: Subject = new Subject(); favoriteAssets = []; searchValue = ''; @@ -221,6 +222,8 @@ export class ElementAssetTreeComponent implements OnInit { this.currentOrgID = this._cookie.get('X-JMS-LUNA-ORG') || this._cookie.get('X-JMS-ORG'); this._settingSvc.afterInited().then((state) => { this.isLoadTreeAsync = this._settingSvc.isLoadTreeAsync(); + this.isOpenNewWindow = this._settingSvc.isOpenNewWindow(); + if (state) { if (!this._settingSvc.hasXPack() && this.currentOrgID === SYSTEM_ORG_ID) { this.currentOrgID = DEFAULT_ORG_ID; @@ -255,7 +258,11 @@ export class ElementAssetTreeComponent implements OnInit { this._dialog.open(DisabledAssetsDialogComponent, config); return; } - this.connectAsset(treeNode).then(); + if (this.isOpenNewWindow) { + connectOnNewPage(treeNode, 'auto'); + } else { + this.connectAsset(treeNode).then(); + } } onAssetTreeCheck(event, treeId) { diff --git a/src/app/model.ts b/src/app/model.ts index 5f53486e..256212d1 100644 --- a/src/app/model.ts +++ b/src/app/model.ts @@ -281,7 +281,8 @@ export class Setting { sqlClient = '1'; basic = { - is_async_asset_tree: false + is_async_asset_tree: false, + connect_default_open_method: 'new' }; graphics = { rdp_resolution: 'Auto', diff --git a/src/app/services/setting.ts b/src/app/services/setting.ts index 38e6765b..1ca68b46 100644 --- a/src/app/services/setting.ts +++ b/src/app/services/setting.ts @@ -13,6 +13,7 @@ export class SettingService { settingKey = 'LunaSetting'; public initialized$ = new BehaviorSubject(false); public isLoadTreeAsync$ = new BehaviorSubject(true); + public isOpenNewWindow$ = new BehaviorSubject(false); public appletConnectMethod$ = new BehaviorSubject(''); public keyboardLayout$ = new BehaviorSubject(''); public isDirectNavigation$ = new BehaviorSubject(false); @@ -127,6 +128,11 @@ export class SettingService { return this.setting.basic.is_async_asset_tree; } + isOpenNewWindow() { + return this.setting.basic.connect_default_open_method === 'new'; + } + + setAppletConnectMethod() { this.appletConnectMethod$.next(this.setting.graphics.applet_connection_method); }