feature(client) add ability to upload files on drag'n'drop

This commit is contained in:
coderaiser 2013-09-09 14:18:00 +00:00
parent 4ba4b6e18f
commit 814846fd43

View file

@ -255,6 +255,38 @@ var Util, DOM, CloudFunc, CloudCmd;
}
function baseInit(pCallBack) {
var panels = DOM.getByClass('panel'),
i = 0,
n = panels.length,
preventDefault = function (event) {
event.stopPropagation();
event.preventDefault();
},
toggle = function () {
for (i = 0; i < n; i++)
DOM.toggleClass(panels[i], 'selected-panel');
},
onDrop = function (event) {
var reader, file;
preventDefault(event);
toggle();
file = event.dataTransfer.files[0];
if (file) {
reader = new FileReader();
reader.onload = function(event){
var dir = DOM.getCurrentDirPath(),
path = dir + file.name,
data = event.target.result;
DOM.RESTfull.save(path, data, CloudCmd.refresh);
};
reader.readAsText(file);
}
};
if (window.applicationCache)
Events.add('updateready', function() {
var ret = confirm('An update is available. Reload now?');
@ -264,14 +296,13 @@ var Util, DOM, CloudFunc, CloudCmd;
}, applicationCache);
Events.add(['dragenter', 'dragleave'], function () {
var panels = DOM.getByClass('panel'),
i = 0,
n = panels.length;
for (i = 0; i < n; i++)
DOM.toggleClass(panels[i], 'selected-panel');
});
Events.add(['dragenter', 'dragleave'], toggle);
for (i = 0; i < n; i++) {
Events.add('dragover', preventDefault, panels[i]);
Events.add('drop', onDrop, panels[i]);
}
/* загружаем общие функции для клиента и сервера */
DOM.jsload(CloudCmd.LIBDIR + 'cloudfunc.js', function() {