add multiple file download by check boxes (#5699)

Signed-off-by: si458 <simonsmith5521@gmail.com>

Simon Smith committed Jan 16, 2024 at 09:35 UTC 6e2321b5c65438a4ac079026d6cb411020c3e50f
1 file changed +29
views/default.handlebars
+29
@@ -524,6 +524,7 @@
524 <input type=button id=p5ViewFileButton disabled="disabled" value="Edit" onclick="p5viewfile()" />&nbsp;
525 <input type=button id=p5NewFolderButton disabled="disabled" value="New Folder" onclick="p5createfolder();" />&nbsp;
526 <input type=button id=p5UploadButton disabled="disabled" value="Upload" onclick="p5uploadFile()" />&nbsp;
527 + <input type=button id=p5DownloadButton disabled="disabled" value="Download" onclick="p5downloadButton()" />&nbsp;
528 <input type=button id=p5CutButton disabled="disabled" value="Cut" onclick="p5copyFile(1)" />&nbsp;
529 <input type=button id=p5CopyButton disabled="disabled" value="Copy" onclick="p5copyFile(0)" />&nbsp;
530 <input type=button id=p5PasteButton disabled="disabled" value="Paste" onclick="p5pasteFile()" />&nbsp;
@@ -862,6 +863,7 @@
863 <input type=button style="margin-right:2px" disabled="disabled" id=p13ViewFileButton value="Edit" onclick="p13viewfile()" />
864 <input type=button style="margin-right:2px" disabled="disabled" id=p13NewFolderButton value="New Folder" onclick="p13createfolder()" />
865 <input type=button style="margin-right:2px" disabled="disabled" id=p13UploadButton value="Upload" onclick="p13uploadFile()" />
866 + <input type=button style="margin-right:2px" disabled="disabled" id=p13DownloadButton value="Download" onclick="p13downloadButton()" />
867 <input type=button style="margin-right:2px" disabled="disabled" id=p13CutButton value="Cut" onclick="p13copyFile(1)" />
868 <input type=button style="margin-right:2px" disabled="disabled" id=p13CopyButton value="Copy" onclick="p13copyFile(0)" />
869 <input type=button style="margin-right:2px" disabled="disabled" id=p13PasteButton value="Paste" onclick="p13pasteFile()" />
@@ -11135,6 +11137,7 @@
11137 QE('p13ZipButton', false);
11138 QE('p13PasteButton', false);
11139 QE('p13GoToFolderButton', false);
11140 + QE('p13DownloadButton', false);
11141 } else {
11142 var cc = p13getFileSelCount(), tc = p13getFileCount(), sfc = p13getFileSelCount(false); // In order: number of entires selected, number of total entries, number of selected entires that are files (not folders)
11143 var winAgent = ((currentNode.agent.id > 0) && (currentNode.agent.id < 5)) || (currentNode.agent.id == 14)|| (currentNode.agent.id == 34);
@@ -11152,6 +11155,7 @@
11155 QE('p13ZipButton', advancedFeatures && (cc > 0) && ((p13filetreelocation.length > 0) || (winAgent == false)));
11156 QE('p13PasteButton', advancedFeatures && ((p13filetreelocation.length > 0) || (winAgent == false)) && ((p13clipboard != null) && (p13clipboard.length > 0)));
11157 QE('p13GoToFolderButton', true);
11158 + QE('p13DownloadButton', advancedFeatures && (cc > 0) && (cc == sfc) && ((p13filetreelocation.length > 0) || (winAgent == false)));
11159 }
11160 var filesState = ((files != null) && (files.state != 0));
11161 if (((filesState == true) && (files.contype != 2)) || (filesNode.agent == null) || (filesNode.agent.id == 3) || (filesNode.agent.id == 4)) {
@@ -11333,6 +11337,20 @@
11337 }
11338 }
11339
11340 + function p13downloadButton() {
11341 + var checkboxes = document.getElementsByName('fd');
11342 + for (var i = 0; i < checkboxes.length; i++) {
11343 + if (checkboxes[i].checked) {
11344 + var thefile = p13filetree.dir[checkboxes[i].value];
11345 + var link = 'devicefile.ashx?c=' + authCookie;
11346 + link += '&m=' + currentNode.meshid.split('/')[2];
11347 + link += '&n=' + currentNode._id.split('/')[2];
11348 + link += '&f=' + encodeURIComponentEx(p13filetreelocation.join('/') + '/' + thefile.n);
11349 + downloadFile(link,encodeURIComponentEx(thefile.n));
11350 + }
11351 + }
11352 + }
11353 +
11354 var d4EditWrapVal = 0;
11355 var d4EditSizeVal = 0;
11356 var d4EditEncodingVal = 0;
@@ -14439,6 +14457,7 @@
14457 QE('p5ViewFileButton', (cc == 1) && (sfc == 1) && (filetreelocation.length > 0));
14458 QE('p5NewFolderButton', filetreelocation.length > 0);
14459 QE('p5UploadButton', filetreelocation.length > 0);
14460 + QE('p5DownloadButton', (cc > 0) && (cc == sfc) && (filetreelocation.length > 0));
14461 QE('p5RenameFileButton', (cc == 1) && (filetreelocation.length > 0));
14462 QE('p5SelectAllButton', tc > 0);
14463 Q('p5SelectAllButton').value = (cc > 0 ? "Select None" : "Select All");
@@ -14608,6 +14627,16 @@
14627 }
14628 }
14629
14630 + function p5downloadButton() {
14631 + var checkboxes = document.getElementsByName('fc');
14632 + for (var i = 0; i < checkboxes.length; i++) {
14633 + if (checkboxes[i].checked) {
14634 + var link = 'downloadfile.ashx?link=' + encodeURIComponentEx(filetreelinkpath + '/' + checkboxes[i].value);
14635 + downloadFile(link);
14636 + }
14637 + }
14638 + }
14639 +
14640 /*
14641 function p5fileCatchAllInputChanged(e) {
14642 p5fileDragLeave(e);