diff --git a/client.js b/client.js
index f417765e..9fd57bf4 100644
--- a/client.js
+++ b/client.js
@@ -1126,6 +1126,7 @@ CloudClient._changeLinks = function(pPanelID){
var lNoJS_s = CloudFunc.NOJS;
var lFS_s = CloudFunc.FS;
+ /* right mouse click function varible */
var lOnContextMenu_f = function(pEvent){
var lReturn_b = true;
@@ -1151,6 +1152,29 @@ CloudClient._changeLinks = function(pPanelID){
return lReturn_b;
};
+
+ /* drag and drop function varible
+ * download file from browser to descktop
+ * in Chrome (HTML5)
+ */
+ var lOnDragStart_f = function(pEvent){
+ var lElement = pEvent.target;
+
+ var lLink = lElement.href;
+ var lName = lElement.textContent;
+
+ /* if it's directory - adding json extension */
+ var lType = lElement.parentElement.nextSibling;
+ if(lType && lType.textContent === '
'){
+ lLink = lLink.replace(lNoJS_s,'');
+ lName += '.json';
+ }
+
+ pEvent.dataTransfer.setData("DownloadURL",
+ 'application/octet-stream' + ':' +
+ lName + ':' +
+ lLink);
+ };
for(var i=0; i < a.length ; i++)
{
@@ -1161,7 +1185,7 @@ CloudClient._changeLinks = function(pPanelID){
* об отсутствии js */
if(link.indexOf(lNoJS_s) === lFS_s.length){
link = link.replace(lNoJS_s,'');
- }
+ }
/* ставим загрузку гифа на клик*/
if(i === lREFRESHICON){
a[i].onclick = CloudClient._loadDir(link,true);
@@ -1180,11 +1204,13 @@ CloudClient._changeLinks = function(pPanelID){
/* if we in path changing onclick events */
if (lLi.className === 'path') {
- a[i].onclick = CloudClient._loadDir(link);
+ a[i].onclick = CloudClient._loadDir(link);
}
else {
lLi.onclick = CloudClient._setCurrent();
+ a[i].ondragstart = lOnDragStart_f;
+
/* if right button clicked menu will
* loads and shows
*/
diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js
index 92a37c3c..f6fda483 100644
--- a/lib/cloudfunc.js
+++ b/lib/cloudfunc.js
@@ -398,7 +398,7 @@ CloudFunc.buildFromJSON = function(pJSON, pKeyBinded)
'' +
'' + ".." +
+ '" draggable=true>' + ".." +
'' +
'<dir>'+
'.' +
@@ -432,7 +432,7 @@ CloudFunc.buildFromJSON = function(pJSON, pKeyBinded)
(files[i].name.length > CloudFunc.SHORTNAMELENGTH ?
' title="' + files[i].name + '">' +
CloudFunc.getShortedName(files[i].name)
- : '>' + files[i].name) +
+ : 'draggable=true>' + files[i].name) +
"" +
'';
/* если папка - не выводим размер */