aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts')
-rw-r--r--client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts18
1 files changed, 16 insertions, 2 deletions
diff --git a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts
index 76b13fe2b..42e4782eb 100644
--- a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts
+++ b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts
@@ -3,7 +3,7 @@ import { Notifier } from '@app/core'
3import { AuthService } from '../../core/auth' 3import { AuthService } from '../../core/auth'
4import { ConfirmService } from '../../core/confirm' 4import { ConfirmService } from '../../core/confirm'
5import { User } from '@app/shared' 5import { User } from '@app/shared'
6import { flatMap } from 'rxjs/operators' 6import { flatMap, debounceTime } from 'rxjs/operators'
7import { I18n } from '@ngx-translate/i18n-polyfill' 7import { I18n } from '@ngx-translate/i18n-polyfill'
8import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' 8import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model'
9import { ComponentPagination } from '@app/shared/rest/component-pagination.model' 9import { ComponentPagination } from '@app/shared/rest/component-pagination.model'
@@ -17,7 +17,9 @@ import { Subject } from 'rxjs'
17 styleUrls: [ './my-account-video-playlists.component.scss' ] 17 styleUrls: [ './my-account-video-playlists.component.scss' ]
18}) 18})
19export class MyAccountVideoPlaylistsComponent implements OnInit { 19export class MyAccountVideoPlaylistsComponent implements OnInit {
20 videoPlaylistsSearch: string
20 videoPlaylists: VideoPlaylist[] = [] 21 videoPlaylists: VideoPlaylist[] = []
22 videoPlaylistSearchChanged = new Subject<string>()
21 23
22 pagination: ComponentPagination = { 24 pagination: ComponentPagination = {
23 currentPage: 1, 25 currentPage: 1,
@@ -41,6 +43,13 @@ export class MyAccountVideoPlaylistsComponent implements OnInit {
41 this.user = this.authService.getUser() 43 this.user = this.authService.getUser()
42 44
43 this.loadVideoPlaylists() 45 this.loadVideoPlaylists()
46
47 this.videoPlaylistSearchChanged
48 .pipe(
49 debounceTime(500))
50 .subscribe(() => {
51 this.loadVideoPlaylists()
52 })
44 } 53 }
45 54
46 async deleteVideoPlaylist (videoPlaylist: VideoPlaylist) { 55 async deleteVideoPlaylist (videoPlaylist: VideoPlaylist) {
@@ -80,12 +89,17 @@ export class MyAccountVideoPlaylistsComponent implements OnInit {
80 this.loadVideoPlaylists() 89 this.loadVideoPlaylists()
81 } 90 }
82 91
92 onVideoPlaylistSearchChanged () {
93 this.videoPlaylistSearchChanged.next()
94 }
95
83 private loadVideoPlaylists () { 96 private loadVideoPlaylists () {
84 this.authService.userInformationLoaded 97 this.authService.userInformationLoaded
85 .pipe(flatMap(() => { 98 .pipe(flatMap(() => {
86 return this.videoPlaylistService.listAccountPlaylists(this.user.account, this.pagination, '-updatedAt') 99 return this.videoPlaylistService.listAccountPlaylists(this.user.account, this.pagination, '-updatedAt', this.videoPlaylistsSearch)
87 })) 100 }))
88 .subscribe(res => { 101 .subscribe(res => {
102 this.videoPlaylists = []
89 this.videoPlaylists = this.videoPlaylists.concat(res.data) 103 this.videoPlaylists = this.videoPlaylists.concat(res.data)
90 this.pagination.totalItems = res.total 104 this.pagination.totalItems = res.total
91 105