From ad3d2ca074cd3cf9c554f57c53b22f0de6abede9 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 17 Sep 2014 12:21:47 -0400
Subject: [PATCH] Merge branch 'ticket/180' into develop

---
 src/main/java/com/gitblit/wicket/pages/RepositoryPage.java |   14 +++++--
 src/main/java/com/gitblit/wicket/pages/TreePage.java       |    6 +++
 src/main/java/com/gitblit/wicket/GitBlitWebApp.java        |    4 +-
 src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java   |    5 ++
 src/main/java/com/gitblit/wicket/pages/BlamePage.java      |    5 ++
 src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java |    5 ++
 src/main/java/com/gitblit/wicket/pages/DocsPage.java       |    6 +++
 src/main/java/com/gitblit/wicket/pages/TagPage.java        |    5 ++
 src/main/java/com/gitblit/wicket/pages/BlobPage.java       |    5 ++
 src/main/java/com/gitblit/wicket/pages/LogPage.java        |    6 +++
 src/main/java/com/gitblit/wicket/pages/DocPage.java        |    5 ++
 src/main/java/com/gitblit/wicket/pages/HistoryPage.java    |    5 ++
 src/main/java/com/gitblit/wicket/pages/NoDocsPage.java     |    5 ++
 src/main/java/com/gitblit/wicket/pages/CommitPage.java     |    5 ++
 src/main/java/com/gitblit/wicket/pages/MetricsPage.java    |   27 ++++++++-----
 15 files changed, 91 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
index 2065d55..359040b 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -189,9 +189,9 @@
 
 		// setup the standard gitweb-ish urls
 		mount("/repositories", RepositoriesPage.class);
-		mount("/overview", OverviewPage.class, "r", "h");
+		mount("/overview", OverviewPage.class, "r");
 		mount("/summary", SummaryPage.class, "r");
-		mount("/reflog", ReflogPage.class, "r", "h");
+		mount("/reflog", ReflogPage.class, "r");
 		mount("/commits", LogPage.class, "r", "h");
 		mount("/log", LogPage.class, "r", "h");
 		mount("/tags", TagsPage.class, "r");
diff --git a/src/main/java/com/gitblit/wicket/pages/BlamePage.java b/src/main/java/com/gitblit/wicket/pages/BlamePage.java
index c2280a2..3c850f2 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlamePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlamePage.java
@@ -235,6 +235,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
index 27678ec..9cc3eae 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
@@ -82,6 +82,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobPage.java b/src/main/java/com/gitblit/wicket/pages/BlobPage.java
index e84056b..3c244f9 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlobPage.java
@@ -224,6 +224,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
index 71a5ea6..d827c44 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
@@ -197,6 +197,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitPage.java b/src/main/java/com/gitblit/wicket/pages/CommitPage.java
index 6fadec5..072bb20 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitPage.java
@@ -248,6 +248,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/DocPage.java b/src/main/java/com/gitblit/wicket/pages/DocPage.java
index 567c6fb..5ed9c40 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocPage.java
@@ -102,6 +102,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return DocsPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/DocsPage.java b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
index 97b1604..8be9a57 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
@@ -167,4 +167,10 @@
 	protected String getPageName() {
 		return getString("gb.docs");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }
diff --git a/src/main/java/com/gitblit/wicket/pages/HistoryPage.java b/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
index f7f188d..3021cb3 100644
--- a/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
@@ -67,6 +67,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/LogPage.java b/src/main/java/com/gitblit/wicket/pages/LogPage.java
index 092f719..411d7ed 100644
--- a/src/main/java/com/gitblit/wicket/pages/LogPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/LogPage.java
@@ -69,4 +69,10 @@
 	protected String getPageName() {
 		return getString("gb.log");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }
diff --git a/src/main/java/com/gitblit/wicket/pages/MetricsPage.java b/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
index 7ae4e4e..96113b0 100644
--- a/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
@@ -61,24 +61,24 @@
 					MessageFormat.format(getString("gb.branchStats"), metricsTotal.count,
 							metricsTotal.tag, getTimeUtils().duration(metricsTotal.duration))));
 		}
-		
+
 		Charts charts =  new Flotr2Charts();
-	
+
 		add(WicketUtils.newBlankImage("commitsChart"));
 		add(WicketUtils.newBlankImage("dayOfWeekChart"));
 		add(WicketUtils.newBlankImage("authorsChart"));
-			
+
 		createLineChart(charts, "commitsChart", metrics);
 		createBarChart(charts, "dayOfWeekChart", getDayOfWeekMetrics(r, objectId));
 		createPieChart(charts, "authorsChart", getAuthorMetrics(r, objectId));
-		
+
 		add(new HeaderContributor(charts));
 
 	}
 
 	private void createLineChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
-			
+
 			Chart chart = charts.createLineChart(id, "", "day",
 					getString("gb.commits"));
 			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
@@ -102,22 +102,22 @@
 					chart.addHighlight(date, (int)metric.count);
 				}
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
-	
+
 	private void createPieChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
-			
+
 			Chart chart = charts.createPieChart(id, "", "day",
 					getString("gb.commits"));
 			for (Metric metric : metrics) {
 				chart.addValue(metric.name, (int)metric.count);
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
-	
+
 	private void createBarChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
 			Chart chart = charts.createBarChart(id, "", "day",
@@ -125,7 +125,7 @@
 			for (Metric metric : metrics) {
 				chart.addValue(metric.name, (int)metric.count);
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
 
@@ -179,6 +179,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return SummaryPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java b/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
index 868e5d0..7dcc022 100644
--- a/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
@@ -33,6 +33,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return DocsPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
index b3250a6..134ee04 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -201,11 +201,13 @@
 			objectParams = params;
 
 			// preserve the objectid iff the objectid directly (or indirectly) refers to a ref
-			if (!StringUtils.isEmpty(objectId)) {
+			if (isCommitPage() && !StringUtils.isEmpty(objectId)) {
 				RevCommit commit = JGitUtils.getCommit(r, objectId);
-				String bestId = getBestCommitId(commit);
-				if (!commit.getName().equals(bestId)) {
-					objectParams = WicketUtils.newObjectParameter(getRepositoryName(), bestId);
+				if (commit != null) {
+					String bestId = getBestCommitId(commit);
+					if (!commit.getName().equals(bestId)) {
+						objectParams = WicketUtils.newObjectParameter(getRepositoryName(), bestId);
+					}
 				}
 			}
 		}
@@ -574,6 +576,10 @@
 
 	protected abstract String getPageName();
 
+	protected boolean isCommitPage() {
+		return false;
+	}
+
 	protected Component createPersonPanel(String wicketId, PersonIdent identity,
 			Constants.SearchType searchType) {
 		String name = identity == null ? "" : identity.getName();
diff --git a/src/main/java/com/gitblit/wicket/pages/TagPage.java b/src/main/java/com/gitblit/wicket/pages/TagPage.java
index afade81..9eed279 100644
--- a/src/main/java/com/gitblit/wicket/pages/TagPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TagPage.java
@@ -101,6 +101,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/TreePage.java b/src/main/java/com/gitblit/wicket/pages/TreePage.java
index 722b824..9ddbecf 100644
--- a/src/main/java/com/gitblit/wicket/pages/TreePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TreePage.java
@@ -186,4 +186,10 @@
 	protected String getPageName() {
 		return getString("gb.tree");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }

--
Gitblit v1.9.1