diff --git a/projects/observability/src/pages/explorer/explorer.component.test.ts b/projects/observability/src/pages/explorer/explorer.component.test.ts index dcab7cb6d..a77f92535 100644 --- a/projects/observability/src/pages/explorer/explorer.component.test.ts +++ b/projects/observability/src/pages/explorer/explorer.component.test.ts @@ -8,6 +8,7 @@ import { DEFAULT_COLOR_PALETTE, LayoutChangeService, NavigationService, + PreferenceService, RelativeTimeRange, TimeDuration, TimeRangeService, @@ -102,6 +103,9 @@ describe('Explorer component', () => { colors: ['black', 'white'] } }, + mockProvider(PreferenceService, { + get: jest.fn().mockReturnValue(of(true)) + }), ...getMockFlexLayoutProviders() ] }); diff --git a/projects/observability/src/pages/explorer/explorer.component.ts b/projects/observability/src/pages/explorer/explorer.component.ts index ae75ac8e6..185d1a348 100644 --- a/projects/observability/src/pages/explorer/explorer.component.ts +++ b/projects/observability/src/pages/explorer/explorer.component.ts @@ -3,6 +3,7 @@ import { ActivatedRoute, ParamMap } from '@angular/router'; import { assertUnreachable, NavigationService, + PreferenceService, QueryParamObject, TimeDuration, TimeDurationService @@ -53,9 +54,14 @@ import { (filtersChange)="this.onFiltersUpdated($event)" >
- + - Visualization @@ -83,9 +89,14 @@ import { - + - Results + Results ; public readonly vizDashboard$: Observable; @@ -128,9 +141,8 @@ export class ExplorerComponent { ]; public filters: Filter[] = []; - - public visualizationExpanded: boolean = true; - public resultsExpanded: boolean = true; + public visualizationExpanded$: Observable; + public resultsExpanded$: Observable; private readonly contextChangeSubject: Subject = new Subject(); @@ -138,10 +150,13 @@ export class ExplorerComponent { private readonly metadataService: MetadataService, private readonly navigationService: NavigationService, private readonly timeDurationService: TimeDurationService, + private readonly preferenceService: PreferenceService, @Inject(EXPLORER_DASHBOARD_BUILDER_FACTORY) explorerDashboardBuilderFactory: ExplorerDashboardBuilderFactory, activatedRoute: ActivatedRoute ) { this.explorerDashboardBuilder = explorerDashboardBuilderFactory.build(); + this.visualizationExpanded$ = this.preferenceService.get(ExplorerComponent.VISUALIZATION_EXPANDED_PREFERENCE, true); + this.resultsExpanded$ = this.preferenceService.get(ExplorerComponent.RESULTS_EXPANDED_PREFERENCE, true); this.resultsDashboard$ = this.explorerDashboardBuilder.resultsDashboard$; this.vizDashboard$ = this.explorerDashboardBuilder.visualizationDashboard$; this.initialState$ = activatedRoute.queryParamMap.pipe( @@ -183,6 +198,14 @@ export class ExplorerComponent { this.contextChangeSubject.next(contextWrapper.dashboardContext); } + public onVisualizationExpandedChange(expanded: boolean): void { + this.preferenceService.set(ExplorerComponent.VISUALIZATION_EXPANDED_PREFERENCE, expanded); + } + + public onResultsExpandedChange(expanded: boolean): void { + this.preferenceService.set(ExplorerComponent.RESULTS_EXPANDED_PREFERENCE, expanded); + } + private updateUrlWithVisualizationData(request: ExploreRequestState): void { this.navigationService.addQueryParametersToUrl({ [ExplorerQueryParam.Scope]: this.getQueryParamFromContext(request.context as ExplorerGeneratedDashboardContext),