Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-30 00:09:49 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-30 00:09:49 +0300
commitbfa7e92562904b670404e3ad8de5cac725240cd5 (patch)
tree92d76e8b308200762bf8a9b668dfa5ca211122b2 /app/assets/javascripts/error_tracking
parentf0b765b425efe1f60732854bcf5c2609e1e254ed (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/error_tracking')
-rw-r--r--app/assets/javascripts/error_tracking/components/error_details.vue14
-rw-r--r--app/assets/javascripts/error_tracking/components/error_tracking_list.vue17
-rw-r--r--app/assets/javascripts/error_tracking/details.js5
-rw-r--r--app/assets/javascripts/error_tracking/events_tracking.js47
-rw-r--r--app/assets/javascripts/error_tracking/list.js3
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,
},
});
},