diff --git a/webui/src/main/java/com/muwire/webui/FilesServlet.java b/webui/src/main/java/com/muwire/webui/FilesServlet.java
index 763ad250..de712f60 100644
--- a/webui/src/main/java/com/muwire/webui/FilesServlet.java
+++ b/webui/src/main/java/com/muwire/webui/FilesServlet.java
@@ -123,7 +123,11 @@ public class FilesServlet extends HttpServlet {
@Override
public void onDirectory(File f) {
String name = f.getName().isEmpty() ? f.toString() : f.getName();
- sb.append("").append(Util.escapeHTMLinXML(name)).append("");
+ boolean shared = core.getMuOptions().getWatchedDirectories().contains(f.getAbsolutePath());
+ sb.append("");
+ sb.append("").append(Util.escapeHTMLinXML(name)).append("");
+ sb.append("").append(shared).append("");
+ sb.append("");
}
}
diff --git a/webui/src/main/js/files.js b/webui/src/main/js/files.js
index 94cfb623..3c413738 100644
--- a/webui/src/main/js/files.js
+++ b/webui/src/main/js/files.js
@@ -1,6 +1,6 @@
class Node {
- constructor(nodeId, parent, leaf, infoHash, path, size, comment, certified, revision) {
+ constructor(nodeId, parent, leaf, infoHash, path, size, comment, certified, shared, revision) {
this.nodeId = nodeId
this.parent = parent
this.leaf = leaf
@@ -11,18 +11,19 @@ class Node {
this.comment = comment
this.certified = certified
this.revision = revision
+ this.shared = shared
}
updateDiv() {
var div = document.getElementById(this.nodeId)
var unshareLink = "" + _t("Unshare") + ""
- if (this == root)
+ if (!this.shared)
unshareLink = ""
var commentLink = "";
- if (this == root)
+ if (!this.shared)
commentLink = ""
var certifyLink = "" + _t("Certify") + ""
- if (this == root)
+ if (!this.shared)
certifyLink = ""
if (this.leaf) {
var certified = ""
@@ -98,7 +99,7 @@ function refreshStatus() {
}
var treeRevision = -1
-var root = new Node("root",null,false, null, _t("Shared Files"), -1, null, false, -1)
+var root = new Node("root",null,false, null, _t("Shared Files"), -1, null, false, false, -1)
var nodesById = new Map()
function initFiles() {
@@ -145,16 +146,19 @@ function expand(nodeId) {
var certified = fileElements[i].getElementsByTagName("Certified")[0].childNodes[0].nodeValue
var nodeId = node.nodeId + "_"+ Base64.encode(fileName)
- var newFileNode = new Node(nodeId, node, true, infoHash, fileName, size, comment, certified, revision)
+ var newFileNode = new Node(nodeId, node, true, infoHash, fileName, size, comment, certified, true, revision)
nodesById.set(nodeId, newFileNode)
node.children.push(newFileNode)
}
var dirElements = xmlDoc.getElementsByTagName("Directory")
for (i = 0; i < dirElements.length; i++) {
- var dirName = dirElements[i].childNodes[0].nodeValue
+ var dirElement = dirElements[i]
+
+ var dirName = dirElement.getElementsByTagName("Name")[0].childNodes[0].nodeValue
+ var shared = parseBoolean(dirElement.getElementsByTagName("Shared")[0].childNodes[0].nodeValue)
var nodeId = node.nodeId + "_"+ Base64.encode(dirName)
- var newDirNode = new Node(nodeId, node, false, null, dirName, -1, null, false, revision)
+ var newDirNode = new Node(nodeId, node, false, null, dirName, -1, null, false, shared, revision)
nodesById.set(nodeId, newDirNode)
node.children.push(newDirNode)
}
@@ -169,6 +173,7 @@ function expand(nodeId) {
xmlhttp.send()
}
+
function collapse(nodeId) {
var node = nodesById.get(nodeId)
node.children = []
diff --git a/webui/src/main/js/util.js b/webui/src/main/js/util.js
index 0790dd78..90fe0870 100644
--- a/webui/src/main/js/util.js
+++ b/webui/src/main/js/util.js
@@ -1,3 +1,7 @@
+function parseBoolean(s) {
+ return s == "true"
+}
+
/**
*
* Base64 encode / decode