]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+videos/+video-edit/video-update.component.ts
Update angular
[github/Chocobozzz/PeerTube.git] / client / src / app / +videos / +video-edit / video-update.component.ts
index ed17dff06ec1bb94383451a41e8a9ed289ec39a6..ad71162b856a873b36637ce156cdbeb85d8e6981 100644 (file)
@@ -4,11 +4,12 @@ import { SelectChannelItem } from 'src/types/select-options-item.model'
 import { Component, HostListener, OnInit } from '@angular/core'
 import { ActivatedRoute, Router } from '@angular/router'
 import { Notifier } from '@app/core'
-import { FormReactive, FormValidatorService } from '@app/shared/shared-forms'
+import { FormReactive, FormReactiveService } from '@app/shared/shared-forms'
 import { Video, VideoCaptionEdit, VideoCaptionService, VideoDetails, VideoEdit, VideoService } from '@app/shared/shared-main'
 import { LiveVideoService } from '@app/shared/shared-video-live'
 import { LoadingBarService } from '@ngx-loading-bar/core'
 import { logger } from '@root-helpers/logger'
+import { pick, simpleObjectsDeepEqual } from '@shared/core-utils'
 import { LiveVideo, LiveVideoUpdate, VideoPrivacy } from '@shared/models'
 import { VideoSource } from '@shared/models/videos/video-source'
 import { hydrateFormFromVideo } from './shared/video-edit-utils'
@@ -28,12 +29,11 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
 
   isUpdatingVideo = false
   forbidScheduledPublication = false
-  waitTranscodingEnabled = true
 
   private updateDone = false
 
   constructor (
-    protected formValidatorService: FormValidatorService,
+    protected formReactiveService: FormReactiveService,
     private route: ActivatedRoute,
     private router: Router,
     private notifier: Notifier,
@@ -68,6 +68,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
     if (this.liveVideo) {
       this.form.patchValue({
         saveReplay: this.liveVideo.saveReplay,
+        replayPrivacy: this.liveVideo.replaySettings ? this.liveVideo.replaySettings.privacy : VideoPrivacy.PRIVATE,
         latencyMode: this.liveVideo.latencyMode,
         permanentLive: this.liveVideo.permanentLive
       })
@@ -96,16 +97,12 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
     return { canDeactivate: this.formChanged === false, text }
   }
 
-  isWaitTranscodingEnabled () {
+  isWaitTranscodingHidden () {
     if (this.videoDetails.getFiles().length > 1) { // Already transcoded
-      return false
+      return true
     }
 
-    if (this.liveVideo && this.form.value['saveReplay'] !== true) {
-      return false
-    }
-
-    return true
+    return false
   }
 
   async update () {
@@ -130,15 +127,21 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
           switchMap(() => {
             if (!this.liveVideo) return of(undefined)
 
+            const saveReplay = !!this.form.value.saveReplay
+            const replaySettings = saveReplay
+              ? { privacy: this.form.value.replayPrivacy }
+              : undefined
+
             const liveVideoUpdate: LiveVideoUpdate = {
-              saveReplay: !!this.form.value.saveReplay,
+              saveReplay,
+              replaySettings,
               permanentLive: !!this.form.value.permanentLive,
               latencyMode: this.form.value.latencyMode
             }
 
             // Don't update live attributes if they did not change
-            const liveChanged = Object.keys(liveVideoUpdate)
-              .some(key => this.liveVideo[key] !== liveVideoUpdate[key])
+            const baseVideo = pick(this.liveVideo, Object.keys(liveVideoUpdate) as (keyof LiveVideoUpdate)[])
+            const liveChanged = !simpleObjectsDeepEqual(baseVideo, liveVideoUpdate)
             if (!liveChanged) return of(undefined)
 
             return this.liveVideoService.updateLive(this.videoEdit.id, liveVideoUpdate)