From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001
From: Gerard Smyth <gerard.smyth@gmail.com>
Date: Thu, 08 May 2014 13:09:30 -0400
Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored.

---
 src/main/java/com/gitblit/wicket/SessionlessForm.java |   43 +++++++++++++++++++++++++++----------------
 1 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/SessionlessForm.java b/src/main/java/com/gitblit/wicket/SessionlessForm.java
index 484e85e..6f79071 100644
--- a/src/main/java/com/gitblit/wicket/SessionlessForm.java
+++ b/src/main/java/com/gitblit/wicket/SessionlessForm.java
@@ -22,6 +22,7 @@
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.form.StatelessForm;
+import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.protocol.http.WicketURLDecoder;
 import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
 import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -35,35 +36,35 @@
  * This class is used to create a stateless form that can POST or GET to a
  * bookmarkable page regardless of the pagemap and even after session expiration
  * or a server restart.
- * 
+ *
  * The trick is to embed "wicket:bookmarkablePage" as a hidden field of the form.
  * Wicket already has logic to extract this parameter when it is trying
  * to determine which page should receive the request.
- * 
+ *
  * The parameters of the containing page can optionally be included as hidden
- * fields in this form.  Note that if a page parameter's name collides with any 
+ * fields in this form.  Note that if a page parameter's name collides with any
  * child's wicket:id in this form then the page parameter is excluded.
- * 
+ *
  * @author James Moger
  *
  */
 public class SessionlessForm<T> extends StatelessForm<T> {
-	
+
 	private static final long serialVersionUID = 1L;
 
 	private static final String HIDDEN_DIV_START = "<div style=\"width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden\">";
-	
-	private final Class<? extends BasePage> pageClass;
-	
-	private final PageParameters pageParameters;
-	
+
+	protected final Class<? extends BasePage> pageClass;
+
+	protected final PageParameters pageParameters;
+
 	private final Logger log = LoggerFactory.getLogger(SessionlessForm.class);
 
 	/**
 	 * Sessionless forms must have a bookmarkable page class.  A bookmarkable
 	 * page is defined as a page that has only a default and/or a PageParameter
 	 * constructor.
-	 * 
+	 *
 	 * @param id
 	 * @param bookmarkablePageClass
 	 */
@@ -75,7 +76,7 @@
 	 * Sessionless forms must have a bookmarkable page class.  A bookmarkable
 	 * page is defined as a page that has only a default and/or a PageParameter
 	 * constructor.
-	 * 
+	 *
 	 * @param id
 	 * @param bookmarkablePageClass
 	 * @param pageParameters
@@ -87,12 +88,12 @@
 		this.pageParameters = pageParameters;
 	}
 
-	
+
 	/**
 	 * Append an additional hidden input tag that forces Wicket to correctly
 	 * determine the destination page class even after a session expiration or
 	 * a server restart.
-	 * 
+	 *
 	 * @param markupStream
 	 *            The markup stream
 	 * @param openTag
@@ -133,10 +134,10 @@
 		getResponse().write(buffer);
 		super.onComponentTagBody(markupStream, openTag);
 	}
-	
+
 	/**
 	 * Take URL-encoded query string value, unencode it and return HTML-escaped version
-	 * 
+	 *
 	 * @param s
 	 *            value to reencode
 	 * @return reencoded value
@@ -145,4 +146,14 @@
 		String un = WicketURLDecoder.QUERY_INSTANCE.decode(s);
 		return Strings.escapeMarkup(un).toString();
 	}
+
+	protected String getAbsoluteUrl() {
+		return getAbsoluteUrl(pageClass, pageParameters);
+	}
+
+	protected String getAbsoluteUrl(Class<? extends BasePage> pageClass, PageParameters pageParameters) {
+		String relativeUrl = urlFor(pageClass, pageParameters).toString();
+		String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
+		return absoluteUrl;
+	}
 }

--
Gitblit v1.9.1