X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bvideos%2F%2Bvideo-watch%2Fvideo-watch.component.ts;h=1f24c898e31965054dfd54e2322ecbbb5d5a49b4;hb=33d21a9b47b983ee7a5c5ba6d8a416c35fe66cf9;hp=075f70f56dbca3dfd91f6ea4bf4a706c56727a55;hpb=58b9ce3080c12678e8c1c28c08da09d6ea60011d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+videos/+video-watch/video-watch.component.ts b/client/src/app/+videos/+video-watch/video-watch.component.ts index 075f70f56..1f24c898e 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch.component.ts @@ -29,7 +29,12 @@ import { MetaService } from '@ngx-meta/core' import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes' import { ServerConfig, ServerErrorCode, UserVideoRateType, VideoCaption, VideoPrivacy, VideoState } from '@shared/models' -import { cleanupVideoWatch, getStoredP2PEnabled, getStoredTheater, getStoredVideoWatchHistory } from '../../../assets/player/peertube-player-local-storage' +import { + cleanupVideoWatch, + getStoredP2PEnabled, + getStoredTheater, + getStoredVideoWatchHistory +} from '../../../assets/player/peertube-player-local-storage' import { CustomizationOptions, P2PMediaLoaderOptions, @@ -279,23 +284,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy { } showSupportModal () { - // Check video was playing before opening support modal - const isVideoPlaying = this.isPlaying() - - this.pausePlayer() - - const modalRef = this.supportModal.show() - - modalRef.result.then(() => { - if (isVideoPlaying) { - this.resumePlayer() - } - }) + this.supportModal.show() } showShareModal () { - this.pausePlayer() - this.videoShareModal.show(this.currentTime, this.videoWatchPlaylist.currentPlaylistPosition) } @@ -303,6 +295,13 @@ export class VideoWatchComponent implements OnInit, OnDestroy { return this.authService.isLoggedIn() } + getVideoUrl () { + if (!this.video.url) { + return this.video.originInstanceUrl + VideoDetails.buildClientUrl(this.video.uuid) + } + return this.video.url + } + getVideoTags () { if (!this.video || Array.isArray(this.video.tags) === false) return [] @@ -318,10 +317,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy { } } - onModalOpened () { - this.pausePlayer() - } - onVideoRemoved () { this.redirectService.redirectToHomepage() } @@ -398,6 +393,11 @@ export class VideoWatchComponent implements OnInit, OnDestroy { this.loadVideo(videoId) } + displayOtherVideosAsRow () { + // Use the same value as in the SASS file + return this.screenService.getWindowInnerWidth() <= 1100 + } + private loadVideo (videoId: string) { // Video did not change if (this.video && this.video.uuid === videoId) return @@ -572,7 +572,12 @@ export class VideoWatchComponent implements OnInit, OnDestroy { this.setOpenGraphTags() this.checkUserRating() - this.hooks.runAction('action:video-watch.video.loaded', 'video-watch', { videojs }) + const hookOptions = { + videojs, + video: this.video, + playlist: this.playlist + } + this.hooks.runAction('action:video-watch.video.loaded', 'video-watch', hookOptions) } private async buildPlayer (urlOptions: URLOptions) { @@ -794,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, @@ -874,24 +883,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy { return { playerMode: mode, playerOptions: options } } - private pausePlayer () { - if (!this.player) return - - this.player.pause() - } - - private resumePlayer () { - if (!this.player) return - - this.player.play() - } - - private isPlaying () { - if (!this.player) return - - return !this.player.paused() - } - private async subscribeToLiveEventsIfNeeded (oldVideo: VideoDetails, newVideo: VideoDetails) { if (!this.liveVideosSub) { this.liveVideosSub = this.buildLiveEventsSubscription()