From 2d45c33dc7f282bb5eaa96f5f334dfd35cfe51cc Mon Sep 17 00:00:00 2001 From: Exkywor Date: Wed, 14 Oct 2020 12:43:34 -0600 Subject: [PATCH] Store last selected search plugin and retrieve it after loading. --- src/app/components/search/search.component.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/app/components/search/search.component.ts b/src/app/components/search/search.component.ts index d201599..5561e10 100644 --- a/src/app/components/search/search.component.ts +++ b/src/app/components/search/search.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; +import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; import { OpenLPService } from '../../openlp.service'; import { PageTitleService } from '../../page-title.service'; @@ -11,16 +11,17 @@ import { SearchOptionsComponent } from './search-options/search-options.componen styleUrls: ['./search.component.scss'], providers: [OpenLPService] }) -export class SearchComponent implements OnInit { +export class SearchComponent implements OnInit, AfterViewInit { public searchPlugins: PluginDescription[] = []; public searchText = null; public searchResults = null; - public selectedPlugin = 'songs'; + public selectedPlugin: string; public currentPlugin: string; public displaySearchOptions: Boolean = false; @ViewChild(SearchOptionsComponent, {static: false}) searchOptions: SearchOptionsComponent; - constructor(private pageTitleService: PageTitleService, private openlpService: OpenLPService) { + constructor(private pageTitleService: PageTitleService, private openlpService: OpenLPService, + private cdr: ChangeDetectorRef) { pageTitleService.changePageTitle('Search'); } @@ -40,6 +41,7 @@ export class SearchComponent implements OnInit { this.displaySearchOptions = false; } } + localStorage.setItem('selectedPlugin', this.selectedPlugin); } sendLive(id) { @@ -52,5 +54,16 @@ export class SearchComponent implements OnInit { ngOnInit() { this.openlpService.getSearchablePlugins().subscribe(items => this.searchPlugins = items); + + // Retrieve the last selected plugin. Set to 'songs' if it isn't set. + if (localStorage.getItem('selectedPlugin') === null) { + localStorage.setItem('selectedPlugin', 'songs'); + } + this.selectedPlugin = localStorage.getItem('selectedPlugin'); + } + + ngAfterViewInit() { + this.onPluginChange(); + this.cdr.detectChanges(); } }