]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-main/video-channel/video-channel.model.ts
Add new default different avatar for channel and account
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-main / video-channel / video-channel.model.ts
index 123389afbc3bd02aefd7b0431d278a1cb4d5d96e..4f1f5b65de8358b68176a1a7d4e881b45abd0ac7 100644 (file)
@@ -1,4 +1,4 @@
-import { VideoChannel as ServerVideoChannel, ViewsPerDate, Account } from '@shared/models'
+import { VideoChannel as ServerVideoChannel, ViewsPerDate, Account, Avatar } from '@shared/models'
 import { Actor } from '../account/actor.model'
 
 export class VideoChannel extends Actor implements ServerVideoChannel {
@@ -17,9 +17,19 @@ export class VideoChannel extends Actor implements ServerVideoChannel {
 
   viewsPerDay?: ViewsPerDate[]
 
+  static GET_ACTOR_AVATAR_URL (actor: object) {
+    return Actor.GET_ACTOR_AVATAR_URL(actor) || this.GET_DEFAULT_AVATAR_URL()
+  }
+
+  static GET_DEFAULT_AVATAR_URL () {
+    return `${window.location.origin}/client/assets/images/default-avatar-videochannel.png`
+  }
+
   constructor (hash: ServerVideoChannel) {
     super(hash)
 
+    this.updateComputedAttributes()
+
     this.displayName = hash.displayName
     this.description = hash.description
     this.support = hash.support
@@ -39,4 +49,14 @@ export class VideoChannel extends Actor implements ServerVideoChannel {
       this.ownerAvatarUrl = Actor.GET_ACTOR_AVATAR_URL(this.ownerAccount)
     }
   }
+
+  updateAvatar (newAvatar: Avatar) {
+    this.avatar = newAvatar
+
+    this.updateComputedAttributes()
+  }
+
+  private updateComputedAttributes () {
+    this.avatarUrl = VideoChannel.GET_ACTOR_AVATAR_URL(this)
+  }
 }