From a5f8b0b49f09e4399a8176d5cd06cc80c61b07d8 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 19 Jun 2019 15:34:47 +0200 Subject: [PATCH] Add language filter in header search --- client/src/app/header/header.component.ts | 29 +++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/client/src/app/header/header.component.ts b/client/src/app/header/header.component.ts index f73d40947..88cd652e2 100644 --- a/client/src/app/header/header.component.ts +++ b/client/src/app/header/header.component.ts @@ -1,7 +1,9 @@ -import { filter, map } from 'rxjs/operators' +import { filter, first, map, tap } from 'rxjs/operators' import { Component, OnInit } from '@angular/core' import { NavigationEnd, Router } from '@angular/router' import { getParameterByName } from '../shared/misc/utils' +import { AuthService } from '@app/core' +import { of } from 'rxjs' @Component({ selector: 'my-header', @@ -12,7 +14,10 @@ import { getParameterByName } from '../shared/misc/utils' export class HeaderComponent implements OnInit { searchValue = '' - constructor (private router: Router) {} + constructor ( + private router: Router, + private auth: AuthService + ) {} ngOnInit () { this.router.events @@ -24,8 +29,22 @@ export class HeaderComponent implements OnInit { } doSearch () { - this.router.navigate([ '/search' ], { - queryParams: { search: this.searchValue } - }) + const queryParams: any = { + search: this.searchValue + } + + const o = this.auth.isLoggedIn() + ? this.loadUserLanguages(queryParams) + : of(true) + + o.subscribe(() => this.router.navigate([ '/search' ], { queryParams })) + } + + private loadUserLanguages (queryParams: any) { + return this.auth.userInformationLoaded + .pipe( + first(), + tap(() => Object.assign(queryParams, { languageOneOf: this.auth.getUser().videoLanguages })) + ) } }