]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/account/account-videos/account-videos.component.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / client / src / app / account / account-videos / account-videos.component.ts
index e9d044dbf43d27c797dab02b7853ccf8b93704f8..2664d59d8fe2e3d3989cec74211cad2d038d262e 100644 (file)
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core'
+import { Component, OnInit, OnDestroy } from '@angular/core'
 import { ActivatedRoute, Router } from '@angular/router'
 import { immutableAssign } from '@app/shared/misc/utils'
 import { ComponentPagination } from '@app/shared/rest/component-pagination.model'
@@ -17,18 +17,19 @@ import { VideoService } from '../../shared/video/video.service'
   templateUrl: './account-videos.component.html',
   styleUrls: [ './account-videos.component.scss' ]
 })
-export class AccountVideosComponent extends AbstractVideoList implements OnInit {
+export class AccountVideosComponent extends AbstractVideoList implements OnInit, OnDestroy {
   titlePage = 'My videos'
   currentRoute = '/account/videos'
   checkedVideos: { [ id: number ]: boolean } = {}
-  videoHeight = 155
-  videoWidth = -1
   pagination: ComponentPagination = {
     currentPage: 1,
-    itemsPerPage: 10,
+    itemsPerPage: 5,
     totalItems: null
   }
 
+  protected baseVideoWidth = -1
+  protected baseVideoHeight = 155
+
   constructor (protected router: Router,
                protected route: ActivatedRoute,
                protected authService: AuthService,
@@ -42,6 +43,10 @@ export class AccountVideosComponent extends AbstractVideoList implements OnInit
     super.ngOnInit()
   }
 
+  ngOnDestroy () {
+    super.ngOnDestroy()
+  }
+
   abortSelectionMode () {
     this.checkedVideos = {}
   }
@@ -56,55 +61,54 @@ export class AccountVideosComponent extends AbstractVideoList implements OnInit
     return this.videoService.getMyVideos(newPagination, this.sort)
   }
 
-  deleteSelectedVideos () {
+  async deleteSelectedVideos () {
     const toDeleteVideosIds = Object.keys(this.checkedVideos)
       .filter(k => this.checkedVideos[k] === true)
       .map(k => parseInt(k, 10))
 
-    this.confirmService.confirm(`Do you really want to delete ${toDeleteVideosIds.length} videos?`, 'Delete').subscribe(
-      res => {
-        if (res === false) return
-
-        const observables: Observable<any>[] = []
-        for (const videoId of toDeleteVideosIds) {
-          const o = this.videoService
-            .removeVideo(videoId)
-            .do(() => this.spliceVideosById(videoId))
-
-          observables.push(o)
-        }
-
-        Observable.from(observables)
-          .concatAll()
-          .subscribe(
-            res => {
-              this.notificationsService.success('Success', `${toDeleteVideosIds.length} videos deleted.`)
-              this.buildVideoPages()
-            },
-
-            err => this.notificationsService.error('Error', err.message)
-          )
-      }
-    )
+    const res = await this.confirmService.confirm(`Do you really want to delete ${toDeleteVideosIds.length} videos?`, 'Delete')
+    if (res === false) return
+
+    const observables: Observable<any>[] = []
+    for (const videoId of toDeleteVideosIds) {
+      const o = this.videoService
+        .removeVideo(videoId)
+        .do(() => this.spliceVideosById(videoId))
+
+      observables.push(o)
+    }
+
+    Observable.from(observables)
+      .concatAll()
+      .subscribe(
+        res => {
+          this.notificationsService.success('Success', `${toDeleteVideosIds.length} videos deleted.`)
+          this.buildVideoPages()
+        },
+
+        err => this.notificationsService.error('Error', err.message)
+      )
   }
 
-  deleteVideo (video: Video) {
-    this.confirmService.confirm(`Do you really want to delete ${video.name}?`, 'Delete').subscribe(
-      res => {
-        if (res === false) return
-
-        this.videoService.removeVideo(video.id)
-          .subscribe(
-            status => {
-              this.notificationsService.success('Success', `Video ${video.name} deleted.`)
-              this.spliceVideosById(video.id)
-              this.buildVideoPages()
-            },
-
-            error => this.notificationsService.error('Error', error.message)
-          )
-      }
-    )
+  async deleteVideo (video: Video) {
+    const res = await this.confirmService.confirm(`Do you really want to delete ${video.name}?`, 'Delete')
+    if (res === false) return
+
+    this.videoService.removeVideo(video.id)
+      .subscribe(
+        status => {
+          this.notificationsService.success('Success', `Video ${video.name} deleted.`)
+          this.spliceVideosById(video.id)
+          this.buildVideoPages()
+        },
+
+        error => this.notificationsService.error('Error', error.message)
+      )
+  }
+
+  protected buildVideoHeight () {
+    // In account videos, the video height is fixed
+    return this.baseVideoHeight
   }
 
   private spliceVideosById (id: number) {