Add checkbox to bulk update videos support field
authorChocobozzz <me@florianbigard.com>
Fri, 31 May 2019 14:57:01 +0000 (16:57 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 31 May 2019 14:57:01 +0000 (16:57 +0200)
client/src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html
client/src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.ts
client/src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts

index 81fb11f45e197855eaad0bb92a3e1465b2a13f18..f87df87dfcd747b7ee234eeaa45a553d10134965 100644 (file)
@@ -61,5 +61,12 @@ When you will upload a video in this channel, the video support field will be au
     </div>
   </div>
 
+  <div class="form-group" *ngIf="isBulkUpdateVideosDisplayed()">
+    <my-peertube-checkbox
+      inputName="bulkVideosSupportUpdate" formControlName="bulkVideosSupportUpdate"
+      i18n-labelText labelText="Overwrite support field of all videos of this channel"
+    ></my-peertube-checkbox>
+  </div>
+
   <input type="submit" value="{{ getFormButtonTitle() }}" [disabled]="!form.valid">
 </form>
index 4dc65dd99632f997dfe81656f7efc2142e27d7ae..7479442d1f1beb285e54cbc1f97be63d01b49e9d 100644 (file)
@@ -11,4 +11,9 @@ export abstract class MyAccountVideoChannelEdit extends FormReactive {
 
   // FIXME: We need this method so angular does not complain in the child template
   onAvatarChange (formData: FormData) { /* empty */ }
+
+  // Should be implemented by the child
+  isBulkUpdateVideosDisplayed () {
+    return false
+  }
 }
index da4fb645ae92e8b73b20a5918e67be46bc708c99..081e956d27e6d1fefc8ca8af72d6dae6de7b4928 100644 (file)
@@ -20,6 +20,7 @@ export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelE
   videoChannelToUpdate: VideoChannel
 
   private paramsSub: Subscription
+  private oldSupportField: string
 
   constructor (
     protected formValidatorService: FormValidatorService,
@@ -39,7 +40,8 @@ export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelE
     this.buildForm({
       'display-name': this.videoChannelValidatorsService.VIDEO_CHANNEL_DISPLAY_NAME,
       description: this.videoChannelValidatorsService.VIDEO_CHANNEL_DESCRIPTION,
-      support: this.videoChannelValidatorsService.VIDEO_CHANNEL_SUPPORT
+      support: this.videoChannelValidatorsService.VIDEO_CHANNEL_SUPPORT,
+      bulkVideosSupportUpdate: null
     })
 
     this.paramsSub = this.route.params.subscribe(routeParams => {
@@ -49,6 +51,8 @@ export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelE
         videoChannelToUpdate => {
           this.videoChannelToUpdate = videoChannelToUpdate
 
+          this.oldSupportField = videoChannelToUpdate.support
+
           this.form.patchValue({
             'display-name': videoChannelToUpdate.displayName,
             description: videoChannelToUpdate.description,
@@ -72,7 +76,8 @@ export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelE
     const videoChannelUpdate: VideoChannelUpdate = {
       displayName: body['display-name'],
       description: body.description || null,
-      support: body.support || null
+      support: body.support || null,
+      bulkVideosSupportUpdate: body.bulkVideosSupportUpdate || false
     }
 
     this.videoChannelService.updateVideoChannel(this.videoChannelToUpdate.name, videoChannelUpdate).subscribe(
@@ -118,4 +123,10 @@ export class MyAccountVideoChannelUpdateComponent extends MyAccountVideoChannelE
   getFormButtonTitle () {
     return this.i18n('Update')
   }
+
+  isBulkUpdateVideosDisplayed () {
+    if (this.oldSupportField === undefined) return false
+
+    return this.oldSupportField !== this.form.value['support']
+  }
 }