diff options
author | Rigel Kent <sendmemail@rigelk.eu> | 2020-04-03 00:22:04 +0200 |
---|---|---|
committer | Rigel Kent <sendmemail@rigelk.eu> | 2020-04-03 00:22:06 +0200 |
commit | c9ff8a08a06ef0f30ec4963aebfcc02293ca20c5 (patch) | |
tree | dc2899aff59d56b40dac81fabd90d863b1586331 /client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts | |
parent | b515c98c6b674ee5632f3f76ad4fe00e147d995e (diff) | |
download | PeerTube-c9ff8a08a06ef0f30ec4963aebfcc02293ca20c5.tar.gz PeerTube-c9ff8a08a06ef0f30ec4963aebfcc02293ca20c5.tar.zst PeerTube-c9ff8a08a06ef0f30ec4963aebfcc02293ca20c5.zip |
Support drag and drop for video upload and torrent file import
Diffstat (limited to 'client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts')
-rw-r--r-- | client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts b/client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts new file mode 100644 index 000000000..07c7d34ac --- /dev/null +++ b/client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts | |||
@@ -0,0 +1,30 @@ | |||
1 | import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core' | ||
2 | |||
3 | @Directive({ | ||
4 | selector: '[dragDrop]' | ||
5 | }) | ||
6 | export class DragDropDirective { | ||
7 | @Output() onFileDropped = new EventEmitter<FileList>() | ||
8 | |||
9 | @HostBinding('class.dragover') dragover = false | ||
10 | |||
11 | @HostListener('dragover', ['$event']) onDragOver(e: Event) { | ||
12 | e.preventDefault() | ||
13 | e.stopPropagation() | ||
14 | this.dragover = true | ||
15 | } | ||
16 | |||
17 | @HostListener('dragleave', ['$event']) public onDragLeave(e: Event) { | ||
18 | e.preventDefault() | ||
19 | e.stopPropagation() | ||
20 | this.dragover = false | ||
21 | } | ||
22 | |||
23 | @HostListener('drop', ['$event']) public ondrop(e: DragEvent) { | ||
24 | e.preventDefault() | ||
25 | e.stopPropagation() | ||
26 | this.dragover = false | ||
27 | let files = e.dataTransfer.files | ||
28 | if (files.length > 0) this.onFileDropped.emit(files) | ||
29 | } | ||
30 | } | ||