Add language filter in header search

This commit is contained in:
Chocobozzz 2019-06-19 15:34:47 +02:00
parent ee1d0dfb6d
commit a5f8b0b49f
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
1 changed files with 24 additions and 5 deletions

View File

@ -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 { Component, OnInit } from '@angular/core'
import { NavigationEnd, Router } from '@angular/router' import { NavigationEnd, Router } from '@angular/router'
import { getParameterByName } from '../shared/misc/utils' import { getParameterByName } from '../shared/misc/utils'
import { AuthService } from '@app/core'
import { of } from 'rxjs'
@Component({ @Component({
selector: 'my-header', selector: 'my-header',
@ -12,7 +14,10 @@ import { getParameterByName } from '../shared/misc/utils'
export class HeaderComponent implements OnInit { export class HeaderComponent implements OnInit {
searchValue = '' searchValue = ''
constructor (private router: Router) {} constructor (
private router: Router,
private auth: AuthService
) {}
ngOnInit () { ngOnInit () {
this.router.events this.router.events
@ -24,8 +29,22 @@ export class HeaderComponent implements OnInit {
} }
doSearch () { doSearch () {
this.router.navigate([ '/search' ], { const queryParams: any = {
queryParams: { search: this.searchValue } 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 }))
)
} }
} }