Filter disabled experiments from settings view
When showing the list of default columns which user can enable/disable
in the settings view, filter out columns which are not enabled for the
user or are behind an experiment flag.
Issue: Bug 13843
Change-Id: Ibc20ced747759dbab50bc1a63488ef6288a5ad0c
diff --git a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
index b380ce4..df927d6 100644
--- a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
+++ b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
@@ -24,7 +24,9 @@
import {PolymerElement} from '@polymer/polymer/polymer-element';
import {htmlTemplate} from './gr-change-table-editor_html';
import {ChangeTableMixin} from '../../../mixins/gr-change-table-mixin/gr-change-table-mixin';
-import {customElement, property} from '@polymer/decorators';
+import {customElement, property, observe} from '@polymer/decorators';
+import {ServerInfo} from '../../../types/common';
+import {appContext} from '../../../services/app-context';
@customElement('gr-change-table-editor')
class GrChangeTableEditor extends ChangeTableMixin(
@@ -40,6 +42,27 @@
@property({type: Boolean, notify: true})
showNumber?: boolean;
+ @property({type: Object})
+ serverConfig?: ServerInfo;
+
+ @property({type: Array})
+ defaultColumns?: string[];
+
+ flagsService = appContext.flagsService;
+
+ @observe('serverConfig')
+ _configChanged(config: ServerInfo) {
+ this.defaultColumns = this.getEnabledColumns(
+ this.columnNames,
+ config,
+ this.flagsService.enabledExperiments
+ );
+ if (!this.displayedColumns) return;
+ this.displayedColumns = this.displayedColumns.filter(column =>
+ this.isColumnEnabled(column, config, this.flagsService.enabledExperiments)
+ );
+ }
+
/**
* Get the list of enabled column names from whichever checkboxes are
* checked (excluding the number checkbox).