]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/video-abuses/video-abuse-list/video-abuse-list.component.ts
Change video abuse API response
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / video-abuses / video-abuse-list / video-abuse-list.component.ts
index 7c838fbf0c526982b9fa7c0201b2335369b06715..b650194b76bae3cbba951b9a057cf1dba6b60f20 100644 (file)
@@ -1,72 +1,47 @@
-import { Component } from '@angular/core'
-
+import { Component, OnInit } from '@angular/core'
+import { Account } from '@app/shared/account/account.model'
 import { NotificationsService } from 'angular2-notifications'
+import { SortMeta } from 'primeng/components/common/sortmeta'
+import { VideoAbuse } from '../../../../../../shared'
 
-import { Utils, VideoAbuseService } from '../../../shared'
-import { VideoAbuse } from '../../../../../shared'
+import { RestPagination, RestTable, VideoAbuseService } from '../../../shared'
 
 @Component({
   selector: 'my-video-abuse-list',
-  templateUrl: './video-abuse-list.component.html'
+  templateUrl: './video-abuse-list.component.html',
+  styleUrls: [ './video-abuse-list.component.scss']
 })
-export class VideoAbuseListComponent {
-  videoAbusesSource = null
-  tableSettings = {
-    mode: 'external',
-    attr: {
-      class: 'table-hover'
-    },
-    hideSubHeader: true,
-    actions: {
-      position: 'right',
-      add: false,
-      edit: false,
-      delete: false
-    },
-    pager: {
-      display: true,
-      perPage: 10
-    },
-    columns: {
-      id: {
-        title: 'ID',
-        sortDirection: 'asc'
-      },
-      reason: {
-        title: 'Reason',
-        sort: false
-      },
-      reporterPodHost: {
-        title: 'Reporter pod host',
-        sort: false
-      },
-      reporterUsername: {
-        title: 'Reporter username',
-        sort: false
-      },
-      videoId: {
-        title: 'Video',
-        type: 'html',
-        sort: false,
-        valuePrepareFunction: this.buildVideoLink
-      },
-      createdAt: {
-        title: 'Created Date',
-        valuePrepareFunction: Utils.dateToHuman
-      }
-    }
-  }
+export class VideoAbuseListComponent extends RestTable implements OnInit {
+  videoAbuses: VideoAbuse[] = []
+  totalRecords = 0
+  rowsPerPage = 10
+  sort: SortMeta = { field: 'createdAt', order: 1 }
+  pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
 
   constructor (
     private notificationsService: NotificationsService,
     private videoAbuseService: VideoAbuseService
   ) {
-    this.videoAbusesSource = this.videoAbuseService.getDataSource()
+    super()
+  }
+
+  ngOnInit () {
+    this.loadSort()
   }
 
-  buildVideoLink (videoId: string) {
-    // TODO: transform to routerLink
-    // https://github.com/akveo/ng2-smart-table/issues/57
-    return `<a href="/videos/${videoId}" title="Go to the video">${videoId}</a>`
+  createByString (account: Account) {
+    return Account.CREATE_BY_STRING(account.name, account.host)
+  }
+
+  protected loadData () {
+    return this.videoAbuseService.getVideoAbuses(this.pagination, this.sort)
+               .subscribe(
+                 resultList => {
+                   this.videoAbuses = resultList.data
+                   this.totalRecords = resultList.total
+                 },
+
+                 err => this.notificationsService.error('Error', err.message)
+               )
   }
 }