diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-11 00:07:23 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-11 00:07:23 +0300 |
commit | 99bd45e7ce7539f3a0b7f7b710f1230464367b59 (patch) | |
tree | b5337e76c2a326b31c1890d154881ff68d388bc7 /app/assets/javascripts/members | |
parent | 8cc4a6f23d41a1c57dc309130d2ce9ebc04d8334 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/members')
-rw-r--r-- | app/assets/javascripts/members/components/table/role_dropdown.vue | 29 | ||||
-rw-r--r-- | app/assets/javascripts/members/index.js | 6 |
2 files changed, 25 insertions, 10 deletions
diff --git a/app/assets/javascripts/members/components/table/role_dropdown.vue b/app/assets/javascripts/members/components/table/role_dropdown.vue index daf5e95e6ef..70808587d56 100644 --- a/app/assets/javascripts/members/components/table/role_dropdown.vue +++ b/app/assets/javascripts/members/components/table/role_dropdown.vue @@ -13,7 +13,7 @@ export default { GlDropdownItem, LdapDropdownItem: () => import('ee_component/members/components/ldap/ldap_dropdown_item.vue'), }, - inject: ['namespace'], + inject: ['namespace', 'group'], props: { member: { type: Object, @@ -32,7 +32,7 @@ export default { }, computed: { disabled() { - return this.busy || (this.permissions.canOverride && !this.member.isOverridden); + return this.permissions.canOverride && !this.member.isOverridden; }, }, mounted() { @@ -52,21 +52,29 @@ export default { return dispatch(`${this.namespace}/updateMemberRole`, payload); }, }), - async handleOverageConfirm(currentAccessLevel, value) { + async handleOverageConfirm(currentRoleValue, newRoleValue, newRoleName) { return guestOverageConfirmAction({ - currentAccessIntValue: currentAccessLevel, - dropdownIntValue: value, + currentRoleValue, + newRoleValue, + newRoleName, + group: this.group, + memberId: this.member.id, + memberType: this.namespace, }); }, - async handleSelect(value, name) { - const currentAccessLevel = this.member.accessLevel.integerValue; - if (value === currentAccessLevel) { + async handleSelect(newRoleValue, newRoleName) { + const currentRoleValue = this.member.accessLevel.integerValue; + if (newRoleValue === currentRoleValue) { return; } this.busy = true; - const confirmed = await this.handleOverageConfirm(currentAccessLevel, value); + const confirmed = await this.handleOverageConfirm( + currentRoleValue, + newRoleValue, + newRoleName, + ); if (!confirmed) { this.busy = false; return; @@ -74,7 +82,7 @@ export default { this.updateMemberRole({ memberId: this.member.id, - accessLevel: { integerValue: value, stringValue: name }, + accessLevel: { integerValue: newRoleValue, stringValue: newRoleName }, }) .then(() => { this.$toast.show(s__('Members|Role updated successfully.')); @@ -97,6 +105,7 @@ export default { :text="member.accessLevel.stringValue" :header-text="__('Change role')" :disabled="disabled" + :loading="busy" > <gl-dropdown-item v-for="(value, name) in member.validRoles" diff --git a/app/assets/javascripts/members/index.js b/app/assets/javascripts/members/index.js index 359239c5c0c..c7398127727 100644 --- a/app/assets/javascripts/members/index.js +++ b/app/assets/javascripts/members/index.js @@ -21,6 +21,8 @@ export const initMembersApp = (el, options) => { canExportMembers, canFilterByEnterprise, exportCsvPath, + groupName, + groupPath, ...vuexStoreAttributes } = parseDataAttributes(el); @@ -66,6 +68,10 @@ export const initMembersApp = (el, options) => { canFilterByEnterprise, canExportMembers, exportCsvPath, + group: { + name: groupName, + path: groupPath, + }, }, render: (createElement) => createElement('members-tabs'), }); |