mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-30 03:29:14 -04:00
first full roundtrip
This commit is contained in:
parent
dd4809f519
commit
dc1af5ae7b
19 changed files with 222 additions and 450 deletions
|
@ -1,37 +1,40 @@
|
|||
<link rel="import" href="file-selection-behavior.html">
|
||||
<script>
|
||||
'use strict';
|
||||
Chat = window.Chat || {};
|
||||
Chat.FileDropBehavior = {
|
||||
window.Chat = window.Chat || {};
|
||||
Chat.FileDropBehaviorImpl = {
|
||||
attached: function() {
|
||||
var dropZone = this;
|
||||
|
||||
// Optional. Show the copy icon when dragging over. Seems to only work for chrome.
|
||||
dropZone.addEventListener('dragover', function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
e.dataTransfer.dropEffect = 'copy';
|
||||
this.style.transform = 'scale(1.2)';
|
||||
});
|
||||
dropZone.style.transform = 'scale(1.2)';
|
||||
}, false);
|
||||
|
||||
var dragEnd = function() {
|
||||
dropZone.style.transform = 'scale(1)';
|
||||
};
|
||||
|
||||
dropZone.addEventListener('dragleave', dragEnd, false);
|
||||
dropZone.addEventListener('dragexit', dragEnd, false);
|
||||
dropZone.addEventListener('dragend', dragEnd, false);
|
||||
|
||||
// Get file data on drop
|
||||
dropZone.addEventListener('drop', function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
var files = e.dataTransfer.files; // Array of all files
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var file = files[i];
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(e2) {
|
||||
// finished reading file data.
|
||||
console.log('file dropped');
|
||||
this.fire('file-uploaded', {
|
||||
url: e2.target.result,
|
||||
name: file.name
|
||||
});
|
||||
}.bind(this);
|
||||
reader.readAsDataURL(file); // start reading the file data.
|
||||
}
|
||||
dropZone.addEventListener('drop', function(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
//call dragend
|
||||
dragEnd();
|
||||
|
||||
// Get files
|
||||
var files = event.dataTransfer.files;
|
||||
// Notify Selection
|
||||
this.notifyFilesSelection(files);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
Chat.FileDropBehavior = [Chat.FileDropBehaviorImpl, Chat.FileSelectionBehavior];
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue