aboutsummaryrefslogtreecommitdiff
path: root/assets/cargohold.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/cargohold.js')
-rw-r--r--assets/cargohold.js29
1 files changed, 27 insertions, 2 deletions
diff --git a/assets/cargohold.js b/assets/cargohold.js
index 2ba8cc0..18dbeae 100644
--- a/assets/cargohold.js
+++ b/assets/cargohold.js
@@ -45,6 +45,10 @@ function queue_work(){
};
req.onreadystatechange = function(evt){
console.log("Upload for " + item.file.name + " state " + req.readyState);
+ if(req.readyState === XMLHttpRequest.DONE && req.status != 200){
+ console.log("Upload for " + item.file.name + " failed with " + req.status);
+ item.node.className += " errored";
+ }
};
req.open("POST", 'upload');
req.send(data);
@@ -100,9 +104,28 @@ function listing_clear(){
element("dirlisting").innerHTML = "";
}
-function listing_add(file){
+function interface_update(access){
+ if(!access.includes("c")){
+ element("tab-upload-label").style.display = "none";
+ }
+
+ if(!access.includes("r")){
+ element("tab-view-label").style.display = "none";
+ element("tab-upload").checked = "checked";
+ }
+}
+
+function listing_add(file, style = "default"){
let link = node("a", "listing-entry", file.name);
link.href = "file/" + encodeURIComponent(file.name);
+
+ if(style == "gallery"){
+ let image = node("img", "preview");
+ image.src = "preview/" + encodeURIComponent(file.name);
+ //link.insertBefore(image, link.firstChild);
+ link.appendChild(image);
+ }
+
element("dirlisting").appendChild(link);
}
@@ -111,8 +134,10 @@ function listing_update(){
let req = new XMLHttpRequest();
req.onload = function(evt){
let data = JSON.parse(req.response);
+ interface_update(data.access);
+
for(let i = 0; i < data.files.length; i++){
- listing_add(data.files[i]);
+ listing_add(data.files[i], data.display);
}
};
req.open("GET", "listing");