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'
constructor (
private router: Router,
+ private route: ActivatedRoute,
private auth: AuthService
) {}
}
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(),
}
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()
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',
private notifier: Notifier,
private searchService: SearchService,
private authService: AuthService,
- private hooks: HooksService,
- private pluginService: PluginService
+ private hooks: HooksService
) { }
get user () {