diff options
Diffstat (limited to 'app/assets/javascripts/members/components/table/members_table.vue')
-rw-r--r-- | app/assets/javascripts/members/components/table/members_table.vue | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/app/assets/javascripts/members/components/table/members_table.vue b/app/assets/javascripts/members/components/table/members_table.vue index de733ae75df..e09d16cf680 100644 --- a/app/assets/javascripts/members/components/table/members_table.vue +++ b/app/assets/javascripts/members/components/table/members_table.vue @@ -6,6 +6,7 @@ import { canOverride, canRemove, canResend, canUpdate } from 'ee_else_ce/members import { mergeUrlParams } from '~/lib/utils/url_utility'; import initUserPopovers from '~/user_popovers'; import { + FIELD_KEY_ACTIONS, FIELDS, ACTIVE_TAB_QUERY_PARAM_NAME, TAB_QUERY_PARAM_VALUES, @@ -63,17 +64,10 @@ export default { return state[this.namespace].pagination; }, }), - filteredFields() { + filteredAndModifiedFields() { return FIELDS.filter( (field) => this.tableFields.includes(field.key) && this.showField(field), - ).map((field) => { - const tdClassFunction = this[field.tdClassFunction]; - - return { - ...field, - ...(tdClassFunction && { tdClass: tdClassFunction }), - }; - }); + ).map(this.modifyFieldDefinition); }, userIsLoggedIn() { return this.currentUserId !== null; @@ -100,20 +94,29 @@ export default { ); }, showField(field) { - if (!Object.prototype.hasOwnProperty.call(field, 'showFunction')) { - return true; - } + switch (field.key) { + case FIELD_KEY_ACTIONS: + if (!this.userIsLoggedIn) { + return false; + } - return this[field.showFunction](); + return this.members.some((member) => this.hasActionButtons(member)); + default: + return true; + } }, - showActionsField() { - if (!this.userIsLoggedIn) { - return false; + modifyFieldDefinition(field) { + switch (field.key) { + case FIELD_KEY_ACTIONS: + return { + ...field, + tdClass: this.actionsFieldTdClass, + }; + default: + return field; } - - return this.members.some((member) => this.hasActionButtons(member)); }, - tdClassActions(value, key, member) { + actionsFieldTdClass(value, key, member) { if (this.hasActionButtons(member)) { return 'col-actions'; } @@ -219,7 +222,7 @@ export default { data-testid="members-table" head-variant="white" stacked="lg" - :fields="filteredFields" + :fields="filteredAndModifiedFields" :items="members" primary-key="id" thead-class="border-bottom" |