summaryrefslogtreecommitdiffhomepage
path: root/html/webbox.js
diff options
context:
space:
mode:
Diffstat (limited to 'html/webbox.js')
-rw-r--r--html/webbox.js100
1 files changed, 97 insertions, 3 deletions
diff --git a/html/webbox.js b/html/webbox.js
index faa2bb2..58b04fb 100644
--- a/html/webbox.js
+++ b/html/webbox.js
@@ -341,6 +341,7 @@ function createDir() {
}
document.getElementById("dialog").innerHTML = document.getElementById("create-dir-dialog").innerHTML;
+ document.getElementById("newdir").focus();
}
function upload() {
@@ -373,12 +374,105 @@ function onUploadFile() {
xhr.send(formData);
}
-function deleteItem() {
- alert("TBD");
+function deleteItems() {
+ showDialog();
+
+ var files = getSelectedFiles();
+ if (files.length == 0) {
+ document.getElementById("dialog").innerHTML = "No files selected.";
+ document.getElementById("okbutton").onclick = hideDialog;
+ return;
+ }
+
+ var message = "Are sure to delete the following files and directories?<br/><br/>";
+
+ for (var i = 0; i < files.length; i++) {
+ message += files[i] + "<br/>";
+ }
+
+ document.getElementById("dialog").innerHTML = message;
+
+ document.getElementById("okbutton").onclick = function() {
+
+ var xhr = new XMLHttpRequest();
+
+ xhr.onreadystatechange = function() {
+ if (this.readyState != 4 || this.status != 200) {
+ return;
+ }
+
+ document.getElementById("dialog").innerHTML = xhr.responseText;
+ document.getElementById("okbutton").onclick = hideDialog;
+ loadContents(currentDir); // load new file list with deleted items
+ }
+
+ var parser = new DOMParser();
+ var xmlDocument = parser.parseFromString("<files></files>", "text/xml");
+ var filesElement = xmlDocument.getElementsByTagName("files")[0];
+
+ for (var i = 0; i < files.length; i++) {
+ var fileElement = xmlDocument.createElement("file");
+ fileElement.appendChild(document.createTextNode(files[i]));
+ filesElement.appendChild(fileElement);
+ }
+
+ xhr.open("POST", "/bin/query" + currentDir + "?command=delete", true);
+ xhr.setRequestHeader("Content-type", "text/xml");
+ xhr.send(xmlDocument);
+ }
}
function move() {
- alert("TBD");
+ showDialog();
+
+ var files = getSelectedFiles();
+ if (files.length == 0) {
+ document.getElementById("dialog").innerHTML = "No files selected.";
+ document.getElementById("okbutton").onclick = hideDialog;
+ return;
+ }
+
+ var message = "";
+ for (var i = 0; i < files.length; i++) {
+ message += files[i] + "<br/>";
+ }
+
+ document.getElementById("dialog").innerHTML = document.getElementById("move-dialog").innerHTML;
+ document.getElementById("movedir").focus();
+ document.getElementById("movefiles").innerHTML = message;
+
+ document.getElementById("okbutton").onclick = function() {
+
+ var xhr = new XMLHttpRequest();
+
+ xhr.onreadystatechange = function() {
+ if (this.readyState != 4 || this.status != 200) {
+ return;
+ }
+
+ document.getElementById("dialog").innerHTML = xhr.responseText;
+ document.getElementById("okbutton").onclick = hideDialog;
+ loadContents(currentDir); // load new file list with deleted items
+ }
+
+ var parser = new DOMParser();
+ var xmlDocument = parser.parseFromString("<request></request>", "text/xml");
+ var filesElement = xmlDocument.getElementsByTagName("request")[0];
+
+ var targetElement = xmlDocument.createElement("target");
+ targetElement.appendChild(document.createTextNode(document.getElementById("movedir").value));
+ filesElement.appendChild(targetElement);
+
+ for (var i = 0; i < files.length; i++) {
+ var fileElement = xmlDocument.createElement("file");
+ fileElement.appendChild(document.createTextNode(files[i]));
+ filesElement.appendChild(fileElement);
+ }
+
+ xhr.open("POST", "/bin/query" + currentDir + "?command=move", true);
+ xhr.setRequestHeader("Content-type", "text/xml");
+ xhr.send(xmlDocument);
+ }
}
// File info: date, size, type