aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts
diff options
context:
space:
mode:
authorRigel Kent <sendmemail@rigelk.eu>2020-04-03 00:22:04 +0200
committerRigel Kent <sendmemail@rigelk.eu>2020-04-03 00:22:06 +0200
commitc9ff8a08a06ef0f30ec4963aebfcc02293ca20c5 (patch)
treedc2899aff59d56b40dac81fabd90d863b1586331 /client/src/app/videos/+video-edit/video-add-components/drag-drop.directive.ts
parentb515c98c6b674ee5632f3f76ad4fe00e147d995e (diff)
downloadPeerTube-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.ts30
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 @@
1import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core'
2
3@Directive({
4 selector: '[dragDrop]'
5})
6export 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}