11import { HttpResponse } from '@angular/common/http' ;
2- import { Component , OnInit } from '@angular/core' ;
3- import { Router } from '@angular/router' ;
2+ import { Component , OnDestroy , OnInit } from '@angular/core' ;
3+ import { NavigationStart , Router } from '@angular/router' ;
44import { NgbModal } from '@ng-bootstrap/ng-bootstrap' ;
5+ import { Subject } from 'rxjs' ;
6+ import { filter , takeUntil , tap } from 'rxjs/operators' ;
57import { ITEMS_PER_PAGE } from '../../../shared/constants/pagination.constants' ;
68import { SortEvent } from '../../../shared/directives/sortable/type/sort-event' ;
79import { SortByType } from '../../../shared/types/sort-by.type' ;
810import { LogAnalyzerQueryService } from '../../shared/services/log-analyzer-query.service' ;
11+ import { TabService } from '../../shared/services/tab.service' ;
912import { LogAnalyzerQueryType } from '../../shared/type/log-analyzer-query.type' ;
1013import { LogAnalyzerQueryDeleteComponent } from '../log-analyzer-query-delete/log-analyzer-query-delete.component' ;
14+ import { query } from "@angular/animations" ;
15+ import { data } from "../../../active-directory/offline.data" ;
1116
1217@Component ( {
1318 selector : 'app-log-analyzer-query-list' ,
1419 templateUrl : './log-analyzer-query-list.component.html' ,
1520 styleUrls : [ './log-analyzer-query-list.component.scss' ]
1621} )
17- export class LogAnalyzerQueryListComponent implements OnInit {
22+ export class LogAnalyzerQueryListComponent implements OnInit , OnDestroy {
1823 fields : SortByType [ ] = [
1924 {
2025 fieldName : 'Name' ,
@@ -34,10 +39,12 @@ export class LogAnalyzerQueryListComponent implements OnInit {
3439 query : LogAnalyzerQueryType ;
3540 private requestParams : any ;
3641 private sortBy : SortEvent ;
42+ destroy$ = new Subject < void > ( ) ;
3743
3844 constructor ( private logAnalyzerQueryService : LogAnalyzerQueryService ,
3945 private router : Router ,
40- private modalService : NgbModal ) {
46+ private modalService : NgbModal ,
47+ private tabService : TabService ) {
4148 }
4249
4350 ngOnInit ( ) {
@@ -47,6 +54,16 @@ export class LogAnalyzerQueryListComponent implements OnInit {
4754 sort : this . sortBy ,
4855 } ;
4956 this . getQueryList ( ) ;
57+
58+ this . router . events . pipe (
59+ filter ( event => event instanceof NavigationStart ) ,
60+ tap ( ( event : NavigationStart ) => {
61+ if ( event . url !== '/discover/log-analyzer-queries' && ! event . url . includes ( '/discover/log-analyzer' ) ) {
62+ this . tabService . closeAllTabs ( ) ;
63+ }
64+ } ) ,
65+ takeUntil ( this . destroy$ )
66+ ) . subscribe ( ) ;
5067 }
5168
5269 onSearchQuery ( $event : string ) {
@@ -65,7 +82,7 @@ export class LogAnalyzerQueryListComponent implements OnInit {
6582 queryId : query . id ,
6683 queryName : query . name . toLowerCase ( ) . replace ( ' ' , '_' ) ,
6784 patternId : query . pattern . id ,
68- indexPattern : query . pattern . pattern
85+ indexPattern : query . pattern . pattern ,
6986 }
7087 } ) ;
7188 }
@@ -98,4 +115,9 @@ export class LogAnalyzerQueryListComponent implements OnInit {
98115
99116 private onError ( body : any ) {
100117 }
118+
119+ ngOnDestroy ( ) : void {
120+ this . destroy$ . next ( ) ;
121+ this . destroy$ . complete ( ) ;
122+ }
101123}
0 commit comments