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 { 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 { ActivatedRoute, NavigationEnd, Params, Router } from '@angular/router'
|
||||||
import { getParameterByName } from '../shared/misc/utils'
|
import { getParameterByName } from '../shared/misc/utils'
|
||||||
import { AuthService } from '@app/core'
|
import { AuthService } from '@app/core'
|
||||||
import { of } from 'rxjs'
|
import { of } from 'rxjs'
|
||||||
|
@ -16,6 +16,7 @@ export class HeaderComponent implements OnInit {
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private router: Router,
|
private router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
private auth: AuthService
|
private auth: AuthService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
@ -29,18 +30,24 @@ export class HeaderComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
doSearch () {
|
doSearch () {
|
||||||
const queryParams: any = {
|
const queryParams: Params = {}
|
||||||
search: this.searchValue
|
|
||||||
|
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()
|
const o = this.auth.isLoggedIn()
|
||||||
? this.loadUserLanguages(queryParams)
|
? this.loadUserLanguagesIfNeeded(queryParams)
|
||||||
: of(true)
|
: of(true)
|
||||||
|
|
||||||
o.subscribe(() => this.router.navigate([ '/search' ], { queryParams }))
|
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
|
return this.auth.userInformationLoaded
|
||||||
.pipe(
|
.pipe(
|
||||||
first(),
|
first(),
|
||||||
|
|
|
@ -139,6 +139,7 @@ export class AdvancedSearch {
|
||||||
|
|
||||||
private intoArray (value: any) {
|
private intoArray (value: any) {
|
||||||
if (!value) return undefined
|
if (!value) return undefined
|
||||||
|
if (Array.isArray(value)) return value
|
||||||
|
|
||||||
if (typeof value === 'string') return value.split(',')
|
if (typeof value === 'string') return value.split(',')
|
||||||
|
|
||||||
|
|
|
@ -83,9 +83,9 @@ export class SearchFiltersComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
this.videoCategories = this.serverService.getVideoCategories()
|
this.serverService.videoCategoriesLoaded.subscribe(() => this.videoCategories = this.serverService.getVideoCategories())
|
||||||
this.videoLicences = this.serverService.getVideoLicences()
|
this.serverService.videoLicencesLoaded.subscribe(() => this.videoLicences = this.serverService.getVideoLicences())
|
||||||
this.videoLanguages = this.serverService.getVideoLanguages()
|
this.serverService.videoLanguagesLoaded.subscribe(() => this.videoLanguages = this.serverService.getVideoLanguages())
|
||||||
|
|
||||||
this.loadFromDurationRange()
|
this.loadFromDurationRange()
|
||||||
this.loadFromPublishedRange()
|
this.loadFromPublishedRange()
|
||||||
|
|
|
@ -11,7 +11,6 @@ import { VideoChannel } from '@app/shared/video-channel/video-channel.model'
|
||||||
import { immutableAssign } from '@app/shared/misc/utils'
|
import { immutableAssign } from '@app/shared/misc/utils'
|
||||||
import { Video } from '@app/shared/video/video.model'
|
import { Video } from '@app/shared/video/video.model'
|
||||||
import { HooksService } from '@app/core/plugins/hooks.service'
|
import { HooksService } from '@app/core/plugins/hooks.service'
|
||||||
import { PluginService } from '@app/core/plugins/plugin.service'
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'my-search',
|
selector: 'my-search',
|
||||||
|
@ -44,8 +43,7 @@ export class SearchComponent implements OnInit, OnDestroy {
|
||||||
private notifier: Notifier,
|
private notifier: Notifier,
|
||||||
private searchService: SearchService,
|
private searchService: SearchService,
|
||||||
private authService: AuthService,
|
private authService: AuthService,
|
||||||
private hooks: HooksService,
|
private hooks: HooksService
|
||||||
private pluginService: PluginService
|
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
get user () {
|
get user () {
|
||||||
|
|
Loading…
Reference in New Issue