]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/videos/video-list/video-miniature.component.ts
Client: better confirm box for a beautiful world
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / video-list / video-miniature.component.ts
index 639339b445fd6802fc557896c8ec5c92cffefea4..ba47155972a08d2b24cce7290b488b9da3a2342d 100644 (file)
@@ -1,27 +1,31 @@
-import { DatePipe } from '@angular/common';
 import { Component, Input, Output, EventEmitter } from '@angular/core';
-import { ROUTER_DIRECTIVES } from '@angular/router-deprecated';
 
-import { Video, VideoService } from '../shared';
+import { NotificationsService } from 'angular2-notifications';
+
+import { ConfirmService } from '../../core';
+import { SortField, Video, VideoService } from '../shared';
 import { User } from '../../shared';
 
 @Component({
   selector: 'my-video-miniature',
-  styles: [ require('./video-miniature.component.scss') ],
-  template: require('./video-miniature.component.html'),
-  directives: [ ROUTER_DIRECTIVES ],
-  pipes: [ DatePipe ]
+  styleUrls: [ './video-miniature.component.scss' ],
+  templateUrl: './video-miniature.component.html'
 })
 
 export class VideoMiniatureComponent {
   @Output() removed = new EventEmitter<any>();
 
+  @Input() currentSort: SortField;
   @Input() user: User;
   @Input() video: Video;
 
   hovering = false;
 
-  constructor(private videoService: VideoService) {}
+  constructor(
+    private notificationsService: NotificationsService,
+    private confirmService: ConfirmService,
+    private videoService: VideoService
+  ) {}
 
   displayRemoveIcon() {
     return this.hovering && this.video.isRemovableBy(this.user);
@@ -36,11 +40,16 @@ export class VideoMiniatureComponent {
   }
 
   removeVideo(id: string) {
-    if (confirm('Do you really want to remove this video?')) {
-      this.videoService.removeVideo(id).subscribe(
-        status => this.removed.emit(true),
-        error => alert(error)
-      );
-    }
+    this.confirmService.confirm('Do you really want to delete this video?', 'Delete').subscribe(
+      res => {
+        if (res === false) return;
+
+        this.videoService.removeVideo(id).subscribe(
+          status => this.removed.emit(true),
+
+          error => this.notificationsService.error('Error', error.text)
+        );
+      }
+    );
   }
 }