From 41a2aee38cf812510010da09de9bae53590ec119 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 27 May 2016 16:23:10 +0200 Subject: Follow the angular styleguide for the directories structure --- .../videos/video-list/video-miniature.component.ts | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 client/app/videos/video-list/video-miniature.component.ts (limited to 'client/app/videos/video-list/video-miniature.component.ts') diff --git a/client/app/videos/video-list/video-miniature.component.ts b/client/app/videos/video-list/video-miniature.component.ts new file mode 100644 index 000000000..817636768 --- /dev/null +++ b/client/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/index'; +import { User } from '../../users/index'; + +@Component({ + selector: 'my-video-miniature', + styleUrls: [ 'client/app/videos/video-list/video-miniature.component.css' ], + templateUrl: 'client/app/videos/video-list/video-miniature.component.html', + directives: [ ROUTER_DIRECTIVES ], + pipes: [ DatePipe ] +}) + +export class VideoMiniatureComponent { + @Output() removed = new EventEmitter(); + + @Input() video: Video; + @Input() user: User; + + hovering: boolean = false; + + constructor(private _videoService: VideoService) {} + + onHover() { + this.hovering = true; + } + + onBlur() { + this.hovering = false; + } + + displayRemoveIcon(): boolean { + return this.hovering && this.video.isRemovableBy(this.user); + } + + 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