diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-30 00:09:49 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-30 00:09:49 +0300 |
commit | bfa7e92562904b670404e3ad8de5cac725240cd5 (patch) | |
tree | 92d76e8b308200762bf8a9b668dfa5ca211122b2 /app/assets/javascripts/error_tracking | |
parent | f0b765b425efe1f60732854bcf5c2609e1e254ed (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/error_tracking')
5 files changed, 49 insertions, 37 deletions
diff --git a/app/assets/javascripts/error_tracking/components/error_details.vue b/app/assets/javascripts/error_tracking/components/error_details.vue index ccadf940fe3..9f054b94de7 100644 --- a/app/assets/javascripts/error_tracking/components/error_details.vue +++ b/app/assets/javascripts/error_tracking/components/error_details.vue @@ -13,7 +13,6 @@ import { import { mapActions, mapGetters, mapState } from 'vuex'; import { createAlert, VARIANT_WARNING } from '~/alert'; import { __, sprintf, n__ } from '~/locale'; -import Tracking from '~/tracking'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue'; import query from '../queries/details.query.graphql'; @@ -69,6 +68,10 @@ export default { type: String, required: true, }, + integratedErrorTrackingEnabled: { + type: Boolean, + required: true, + }, }, apollo: { error: { @@ -188,8 +191,7 @@ export default { ]), createIssue() { this.issueCreationInProgress = true; - const { category, action } = trackCreateIssueFromError; - Tracking.event(category, action); + trackCreateIssueFromError(this.integratedErrorTrackingEnabled); this.$refs.sentryIssueForm.submit(); }, onIgnoreStatusUpdate() { @@ -224,12 +226,10 @@ export default { } }, trackPageViews() { - const { category, action } = trackErrorDetailsViewsOptions; - Tracking.event(category, action); + trackErrorDetailsViewsOptions(this.integratedErrorTrackingEnabled); }, trackStatusUpdate(status) { - const { category, action } = trackErrorStatusUpdateOptions(status); - Tracking.event(category, action); + trackErrorStatusUpdateOptions(status, this.integratedErrorTrackingEnabled); }, }, }; diff --git a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue index 3685d2c0f1e..23783bb7bb1 100644 --- a/app/assets/javascripts/error_tracking/components/error_tracking_list.vue +++ b/app/assets/javascripts/error_tracking/components/error_tracking_list.vue @@ -20,7 +20,6 @@ import { mapActions, mapState } from 'vuex'; import { helpPagePath } from '~/helpers/help_page_helper'; import AccessorUtils from '~/lib/utils/accessor'; import { __ } from '~/locale'; -import Tracking from '~/tracking'; import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue'; import { sanitizeUrl } from '~/lib/utils/url_utility'; import { @@ -116,6 +115,10 @@ export default { type: Boolean, required: true, }, + integratedErrorTrackingEnabled: { + type: Boolean, + required: true, + }, illustrationPath: { type: String, required: true, @@ -241,13 +244,11 @@ export default { }, filterErrors(status, label) { this.filterValue = label; - const { category, action } = trackErrorStatusFilterOptions(status); - Tracking.event(category, action); + trackErrorStatusFilterOptions(status, this.integratedErrorTrackingEnabled); return this.filterByStatus(status); }, sortErrorsByField(field) { - const { category, action } = trackErrorSortedByField(field); - Tracking.event(category, action); + trackErrorSortedByField(field, this.integratedErrorTrackingEnabled); return this.sortByField(field); }, updateErrosStatus({ errorId, status }) { @@ -262,12 +263,10 @@ export default { this.removeIgnoredResolvedErrors(errorId); }, trackPageViews() { - const { category, action } = trackErrorListViewsOptions; - Tracking.event(category, action); + trackErrorListViewsOptions(this.integratedErrorTrackingEnabled); }, trackStatusUpdate(status) { - const { category, action } = trackErrorStatusUpdateOptions(status); - Tracking.event(category, action); + trackErrorStatusUpdateOptions(status, this.integratedErrorTrackingEnabled); }, }, }; diff --git a/app/assets/javascripts/error_tracking/details.js b/app/assets/javascripts/error_tracking/details.js index 37b8007d556..04bb50ab733 100644 --- a/app/assets/javascripts/error_tracking/details.js +++ b/app/assets/javascripts/error_tracking/details.js @@ -2,6 +2,7 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; import csrf from '~/lib/utils/csrf'; +import { parseBoolean } from '~/lib/utils/common_utils'; import ErrorDetails from './components/error_details.vue'; import store from './store'; @@ -19,6 +20,9 @@ export default () => { projectIssuesPath, } = domEl.dataset; + let { integratedErrorTrackingEnabled } = domEl.dataset; + integratedErrorTrackingEnabled = parseBoolean(integratedErrorTrackingEnabled); + const apolloProvider = new VueApollo({ defaultClient: createDefaultClient(), }); @@ -40,6 +44,7 @@ export default () => { issueStackTracePath, projectIssuesPath, csrfToken: csrf.token, + integratedErrorTrackingEnabled, }, }); }, diff --git a/app/assets/javascripts/error_tracking/events_tracking.js b/app/assets/javascripts/error_tracking/events_tracking.js index aaef274d0cd..eb38fe6542b 100644 --- a/app/assets/javascripts/error_tracking/events_tracking.js +++ b/app/assets/javascripts/error_tracking/events_tracking.js @@ -1,5 +1,15 @@ +import Tracking from '~/tracking'; + const category = 'Error Tracking'; // eslint-disable-line @gitlab/require-i18n-strings +function sendTrackingEvents(action, integrated) { + Tracking.event(category, action, { + extra: { + variant: integrated ? 'integrated' : 'external', + }, + }); +} + /** * Tracks snowplow event when User clicks on error link to Sentry * @param {String} externalUrl that will be send as a property for the event @@ -14,47 +24,42 @@ export const trackClickErrorLinkToSentryOptions = (url) => ({ /** * Tracks snowplow event when user views error list */ -export const trackErrorListViewsOptions = { - category, - action: 'view_errors_list', + +export const trackErrorListViewsOptions = (integrated) => { + sendTrackingEvents('view_errors_list', integrated); }; /** * Tracks snowplow event when user views error details */ -export const trackErrorDetailsViewsOptions = { - category, - action: 'view_error_details', +export const trackErrorDetailsViewsOptions = (integrated) => { + sendTrackingEvents('view_error_details', integrated); }; /** * Tracks snowplow event when error status is updated */ -export const trackErrorStatusUpdateOptions = (status) => ({ - category, - action: `update_${status}_status`, -}); +export const trackErrorStatusUpdateOptions = (status, integrated) => { + sendTrackingEvents(`update_${status}_status`, integrated); +}; /** * Tracks snowplow event when error list is filter by status */ -export const trackErrorStatusFilterOptions = (status) => ({ - category, - action: `filter_${status}_status`, -}); +export const trackErrorStatusFilterOptions = (status, integrated) => { + sendTrackingEvents(`filter_${status}_status`, integrated); +}; /** * Tracks snowplow event when error list is sorted by field */ -export const trackErrorSortedByField = (field) => ({ - category, - action: `sort_by_${field}`, -}); +export const trackErrorSortedByField = (field, integrated) => { + sendTrackingEvents(`sort_by_${field}`, integrated); +}; /** * Tracks snowplow event when the Create Issue button is clicked */ -export const trackCreateIssueFromError = { - category, - action: 'click_create_issue_from_error', +export const trackCreateIssueFromError = (integrated) => { + sendTrackingEvents('click_create_issue_from_error', integrated); }; diff --git a/app/assets/javascripts/error_tracking/list.js b/app/assets/javascripts/error_tracking/list.js index 8b2086e1522..9805aed681d 100644 --- a/app/assets/javascripts/error_tracking/list.js +++ b/app/assets/javascripts/error_tracking/list.js @@ -18,10 +18,12 @@ export default () => { errorTrackingEnabled, userCanEnableErrorTracking, showIntegratedTrackingDisabledAlert, + integratedErrorTrackingEnabled, } = domEl.dataset; errorTrackingEnabled = parseBoolean(errorTrackingEnabled); userCanEnableErrorTracking = parseBoolean(userCanEnableErrorTracking); + integratedErrorTrackingEnabled = parseBoolean(integratedErrorTrackingEnabled); showIntegratedTrackingDisabledAlert = parseBoolean(showIntegratedTrackingDisabledAlert); // eslint-disable-next-line no-new @@ -42,6 +44,7 @@ export default () => { projectPath, listPath, showIntegratedTrackingDisabledAlert, + integratedErrorTrackingEnabled, }, }); }, |