]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-video-comment/video-comment.model.ts
Fix terms/code of conduct link toggle
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-video-comment / video-comment.model.ts
index e854431968b6058b6ceaa2dcc611af7a3d6e5289..adab4cfbda43ede60833b4cdcba765b7d7aebfb5 100644 (file)
@@ -1,6 +1,10 @@
 import { getAbsoluteAPIUrl } from '@app/helpers'
-import { Actor } from '@app/shared/shared-main'
-import { Account as AccountInterface, VideoComment as VideoCommentServerModel } from '@shared/models'
+import { Actor, Video } from '@app/shared/shared-main'
+import {
+  Account as AccountInterface,
+  VideoComment as VideoCommentServerModel,
+  VideoCommentAdmin as VideoCommentAdminServerModel
+} from '@shared/models'
 
 export class VideoComment implements VideoCommentServerModel {
   id: number
@@ -17,7 +21,6 @@ export class VideoComment implements VideoCommentServerModel {
   totalRepliesFromVideoAuthor: number
   totalReplies: number
   by: string
-  accountAvatarUrl: string
 
   isLocal: boolean
 
@@ -38,7 +41,6 @@ export class VideoComment implements VideoCommentServerModel {
 
     if (this.account) {
       this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
-      this.accountAvatarUrl = Actor.GET_ACTOR_AVATAR_URL(this.account)
 
       const absoluteAPIUrl = getAbsoluteAPIUrl()
       const thisHost = new URL(absoluteAPIUrl).host
@@ -46,3 +48,58 @@ export class VideoComment implements VideoCommentServerModel {
     }
   }
 }
+
+export class VideoCommentAdmin implements VideoCommentAdminServerModel {
+  id: number
+  url: string
+  text: string
+  textHtml: string
+
+  threadId: number
+  inReplyToCommentId: number
+
+  createdAt: Date | string
+  updatedAt: Date | string
+
+  account: AccountInterface & { localUrl?: string }
+  localUrl: string
+
+  video: {
+    id: number
+    uuid: string
+    name: string
+    localUrl: string
+  }
+
+  by: string
+
+  constructor (hash: VideoCommentAdminServerModel, textHtml: string) {
+    this.id = hash.id
+    this.url = hash.url
+    this.text = hash.text
+    this.textHtml = textHtml
+
+    this.threadId = hash.threadId
+    this.inReplyToCommentId = hash.inReplyToCommentId
+
+    this.createdAt = new Date(hash.createdAt.toString())
+    this.updatedAt = new Date(hash.updatedAt.toString())
+
+    this.video = {
+      id: hash.video.id,
+      uuid: hash.video.uuid,
+      name: hash.video.name,
+      localUrl: Video.buildWatchUrl(hash.video)
+    }
+
+    this.localUrl = this.video.localUrl + ';threadId=' + this.threadId
+
+    this.account = hash.account
+
+    if (this.account) {
+      this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
+
+      this.account.localUrl = '/a/' + this.by
+    }
+  }
+}