Fix search with account video languages

This commit is contained in:
Chocobozzz 2019-10-21 13:31:58 +02:00
parent f1b3888392
commit baeb429d06
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 17 additions and 11 deletions

View File

@ -1,6 +1,6 @@
import { filter, first, map, tap } from 'rxjs/operators'
import { Component, OnInit } from '@angular/core'
import { NavigationEnd, Router } from '@angular/router'
import { ActivatedRoute, NavigationEnd, Params, Router } from '@angular/router'
import { getParameterByName } from '../shared/misc/utils'
import { AuthService } from '@app/core'
import { of } from 'rxjs'
@ -16,6 +16,7 @@ export class HeaderComponent implements OnInit {
constructor (
private router: Router,
private route: ActivatedRoute,
private auth: AuthService
) {}
@ -29,18 +30,24 @@ export class HeaderComponent implements OnInit {
}
doSearch () {
const queryParams: any = {
search: this.searchValue
const queryParams: Params = {}
if (window.location.pathname === '/search' && this.route.snapshot.queryParams) {
Object.assign(queryParams, this.route.snapshot.queryParams)
}
Object.assign(queryParams, { search: this.searchValue })
const o = this.auth.isLoggedIn()
? this.loadUserLanguages(queryParams)
? this.loadUserLanguagesIfNeeded(queryParams)
: of(true)
o.subscribe(() => this.router.navigate([ '/search' ], { queryParams }))
}
private loadUserLanguages (queryParams: any) {
private loadUserLanguagesIfNeeded (queryParams: any) {
if (queryParams && queryParams.languageOneOf) return of(queryParams)
return this.auth.userInformationLoaded
.pipe(
first(),

View File

@ -139,6 +139,7 @@ export class AdvancedSearch {
private intoArray (value: any) {
if (!value) return undefined
if (Array.isArray(value)) return value
if (typeof value === 'string') return value.split(',')

View File

@ -83,9 +83,9 @@ export class SearchFiltersComponent implements OnInit {
}
ngOnInit () {
this.videoCategories = this.serverService.getVideoCategories()
this.videoLicences = this.serverService.getVideoLicences()
this.videoLanguages = this.serverService.getVideoLanguages()
this.serverService.videoCategoriesLoaded.subscribe(() => this.videoCategories = this.serverService.getVideoCategories())
this.serverService.videoLicencesLoaded.subscribe(() => this.videoLicences = this.serverService.getVideoLicences())
this.serverService.videoLanguagesLoaded.subscribe(() => this.videoLanguages = this.serverService.getVideoLanguages())
this.loadFromDurationRange()
this.loadFromPublishedRange()

View File

@ -11,7 +11,6 @@ import { VideoChannel } from '@app/shared/video-channel/video-channel.model'
import { immutableAssign } from '@app/shared/misc/utils'
import { Video } from '@app/shared/video/video.model'
import { HooksService } from '@app/core/plugins/hooks.service'
import { PluginService } from '@app/core/plugins/plugin.service'
@Component({
selector: 'my-search',
@ -44,8 +43,7 @@ export class SearchComponent implements OnInit, OnDestroy {
private notifier: Notifier,
private searchService: SearchService,
private authService: AuthService,
private hooks: HooksService,
private pluginService: PluginService
private hooks: HooksService
) { }
get user () {