Fix search with account video languages
This commit is contained in:
parent
f1b3888392
commit
baeb429d06
|
@ -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(),
|
||||
|
|
|
@ -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(',')
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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 () {
|
||||
|
|
Loading…
Reference in New Issue