diff --git a/core/src/main/groovy/com/muwire/core/trust/TrustSubscriber.groovy b/core/src/main/groovy/com/muwire/core/trust/TrustSubscriber.groovy index 038f1a9f..218404fc 100644 --- a/core/src/main/groovy/com/muwire/core/trust/TrustSubscriber.groovy +++ b/core/src/main/groovy/com/muwire/core/trust/TrustSubscriber.groovy @@ -62,6 +62,10 @@ class TrustSubscriber { } } } + + public boolean isSubscribed(Persona p) { + remoteTrustLists.containsKey(p.destination) + } private void checkLoop() { try { diff --git a/webui/src/main/java/com/muwire/webui/TrustServlet.java b/webui/src/main/java/com/muwire/webui/TrustServlet.java index 2cfc4e8f..ba43472e 100644 --- a/webui/src/main/java/com/muwire/webui/TrustServlet.java +++ b/webui/src/main/java/com/muwire/webui/TrustServlet.java @@ -16,6 +16,7 @@ import com.muwire.core.trust.TrustEvent; import com.muwire.core.trust.TrustLevel; import com.muwire.core.trust.TrustService; import com.muwire.core.trust.TrustService.TrustEntry; +import com.muwire.core.trust.TrustSubscriber; import com.muwire.core.trust.TrustSubscriptionEvent; import net.i2p.data.Base64; @@ -44,13 +45,13 @@ public class TrustServlet extends HttpServlet { sb.append(""); for (TrustEntry te : core.getTrustService().getGood().values()) { - TEtoXML(te,sb); + TEtoXML(te,sb, core.getTrustSubscriber()); } sb.append(""); sb.append(""); for (TrustEntry te : core.getTrustService().getBad().values()) { - TEtoXML(te, sb); + TEtoXML(te, sb, core.getTrustSubscriber()); } sb.append(""); @@ -168,11 +169,12 @@ public class TrustServlet extends HttpServlet { trustManager = (TrustManager) config.getServletContext().getAttribute("trustManager"); } - private static void TEtoXML(TrustEntry te, StringBuilder sb) { + private static void TEtoXML(TrustEntry te, StringBuilder sb, TrustSubscriber trustSubscriber) { sb.append(""); sb.append("").append(Util.escapeHTMLinXML(te.getPersona().getHumanReadableName())).append(""); sb.append("").append(te.getPersona().toBase64()).append(""); sb.append("").append(Util.escapeHTMLinXML(te.getReason())).append(""); + sb.append("").append(trustSubscriber.isSubscribed(te.getPersona())).append(""); sb.append(""); } diff --git a/webui/src/main/js/trustUsers.js b/webui/src/main/js/trustUsers.js index ceb592e7..63068d85 100644 --- a/webui/src/main/js/trustUsers.js +++ b/webui/src/main/js/trustUsers.js @@ -2,7 +2,11 @@ class Persona { constructor(xmlNode) { this.user = xmlNode.getElementsByTagName("User")[0].childNodes[0].nodeValue this.userB64 = xmlNode.getElementsByTagName("UserB64")[0].childNodes[0].nodeValue - this.reason = xmlNode.getElementsByTagName("Reason")[0].childNodes[0].nodeValue + this.subscribed = xmlNode.getElementsByTagName("Subscribed")[0].childNodes[0].nodeValue + this.reason = "" + try { + this.reason = xmlNode.getElementsByTagName("Reason")[0].childNodes[0].nodeValue + } catch (ignore) {} } getTrustedLink() { @@ -16,12 +20,28 @@ class Persona { getDistrustedLink() { return "Mark Distrusted" } + + getSubscribeLink() { + return "Subscribe" + } } var trusted = new Map() var distrusted = new Map() var revision = -1 +function subscribe(host) { + var xmlhttp = new XMLHttpRequest() + xmlhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + refreshUsers() + } + } + xmlhttp.open("POST","/MuWire/Trust", true) + xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xmlhttp.send("action=subscribe&persona=" + host) +} + function markTrusted(host) { var linkSpan = document.getElementById("trusted-link-"+host) linkSpan.innerHTML = "" @@ -99,7 +119,7 @@ function cancelDistrust(host) { function updateTable(map, divId) { var divElement = document.getElementById(divId) - var tableHtml = "" + var tableHtml = "
UserReasonActions
" var isTrusted = (map == trusted) for (var [ignored, user] of map) { @@ -117,6 +137,13 @@ function updateTable(map, divId) { } tableHtml += "" + if (user.subscribed == "true") { + tableHtml += "" + } else if (isTrusted) { + tableHtml += "" + } + + tableHtml += "" } tableHtml += "
UserReasonActionsSubscribe
Subscribed" + user.getSubscribeLink() + "
"