diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 21:09:05 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 21:09:05 +0300 |
commit | 883d5720994852248f18cb3053dc9f053f28d6f9 (patch) | |
tree | 409c976ddc659f34afaae3b2e97f1d0325f6455c /app/assets/javascripts/members | |
parent | 5e97da08cba997aefba6f6d13850f95536a80477 (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 | 25 | ||||
-rw-r--r-- | app/assets/javascripts/members/guest_overage_confirm_action.js | 3 |
2 files changed, 24 insertions, 4 deletions
diff --git a/app/assets/javascripts/members/components/table/role_dropdown.vue b/app/assets/javascripts/members/components/table/role_dropdown.vue index 6cd8bf57313..daf5e95e6ef 100644 --- a/app/assets/javascripts/members/components/table/role_dropdown.vue +++ b/app/assets/javascripts/members/components/table/role_dropdown.vue @@ -2,7 +2,9 @@ import { GlDropdown, GlDropdownItem } from '@gitlab/ui'; import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils'; import { mapActions } from 'vuex'; +import * as Sentry from '@sentry/browser'; import { s__ } from '~/locale'; +import { guestOverageConfirmAction } from 'ee_else_ce/members/guest_overage_confirm_action'; export default { name: 'RoleDropdown', @@ -50,22 +52,37 @@ export default { return dispatch(`${this.namespace}/updateMemberRole`, payload); }, }), - handleSelect(value, name) { - if (value === this.member.accessLevel.integerValue) { + async handleOverageConfirm(currentAccessLevel, value) { + return guestOverageConfirmAction({ + currentAccessIntValue: currentAccessLevel, + dropdownIntValue: value, + }); + }, + async handleSelect(value, name) { + const currentAccessLevel = this.member.accessLevel.integerValue; + if (value === currentAccessLevel) { return; } this.busy = true; + const confirmed = await this.handleOverageConfirm(currentAccessLevel, value); + if (!confirmed) { + this.busy = false; + return; + } + this.updateMemberRole({ memberId: this.member.id, accessLevel: { integerValue: value, stringValue: name }, }) .then(() => { this.$toast.show(s__('Members|Role updated successfully.')); - this.busy = false; }) - .catch(() => { + .catch((error) => { + Sentry.captureException(error); + }) + .finally(() => { this.busy = false; }); }, diff --git a/app/assets/javascripts/members/guest_overage_confirm_action.js b/app/assets/javascripts/members/guest_overage_confirm_action.js new file mode 100644 index 00000000000..2205c3ad792 --- /dev/null +++ b/app/assets/javascripts/members/guest_overage_confirm_action.js @@ -0,0 +1,3 @@ +export const guestOverageConfirmAction = () => { + return true; +}; |