From ba0c85fe070e7ab8d3789a8b91729c54f1a84a3c Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Mon, 16 Dec 2019 13:01:56 +0000 Subject: [PATCH] do not show unshare/comment/certify links for directories that are not shared --- .../java/com/muwire/webui/FilesServlet.java | 6 +++++- webui/src/main/js/files.js | 21 ++++++++++++------- webui/src/main/js/util.js | 4 ++++ 3 files changed, 22 insertions(+), 9 deletions(-) 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 = "" + _t("Comment") + ""; - 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