]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+manage/video-channel-edit/video-channel-update.component.ts
Fix video channels quick filter overflow
[github/Chocobozzz/PeerTube.git] / client / src / app / +manage / video-channel-edit / video-channel-update.component.ts
index 21b6167b225814ea9acf3b703eb1a7eeb51f79a3..f9045db352f0ed72867d18ccac399d7715c7d8e4 100644 (file)
@@ -1,25 +1,26 @@
 import { Subscription } from 'rxjs'
 import { HttpErrorResponse } from '@angular/common/http'
-import { Component, OnDestroy, OnInit } from '@angular/core'
-import { ActivatedRoute, Router } from '@angular/router'
-import { AuthService, Notifier, RedirectService, ServerService } from '@app/core'
+import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core'
+import { ActivatedRoute } from '@angular/router'
+import { AuthService, HooksService, Notifier, RedirectService, ServerService } from '@app/core'
 import { genericUploadErrorHandler } from '@app/helpers'
 import {
   VIDEO_CHANNEL_DESCRIPTION_VALIDATOR,
   VIDEO_CHANNEL_DISPLAY_NAME_VALIDATOR,
   VIDEO_CHANNEL_SUPPORT_VALIDATOR
 } from '@app/shared/form-validators/video-channel-validators'
-import { FormValidatorService } from '@app/shared/shared-forms'
+import { FormReactiveService } from '@app/shared/shared-forms'
 import { VideoChannel, VideoChannelService } from '@app/shared/shared-main'
 import { HTMLServerConfig, VideoChannelUpdate } from '@shared/models'
 import { VideoChannelEdit } from './video-channel-edit'
+import { shallowCopy } from '@shared/core-utils'
 
 @Component({
   selector: 'my-video-channel-update',
   templateUrl: './video-channel-edit.component.html',
   styleUrls: [ './video-channel-edit.component.scss' ]
 })
-export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnInit, OnDestroy {
+export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnInit, AfterViewInit, OnDestroy {
   error: string
   videoChannel: VideoChannel
 
@@ -28,14 +29,14 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
   private serverConfig: HTMLServerConfig
 
   constructor (
-    protected formValidatorService: FormValidatorService,
+    protected formReactiveService: FormReactiveService,
     private authService: AuthService,
     private notifier: Notifier,
-    private router: Router,
     private route: ActivatedRoute,
     private videoChannelService: VideoChannelService,
     private serverService: ServerService,
-    private redirectService: RedirectService
+    private redirectService: RedirectService,
+    private hooks: HooksService
   ) {
     super()
   }
@@ -45,9 +46,9 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
 
     this.buildForm({
       'display-name': VIDEO_CHANNEL_DISPLAY_NAME_VALIDATOR,
-      description: VIDEO_CHANNEL_DESCRIPTION_VALIDATOR,
-      support: VIDEO_CHANNEL_SUPPORT_VALIDATOR,
-      bulkVideosSupportUpdate: null
+      'description': VIDEO_CHANNEL_DESCRIPTION_VALIDATOR,
+      'support': VIDEO_CHANNEL_SUPPORT_VALIDATOR,
+      'bulkVideosSupportUpdate': null
     })
 
     this.paramsSub = this.route.params.subscribe(routeParams => {
@@ -58,12 +59,14 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
           next: videoChannelToUpdate => {
             this.videoChannel = videoChannelToUpdate
 
+            this.hooks.runAction('action:video-channel-update.video-channel.loaded', 'video-channel', { videoChannel: this.videoChannel })
+
             this.oldSupportField = videoChannelToUpdate.support
 
             this.form.patchValue({
               'display-name': videoChannelToUpdate.displayName,
-              description: videoChannelToUpdate.description,
-              support: videoChannelToUpdate.support
+              'description': videoChannelToUpdate.description,
+              'support': videoChannelToUpdate.support
             })
           },
 
@@ -74,6 +77,10 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
     })
   }
 
+  ngAfterViewInit () {
+    this.hooks.runAction('action:video-channel-update.init', 'video-channel')
+  }
+
   ngOnDestroy () {
     if (this.paramsSub) this.paramsSub.unsubscribe()
   }
@@ -96,7 +103,7 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
 
           this.notifier.success($localize`Video channel ${videoChannelUpdate.displayName} updated.`)
 
-          this.redirectService.redirectToPreviousRoute([ '/c', this.videoChannel.name ])
+          this.redirectService.redirectToPreviousRoute('/c/' + this.videoChannel.name)
         },
 
         error: err => {
@@ -111,7 +118,10 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
           next: data => {
             this.notifier.success($localize`Avatar changed.`)
 
-            this.videoChannel.updateAvatar(data.avatar)
+            this.videoChannel.updateAvatar(data.avatars)
+
+            // So my-actor-avatar component detects changes
+            this.videoChannel = shallowCopy(this.videoChannel)
           },
 
           error: (err: HttpErrorResponse) => genericUploadErrorHandler({
@@ -129,6 +139,9 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
                                 this.notifier.success($localize`Avatar deleted.`)
 
                                 this.videoChannel.resetAvatar()
+
+                                // So my-actor-avatar component detects changes
+                                this.videoChannel = shallowCopy(this.videoChannel)
                               },
 
                               error: err => this.notifier.error(err.message)
@@ -141,7 +154,7 @@ export class VideoChannelUpdateComponent extends VideoChannelEdit implements OnI
           next: data => {
             this.notifier.success($localize`Banner changed.`)
 
-            this.videoChannel.updateBanner(data.banner)
+            this.videoChannel.updateBanner(data.banners)
           },
 
           error: (err: HttpErrorResponse) => genericUploadErrorHandler({