From 4a6995be18b15de1834a39c8921a0e4109671bb6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 3 Jun 2016 22:08:03 +0200 Subject: First draft to use webpack instead of systemjs --- .../videos/video-list/video-miniature.component.ts | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 client/src/app/videos/video-list/video-miniature.component.ts (limited to 'client/src/app/videos/video-list/video-miniature.component.ts') diff --git a/client/src/app/videos/video-list/video-miniature.component.ts b/client/src/app/videos/video-list/video-miniature.component.ts new file mode 100644 index 000000000..639339b44 --- /dev/null +++ b/client/src/app/videos/video-list/video-miniature.component.ts @@ -0,0 +1,46 @@ +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 { 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 ] +}) + +export class VideoMiniatureComponent { + @Output() removed = new EventEmitter(); + + @Input() user: User; + @Input() video: Video; + + hovering = false; + + constructor(private videoService: VideoService) {} + + displayRemoveIcon() { + return this.hovering && this.video.isRemovableBy(this.user); + } + + onBlur() { + this.hovering = false; + } + + onHover() { + this.hovering = true; + } + + 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) + ); + } + } +} -- cgit v1.2.3