mirror of https://github.com/Chocobozzz/PeerTube
Added a "previous" button on player when watching playlist
Implements https://github.com/Chocobozzz/PeerTube/issues/3485pull/3958/head
parent
c29ce24256
commit
33d21a9b47
|
@ -137,6 +137,33 @@ export class VideoWatchPlaylistComponent {
|
|||
this.onPlaylistVideosNearOfBottom(position)
|
||||
}
|
||||
|
||||
findPreviousPlaylistVideo (position = this.currentPlaylistPosition): VideoPlaylistElement {
|
||||
if (this.currentPlaylistPosition <= 1) {
|
||||
// we have reached the top of the playlist: either loop or stop
|
||||
if (this.loopPlaylist) {
|
||||
this.currentPlaylistPosition = position = this.playlistPagination.totalItems
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
const previous = this.playlistElements.find(e => e.position === position)
|
||||
|
||||
if (!previous || !previous.video) {
|
||||
return this.findPreviousPlaylistVideo(position - 1)
|
||||
}
|
||||
|
||||
return previous
|
||||
}
|
||||
|
||||
navigateToPreviousPlaylistVideo () {
|
||||
const previous = this.findPreviousPlaylistVideo(this.currentPlaylistPosition - 1)
|
||||
if (!previous) return
|
||||
|
||||
const start = previous.startTimestamp
|
||||
const stop = previous.stopTimestamp
|
||||
this.router.navigate([],{ queryParams: { playlistPosition: previous.position, start, stop } })
|
||||
}
|
||||
|
||||
findNextPlaylistVideo (position = this.currentPlaylistPosition): VideoPlaylistElement {
|
||||
if (this.currentPlaylistPosition >= this.playlistPagination.totalItems) {
|
||||
// we have reached the end of the playlist: either loop or stop
|
||||
|
|
|
@ -799,6 +799,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
|||
common: {
|
||||
autoplay: this.isAutoplay(),
|
||||
nextVideo: () => this.zone.run(() => this.autoplayNext()),
|
||||
previousVideo: () => this.zone.run(() => {
|
||||
// FIXME: Only show if this is a playlist
|
||||
if (this.playlist) this.zone.run(() => this.videoWatchPlaylist.navigateToPreviousPlaylistVideo())
|
||||
}),
|
||||
|
||||
playerElement: this.playerElement,
|
||||
onPlayerElementChange: (element: HTMLVideoElement) => this.playerElement = element,
|
||||
|
|
Loading…
Reference in New Issue