summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/members
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-01-10 21:07:23 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-10 21:07:23 +0000
commit99bd45e7ce7539f3a0b7f7b710f1230464367b59 (patch)
treeb5337e76c2a326b31c1890d154881ff68d388bc7 /app/assets/javascripts/members
parent8cc4a6f23d41a1c57dc309130d2ce9ebc04d8334 (diff)
downloadgitlab-ce-99bd45e7ce7539f3a0b7f7b710f1230464367b59.tar.gz
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.vue29
-rw-r--r--app/assets/javascripts/members/index.js6
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'),
});