Merge "Hide assignee by default in Gerrit changes table" into stable-2.14
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index b8c71fb..bc1c151 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -1024,8 +1024,20 @@
[[change.showAssignee]]change.showAssignee::
+
-Allow assignee workflow. If set to false, assignees will not be visible anywhere
-in UI.
+Show assignee field in changes table. If set to false, assignees will
+not be visible in changes table.
++
+Default is false.
+
+[[change.showAssigneeSuggestOracle]]change.showAssigneeSuggestOracle::
++
+Allow assignee to be search-able through the changes search box.
+If set to false, assignees search predicates will not be suggested
+in the changes search box.
++
+NOTE: When both showAssignee and showAssigneeSuggestOracle are both
+set to false, the assignee field would not be shown anywhere in Gerrit,
+disabling the access to the feature.
+
Default is true.
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java
index 85a387d..10d956b 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java
@@ -17,6 +17,7 @@
public class ChangeConfigInfo {
public Boolean allowBlame;
public Boolean showAssignee;
+ public Boolean showAssigneeSuggestOracle;
public Boolean allowDrafts;
public int largeChange;
public String replyLabel;
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ServerInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ServerInfo.java
index 0286591..29b7cb4 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ServerInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ServerInfo.java
@@ -72,6 +72,9 @@
public final native boolean showAssignee() /*-{ return this.show_assignee || false; }-*/;
+ public final native boolean
+ showAssigneeSuggestOracle() /*-{ return this.show_assignee_suggest_oracle || false; }-*/;
+
public final native int updateDelay() /*-{ return this.update_delay || 0; }-*/;
public final native boolean isSubmitWholeTopicEnabled() /*-{
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/SearchSuggestOracle.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/SearchSuggestOracle.java
index 5c0508e..7c8de00 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/SearchSuggestOracle.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/SearchSuggestOracle.java
@@ -157,7 +157,7 @@
suggestions.add("hashtag:");
}
- if (Gerrit.info().change().showAssignee()) {
+ if (Gerrit.info().change().showAssigneeSuggestOracle()) {
suggestions.add("is:assigned");
suggestions.add("is:unassigned");
suggestions.add("assignee:");
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index 3cf6f4b..eb54bd9 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -1324,7 +1324,8 @@
commit.set(commentLinkProcessor, info, revision);
related.set(info, revision);
reviewers.set(info);
- if (Gerrit.info().change().showAssignee()) {
+ if (Gerrit.info().change().showAssignee()
+ || Gerrit.info().change().showAssigneeSuggestOracle()) {
assignee.set(info);
} else {
setVisible(assigneeRow, false);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java
index 2f68140..bb17697 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java
@@ -204,10 +204,13 @@
ChangeConfigInfo info = new ChangeConfigInfo();
info.allowBlame = toBoolean(cfg.getBoolean("change", "allowBlame", true));
info.allowDrafts = toBoolean(cfg.getBoolean("change", "allowDrafts", true));
+ boolean hasAssigneeInIndex =
+ indexes.getSearchIndex().getSchema().hasField(ChangeField.ASSIGNEE);
info.showAssignee =
+ toBoolean(cfg.getBoolean("change", "showAssignee", false) && hasAssigneeInIndex);
+ info.showAssigneeSuggestOracle =
toBoolean(
- cfg.getBoolean("change", "showAssignee", true)
- && indexes.getSearchIndex().getSchema().hasField(ChangeField.ASSIGNEE));
+ cfg.getBoolean("change", "showAssigneeSuggestOracle", true) && hasAssigneeInIndex);
info.largeChange = cfg.getInt("change", "largeChange", 500);
info.replyTooltip =
Optional.ofNullable(cfg.getString("change", null, "replyTooltip")).orElse("Reply and score")