Merge "Allow configuring the Report Bug URL"
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index cf32d88..523823d 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -1110,6 +1110,13 @@
by the system administrator, and might not even be running on the
same host as Gerrit.
+[[gerrit.reportBugUrl]]gerrit.reportBugUrl::
++
+URL to direct users to when they need to report a bug about the
+Gerrit service. By default this links to the upstream Gerrit
+Code Review's own bug tracker but could be directed to the system
+administrator's ticket queue.
+
[[gitweb]]Section gitweb
~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java b/gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java
index 89de3b4..8436456 100644
--- a/gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java
+++ b/gerrit-common/src/main/java/com/google/gerrit/common/data/GerritConfig.java
@@ -28,6 +28,7 @@
public class GerritConfig implements Cloneable {
protected String registerUrl;
protected String httpPasswordUrl;
+ protected String reportBugUrl;
protected String openIdSsoUrl;
protected List<OpenIdProviderPattern> allowedOpenIDs;
@@ -57,6 +58,14 @@
registerUrl = u;
}
+ public String getReportBugUrl() {
+ return reportBugUrl;
+ }
+
+ public void setReportBugUrl(String u) {
+ reportBugUrl = u;
+ }
+
public String getEditFullNameUrl() {
return editFullNameUrl;
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
index be74428..5fd0d39 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
@@ -58,8 +58,8 @@
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
+import com.google.gwt.user.client.ui.InlineHTML;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
@@ -447,9 +447,19 @@
vs = "dev";
}
- final HTML version = new HTML(M.poweredBy(vs));
- version.setStyleName(RESOURCES.css().version());
- btmmenu.add(version);
+ FlowPanel poweredBy = new FlowPanel();
+ poweredBy.setStyleName(RESOURCES.css().version());
+ poweredBy.add(new InlineHTML(M.poweredBy(vs)));
+ if (getConfig().getReportBugUrl() != null) {
+ poweredBy.add(new InlineLabel(" | "));
+ Anchor a = new Anchor(
+ C.reportBug(),
+ getConfig().getReportBugUrl());
+ a.setTarget("_blank");
+ a.setStyleName("");
+ poweredBy.add(a);
+ }
+ btmmenu.add(poweredBy);
}
private void onModuleLoad2() {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
index c47c789..ced2202 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
@@ -21,6 +21,7 @@
String menuSignOut();
String menuRegister();
String menuSettings();
+ String reportBug();
String signInDialogTitle();
String signInDialogClose();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
index 67ebe2a..e2d048b 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
@@ -2,6 +2,7 @@
menuSignOut = Sign Out
menuRegister = Register
menuSettings = Settings
+reportBug = Report Bug
signInDialogTitle = Code Review - Sign In
signInDialogClose = Close
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritMessages.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritMessages.properties
index a91df3c..79772bd 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritMessages.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritMessages.properties
@@ -1,7 +1,6 @@
windowTitle1 = {0} Code Review
windowTitle2 = {0} | {1} Code Review
-poweredBy = Powered by <a href="http://code.google.com/p/gerrit/" target="_blank">Gerrit Code Review</a> ({0}) \
-| <a href="http://code.google.com/p/gerrit/issues/list" target="_blank">Report Bug</a>
+poweredBy = Powered by <a href="http://code.google.com/p/gerrit/" target="_blank">Gerrit Code Review</a> ({0})
noSuchAccountMessage = {0} is not a registered user.
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
index 72bb0c2..2f09380 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GerritConfigProvider.java
@@ -121,6 +121,13 @@
"test", false));
config.setAnonymousCowardName(anonymousCowardName);
+ config.setReportBugUrl(cfg.getString("gerrit", null, "reportBugUrl"));
+ if (config.getReportBugUrl() == null) {
+ config.setReportBugUrl("http://code.google.com/p/gerrit/issues/list");
+ } else if (config.getReportBugUrl().isEmpty()) {
+ config.setReportBugUrl(null);
+ }
+
final Set<Account.FieldName> fields = new HashSet<Account.FieldName>();
for (final Account.FieldName n : Account.FieldName.values()) {
if (realm.allowsEdit(n)) {