From a2709dd91e5d6b18f573016882ccc70799573ad3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 22 Jul 2011 17:47:53 -0400
Subject: [PATCH] Centralize default branch/HEAD resolution (issue 14)

---
 src/com/gitblit/wicket/WicketUtils.java |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/wicket/WicketUtils.java b/src/com/gitblit/wicket/WicketUtils.java
index 1897aca..1152263 100644
--- a/src/com/gitblit/wicket/WicketUtils.java
+++ b/src/com/gitblit/wicket/WicketUtils.java
@@ -235,6 +235,9 @@
 		if (StringUtils.isEmpty(path)) {
 			return newObjectParameter(repositoryName, objectId);
 		}
+		if (StringUtils.isEmpty(objectId)) {
+			return new PageParameters("r=" + repositoryName + ",f=" + path);
+		}
 		return new PageParameters("r=" + repositoryName + ",h=" + objectId + ",f=" + path);
 	}
 
@@ -242,6 +245,9 @@
 			int pageNumber) {
 		if (pageNumber <= 1) {
 			return newObjectParameter(repositoryName, objectId);
+		}
+		if (StringUtils.isEmpty(objectId)) {
+			return new PageParameters("r=" + repositoryName + ",page=" + pageNumber);
 		}
 		return new PageParameters("r=" + repositoryName + ",h=" + objectId + ",page=" + pageNumber);
 	}
@@ -251,12 +257,18 @@
 		if (pageNumber <= 1) {
 			return newObjectParameter(repositoryName, objectId);
 		}
+		if (StringUtils.isEmpty(objectId)) {
+			return new PageParameters("r=" + repositoryName + ",f=" + path + ",page=" + pageNumber);
+		}
 		return new PageParameters("r=" + repositoryName + ",h=" + objectId + ",f=" + path
 				+ ",page=" + pageNumber);
 	}
 
 	public static PageParameters newBlobDiffParameter(String repositoryName, String baseCommitId,
 			String commitId, String path) {
+		if (StringUtils.isEmpty(commitId)) {
+			return new PageParameters("r=" + repositoryName + ",f=" + path + ",hb=" + baseCommitId);
+		}
 		return new PageParameters("r=" + repositoryName + ",h=" + commitId + ",f=" + path + ",hb="
 				+ baseCommitId);
 	}
@@ -272,6 +284,10 @@
 
 	public static PageParameters newSearchParameter(String repositoryName, String commitId,
 			String search, SearchType type, int pageNumber) {
+		if (StringUtils.isEmpty(commitId)) {
+			return new PageParameters("r=" + repositoryName + ",s=" + search + ",st=" + type.name()
+					+ ",page=" + pageNumber);
+		}
 		return new PageParameters("r=" + repositoryName + ",h=" + commitId + ",s=" + search
 				+ ",st=" + type.name() + ",page=" + pageNumber);
 	}
@@ -281,7 +297,7 @@
 	}
 
 	public static String getObject(PageParameters params) {
-		return params.getString("h", Constants.HEAD);
+		return params.getString("h", null);
 	}
 
 	public static String getPath(PageParameters params) {
@@ -335,7 +351,12 @@
 		if (timeZone != null) {
 			df.setTimeZone(timeZone);
 		}
-		String dateString = df.format(date);
+		String dateString;
+		if (date.getTime() == 0) {
+			dateString = "--";
+		} else {
+			dateString = df.format(date);
+		}
 		String title = TimeUtils.timeAgo(date);
 		Label label = new Label(wicketId, dateString);
 		WicketUtils.setHtmlTooltip(label, title);

--
Gitblit v1.9.1