Explicitly declare RepositoryPage subclasses that reference commits
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
index 0c97861..d19630c 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -175,9 +175,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;
+ }
+
}