X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bvideos%2F%2Bvideo-edit%2Fvideo-update.component.ts;h=654901798b8050641af6c4923d29eaee092ad20b;hb=5d84d717b246e7f6bed998481c817dc29e5c4948;hp=30c82343bc4d1285ad931d4346a8711fa5f743f7;hpb=bb4ba6d94c5051fdd665ebe63fffcc105778b8be;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+videos/+video-edit/video-update.component.ts b/client/src/app/+videos/+video-edit/video-update.component.ts index 30c82343b..654901798 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.ts +++ b/client/src/app/+videos/+video-edit/video-update.component.ts @@ -17,6 +17,7 @@ import { hydrateFormFromVideo } from './shared/video-edit-utils' }) export class VideoUpdateComponent extends FormReactive implements OnInit { video: VideoEdit + videoDetails: VideoDetails userVideoChannels: SelectChannelItem[] = [] videoCaptions: VideoCaptionEdit[] = [] liveVideo: LiveVideo @@ -47,17 +48,14 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { .pipe(map(data => data.videoData)) .subscribe(({ video, videoChannels, videoCaptions, liveVideo }) => { this.video = new VideoEdit(video) + this.videoDetails = video + this.userVideoChannels = videoChannels this.videoCaptions = videoCaptions this.liveVideo = liveVideo this.schedulePublicationPossible = this.video.privacy === VideoPrivacy.PRIVATE - const videoFiles = (video as VideoDetails).getFiles() - if (videoFiles.length > 1) { // Already transcoded - this.waitTranscodingEnabled = false - } - // FIXME: Angular does not detect the change inside this subscription, so use the patched setTimeout setTimeout(() => { hydrateFormFromVideo(this.form, this.video, true) @@ -106,6 +104,18 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { return this.form.valid } + isWaitTranscodingEnabled () { + if (this.videoDetails.getFiles().length > 1) { // Already transcoded + return false + } + + if (this.liveVideo && this.form.value['saveReplay'] !== true) { + return false + } + + return true + } + update () { if (this.checkForm() === false || this.isUpdatingVideo === true) { @@ -114,11 +124,6 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { this.video.patch(this.form.value) - const liveVideoUpdate: LiveVideoUpdate = { - saveReplay: this.form.value.saveReplay, - permanentLive: this.form.value.permanentLive - } - this.loadingBar.useRef().start() this.isUpdatingVideo = true @@ -131,6 +136,16 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { switchMap(() => { if (!this.liveVideo) return of(undefined) + const liveVideoUpdate: LiveVideoUpdate = { + saveReplay: !!this.form.value.saveReplay, + permanentLive: !!this.form.value.permanentLive + } + + // Don't update live attributes if they did not change + const liveChanged = Object.keys(liveVideoUpdate) + .some(key => this.liveVideo[key] !== liveVideoUpdate[key]) + if (!liveChanged) return of(undefined) + return this.liveVideoService.updateLive(this.video.id, liveVideoUpdate) }) )