2005-11-26 jrandom
* Update the sorting in Syndie to consider children 'newer' than parents, even if they have the same message ID (duh) * Cleaned up some nav links in Syndie (good idea gloin, spaetz!) * Added a bunch of tooltips to Syndie's fields (thanks polecat!) * Force support for nonvalidating XML in Jetty (so we can handle GCJ/etc better)
This commit is contained in:
@ -61,7 +61,9 @@ class ThreadNodeImpl implements ThreadNode {
|
||||
for (int i = 0; i < _children.size(); i++) {
|
||||
ThreadNodeImpl node = (ThreadNodeImpl)_children.get(i);
|
||||
node.summarizeThread();
|
||||
if (node.getMostRecentPostDate() > _mostRecentPostDate) {
|
||||
// >= so we can give reasonable order when a child is a reply to a parent
|
||||
// (since the child must have been posted after the parent)
|
||||
if (node.getMostRecentPostDate() >= _mostRecentPostDate) {
|
||||
_mostRecentPostDate = node.getMostRecentPostDate();
|
||||
_mostRecentPostAuthor = node.getMostRecentPostAuthor();
|
||||
}
|
||||
|
@ -295,9 +295,9 @@ public class ThreadedHTMLRenderer extends HTMLRenderer {
|
||||
out.write("<tr class=\"postReplyOptions\">\n");
|
||||
out.write(" <td colspan=\"3\">\n");
|
||||
out.write(" <input type=\"submit\" value=\"Preview...\" name=\"Post\" />\n");
|
||||
out.write(" Tags: <input type=\"text\" size=\"10\" name=\"" + PostServlet.PARAM_TAGS + "\" />\n");
|
||||
out.write(" in a new thread? <input type=\"checkbox\" name=\"" + PostServlet.PARAM_IN_NEW_THREAD + "\" value=\"true\" />\n");
|
||||
out.write(" refuse replies? <input type=\"checkbox\" name=\"" + PostServlet.PARAM_REFUSE_REPLIES + "\" value=\"true\" />\n");
|
||||
out.write(" Tags: <input type=\"text\" size=\"10\" name=\"" + PostServlet.PARAM_TAGS + "\" title=\"Optional tags to categorize your response\" />\n");
|
||||
out.write(" in a new thread? <input type=\"checkbox\" name=\"" + PostServlet.PARAM_IN_NEW_THREAD + "\" value=\"true\" title=\"If true, this will fork a new top level thread\" />\n");
|
||||
out.write(" refuse replies? <input type=\"checkbox\" name=\"" + PostServlet.PARAM_REFUSE_REPLIES + "\" value=\"true\" title=\"If true, only you will be able to reply to the post\" />\n");
|
||||
out.write(" attachment: <input type=\"file\" name=\"entryfile0\" />\n");
|
||||
out.write(" </td>\n</tr>\n</form>\n");
|
||||
out.write("<!-- body reply end -->\n");
|
||||
|
@ -103,18 +103,25 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_SYNDIE + "\" />");
|
||||
writeAuthActionFields(out);
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName() + "\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the author\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation()
|
||||
+ "\" title=\"Blog hash for the author\" /> ");
|
||||
if (pn.isMember(FilteredThreadIndex.GROUP_FAVORITE))
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE + "\" checked=\"true\" value=\"true\" /> ");
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, their posts are highlighted\" /> ");
|
||||
else
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE + "\" value=\"true\" /> ");
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE
|
||||
+ "\" value=\"true\" title=\"If true, their posts are highlighted\" /> ");
|
||||
|
||||
if (pn.isMember(FilteredThreadIndex.GROUP_IGNORE)) {
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE + "\" checked=\"true\" value=\"true\" /> ");
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, their threads are hidden\" /> ");
|
||||
} else {
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE + "\" value=\"true\" /> ");
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE
|
||||
+ "\" value=\"true\" title=\"If true, their threads are hidden\" /> ");
|
||||
out.write("<a href=\"" + getControlTarget() + "?" + ThreadedHTMLRenderer.PARAM_AUTHOR + '='
|
||||
+ pn.getLocation() + "\" title=\"View threads by the given author\">View posts</a> ");
|
||||
}
|
||||
@ -130,18 +137,25 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_BLOG + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_SYNDIE + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName() + "\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the author\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation()
|
||||
+ "\" title=\"Blog hash for the author\" /> ");
|
||||
if (newName.isMember(FilteredThreadIndex.GROUP_FAVORITE))
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE + "\" checked=\"true\" value=\"true\" /> ");
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, their posts are highlighted\" /> ");
|
||||
else
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE + "\" value=\"true\" /> ");
|
||||
out.write("Favorite? <input type=\"checkbox\" name=\"" + PARAM_FAVORITE
|
||||
+ "\" value=\"true\" title=\"If true, their posts are highlighted\" /> ");
|
||||
|
||||
if (newName.isMember(FilteredThreadIndex.GROUP_IGNORE)) {
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE + "\" checked=\"true\" value=\"true\" /> ");
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, their threads are hidden\" /> ");
|
||||
} else {
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE + "\" value=\"true\" /> ");
|
||||
out.write("Ignored? <input type=\"checkbox\" name=\"" + PARAM_IGNORE
|
||||
+ "\" value=\"true\" title=\"If true, their threads are hidden\" /> ");
|
||||
}
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_ADD_BLOG + "\" /> ");
|
||||
@ -167,18 +181,24 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_ARCHIVE + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_SYNDIE + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + pn.getName() + "\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"20\" value=\"" + pn.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + pn.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the remote archive\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"20\" value=\"" + pn.getLocation()
|
||||
+ "\" title=\"URL to the remote archive's archive/archive.txt\" /> ");
|
||||
if (BlogManager.instance().authorizeRemote(user)) {
|
||||
|
||||
if (BlogManager.instance().syndicationScheduled(pn.getLocation()))
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE + "\" checked=\"true\" value=\"true\" />");
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, periodically pull down posts they have\" />");
|
||||
else
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE + "\" value=\"true\" />");
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE
|
||||
+ "\" value=\"true\" title=\"If true, periodically pull down posts they have\" />");
|
||||
|
||||
out.write("<a href=\"" + getSyndicateLink(user, pn.getLocation())
|
||||
+ "\" title=\"Synchronize manually with the peer\">Sync manually</a> ");
|
||||
} else {
|
||||
out.write("You are not <a href=\"admin.jsp\">authorized</a> to syndicate with the archive ");
|
||||
}
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_DELETE_ARCHIVE + "\" /> ");
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_UPDATE_ARCHIVE + "\" /> ");
|
||||
@ -191,14 +211,19 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_ARCHIVE + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_SYNDIE + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName() + "\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"20\" value=\"" + newName.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the remote archive\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"20\" value=\"" + newName.getLocation()
|
||||
+ "\" title=\"URL to the remote archive's archive/archive.txt\" /> ");
|
||||
if (BlogManager.instance().authorizeRemote(user)) {
|
||||
if (BlogManager.instance().syndicationScheduled(newName.getLocation()))
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE + "\" checked=\"true\" value=\"true\" />");
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE
|
||||
+ "\" checked=\"true\" value=\"true\" title=\"If true, periodically pull down posts they have\" />");
|
||||
else
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE + "\" value=\"true\" />");
|
||||
out.write("Syndicate? <input type=\"checkbox\" name=\"" + PARAM_SYNDICATE
|
||||
+ "\" value=\"true\" title=\"If true, periodically pull down posts they have\" />");
|
||||
}
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_ADD_ARCHIVE + "\" /> ");
|
||||
@ -225,9 +250,12 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_I2PHEX + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_I2P + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName() + "\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the I2Phex peer\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation()
|
||||
+ "\" title=\"I2P destination of the I2Phex peer\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_DELETE_PEER + "\" /> ");
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_UPDATE_PEER + "\" /> ");
|
||||
@ -240,9 +268,12 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_I2PHEX + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_I2P + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName() + "\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the I2Phex peer\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation()
|
||||
+ "\" title=\"I2P destination of the I2Phex peer\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_ADD_PEER + "\" /> ");
|
||||
out.write("</td></tr>\n");
|
||||
@ -267,9 +298,12 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_EEPSITE + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_I2P + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName() + "\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the eepsite\" />" + pn.getName() + " ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation()
|
||||
+ "\" title=\"I2P destination of the eepsite\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_DELETE_EEPSITE + "\" /> ");
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_UPDATE_EEPSITE + "\" /> ");
|
||||
@ -282,9 +316,12 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PROTO + "\" value=\"" + PROTO_EEPSITE + "\" />");
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_NET + "\" value=\"" + NET_I2P + "\" />");
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName() + "\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the eepsite\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation()
|
||||
+ "\" title=\"I2P destination of the eepsite\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_ADD_EEPSITE + "\" /> ");
|
||||
out.write("</td></tr>\n");
|
||||
@ -307,11 +344,16 @@ public class AddressesServlet extends BaseServlet {
|
||||
out.write("<form action=\"" + baseURI + "\" method=\"POST\">");
|
||||
writeAuthActionFields(out);
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Network: <input type=\"text\" name=\"" + PARAM_NET + "\" value=\"" + pn.getNetwork() + "\" /> ");
|
||||
out.write("Protocol: <input type=\"text\" name=\"" + PARAM_PROTO + "\" value=\"" + pn.getProtocol() + "\" /> ");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName() + "\" />" + pn.getName() +" ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (pn.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Network: <input type=\"text\" name=\"" + PARAM_NET + "\" value=\"" + pn.getNetwork()
|
||||
+ "\" title=\"What network is this on - i2p, tor, internet, freenet, etc\" /> ");
|
||||
out.write("Protocol: <input type=\"text\" name=\"" + PARAM_PROTO + "\" value=\"" + pn.getProtocol()
|
||||
+ "\" title=\"How do we access/interact with this resource\" /> ");
|
||||
out.write("Name: <input type=\"hidden\" name=\"" + PARAM_NAME + "\" value=\"" + pn.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the location\" />" + pn.getName() +" ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + pn.getLocation()
|
||||
+ "\" title=\"URL\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_DELETE_OTHER + "\" /> ");
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_UPDATE_OTHER + "\" /> ");
|
||||
@ -323,11 +365,16 @@ public class AddressesServlet extends BaseServlet {
|
||||
writeAuthActionFields(out);
|
||||
|
||||
out.write("<tr><td colspan=\"3\">");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "") + " />\n");
|
||||
out.write("Network: <input type=\"text\" name=\"" + PARAM_NET + "\" value=\"" + newName.getNetwork() + "\" /> ");
|
||||
out.write("Protocol: <input type=\"text\" name=\"" + PARAM_PROTO + "\" value=\"" + newName.getProtocol() + "\" /> ");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName() + "\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation() + "\" /> ");
|
||||
out.write("<input type=\"checkbox\" name=\"" + PARAM_IS_PUBLIC + "\" value=\"true\" " + (newName.getIsPublic() ? " checked=\"true\" " : "")
|
||||
+ " title=\"If checked, this name can be shared with one click when posting\" />\n");
|
||||
out.write("Network: <input type=\"text\" name=\"" + PARAM_NET + "\" value=\"" + newName.getNetwork()
|
||||
+ "\" title=\"What network is this on - i2p, tor, internet, freenet, etc\" /> ");
|
||||
out.write("Protocol: <input type=\"text\" name=\"" + PARAM_PROTO + "\" value=\"" + newName.getProtocol()
|
||||
+ "\" title=\"How do we access/interact with this resource\" /> ");
|
||||
out.write("Name: <input type=\"text\" name=\"" + PARAM_NAME + "\" size=\"10\" value=\"" + newName.getName()
|
||||
+ "\" title=\"Short, locally unique 'pet name' for the location\" /> ");
|
||||
out.write("Location: <input type=\"text\" name=\"" + PARAM_LOC + "\" size=\"3\" value=\"" + newName.getLocation()
|
||||
+ "\" title=\"URL\" /> ");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"" + PARAM_ACTION + "\" value=\"" + ACTION_ADD_OTHER + "\" /> ");
|
||||
out.write("</td></tr>\n");
|
||||
|
@ -494,6 +494,7 @@ public abstract class BaseServlet extends HttpServlet {
|
||||
//out.write("<tr class=\"topNav\"><td class=\"topNav_user\" colspan=\"2\" nowrap=\"true\">\n");
|
||||
out.write("<tr class=\"topNav\"><td colspan=\"3\" nowrap=\"true\"><span class=\"topNav_user\">\n");
|
||||
out.write("<!-- nav bar begin -->\n");
|
||||
out.write("<a href=\"threads.jsp\" title=\"Syndie home\">Home</a> ");
|
||||
if (user.getAuthenticated() && (user.getBlog() != null) ) {
|
||||
out.write("Logged in as <a href=\"" + getProfileLink(req, user.getBlog()) + "\" title=\"Edit your profile\">");
|
||||
out.write(user.getUsername());
|
||||
@ -504,8 +505,8 @@ public abstract class BaseServlet extends HttpServlet {
|
||||
} else {
|
||||
out.write("<form action=\"" + req.getRequestURI() + "\" method=\"POST\">\n");
|
||||
writeAuthActionFields(out);
|
||||
out.write("Login: <input type=\"text\" name=\"login\" />\n");
|
||||
out.write("Password: <input type=\"password\" name=\"password\" />\n");
|
||||
out.write("Login: <input type=\"text\" name=\"login\" title=\"Login name for your Syndie account\" />\n");
|
||||
out.write("Password: <input type=\"password\" name=\"password\" title=\"Password to get into your Syndie account\" />\n");
|
||||
out.write("<input type=\"submit\" name=\"action\" value=\"Login\" /></form>\n");
|
||||
}
|
||||
//out.write("</td><td class=\"topNav_admin\">\n");
|
||||
@ -594,10 +595,16 @@ public abstract class BaseServlet extends HttpServlet {
|
||||
}
|
||||
out.write("</select>\n");
|
||||
|
||||
out.write("Tags: <input type=\"text\" name=\"" + ThreadedHTMLRenderer.PARAM_TAGS + "\" size=\"10\" value=\"" + tags + "\" />\n");
|
||||
out.write("Tags: <input type=\"text\" name=\"" + ThreadedHTMLRenderer.PARAM_TAGS + "\" size=\"10\" value=\"" + tags
|
||||
+ "\" title=\"Threads are filtered to include only ones with posts containing these tags\" />\n");
|
||||
|
||||
out.write("<input type=\"submit\" name=\"action\" value=\"Go\" />\n");
|
||||
out.write("</td><td class=\"controlBarRight\" width=\"1%\"><a href=\"#threads\" title=\"Jump to the thread navigation\">Threads</a></td>\n");
|
||||
out.write("</td><td class=\"controlBarRight\" width=\"1%\">");
|
||||
|
||||
if ( (req.getParameter(ThreadedHTMLRenderer.PARAM_VIEW_POST) != null) ||
|
||||
(req.getParameter(ThreadedHTMLRenderer.PARAM_VIEW_THREAD) != null) )
|
||||
out.write("<a href=\"#threads\" title=\"Jump to the thread navigation\">Threads</a>");
|
||||
out.write("</td>\n");
|
||||
out.write("<!-- control bar end -->\n");
|
||||
out.write("</tr>\n");
|
||||
out.write("</form>\n");
|
||||
|
@ -211,28 +211,30 @@ public class PostServlet extends BaseServlet {
|
||||
out.write("<tr><td colspan=\"3\">\n");
|
||||
out.write("<span class=\"b_postField\">Post subject:</span> ");
|
||||
out.write("<input type=\"text\" class=\"b_postSubject\" size=\"80\" name=\"" + PARAM_SUBJECT
|
||||
+ "\" value=\"" + HTMLRenderer.sanitizeTagParam(subject) + "\" /><br />\n");
|
||||
+ "\" value=\"" + HTMLRenderer.sanitizeTagParam(subject) + "\" title=\"One line summary\" /><br />\n");
|
||||
out.write("<span class=\"b_postField\">Post content (in raw <a href=\"smlref.jsp\" target=\"_blank\">SML</a>, no headers):</span><br />\n");
|
||||
out.write("<textarea class=\"b_postText\" rows=\"6\" cols=\"80\" name=\"" + PARAM_TEXT + "\">" + getParam(req, PARAM_TEXT) + "</textarea><br />\n");
|
||||
out.write("<span class=\"b_postField\">SML post headers:</span><br />\n");
|
||||
out.write("<textarea class=\"b_postHeaders\" rows=\"3\" cols=\"80\" name=\"" + PARAM_HEADERS + "\">" + getParam(req, PARAM_HEADERS) + "</textarea><br />\n");
|
||||
out.write("<textarea class=\"b_postHeaders\" rows=\"2\" cols=\"80\" name=\"" + PARAM_HEADERS + "\" title=\"Most people can leave this empty\" >" + getParam(req, PARAM_HEADERS) + "</textarea><br />\n");
|
||||
|
||||
if ( (parentURI != null) && (parentURI.trim().length() > 0) )
|
||||
out.write("<input type=\"hidden\" name=\"" + PARAM_PARENT + "\" value=\"" + parentURI + "\" />\n");
|
||||
|
||||
out.write(" Tags: <input type=\"text\" size=\"10\" name=\"" + PARAM_TAGS + "\" value=\"" + getParam(req, PARAM_TAGS) + "\" /><br />\n");
|
||||
out.write(" Tags: <input type=\"text\" size=\"10\" name=\"" + PARAM_TAGS + "\" value=\"" + getParam(req, PARAM_TAGS) + "\" title=\"Optional tags to categorize your response\" /><br />\n");
|
||||
|
||||
boolean inNewThread = getInNewThread(req);
|
||||
boolean refuseReplies = getRefuseReplies(req);
|
||||
|
||||
out.write("In a new thread? <input type=\"checkbox\" value=\"true\" name=\"" + PARAM_IN_NEW_THREAD +
|
||||
(inNewThread ? "\" checked=\"true\" " : "\" " ) + " /><br />\n");
|
||||
(inNewThread ? "\" checked=\"true\" " : "\" " )
|
||||
+ " title=\"If true, this will fork a new top level thread\" /><br />\n");
|
||||
out.write("Refuse replies? <input type=\"checkbox\" value=\"true\" name=\"" + PARAM_REFUSE_REPLIES +
|
||||
(refuseReplies ? "\" checked=\"true\" " : "\" " ) + " /><br />\n");
|
||||
(refuseReplies ? "\" checked=\"true\" " : "\" " )
|
||||
+ " title=\"If true, only you will be able to reply to the post\" /><br />\n");
|
||||
|
||||
out.write("<span class=\"b_postField\">Include public names?</span> ");
|
||||
out.write("<input class=\"b_postNames\" type=\"checkbox\" name=\"" + PARAM_INCLUDENAMES
|
||||
+ "\" value=\"true\" /><br />\n");
|
||||
+ "\" value=\"true\" title=\"If true, everything marked 'public' in your addressbook is shared\" /><br />\n");
|
||||
|
||||
out.write(ATTACHMENT_FIELDS);
|
||||
|
||||
|
@ -362,6 +362,7 @@ public class RemoteArchiveBean {
|
||||
ArchiveIndex i = new ArchiveIndex(I2PAppContext.getGlobalContext(), false);
|
||||
if (notModified) {
|
||||
_statusMessages.add("Archive unchanged since last fetch.");
|
||||
_statusMessages.add("If you want to force a refetch, make a trivial modification to the URL, such as adding a \"?\"");
|
||||
} else {
|
||||
try {
|
||||
i.load(_archiveFile);
|
||||
|
@ -111,12 +111,12 @@ public class SyndicateServlet extends BaseServlet {
|
||||
|
||||
out.write("</select>\n");
|
||||
out.write("<span class=\"b_remoteChooserField\">Proxy</span>\n");
|
||||
out.write("<input class=\"b_remoteChooserHost\" type=\"text\" size=\"10\" name=\"proxyhost\" value=\"");
|
||||
out.write("<input class=\"b_remoteChooserHost\" type=\"text\" size=\"12\" name=\"proxyhost\" value=\"");
|
||||
out.write(BlogManager.instance().getDefaultProxyHost());
|
||||
out.write("\" />\n");
|
||||
out.write("\" title=\"hostname that your HTTP proxy is on, or blank for no proxy\" />\n");
|
||||
out.write("<input class=\"b_remoteChooserPort\" type=\"text\" size=\"4\" name=\"proxyport\" value=\"");
|
||||
out.write(BlogManager.instance().getDefaultProxyPort());
|
||||
out.write("\" /><br />\n");
|
||||
out.write("\" title=\"port number that your HTTP proxy is on, or blank for no proxy\" /><br />\n");
|
||||
out.write("<span class=\"b_remoteChooserField\">Bookmarked archives:</span>\n");
|
||||
out.write("<select class=\"b_remoteChooserPN\" name=\"" + PARAM_PETNAME + "\">");
|
||||
out.write("<option value=\"\">Custom location</option>");
|
||||
@ -136,7 +136,7 @@ public class SyndicateServlet extends BaseServlet {
|
||||
String reqLoc = req.getParameter("location");
|
||||
if (reqLoc != null)
|
||||
out.write(reqLoc);
|
||||
out.write("\" />\n");
|
||||
out.write("\" title=\"full URL to the remote location, to be sent to your HTTP proxy\" />\n");
|
||||
out.write("<input class=\"b_remoteChooserContinue\" type=\"submit\" name=\"action\" value=\"Continue...\" /><br />\n");
|
||||
out.write("</span>\n");
|
||||
}
|
||||
|
@ -290,14 +290,10 @@ public class ViewThreadedServlet extends BaseServlet {
|
||||
}
|
||||
|
||||
out.write("</a>\n");
|
||||
}
|
||||
out.write(" <a href=\"");
|
||||
out.write(getViewThreadLink(req, node, user));
|
||||
out.write("\" title=\"View all posts in the thread\">full thread</a>\n");
|
||||
} else {
|
||||
out.write("<a href=\"");
|
||||
out.write(getViewPostLink(req, node, user, false));
|
||||
out.write("\" title=\"View the post\">view post</a>\n");
|
||||
}
|
||||
out.write("</span>");
|
||||
out.write("</td></tr>\n");
|
||||
|
||||
|
@ -20,4 +20,13 @@ on new installs). You can also use the <a href="http://forum.i2p.net/">I2P
|
||||
forums</a> if you're having trouble getting Syndie to work, and people are
|
||||
almost always around on the <a href="http://forum.i2p.net/viewtopic.php?t=952">#i2p irc
|
||||
channel</a>.</p>
|
||||
|
||||
<p>One FAQ which might keep people from getting more posts into their Syndie
|
||||
node regards cookies. If you get "internal errors" when using the <a
|
||||
href="syndicate.jsp">syndicate form</a>, you probably have cookies disabled.
|
||||
Syndie needs cookies to help maintain state, and while its good practice to
|
||||
disable cookies in general, you should be able to tell your web browser to make
|
||||
an exception and allow cookies to "localhost" (or wherever your Syndie instance
|
||||
is). Further FAQs should be found
|
||||
<a href="threads.jsp?tags=syndie.faq">within syndie</a></p>
|
||||
</body></html>
|
||||
|
10
history.txt
10
history.txt
@ -1,4 +1,12 @@
|
||||
$Id: history.txt,v 1.331 2005/11/26 04:16:25 jrandom Exp $
|
||||
$Id: history.txt,v 1.332 2005/11/26 06:39:33 jrandom Exp $
|
||||
|
||||
2005-11-26 jrandom
|
||||
* Update the sorting in Syndie to consider children 'newer' than parents,
|
||||
even if they have the same message ID (duh)
|
||||
* Cleaned up some nav links in Syndie (good idea gloin, spaetz!)
|
||||
* Added a bunch of tooltips to Syndie's fields (thanks polecat!)
|
||||
* Force support for nonvalidating XML in Jetty (so we can handle GCJ/etc
|
||||
better)
|
||||
|
||||
2005-11-26 jrandom
|
||||
* Be more explicit about what messages we will handle through a client
|
||||
|
@ -51,6 +51,7 @@ wrapper.java.library.path.2=lib
|
||||
wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt
|
||||
wrapper.java.additional.2=-Dorg.mortbay.http.Version.paranoid=true
|
||||
wrapper.java.additional.3=-Dorg.mortbay.util.FileResource.checkAliases=false
|
||||
wrapper.java.additional.4=-Dorg.mortbay.xml.XmlParser.NotValidating=true
|
||||
|
||||
# Initial Java Heap Size (in MB)
|
||||
#wrapper.java.initmemory=4
|
||||
|
@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
|
||||
*
|
||||
*/
|
||||
public class RouterVersion {
|
||||
public final static String ID = "$Revision: 1.299 $ $Date: 2005/11/26 04:16:13 $";
|
||||
public final static String ID = "$Revision: 1.300 $ $Date: 2005/11/26 06:39:32 $";
|
||||
public final static String VERSION = "0.6.1.5";
|
||||
public final static long BUILD = 10;
|
||||
public final static long BUILD = 11;
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
||||
System.out.println("Router ID: " + RouterVersion.ID);
|
||||
|
Reference in New Issue
Block a user