diff options
Diffstat (limited to 'app/assets/javascripts/sidebar')
9 files changed, 44 insertions, 47 deletions
diff --git a/app/assets/javascripts/sidebar/components/assignees/assignee_avatar.vue b/app/assets/javascripts/sidebar/components/assignees/assignee_avatar.vue index 71a1fc31315..052bb3dcb53 100644 --- a/app/assets/javascripts/sidebar/components/assignees/assignee_avatar.vue +++ b/app/assets/javascripts/sidebar/components/assignees/assignee_avatar.vue @@ -42,6 +42,7 @@ export default { :width="imgSize" :class="`s${imgSize}`" class="avatar avatar-inline m-0" + data-qa-selector="avatar_image" /> <i v-if="hasMergeIcon" aria-hidden="true" class="fa fa-exclamation-triangle merge-icon"></i> </span> diff --git a/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue b/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue index 63b93a80ead..b107e9789a7 100644 --- a/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue +++ b/app/assets/javascripts/sidebar/components/assignees/assignee_title.vue @@ -1,6 +1,5 @@ <script> import { n__ } from '~/locale'; -import { trackEvent } from 'ee_else_ce/event_tracking/issue_sidebar'; export default { name: 'AssigneeTitle', @@ -30,22 +29,20 @@ export default { return n__('Assignee', `%d Assignees`, assignees); }, }, - methods: { - trackEdit() { - trackEvent('click_edit_button', 'assignee'); - }, - }, }; </script> <template> - <div class="title hide-collapsed"> + <div class="title hide-collapsed" data-qa-selector="assignee_title"> {{ assigneeTitle }} <i v-if="loading" aria-hidden="true" class="fa fa-spinner fa-spin block-loading"></i> <a v-if="editable" class="js-sidebar-dropdown-toggle edit-link float-right" href="#" - @click.prevent="trackEdit" + data-qa-selector="assignee_edit_link" + data-track-event="click_edit_button" + data-track-label="right_sidebar" + data-track-property="assignee" > {{ __('Edit') }} </a> diff --git a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue index 3a4623121f4..3d112bba668 100644 --- a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue +++ b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue @@ -85,7 +85,12 @@ export default { </div> </div> <div v-if="renderShowMoreSection" class="user-list-more"> - <button type="button" class="btn-link" @click="toggleShowLess"> + <button + type="button" + class="btn-link" + data-qa-selector="more_assignees_link" + @click="toggleShowLess" + > <template v-if="showLess"> {{ hiddenAssigneesLabel }} </template> diff --git a/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue b/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue index 1c75b6148e8..5b3c3642290 100644 --- a/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue +++ b/app/assets/javascripts/sidebar/components/confidential/confidential_issue_sidebar.vue @@ -5,7 +5,7 @@ import tooltip from '~/vue_shared/directives/tooltip'; import Icon from '~/vue_shared/components/icon.vue'; import eventHub from '~/sidebar/event_hub'; import editForm from './edit_form.vue'; -import { trackEvent } from 'ee_else_ce/event_tracking/issue_sidebar'; +import recaptchaModalImplementor from '~/vue_shared/mixins/recaptcha_modal_implementor'; export default { components: { @@ -15,6 +15,7 @@ export default { directives: { tooltip, }, + mixins: [recaptchaModalImplementor], props: { isConfidential: { required: true, @@ -52,17 +53,17 @@ export default { toggleForm() { this.edit = !this.edit; }, - onEditClick() { - this.toggleForm(); - - trackEvent('click_edit_button', 'confidentiality'); - }, updateConfidentialAttribute(confidential) { this.service .update('issue', { confidential }) + .then(({ data }) => this.checkForSpam(data)) .then(() => window.location.reload()) - .catch(() => { - Flash(__('Something went wrong trying to change the confidentiality of this issue')); + .catch(error => { + if (error.name === 'SpamError') { + this.openRecaptcha(); + } else { + Flash(__('Something went wrong trying to change the confidentiality of this issue')); + } }); }, }, @@ -72,6 +73,7 @@ export default { <template> <div class="block issuable-sidebar-item confidentiality"> <div + ref="collapseIcon" v-tooltip :title="tooltipLabel" class="sidebar-collapsed-icon" @@ -86,9 +88,13 @@ export default { {{ __('Confidentiality') }} <a v-if="isEditable" + ref="editLink" class="float-right confidential-edit" href="#" - @click.prevent="onEditClick" + data-track-event="click_edit_button" + data-track-label="right_sidebar" + data-track-property="confidentiality" + @click.prevent="toggleForm" > {{ __('Edit') }} </a> @@ -113,5 +119,7 @@ export default { {{ __('This issue is confidential') }} </div> </div> + + <recaptcha-modal v-if="showRecaptcha" :html="recaptchaHTML" @close="closeRecaptcha" /> </div> </template> diff --git a/app/assets/javascripts/sidebar/components/lock/lock_issue_sidebar.vue b/app/assets/javascripts/sidebar/components/lock/lock_issue_sidebar.vue index ec2a7b93a98..c7c5e0e20f1 100644 --- a/app/assets/javascripts/sidebar/components/lock/lock_issue_sidebar.vue +++ b/app/assets/javascripts/sidebar/components/lock/lock_issue_sidebar.vue @@ -6,7 +6,6 @@ import issuableMixin from '~/vue_shared/mixins/issuable'; import Icon from '~/vue_shared/components/icon.vue'; import eventHub from '~/sidebar/event_hub'; import editForm from './edit_form.vue'; -import { trackEvent } from 'ee_else_ce/event_tracking/issue_sidebar'; export default { components: { @@ -66,11 +65,6 @@ export default { toggleForm() { this.mediator.store.isLockDialogOpen = !this.mediator.store.isLockDialogOpen; }, - onEditClick() { - this.toggleForm(); - - trackEvent('click_edit_button', 'lock_issue'); - }, updateLockedAttribute(locked) { this.mediator.service .update(this.issuableType, { @@ -114,7 +108,10 @@ export default { v-if="isEditable" class="float-right lock-edit" type="button" - @click.prevent="onEditClick" + data-track-event="click_edit_button" + data-track-label="right_sidebar" + data-track-property="lock_issue" + @click.prevent="toggleForm" > {{ __('Edit') }} </button> diff --git a/app/assets/javascripts/sidebar/components/subscriptions/subscriptions.vue b/app/assets/javascripts/sidebar/components/subscriptions/subscriptions.vue index 1f5f19d1931..ea5edb3ce3f 100644 --- a/app/assets/javascripts/sidebar/components/subscriptions/subscriptions.vue +++ b/app/assets/javascripts/sidebar/components/subscriptions/subscriptions.vue @@ -1,10 +1,10 @@ <script> import { __ } from '~/locale'; +import Tracking from '~/tracking'; import icon from '~/vue_shared/components/icon.vue'; import toggleButton from '~/vue_shared/components/toggle_button.vue'; import tooltip from '~/vue_shared/directives/tooltip'; import eventHub from '../../event_hub'; -import { trackEvent } from 'ee_else_ce/event_tracking/issue_sidebar'; const ICON_ON = 'notifications'; const ICON_OFF = 'notifications-off'; @@ -19,6 +19,7 @@ export default { icon, toggleButton, }, + mixins: [Tracking.mixin({ label: 'right_sidebar' })], props: { loading: { type: Boolean, @@ -65,7 +66,10 @@ export default { // Component event emission. this.$emit('toggleSubscription', this.id); - trackEvent('toggle_button', 'notifications', this.subscribed ? 0 : 1); + this.track('toggle_button', { + property: 'notifications', + value: this.subscribed ? 0 : 1, + }); }, onClickCollapsedIcon() { this.$emit('toggleSidebar'); diff --git a/app/assets/javascripts/sidebar/components/time_tracking/collapsed_state.vue b/app/assets/javascripts/sidebar/components/time_tracking/collapsed_state.vue index 24d5b14ded9..65ecd5be05d 100644 --- a/app/assets/javascripts/sidebar/components/time_tracking/collapsed_state.vue +++ b/app/assets/javascripts/sidebar/components/time_tracking/collapsed_state.vue @@ -1,6 +1,5 @@ <script> import { __, sprintf } from '~/locale'; -import { abbreviateTime } from '~/lib/utils/datetime_utility'; import icon from '~/vue_shared/components/icon.vue'; import tooltip from '~/vue_shared/directives/tooltip'; @@ -41,12 +40,6 @@ export default { }, }, computed: { - timeSpent() { - return this.abbreviateTime(this.timeSpentHumanReadable); - }, - timeEstimate() { - return this.abbreviateTime(this.timeEstimateHumanReadable); - }, divClass() { if (this.showComparisonState) { return 'compare'; @@ -73,11 +66,11 @@ export default { }, text() { if (this.showComparisonState) { - return `${this.timeSpent} / ${this.timeEstimate}`; + return `${this.timeSpentHumanReadable} / ${this.timeEstimateHumanReadable}`; } else if (this.showEstimateOnlyState) { - return `-- / ${this.timeEstimate}`; + return `-- / ${this.timeEstimateHumanReadable}`; } else if (this.showSpentOnlyState) { - return `${this.timeSpent} / --`; + return `${this.timeSpentHumanReadable} / --`; } else if (this.showNoTimeTrackingState) { return __('None'); } @@ -100,11 +93,6 @@ export default { return this.showNoTimeTrackingState ? __('Time tracking') : this.timeTrackedTooltipText; }, }, - methods: { - abbreviateTime(timeStr) { - return abbreviateTime(timeStr); - }, - }, }; </script> diff --git a/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue b/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue index e6f2fe2b5fc..3d96405896d 100644 --- a/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue +++ b/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue @@ -82,11 +82,7 @@ export default { data-boundary="viewport" @click="handleButtonClick" > - <icon - v-show="collapsed" - :css-classes="collapsedButtonIconClasses" - :name="collapsedButtonIcon" - /> + <icon v-show="collapsed" :class="collapsedButtonIconClasses" :name="collapsedButtonIcon" /> <span v-show="!collapsed" class="issuable-todo-inner"> {{ buttonLabel }} </span> <gl-loading-icon v-show="isActionActive" :inline="true" /> </button> diff --git a/app/assets/javascripts/sidebar/lib/sidebar_move_issue.js b/app/assets/javascripts/sidebar/lib/sidebar_move_issue.js index 110175a6779..66d1fed7d31 100644 --- a/app/assets/javascripts/sidebar/lib/sidebar_move_issue.js +++ b/app/assets/javascripts/sidebar/lib/sidebar_move_issue.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import '~/gl_dropdown'; import _ from 'underscore'; import { __ } from '~/locale'; |