diff options
author | Luca Milanesio <luca.milanesio@gmail.com> | 2017-04-06 09:59:11 +0100 |
---|---|---|
committer | Luca Milanesio <luca.milanesio@gmail.com> | 2017-04-09 21:51:46 +0000 |
commit | 50057ff887df2fe7c9607bf5560554a50535189d (patch) | |
tree | 3c8c8a2cce306dbe46b104d5ef56e8ab8cde2849 | |
parent | 596fff00cc85f30460a2a6ed7235cb204b442b53 (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
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") |