diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-20 14:18:08 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-20 14:18:08 +0300 |
commit | 5afcbe03ead9ada87621888a31a62652b10a7e4f (patch) | |
tree | 9918b67a0d0f0bafa6542e839a8be37adf73102d /app/assets/javascripts/invite_members | |
parent | c97c0201564848c1f53226fe19d71fdcc472f7d0 (diff) |
Add latest changes from gitlab-org/gitlab@16-4-stable-eev16.4.0-rc42
Diffstat (limited to 'app/assets/javascripts/invite_members')
5 files changed, 10 insertions, 147 deletions
diff --git a/app/assets/javascripts/invite_members/components/invite_members_modal.vue b/app/assets/javascripts/invite_members/components/invite_members_modal.vue index e99a61caf3f..e9d7acdc913 100644 --- a/app/assets/javascripts/invite_members/components/invite_members_modal.vue +++ b/app/assets/javascripts/invite_members/components/invite_members_modal.vue @@ -1,28 +1,14 @@ <script> -import { - GlAlert, - GlCollapsibleListbox, - GlLink, - GlSprintf, - GlFormCheckboxGroup, - GlButton, - GlCollapse, - GlIcon, -} from '@gitlab/ui'; +import { GlAlert, GlButton, GlCollapse, GlIcon } from '@gitlab/ui'; import { partition, isString, uniqueId, isEmpty } from 'lodash'; import InviteModalBase from 'ee_else_ce/invite_members/components/invite_modal_base.vue'; import Api from '~/api'; import Tracking from '~/tracking'; import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants'; import { n__, sprintf } from '~/locale'; -import { - memberName, - triggerExternalAlert, - qualifiesForTasksToBeDone, -} from 'ee_else_ce/invite_members/utils/member_utils'; +import { memberName, triggerExternalAlert } from 'ee_else_ce/invite_members/utils/member_utils'; import { USERS_FILTER_ALL, - INVITE_MEMBERS_FOR_TASK, MEMBER_MODAL_LABELS, INVITE_MEMBER_MODAL_TRACKING_CATEGORY, } from '../constants'; @@ -41,10 +27,6 @@ export default { name: 'InviteMembersModal', components: { GlAlert, - GlLink, - GlCollapsibleListbox, - GlSprintf, - GlFormCheckboxGroup, GlButton, GlCollapse, GlIcon, @@ -56,7 +38,6 @@ export default { import('ee_component/invite_members/components/active_trial_notification.vue'), }, mixins: [Tracking.mixin({ category: INVITE_MEMBER_MODAL_TRACKING_CATEGORY })], - inject: ['newProjectPath'], props: { id: { type: String, @@ -96,14 +77,6 @@ export default { required: false, default: null, }, - tasksToBeDoneOptions: { - type: Array, - required: true, - }, - projects: { - type: Array, - required: true, - }, fullPath: { type: String, required: true, @@ -131,9 +104,6 @@ export default { modalId: uniqueId('invite-members-modal-'), newUsersToInvite: [], invalidMembers: {}, - selectedTasksToBeDone: [], - selectedTaskProject: this.projects[0], - selectedTaskProjectId: this.projects[0]?.id, source: 'unknown', mode: 'default', // Kept in sync with "base" @@ -141,7 +111,6 @@ export default { errorsLimit: 2, isErrorsSectionExpanded: false, shouldShowEmptyInvitesAlert: false, - projectsForDropdown: this.projects.map((p) => ({ value: p.id, text: p.title, ...p })), }; }, computed: { @@ -170,26 +139,6 @@ export default { this.errorList.length, ); }, - tasksToBeDoneEnabled() { - return qualifiesForTasksToBeDone(this.source) && this.tasksToBeDoneOptions.length; - }, - showTasksToBeDone() { - return ( - this.tasksToBeDoneEnabled && - this.selectedAccessLevel >= INVITE_MEMBERS_FOR_TASK.minimum_access_level - ); - }, - showTaskProjects() { - return !this.isProject && this.selectedTasksToBeDone.length; - }, - tasksToBeDoneForPost() { - return this.showTasksToBeDone ? this.selectedTasksToBeDone : []; - }, - tasksProjectForPost() { - return this.showTasksToBeDone && this.selectedTasksToBeDone.length - ? this.selectedTaskProject.id - : ''; - }, showUserLimitNotification() { return !isEmpty(this.usersLimitDataset.alertVariant); }, @@ -243,10 +192,6 @@ export default { eventHub.$on('openModal', (options) => { this.openModal(options); }); - - if (this.tasksToBeDoneEnabled) { - this.openModal({ source: 'in_product_marketing_email' }); - } }, methods: { showInvalidFeedbackMessage(response) { @@ -289,8 +234,6 @@ export default { expires_at: expiresAt, access_level: accessLevel, invite_source: this.source, - tasks_to_be_done: this.tasksToBeDoneForPost, - tasks_project_id: this.tasksProjectForPost, ...email, ...userId, }; @@ -304,8 +247,6 @@ export default { return; } - this.trackInviteMembersForTask(); - const apiAddByInvite = this.isProject ? Api.inviteProjectMembers.bind(Api) : Api.inviteGroupMembers.bind(Api); @@ -317,7 +258,7 @@ export default { const { error, message } = responseFromSuccess(response); if (error) { - this.showMemberErrors(message); + this.showErrors(message); } else { this.onInviteSuccess(); } @@ -327,19 +268,18 @@ export default { this.isLoading = false; } }, - showMemberErrors(message) { - this.invalidMembers = message; - this.$refs.alerts.focus(); + showErrors(message) { + if (isString(message)) { + this.invalidFeedbackMessage = message; + } else { + this.invalidMembers = message; + this.$refs.alerts.focus(); + } }, tokenName(username) { // initial token creation hits this and nothing is found... so safe navigation return this.newUsersToInvite.find((member) => memberName(member) === username)?.name; }, - trackInviteMembersForTask() { - const label = 'selected_tasks_to_be_done'; - const property = this.selectedTasksToBeDone.join(','); - this.track(INVITE_MEMBERS_FOR_TASK.submit, { label, property }); - }, onCancel() { this.track('click_cancel', { label: this.source }); }, @@ -351,11 +291,6 @@ export default { this.isLoading = false; this.shouldShowEmptyInvitesAlert = false; this.newUsersToInvite = []; - this.selectedTasksToBeDone = []; - [this.selectedTaskProject] = this.projects; - }, - changeSelectedTaskProject(projectId) { - this.selectedTaskProject = this.projects.find((project) => project.id === projectId); }, onInviteSuccess() { this.track('invite_successful', { label: this.source }); @@ -513,46 +448,5 @@ export default { @token-remove="removeToken" /> </template> - <template #form-after> - <div v-if="showTasksToBeDone" data-testid="invite-members-modal-tasks-to-be-done"> - <label class="gl-mt-5"> - {{ $options.labels.tasksToBeDone.title }} - </label> - <template v-if="projects.length"> - <gl-form-checkbox-group - v-model="selectedTasksToBeDone" - :options="tasksToBeDoneOptions" - data-testid="invite-members-modal-tasks" - /> - <template v-if="showTaskProjects"> - <label class="gl-mt-5 gl-display-block"> - {{ $options.labels.tasksProject.title }} - </label> - <gl-collapsible-listbox - v-model="selectedTaskProjectId" - :items="projectsForDropdown" - :block="true" - class="gl-w-half gl-xs-w-full" - data-testid="invite-members-modal-project-select" - @select="changeSelectedTaskProject" - /> - </template> - </template> - <gl-alert - v-else-if="tasksToBeDoneEnabled" - variant="tip" - :dismissible="false" - data-testid="invite-members-modal-no-projects-alert" - > - <gl-sprintf :message="$options.labels.tasksToBeDone.noProjects"> - <template #link="{ content }"> - <gl-link :href="newProjectPath" target="_blank" class="gl-label-link"> - {{ content }} - </gl-link> - </template> - </gl-sprintf> - </gl-alert> - </div> - </template> </invite-modal-base> </template> diff --git a/app/assets/javascripts/invite_members/components/invite_modal_base.vue b/app/assets/javascripts/invite_members/components/invite_modal_base.vue index 91b623821dd..5a891e23faf 100644 --- a/app/assets/javascripts/invite_members/components/invite_modal_base.vue +++ b/app/assets/javascripts/invite_members/components/invite_modal_base.vue @@ -330,8 +330,6 @@ export default { :target="null" /> </gl-form-group> - - <slot name="form-after"></slot> </template> <template v-for="{ key } in extraSlots" #[key]> diff --git a/app/assets/javascripts/invite_members/constants.js b/app/assets/javascripts/invite_members/constants.js index 1cee0c32008..93386e5504b 100644 --- a/app/assets/javascripts/invite_members/constants.js +++ b/app/assets/javascripts/invite_members/constants.js @@ -5,10 +5,6 @@ export const PROJECT_SELECT_LABEL_ID = 'project-select'; export const SEARCH_DELAY = 200; export const VALID_TOKEN_BACKGROUND = 'gl-bg-green-100'; export const INVALID_TOKEN_BACKGROUND = 'gl-bg-red-100'; -export const INVITE_MEMBERS_FOR_TASK = { - minimum_access_level: 30, - submit: 'submit', -}; export const TOAST_MESSAGE_LOCALSTORAGE_KEY = 'members_invited_successfully'; export const GROUP_FILTERS = { @@ -46,15 +42,6 @@ export const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__( ); export const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username or email address'); export const MEMBERS_PLACEHOLDER = s__('InviteMembersModal|Select members or type email addresses'); -export const MEMBERS_TASKS_TO_BE_DONE_TITLE = s__( - 'InviteMembersModal|Create issues for your new team member to work on (optional)', -); -export const MEMBERS_TASKS_TO_BE_DONE_NO_PROJECTS = s__( - 'InviteMembersModal|To assign issues to a new team member, you need a project for the issues. %{linkStart}Create a project to get started.%{linkEnd}', -); -export const MEMBERS_TASKS_PROJECTS_TITLE = s__( - 'InviteMembersModal|Choose a project for the issues', -); export const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group'); export const GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT = s__( @@ -123,13 +110,6 @@ export const MEMBER_MODAL_LABELS = { }, searchField: MEMBERS_SEARCH_FIELD, placeHolder: MEMBERS_PLACEHOLDER, - tasksToBeDone: { - title: MEMBERS_TASKS_TO_BE_DONE_TITLE, - noProjects: MEMBERS_TASKS_TO_BE_DONE_NO_PROJECTS, - }, - tasksProject: { - title: MEMBERS_TASKS_PROJECTS_TITLE, - }, toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL, memberErrorListText: MEMBER_ERROR_LIST_TEXT, collapsedErrors: COLLAPSED_ERRORS, diff --git a/app/assets/javascripts/invite_members/init_invite_members_modal.js b/app/assets/javascripts/invite_members/init_invite_members_modal.js index 4f539cd8756..41ed0179364 100644 --- a/app/assets/javascripts/invite_members/init_invite_members_modal.js +++ b/app/assets/javascripts/invite_members/init_invite_members_modal.js @@ -25,7 +25,6 @@ export default (function initInviteMembersModal() { name: 'InviteMembersModalRoot', provide: { name: el.dataset.name, - newProjectPath: el.dataset.newProjectPath, }, render: (createElement) => createElement(InviteMembersModal, { @@ -34,8 +33,6 @@ export default (function initInviteMembersModal() { isProject: parseBoolean(el.dataset.isProject), accessLevels: JSON.parse(el.dataset.accessLevels), defaultAccessLevel: parseInt(el.dataset.defaultAccessLevel, 10), - tasksToBeDoneOptions: JSON.parse(el.dataset.tasksToBeDoneOptions || '[]'), - projects: JSON.parse(el.dataset.projects || '[]'), usersFilter: el.dataset.usersFilter, filterId: parseInt(el.dataset.filterId, 10), usersLimitDataset: convertObjectPropsToCamelCase( diff --git a/app/assets/javascripts/invite_members/utils/member_utils.js b/app/assets/javascripts/invite_members/utils/member_utils.js index 240a3a89686..7998cb69445 100644 --- a/app/assets/javascripts/invite_members/utils/member_utils.js +++ b/app/assets/javascripts/invite_members/utils/member_utils.js @@ -1,5 +1,3 @@ -import { getParameterValues } from '~/lib/utils/url_utility'; - export function memberName(member) { // user defined tokens(invites by email) will have email in `name` and will not contain `username` return member.username || member.name; @@ -8,7 +6,3 @@ export function memberName(member) { export function triggerExternalAlert() { return false; } - -export function qualifiesForTasksToBeDone() { - return getParameterValues('open_modal')[0] === 'invite_members_for_task'; -} |