diff --git a/lib/client.js b/lib/client.js index b3dfc880..6eb74559 100644 --- a/lib/client.js +++ b/lib/client.js @@ -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() {