summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Milanesio <luca.milanesio@gmail.com>2017-04-06 09:59:11 +0100
committerLuca Milanesio <luca.milanesio@gmail.com>2017-04-09 21:51:46 +0000
commit50057ff887df2fe7c9607bf5560554a50535189d (patch)
tree3c8c8a2cce306dbe46b104d5ef56e8ab8cde2849
parent596fff00cc85f30460a2a6ed7235cb204b442b53 (diff)
Hide assignee by default in Gerrit changes table
Keep backward-compatible behaviour for users coming from Gerrit < 2.14 and not interested in the assignee workflow. The assignee feature will still be accessible through a second configuration setting (showAssigneeSuggestOracle) that controls the ability to suggest searching of the changes by assignee. Typically people and organisations that want to use the feature massively, will then enable it in the gerrit.config to be more prevalent on the changes table. When both showAssignee and showAssigneeSuggestOracle are set to false, the feature is not accessible anymore because you cannot neither see nor search for changes by assignee. Change-Id: Ie826c126b5508c9013ee4f802f6bcfaff95cef76
-rw-r--r--Documentation/config-gerrit.txt16
-rw-r--r--gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java1
-rw-r--r--gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ServerInfo.java3
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/SearchSuggestOracle.java2
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java3
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/config/GetServerInfo.java7
6 files changed, 26 insertions, 6 deletions
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index b8c71fbf58..bc1c1510e4 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -1024,8 +1024,20 @@ Default is true.
[[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 85a387d544..10d956bff7 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 @@ package com.google.gerrit.extensions.common;
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 028659182d..29b7cb4843 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 class ServerInfo extends JavaScriptObject {
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 5c0508eb8b..7c8de00aa4 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 @@ public class SearchSuggestOracle extends HighlightSuggestOracle {
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 3cf6f4bae7..eb54bd972f 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 @@ public class ChangeScreen extends Screen {
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 2f68140bbd..bb17697e9d 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 @@ public class GetServerInfo implements RestReadView<ConfigResource> {
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")