diff --git a/static/sdk.js b/static/sdk.js
index d5e7cca..976e1a2 100644
--- a/static/sdk.js
+++ b/static/sdk.js
@@ -1,6 +1,5 @@
-;"use strict";
-
-var contented = (function($, currentScriptPath) {
+;
+var contented = (function ($, currentScriptPath) {
"use strict";
var baseURL = currentScriptPath.replace('sdk.js', '');
@@ -11,7 +10,7 @@ var contented = (function($, currentScriptPath) {
*
* @return bool
*/
- var contented_SupportsDrop = function() {
+ var contented_SupportsDrop = function () {
return ('ondrop' in window && 'FormData' in window && 'FileReader' in window);
}
@@ -23,9 +22,9 @@ var contented = (function($, currentScriptPath) {
* @param Function onUploaded Called with a property object for every uploaded file
* @param Function onClose Called when the widget should be destroyed
*/
- var contented_EnableDrop = function(elementSelector, onUploaded, onClose) {
- onUploaded = onUploaded || function(){};
- onClose = onClose || function(){};
+ var contented_EnableDrop = function (elementSelector, onUploaded, onClose) {
+ onUploaded = onUploaded || function () { };
+ onClose = onClose || function () { };
if ($(elementSelector).length != 1) {
return; // should only find one element
@@ -35,28 +34,28 @@ var contented = (function($, currentScriptPath) {
//
// Create a new div for ourselves on top of the existing area
- $.get(baseURL + "about", function(ret) {
- $("title").text( ret.AppTitle );
+ $.get(baseURL + "about", function (ret) {
+ $("title").text(ret.AppTitle);
var extraText = "";
if (ret.MaxUploadBytes > 0) {
- extraText = " (max " + Math.floor(ret.MaxUploadBytes / (1024*1024)) + " MiB)";
+ extraText = " (max " + Math.floor(ret.MaxUploadBytes / (1024 * 1024)) + " MiB)";
}
- $.get(baseURL + "widget.html", function(widgetHtml) {
+ $.get(baseURL + "widget.html", function (widgetHtml) {
var $f = $("
").html(widgetHtml);
$f.find(".contented-extratext").text(extraText);
- var ourClose = function() {
+ var ourClose = function () {
$f.remove(); // remove from dom
onClose(); // upstream close
};
- $f.find(".contented-close").click(function() {
+ $f.find(".contented-close").click(function () {
ourClose();
})
- var setType = function(type) {
+ var setType = function (type) {
$f.find(".contented-upload-type").removeClass("contented-upload-type-active");
$f.find(".contented-upload-type[data-upload-type=" + type + "]").addClass("contented-upload-type-active");
@@ -64,8 +63,8 @@ var contented = (function($, currentScriptPath) {
$f.find(".contented-if-" + type).addClass("contented-active");
};
- $f.find(".contented-upload-type").click(function() {
- setType( $(this).attr('data-upload-type') );
+ $f.find(".contented-upload-type").click(function () {
+ setType($(this).attr('data-upload-type'));
});
if (!contented_SupportsDrop()) {
@@ -77,32 +76,41 @@ var contented = (function($, currentScriptPath) {
var $element = $(element);
var offset = $element.offset();
-
+
$f.css({
'position': 'absolute',
- 'left': offset.left + "px",
- 'top': offset.top + "px",
- 'width': $element.width() + "px",
- 'min-width': $element.width() + "px",
- 'max-width': $element.width() + "px",
- 'height': $element.height() + "px",
- 'min-height': $element.height() + "px",
- 'max-height': $element.height() + "px"
+ 'left': offset.left + "px",
+ 'top': offset.top + "px",
+ 'width': $element.width() + "px",
+ 'min-width': $element.width() + "px",
+ 'max-width': $element.width() + "px",
+ 'height': $element.height() + "px",
+ 'min-height': $element.height() + "px",
+ 'max-height': $element.height() + "px"
});
-
- $f.find('.contented').on('dragover dragenter', function(e) {
+
+ $f.find('.contented').on('dragover dragenter', function (e) {
e.preventDefault();
e.stopPropagation();
$(this).addClass('is-dragging');
});
- $f.find('.contented').on('dragleave dragend', function(e) {
+ $f.find('.contented').on('dragleave dragend', function (e) {
e.preventDefault();
e.stopPropagation();
$(this).removeClass('is-dragging');
});
- $f.find('.contented').on('drag', function(e) {
+ $f.find('.contented').on('drag', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ handleUploadFrom(event.originalEvent.dataTransfer.files);
+ });
+
+ $("body").append($f);
+
+ var handleUploadFrom = function (files) {
+
input.files = event.originalEvent.dataTransfer.files;
refreshCaption();
setType("progress");
@@ -110,16 +118,15 @@ var contented = (function($, currentScriptPath) {
// Ajax uploader
// TODO
form.submit();
- });
- $("body").append($f);
+ }
});
});
-
+
}
//
@@ -130,15 +137,16 @@ var contented = (function($, currentScriptPath) {
})(
jQuery,
- (function() {
-
+ (function () {
+ "use strict";
+
// Determine current script path
// @ref https://stackoverflow.com/a/26023176
- var scripts = document.querySelectorAll( 'script[src]' );
- var currentScript = scripts[ scripts.length - 1 ].src;
- var currentScriptChunks = currentScript.split( '/' );
- var currentScriptFile = currentScriptChunks[ currentScriptChunks.length - 1 ];
-
- return currentScript.replace( currentScriptFile, '' );
+ var scripts = document.querySelectorAll('script[src]');
+ var currentScript = scripts[scripts.length - 1].src;
+ var currentScriptChunks = currentScript.split('/');
+ var currentScriptFile = currentScriptChunks[currentScriptChunks.length - 1];
+
+ return currentScript.replace(currentScriptFile, '');
})()
);