forked from I2P_Developers/i2p.i2p
Console: Tab /peers, fix html errors
This commit is contained in:
@ -29,6 +29,22 @@ import net.i2p.util.SystemVersion;
|
|||||||
public class PeerHelper extends HelperBase {
|
public class PeerHelper extends HelperBase {
|
||||||
private int _sortFlags;
|
private int _sortFlags;
|
||||||
private String _urlBase;
|
private String _urlBase;
|
||||||
|
private String _transport;
|
||||||
|
private boolean _graphical;
|
||||||
|
|
||||||
|
private static final String titles[] = {
|
||||||
|
_x("Addresses"),
|
||||||
|
"NTCP",
|
||||||
|
"SSU",
|
||||||
|
_x("UPnP Status")
|
||||||
|
};
|
||||||
|
|
||||||
|
private static final String links[] = {
|
||||||
|
"",
|
||||||
|
"?tx=ntcp",
|
||||||
|
"?tx=ssu",
|
||||||
|
"?tx=upnp"
|
||||||
|
};
|
||||||
|
|
||||||
// Opera doesn't have the char, TODO check UA
|
// Opera doesn't have the char, TODO check UA
|
||||||
//private static final String THINSP = " / ";
|
//private static final String THINSP = " / ";
|
||||||
@ -47,8 +63,20 @@ public class PeerHelper extends HelperBase {
|
|||||||
_sortFlags = 0;
|
_sortFlags = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUrlBase(String base) { _urlBase = base; }
|
public void setUrlBase(String base) { _urlBase = base; }
|
||||||
|
|
||||||
|
/** @since 0.9.38 */
|
||||||
|
public void setTransport(String t) { _transport = t; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* call for non-text-mode browsers
|
||||||
|
* @since 0.9.38
|
||||||
|
*/
|
||||||
|
public void allowGraphical() {
|
||||||
|
_graphical = true;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPeerSummary() {
|
public String getPeerSummary() {
|
||||||
try {
|
try {
|
||||||
renderStatusHTML(_out, _urlBase, _sortFlags);
|
renderStatusHTML(_out, _urlBase, _sortFlags);
|
||||||
@ -67,54 +95,111 @@ public class PeerHelper extends HelperBase {
|
|||||||
* @since 0.9.31 moved from TransportManager
|
* @since 0.9.31 moved from TransportManager
|
||||||
*/
|
*/
|
||||||
private void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException {
|
private void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException {
|
||||||
if (isAdvanced()) {
|
if (_context.commSystem().isDummy()) {
|
||||||
|
out.write("<p>No peers, no transports, no UPnP: i2p.vmCommSystem=true</p>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
renderNavBar(out);
|
||||||
|
if (isAdvanced() && _transport == null) {
|
||||||
out.write("<p id=\"upnpstatus\"><b>");
|
out.write("<p id=\"upnpstatus\"><b>");
|
||||||
out.write(_t("Status"));
|
out.write(_t("Status"));
|
||||||
out.write(": ");
|
out.write(": ");
|
||||||
out.write(_t(_context.commSystem().getStatus().toStatusString()));
|
out.write(_t(_context.commSystem().getStatus().toStatusString()));
|
||||||
out.write("</b></p>");
|
out.write("</b></p>");
|
||||||
}
|
}
|
||||||
|
|
||||||
SortedMap<String, Transport> transports = _context.commSystem().getTransports();
|
SortedMap<String, Transport> transports = _context.commSystem().getTransports();
|
||||||
for (Map.Entry<String, Transport> e : transports.entrySet()) {
|
if (_transport != null && !_transport.equals("upnp")) {
|
||||||
String style = e.getKey();
|
for (Map.Entry<String, Transport> e : transports.entrySet()) {
|
||||||
Transport t = e.getValue();
|
String style = e.getKey();
|
||||||
if (style.equals("NTCP")) {
|
Transport t = e.getValue();
|
||||||
NTCPTransport nt = (NTCPTransport) t;
|
if (style.equals("NTCP") && "ntcp".equals(_transport)) {
|
||||||
render(nt, out, urlBase, sortFlags);
|
NTCPTransport nt = (NTCPTransport) t;
|
||||||
} else if (style.equals("SSU")) {
|
render(nt, out, urlBase, sortFlags);
|
||||||
UDPTransport ut = (UDPTransport) t;
|
} else if (style.equals("SSU") && "ssu".equals(_transport)) {
|
||||||
render(ut, out, urlBase, sortFlags);
|
UDPTransport ut = (UDPTransport) t;
|
||||||
} else {
|
render(ut, out, urlBase, sortFlags);
|
||||||
// pluggable (none yet)
|
} else {
|
||||||
t.renderStatusHTML(out, urlBase, sortFlags);
|
// pluggable (none yet)
|
||||||
|
t.renderStatusHTML(out, urlBase, sortFlags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if (!transports.isEmpty()) {
|
||||||
|
out.write(getTransportsLegend());
|
||||||
if (!transports.isEmpty()) {
|
}
|
||||||
out.write(getTransportsLegend());
|
} else if (_transport == null) {
|
||||||
}
|
StringBuilder buf = new StringBuilder(4*1024);
|
||||||
|
buf.append("<h3 id=\"transports\">").append(_t("Router Transport Addresses")).append("</h3><pre id=\"transports\">\n");
|
||||||
StringBuilder buf = new StringBuilder(4*1024);
|
if (!transports.isEmpty()) {
|
||||||
buf.append("<h3 id=\"transports\">").append(_t("Router Transport Addresses")).append("</h3><pre id=\"transports\">\n");
|
for (Transport t : transports.values()) {
|
||||||
for (Transport t : transports.values()) {
|
if (t.hasCurrentAddress()) {
|
||||||
if (t.hasCurrentAddress()) {
|
for (RouterAddress ra : t.getCurrentAddresses()) {
|
||||||
for (RouterAddress ra : t.getCurrentAddresses()) {
|
buf.append(ra.toString());
|
||||||
buf.append(ra.toString());
|
buf.append("\n\n");
|
||||||
buf.append("\n\n");
|
}
|
||||||
|
} else {
|
||||||
|
buf.append(_t("{0} is used for outbound connections only", t.getStyle()));
|
||||||
|
buf.append("\n\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
buf.append(_t("{0} is used for outbound connections only", t.getStyle()));
|
buf.append(_t("none"));
|
||||||
buf.append("\n\n");
|
|
||||||
}
|
}
|
||||||
|
buf.append("</pre>\n");
|
||||||
|
out.write(buf.toString());
|
||||||
|
} else if ("upnp".equals(_transport)) {
|
||||||
|
// UPnP Status
|
||||||
|
_context.commSystem().renderStatusHTML(_out, _urlBase, _sortFlags);
|
||||||
}
|
}
|
||||||
buf.append("</pre>\n");
|
|
||||||
out.write(buf.toString());
|
|
||||||
// UPnP Status
|
|
||||||
_context.commSystem().renderStatusHTML(_out, _urlBase, _sortFlags);
|
|
||||||
out.write("</p>\n");
|
|
||||||
out.flush();
|
out.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 0.9.38
|
||||||
|
*/
|
||||||
|
private int getTab() {
|
||||||
|
if ("ntcp".equals(_transport))
|
||||||
|
return 1;
|
||||||
|
if ("ssu".equals(_transport))
|
||||||
|
return 2;
|
||||||
|
if ("upnp".equals(_transport))
|
||||||
|
return 3;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 0.9.38
|
||||||
|
*/
|
||||||
|
private void renderNavBar(Writer out) throws IOException {
|
||||||
|
StringBuilder buf = new StringBuilder(1024);
|
||||||
|
buf.append("<div class=\"confignav\" id=\"confignav\">");
|
||||||
|
boolean span = _graphical;
|
||||||
|
if (!span)
|
||||||
|
buf.append("<center>");
|
||||||
|
int tab = getTab();
|
||||||
|
for (int i = 0; i < titles.length; i++) {
|
||||||
|
if (i == tab) {
|
||||||
|
// we are there
|
||||||
|
if (span)
|
||||||
|
buf.append("<span class=\"tab2\">");
|
||||||
|
buf.append(_t(titles[i]));
|
||||||
|
} else {
|
||||||
|
// we are not there, make a link
|
||||||
|
if (span)
|
||||||
|
buf.append("<span class=\"tab\">");
|
||||||
|
buf.append("<a href=\"peers").append(links[i]).append("\">").append(_t(titles[i])).append("</a>");
|
||||||
|
}
|
||||||
|
if (span)
|
||||||
|
buf.append("</span>\n");
|
||||||
|
else if (i != titles.length - 1)
|
||||||
|
buf.append(" \n");
|
||||||
|
}
|
||||||
|
if (!span)
|
||||||
|
buf.append("</center>");
|
||||||
|
buf.append("</div>");
|
||||||
|
out.write(buf.toString());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 0.9.31 moved from TransportManager
|
* @since 0.9.31 moved from TransportManager
|
||||||
*/
|
*/
|
||||||
|
@ -14,8 +14,13 @@
|
|||||||
<div class="main" id="peers">
|
<div class="main" id="peers">
|
||||||
<jsp:useBean class="net.i2p.router.web.helpers.PeerHelper" id="peerHelper" scope="request" />
|
<jsp:useBean class="net.i2p.router.web.helpers.PeerHelper" id="peerHelper" scope="request" />
|
||||||
<jsp:setProperty name="peerHelper" property="contextId" value="<%=i2pcontextId%>" />
|
<jsp:setProperty name="peerHelper" property="contextId" value="<%=i2pcontextId%>" />
|
||||||
<% peerHelper.storeWriter(out); %>
|
<%
|
||||||
|
peerHelper.storeWriter(out);
|
||||||
|
if (allowIFrame)
|
||||||
|
peerHelper.allowGraphical();
|
||||||
|
%>
|
||||||
<jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
|
<jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
|
||||||
<jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter(\"sort\") != null ? request.getParameter(\"sort\") : \"\"%>" />
|
<jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter(\"sort\") != null ? request.getParameter(\"sort\") : \"\"%>" />
|
||||||
|
<jsp:setProperty name="peerHelper" property="transport" value="<%=request.getParameter(\"tx\")%>" />
|
||||||
<jsp:getProperty name="peerHelper" property="peerSummary" />
|
<jsp:getProperty name="peerHelper" property="peerSummary" />
|
||||||
</div></div></body></html>
|
</div></body></html>
|
||||||
|
Reference in New Issue
Block a user