Fix search pagination
authorChocobozzz <me@florianbigard.com>
Mon, 29 Jan 2018 08:30:06 +0000 (09:30 +0100)
committerChocobozzz <me@florianbigard.com>
Mon, 29 Jan 2018 08:30:06 +0000 (09:30 +0100)
client/src/app/shared/video/abstract-video-list.ts
client/src/app/videos/video-list/video-search.component.ts

index 354373776245daf6bc8d1e7ca40f577ada62bc92..aaf376c8157d5c7e50977a7c9a77b66c9d327cbb 100644 (file)
@@ -10,7 +10,7 @@ import { Video } from './video.model'
 export abstract class AbstractVideoList implements OnInit {
   pagination: ComponentPagination = {
     currentPage: 1,
-    itemsPerPage: 25,
+    itemsPerPage: 10,
     totalItems: null
   }
   sort: SortField = '-createdAt'
@@ -26,6 +26,9 @@ export abstract class AbstractVideoList implements OnInit {
   protected abstract currentRoute: string
 
   abstract titlePage: string
+
+  protected otherParams = {}
+
   private loadedPages: { [ id: number ]: boolean } = {}
 
   abstract getVideosObservable (): Observable<{ videos: Video[], totalVideos: number}>
@@ -119,7 +122,7 @@ export abstract class AbstractVideoList implements OnInit {
       page: this.pagination.currentPage
     }
 
-    return params
+    return Object.assign(params, this.otherParams)
   }
 
   protected loadRouteParams (routeParams: { [ key: string ]: any }) {
index b7556c13ef17ef5547b9af8a19a114e8863993dc..67726afdcaaf61769ffec590c072b88700999518 100644 (file)
@@ -16,7 +16,9 @@ export class VideoSearchComponent extends AbstractVideoList implements OnInit, O
   currentRoute = '/videos/search'
   loadOnInit = false
 
-  private search = ''
+  protected otherParams = {
+    search: ''
+  }
   private subActivatedRoute: Subscription
 
   constructor (protected router: Router,
@@ -32,7 +34,10 @@ export class VideoSearchComponent extends AbstractVideoList implements OnInit, O
 
     this.subActivatedRoute = this.route.queryParams.subscribe(
       queryParams => {
-        this.search = queryParams['search']
+        const querySearch = queryParams['search']
+        if (!querySearch || this.otherParams.search === querySearch) return
+
+        this.otherParams.search = querySearch
         this.reloadVideos()
       },
 
@@ -47,6 +52,6 @@ export class VideoSearchComponent extends AbstractVideoList implements OnInit, O
   }
 
   getVideosObservable () {
-    return this.videoService.searchVideos(this.search, this.pagination, this.sort)
+    return this.videoService.searchVideos(this.otherParams.search, this.pagination, this.sort)
   }
 }