]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/header/header.component.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / client / src / app / header / header.component.ts
index 88cd652e276070432ee9d91d62aefd01d8a1c986..92a7eded651eea650993ca6243ec7930cf433f34 100644 (file)
@@ -1,9 +1,10 @@
 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 { AuthService, Notifier, ServerService } from '@app/core'
 import { of } from 'rxjs'
+import { I18n } from '@ngx-translate/i18n-polyfill'
 
 @Component({
   selector: 'my-header',
@@ -13,13 +14,21 @@ import { of } from 'rxjs'
 
 export class HeaderComponent implements OnInit {
   searchValue = ''
+  ariaLabelTextForSearch = ''
 
   constructor (
     private router: Router,
-    private auth: AuthService
+    private route: ActivatedRoute,
+    private auth: AuthService,
+    private serverService: ServerService,
+    private authService: AuthService,
+    private notifier: Notifier,
+    private i18n: I18n
   ) {}
 
   ngOnInit () {
+    this.ariaLabelTextForSearch = this.i18n('Search videos, channels')
+
     this.router.events
         .pipe(
           filter(e => e instanceof NavigationEnd),
@@ -29,18 +38,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(),