diff --git a/apps/syndie/java/src/net/i2p/syndie/ThreadNodeImpl.java b/apps/syndie/java/src/net/i2p/syndie/ThreadNodeImpl.java
index 4c6715fc9..e9ef4ca50 100644
--- a/apps/syndie/java/src/net/i2p/syndie/ThreadNodeImpl.java
+++ b/apps/syndie/java/src/net/i2p/syndie/ThreadNodeImpl.java
@@ -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();
}
diff --git a/apps/syndie/java/src/net/i2p/syndie/sml/ThreadedHTMLRenderer.java b/apps/syndie/java/src/net/i2p/syndie/sml/ThreadedHTMLRenderer.java
index 03c6dc5cd..35bd9ffc0 100644
--- a/apps/syndie/java/src/net/i2p/syndie/sml/ThreadedHTMLRenderer.java
+++ b/apps/syndie/java/src/net/i2p/syndie/sml/ThreadedHTMLRenderer.java
@@ -295,9 +295,9 @@ public class ThreadedHTMLRenderer extends HTMLRenderer {
out.write("
\n");
out.write("
\n");
out.write(" \n");
- out.write(" Tags: \n");
- out.write(" in a new thread? \n");
- out.write(" refuse replies? \n");
+ out.write(" Tags: \n");
+ out.write(" in a new thread? \n");
+ out.write(" refuse replies? \n");
out.write(" attachment: \n");
out.write("
\n
\n\n");
out.write("\n");
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/AddressesServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/AddressesServlet.java
index 9875e874f..e4792982b 100644
--- a/apps/syndie/java/src/net/i2p/syndie/web/AddressesServlet.java
+++ b/apps/syndie/java/src/net/i2p/syndie/web/AddressesServlet.java
@@ -103,18 +103,25 @@ public class AddressesServlet extends BaseServlet {
out.write("");
writeAuthActionFields(out);
out.write("
\n");
@@ -307,11 +344,16 @@ public class AddressesServlet extends BaseServlet {
out.write("\n");
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/PostServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/PostServlet.java
index 631bbfc68..3298e7702 100644
--- a/apps/syndie/java/src/net/i2p/syndie/web/PostServlet.java
+++ b/apps/syndie/java/src/net/i2p/syndie/web/PostServlet.java
@@ -211,28 +211,30 @@ public class PostServlet extends BaseServlet {
out.write("
\n");
out.write("Post subject: ");
out.write(" \n");
+ + "\" value=\"" + HTMLRenderer.sanitizeTagParam(subject) + "\" title=\"One line summary\" /> \n");
out.write("Post content (in raw SML, no headers): \n");
out.write(" \n");
out.write("SML post headers: \n");
- out.write(" \n");
+ out.write(" \n");
if ( (parentURI != null) && (parentURI.trim().length() > 0) )
out.write("\n");
- out.write(" Tags: \n");
+ out.write(" Tags: \n");
boolean inNewThread = getInNewThread(req);
boolean refuseReplies = getRefuseReplies(req);
out.write("In a new thread? \n");
+ (inNewThread ? "\" checked=\"true\" " : "\" " )
+ + " title=\"If true, this will fork a new top level thread\" /> \n");
out.write("Refuse replies? \n");
+ (refuseReplies ? "\" checked=\"true\" " : "\" " )
+ + " title=\"If true, only you will be able to reply to the post\" /> \n");
out.write("Include public names? ");
out.write(" \n");
+ + "\" value=\"true\" title=\"If true, everything marked 'public' in your addressbook is shared\" /> \n");
out.write(ATTACHMENT_FIELDS);
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java b/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java
index df124f2dc..d555172a9 100644
--- a/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java
+++ b/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java
@@ -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);
diff --git a/apps/syndie/java/src/net/i2p/syndie/web/SyndicateServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/SyndicateServlet.java
index 1eb97730e..0d6c17ebc 100644
--- a/apps/syndie/java/src/net/i2p/syndie/web/SyndicateServlet.java
+++ b/apps/syndie/java/src/net/i2p/syndie/web/SyndicateServlet.java
@@ -111,12 +111,12 @@ public class SyndicateServlet extends BaseServlet {
out.write("\n");
out.write("Proxy\n");
- out.write("\n");
+ out.write("\" title=\"hostname that your HTTP proxy is on, or blank for no proxy\" />\n");
out.write(" \n");
+ out.write("\" title=\"port number that your HTTP proxy is on, or blank for no proxy\" /> \n");
out.write("Bookmarked archives:\n");
out.write("
\n");
diff --git a/apps/syndie/jsp/about.html b/apps/syndie/jsp/about.html
index c85d60076..3741a6d98 100644
--- a/apps/syndie/jsp/about.html
+++ b/apps/syndie/jsp/about.html
@@ -20,4 +20,13 @@ on new installs). You can also use the I2P
forums if you're having trouble getting Syndie to work, and people are
almost always around on the #i2p irc
channel.
+
+
One FAQ which might keep people from getting more posts into their Syndie
+node regards cookies. If you get "internal errors" when using the syndicate form, 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
+within syndie