aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/shared')
-rw-r--r--client/src/app/shared/misc/screen.service.ts16
-rw-r--r--client/src/app/shared/video-playlist/video-add-to-playlist.component.ts14
-rw-r--r--client/src/app/shared/video-playlist/video-playlist.service.ts9
3 files changed, 26 insertions, 13 deletions
diff --git a/client/src/app/shared/misc/screen.service.ts b/client/src/app/shared/misc/screen.service.ts
index af75569d9..220d41d59 100644
--- a/client/src/app/shared/misc/screen.service.ts
+++ b/client/src/app/shared/misc/screen.service.ts
@@ -22,8 +22,22 @@ export class ScreenService {
22 return 'ontouchstart' in window || navigator.msMaxTouchPoints 22 return 'ontouchstart' in window || navigator.msMaxTouchPoints
23 } 23 }
24 24
25 getNumberOfAvailableMiniatures () {
26 const screenWidth = this.getWindowInnerWidth()
27
28 let numberOfVideos = 1
29
30 if (screenWidth > 1850) numberOfVideos = 6
31 else if (screenWidth > 1600) numberOfVideos = 5
32 else if (screenWidth > 1370) numberOfVideos = 4
33 else if (screenWidth > 1100) numberOfVideos = 3
34 else if (screenWidth > 850) numberOfVideos = 2
35
36 return numberOfVideos
37 }
38
25 // Cache window inner width, because it's an expensive call 39 // Cache window inner width, because it's an expensive call
26 private getWindowInnerWidth () { 40 getWindowInnerWidth () {
27 if (this.cacheWindowInnerWidthExpired()) this.refreshWindowInnerWidth() 41 if (this.cacheWindowInnerWidthExpired()) this.refreshWindowInnerWidth()
28 42
29 return this.windowInnerWidth 43 return this.windowInnerWidth
diff --git a/client/src/app/shared/video-playlist/video-add-to-playlist.component.ts b/client/src/app/shared/video-playlist/video-add-to-playlist.component.ts
index 72de84703..6380c2e51 100644
--- a/client/src/app/shared/video-playlist/video-add-to-playlist.component.ts
+++ b/client/src/app/shared/video-playlist/video-add-to-playlist.component.ts
@@ -12,6 +12,7 @@ type PlaylistSummary = {
12 inPlaylist: boolean 12 inPlaylist: boolean
13 displayName: string 13 displayName: string
14 14
15 playlistElementId?: number
15 startTimestamp?: number 16 startTimestamp?: number
16 stopTimestamp?: number 17 stopTimestamp?: number
17} 18}
@@ -37,8 +38,6 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
37 } 38 }
38 displayOptions = false 39 displayOptions = false
39 40
40 private playlistElementId: number
41
42 constructor ( 41 constructor (
43 protected formValidatorService: FormValidatorService, 42 protected formValidatorService: FormValidatorService,
44 private authService: AuthService, 43 private authService: AuthService,
@@ -95,11 +94,10 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
95 id: playlist.id, 94 id: playlist.id,
96 displayName: playlist.displayName, 95 displayName: playlist.displayName,
97 inPlaylist: !!existingPlaylist, 96 inPlaylist: !!existingPlaylist,
97 playlistElementId: existingPlaylist ? existingPlaylist.playlistElementId : undefined,
98 startTimestamp: existingPlaylist ? existingPlaylist.startTimestamp : undefined, 98 startTimestamp: existingPlaylist ? existingPlaylist.startTimestamp : undefined,
99 stopTimestamp: existingPlaylist ? existingPlaylist.stopTimestamp : undefined 99 stopTimestamp: existingPlaylist ? existingPlaylist.stopTimestamp : undefined
100 }) 100 })
101
102 this.playlistElementId = existingPlaylist ? existingPlaylist.playlistElementId : undefined
103 } 101 }
104 102
105 this.cd.markForCheck() 103 this.cd.markForCheck()
@@ -181,14 +179,15 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
181 } 179 }
182 180
183 private removeVideoFromPlaylist (playlist: PlaylistSummary) { 181 private removeVideoFromPlaylist (playlist: PlaylistSummary) {
184 if (!this.playlistElementId) return 182 if (!playlist.playlistElementId) return
185 183
186 this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, this.playlistElementId) 184 this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, playlist.playlistElementId)
187 .subscribe( 185 .subscribe(
188 () => { 186 () => {
189 this.notifier.success(this.i18n('Video removed from {{name}}', { name: playlist.displayName })) 187 this.notifier.success(this.i18n('Video removed from {{name}}', { name: playlist.displayName }))
190 188
191 playlist.inPlaylist = false 189 playlist.inPlaylist = false
190 playlist.playlistElementId = undefined
192 }, 191 },
193 192
194 err => { 193 err => {
@@ -209,8 +208,9 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
209 208
210 this.videoPlaylistService.addVideoInPlaylist(playlist.id, body) 209 this.videoPlaylistService.addVideoInPlaylist(playlist.id, body)
211 .subscribe( 210 .subscribe(
212 () => { 211 res => {
213 playlist.inPlaylist = true 212 playlist.inPlaylist = true
213 playlist.playlistElementId = res.videoPlaylistElement.id
214 214
215 playlist.startTimestamp = body.startTimestamp 215 playlist.startTimestamp = body.startTimestamp
216 playlist.stopTimestamp = body.stopTimestamp 216 playlist.stopTimestamp = body.stopTimestamp
diff --git a/client/src/app/shared/video-playlist/video-playlist.service.ts b/client/src/app/shared/video-playlist/video-playlist.service.ts
index 376387082..42791af86 100644
--- a/client/src/app/shared/video-playlist/video-playlist.service.ts
+++ b/client/src/app/shared/video-playlist/video-playlist.service.ts
@@ -113,11 +113,10 @@ export class VideoPlaylistService {
113 } 113 }
114 114
115 addVideoInPlaylist (playlistId: number, body: VideoPlaylistElementCreate) { 115 addVideoInPlaylist (playlistId: number, body: VideoPlaylistElementCreate) {
116 return this.authHttp.post(VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos', body) 116 const url = VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos'
117 .pipe( 117
118 map(this.restExtractor.extractDataBool), 118 return this.authHttp.post<{ videoPlaylistElement: { id: number } }>(url, body)
119 catchError(err => this.restExtractor.handleError(err)) 119 .pipe(catchError(err => this.restExtractor.handleError(err)))
120 )
121 } 120 }
122 121
123 updateVideoOfPlaylist (playlistId: number, playlistElementId: number, body: VideoPlaylistElementUpdate) { 122 updateVideoOfPlaylist (playlistId: number, playlistElementId: number, body: VideoPlaylistElementUpdate) {