From 2ad586a112d1b3ffc069cc53368216e573bbb649 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Wed, 15 Sep 2021 10:53:13 +0200 Subject: [PATCH] Fixed issue in link nodes paths --- .../ui/service/MainNodesHtmlGenerator.java | 3 ++- .../inaf/ia2/vospace/ui/service/NodeInfo.java | 17 ++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/MainNodesHtmlGenerator.java b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/MainNodesHtmlGenerator.java index 26446f6..4a6ffd2 100644 --- a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/MainNodesHtmlGenerator.java +++ b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/MainNodesHtmlGenerator.java @@ -159,7 +159,8 @@ public class MainNodesHtmlGenerator extends NodesHtmlGenerator { Element link = cell.appendElement("a"); String href; if (nodeInfo.isFolder()) { - href = "#/nodes" + urlEncodePath(nodeInfo.getPath()); + String path = nodeInfo.isLink() ? nodeInfo.getTarget() : nodeInfo.getPath(); + href = "#/nodes" + urlEncodePath(path); } else { href = "download" + urlEncodePath(nodeInfo.getPath()); link.attr("target", "blank_"); diff --git a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java index 21a802e..e7137be 100644 --- a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java +++ b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java @@ -14,7 +14,6 @@ import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Optional; import java.util.stream.Collectors; -import net.ivoa.xml.vospace.v2.ContainerNode; import net.ivoa.xml.vospace.v2.DataNode; import net.ivoa.xml.vospace.v2.LinkNode; import net.ivoa.xml.vospace.v2.Node; @@ -28,7 +27,7 @@ public class NodeInfo { private final String authority; - private String path; + private final String path; private final String name; private final String size; private String type; @@ -41,7 +40,7 @@ public class NodeInfo { private final boolean busy; private final boolean writable; private final boolean deletable; - private final boolean link; + private String target; public NodeInfo(Node node, User user, String authority, Node linkedNode) { this.authority = authority; @@ -58,13 +57,9 @@ public class NodeInfo { this.busy = isBusy(node); this.writable = NodeUtils.checkIfWritable(node, user.getName(), user.getGroups()) && !busy; this.deletable = writable && !sticky && !asyncTrans; - this.link = linkedNode != null; if (linkedNode != null) { String prefix = "vos://" + authority; - String target = ((LinkNode) node).getTarget(); - if (linkedNode instanceof ContainerNode) { - this.path = decodePath(target, prefix); - } + this.target = decodePath(((LinkNode) node).getTarget(), prefix); this.type = linkedNode.getType(); } } @@ -209,7 +204,11 @@ public class NodeInfo { return deletable; } + public String getTarget() { + return target; + } + public boolean isLink() { - return link; + return target != null; } } -- GitLab