Unverified Commit 7b4b6630 authored by 老广's avatar 老广 Committed by GitHub

Merge pull request #112 from jumpserver/dev_beta

[Update] 避免搜索多次
parents ec8a866f 907384a3
import {Component, Input, OnInit, OnDestroy, ElementRef, ViewChild} from '@angular/core'; import {Component, Input, OnInit, OnDestroy, ElementRef, ViewChild} from '@angular/core';
import {MatDialog} from '@angular/material'; import {MatDialog} from '@angular/material';
import {BehaviorSubject} from 'rxjs'; import {BehaviorSubject, Subject} from 'rxjs';
import {takeUntil} from 'rxjs/operators';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import {AppService, HttpService, LogService, NavService, SettingService, TreeFilterService} from '@app/services'; import {AppService, HttpService, LogService, NavService, SettingService, TreeFilterService} from '@app/services';
...@@ -44,6 +45,7 @@ export class ElementAssetTreeComponent implements OnInit, OnDestroy { ...@@ -44,6 +45,7 @@ export class ElementAssetTreeComponent implements OnInit, OnDestroy {
hasLoginTo = false; hasLoginTo = false;
treeFilterSubscription: any; treeFilterSubscription: any;
isLoadTreeAsync: boolean; isLoadTreeAsync: boolean;
filterAssetCancel$: Subject<boolean> = new Subject();
constructor(private _appSvc: AppService, constructor(private _appSvc: AppService,
private _treeFilterSvc: TreeFilterService, private _treeFilterSvc: TreeFilterService,
...@@ -330,17 +332,23 @@ export class ElementAssetTreeComponent implements OnInit, OnDestroy { ...@@ -330,17 +332,23 @@ export class ElementAssetTreeComponent implements OnInit, OnDestroy {
} }
return; return;
} }
this._http.getMyGrantedAssets(keyword).subscribe(nodes => { this.filterAssetCancel$.next(true);
const treeNodes = this.assetsTree.getNodes(); this._http.getMyGrantedAssets(keyword)
if (treeNodes.length !== 0) { .pipe(takeUntil(this.filterAssetCancel$))
this.assetsTree.hideNode(treeNodes[0]); .subscribe(nodes => {
} const treeNodes = this.assetsTree.getNodes();
const newNode = {id: 'search', name: translate('Search'), isParent: true, open: true, zAsync: true}; if (treeNodes.length !== 0) {
const parentNode = this.assetsTree.addNodes(null, newNode)[0]; this.assetsTree.hideNode(treeNodes[0]);
parentNode.zAsync = true; }
this.assetsTree.addNodes(parentNode, nodes); let name = translate('Search');
parentNode.open = true; const assetsAmount = nodes.length;
}); name = `${name} (${assetsAmount})`;
const newNode = {id: 'search', name: name, isParent: true, open: true, zAsync: true};
const parentNode = this.assetsTree.addNodes(null, newNode)[0];
parentNode.zAsync = true;
this.assetsTree.addNodes(parentNode, nodes);
parentNode.open = true;
});
return; return;
} }
......
...@@ -40,29 +40,27 @@ export class ElementConnectComponent implements OnInit, OnDestroy { ...@@ -40,29 +40,27 @@ export class ElementConnectComponent implements OnInit, OnDestroy {
} }
} }
}); });
this.activatedRoute.queryParams.subscribe(params => { const loginTo = this._appSvc.getQueryString('login_to');
const login_to = params['login_to']; if (loginTo && !this.hasLoginTo) {
if (login_to && !this.hasLoginTo) { this._http.filterMyGrantedAssetsById(loginTo).subscribe(
this._http.filterMyGrantedAssetsById(login_to).subscribe( nodes => {
nodes => { if (nodes.length === 1) {
if (nodes.length === 1) { this.hasLoginTo = true;
this.hasLoginTo = true; const node = nodes[0];
const node = nodes[0]; this.Connect(node);
this.Connect(node);
}
} }
); }
this._http.getMyGrantedRemoteApps(login_to).subscribe( );
nodes => { this._http.getMyGrantedRemoteApps(loginTo).subscribe(
if (nodes.length === 1) { nodes => {
this.hasLoginTo = true; if (nodes.length === 1) {
const node = nodes[0]; this.hasLoginTo = true;
this.Connect(node); const node = nodes[0];
} this.Connect(node);
} }
); }
} );
}); }
} }
ngOnDestroy(): void { ngOnDestroy(): void {
connectEvt.unsubscribe(); connectEvt.unsubscribe();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment