Hide "Assignee" related components when disabled in config

This affects the dashboard column and the change metadata field.

Change-Id: Id2d46f5549b856da1c35892c3f547f58444e7eb6
diff --git a/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior.js b/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior.js
index 67b8c4a..0a3da6e 100644
--- a/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior.js
+++ b/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior.js
@@ -74,6 +74,7 @@
      */
     isColumnEnabled(column, config, experiments) {
       if (!config || !config.change) return true;
+      if (column === 'Assignee') return !!config.change.enable_assignee;
       if (column === 'Comments') return experiments.includes('comments-column');
       if (column === 'Reviewers') return !!config.change.enable_attention_set;
       return true;
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
index 160b912..47e6a9a 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
@@ -46,7 +46,6 @@
   let element;
 
   const sectionSelectors = [
-    'section.assignee',
     'section.strategy',
     'section.topic',
   ];
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
index 2e9cdf9..28262be 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
@@ -188,7 +188,9 @@
   }
 
   _assigneeChanged(assigneeRecord) {
-    if (!this.change) { return; }
+    if (!this.change || !this._isAssigneeEnabled(this.serverConfig)) {
+      return;
+    }
     const assignee = assigneeRecord.base;
     if (assignee.length) {
       const acct = assignee[0];
@@ -225,6 +227,11 @@
     return weblinks.length ? weblinks : null;
   }
 
+  _isAssigneeEnabled(serverConfig) {
+    return serverConfig && serverConfig.change
+        && !!serverConfig.change.enable_assignee;
+  }
+
   _computeStrategy(change) {
     return SubmitTypeLabel[change.submit_type];
   }
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_html.js b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_html.js
index 4d3af5b..059aa71 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_html.js
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_html.js
@@ -138,13 +138,15 @@
           <gr-account-link account="[[_getNonOwnerRole(change, _CHANGE_ROLE.COMMITTER)]]"></gr-account-link>
         </span>
       </section>
-      <section class="assignee">
-        <span class="title">Assignee</span>
-        <span class="value">
-          <gr-account-list id="assigneeValue" placeholder="Set assignee..." max-count="1" skip-suggest-on-empty="" accounts="{{_assignee}}" readonly="[[_computeAssigneeReadOnly(_mutable, change)]]" suggestions-provider="[[_getReviewerSuggestionsProvider(change)]]">
-          </gr-account-list>
-        </span>
-      </section>
+      <template is="dom-if" if="[[_isAssigneeEnabled(serverConfig)]]">
+        <section class="assignee">
+          <span class="title">Assignee</span>
+          <span class="value">
+            <gr-account-list id="assigneeValue" placeholder="Set assignee..." max-count="1" skip-suggest-on-empty="" accounts="{{_assignee}}" readonly="[[_computeAssigneeReadOnly(_mutable, change)]]" suggestions-provider="[[_getReviewerSuggestionsProvider(change)]]">
+            </gr-account-list>
+          </span>
+        </section>
+      </template>
       <section>
         <span class="title">Reviewers</span>
         <span class="value">
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
index 773e6ec..ce3770f 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
@@ -634,6 +634,11 @@
       setup(() => {
         deleteStub = sandbox.stub(element.$.restAPI, 'deleteAssignee');
         setStub = sandbox.stub(element.$.restAPI, 'setAssignee');
+        element.serverConfig = {
+          change: {
+            enable_assignee: true,
+          },
+        };
       });
 
       test('changing change recomputes _assignee', () => {