diff options
author | Poslovitch <poslovitch@bentobox.world> | 2021-04-18 08:40:04 +0000 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2021-04-26 10:54:02 +0200 |
commit | 33d21a9b47b983ee7a5c5ba6d8a416c35fe66cf9 (patch) | |
tree | d95990897fda7e2b49f5548e753e3f870d3f9176 /client/src/app/+videos/+video-watch/video-watch-playlist.component.ts | |
parent | c29ce24256e136eb45e0ccd6539009231a642d1c (diff) | |
download | PeerTube-33d21a9b47b983ee7a5c5ba6d8a416c35fe66cf9.tar.gz PeerTube-33d21a9b47b983ee7a5c5ba6d8a416c35fe66cf9.tar.zst PeerTube-33d21a9b47b983ee7a5c5ba6d8a416c35fe66cf9.zip |
Added a "previous" button on player when watching playlist
Implements https://github.com/Chocobozzz/PeerTube/issues/3485
Diffstat (limited to 'client/src/app/+videos/+video-watch/video-watch-playlist.component.ts')
-rw-r--r-- | client/src/app/+videos/+video-watch/video-watch-playlist.component.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/client/src/app/+videos/+video-watch/video-watch-playlist.component.ts b/client/src/app/+videos/+video-watch/video-watch-playlist.component.ts index d76d0bbd2..cc908b924 100644 --- a/client/src/app/+videos/+video-watch/video-watch-playlist.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch-playlist.component.ts | |||
@@ -137,6 +137,33 @@ export class VideoWatchPlaylistComponent { | |||
137 | this.onPlaylistVideosNearOfBottom(position) | 137 | this.onPlaylistVideosNearOfBottom(position) |
138 | } | 138 | } |
139 | 139 | ||
140 | findPreviousPlaylistVideo (position = this.currentPlaylistPosition): VideoPlaylistElement { | ||
141 | if (this.currentPlaylistPosition <= 1) { | ||
142 | // we have reached the top of the playlist: either loop or stop | ||
143 | if (this.loopPlaylist) { | ||
144 | this.currentPlaylistPosition = position = this.playlistPagination.totalItems | ||
145 | } else { | ||
146 | return | ||
147 | } | ||
148 | } | ||
149 | const previous = this.playlistElements.find(e => e.position === position) | ||
150 | |||
151 | if (!previous || !previous.video) { | ||
152 | return this.findPreviousPlaylistVideo(position - 1) | ||
153 | } | ||
154 | |||
155 | return previous | ||
156 | } | ||
157 | |||
158 | navigateToPreviousPlaylistVideo () { | ||
159 | const previous = this.findPreviousPlaylistVideo(this.currentPlaylistPosition - 1) | ||
160 | if (!previous) return | ||
161 | |||
162 | const start = previous.startTimestamp | ||
163 | const stop = previous.stopTimestamp | ||
164 | this.router.navigate([],{ queryParams: { playlistPosition: previous.position, start, stop } }) | ||
165 | } | ||
166 | |||
140 | findNextPlaylistVideo (position = this.currentPlaylistPosition): VideoPlaylistElement { | 167 | findNextPlaylistVideo (position = this.currentPlaylistPosition): VideoPlaylistElement { |
141 | if (this.currentPlaylistPosition >= this.playlistPagination.totalItems) { | 168 | if (this.currentPlaylistPosition >= this.playlistPagination.totalItems) { |
142 | // we have reached the end of the playlist: either loop or stop | 169 | // we have reached the end of the playlist: either loop or stop |