diff --git a/app/assets/javascripts/admin/broadcast_messages/components/base.vue b/app/assets/javascripts/admin/broadcast_messages/components/base.vue index 2eb77eff138..ffdf74bade3 100644 --- a/app/assets/javascripts/admin/broadcast_messages/components/base.vue +++ b/app/assets/javascripts/admin/broadcast_messages/components/base.vue @@ -89,17 +89,22 @@ export default { closeAddForm() { this.showAddForm = false; }, + setVisibleMessages({ index, message, value }) { + const copy = [...this.visibleMessages]; + copy[index] = { ...message, disable_delete: value }; + this.visibleMessages = copy; + }, async deleteMessage(messageId) { const index = this.visibleMessages.findIndex((m) => m.id === messageId); if (!index === -1) return; const message = this.visibleMessages[index]; - this.$set(this.visibleMessages, index, { ...message, disable_delete: true }); + this.setVisibleMessages({ index, message, value: true }); try { await axios.delete(message.delete_path); } catch (e) { - this.$set(this.visibleMessages, index, { ...message, disable_delete: false }); + this.setVisibleMessages({ index, message, value: false }); createAlert({ message: this.$options.i18n.deleteError, variant: VARIANT_DANGER }); return; } diff --git a/app/assets/javascripts/ci/admin/jobs_table/admin_jobs_table_app.vue b/app/assets/javascripts/ci/admin/jobs_table/admin_jobs_table_app.vue index 55ff647e25f..61a619580c1 100644 --- a/app/assets/javascripts/ci/admin/jobs_table/admin_jobs_table_app.vue +++ b/app/assets/javascripts/ci/admin/jobs_table/admin_jobs_table_app.vue @@ -7,6 +7,7 @@ import JobsTableTabs from '~/ci/jobs_page/components/jobs_table_tabs.vue'; import JobsFilteredSearch from '~/ci/common/private/jobs_filtered_search/app.vue'; import JobsTableEmptyState from '~/ci/jobs_page/components/jobs_table_empty_state.vue'; import { createAlert } from '~/alert'; +import { InternalEvents } from '~/tracking'; import { TOKEN_TYPE_STATUS, TOKEN_TYPE_JOBS_RUNNER_TYPE, @@ -19,6 +20,7 @@ import { JOBS_FETCH_ERROR_MSG, LOADING_ARIA_LABEL, CANCELABLE_JOBS_ERROR_MSG, + VIEW_ADMIN_JOBS_PAGELOAD, } from './constants'; import JobsSkeletonLoader from './components/jobs_skeleton_loader.vue'; import GetAllJobs from './graphql/queries/get_all_jobs.query.graphql'; @@ -44,7 +46,7 @@ export default { GlIntersectionObserver, GlLoadingIcon, }, - mixins: [glFeatureFlagsMixin()], + mixins: [glFeatureFlagsMixin(), InternalEvents.mixin()], inject: { jobStatuses: { default: null, @@ -155,6 +157,9 @@ export default { this.count = newCount; }, }, + mounted() { + this.trackEvent(VIEW_ADMIN_JOBS_PAGELOAD); + }, methods: { updateHistoryAndFetchCount(filterParams = {}) { this.$apollo.queries.jobsCount.refetch(filterParams); diff --git a/app/assets/javascripts/ci/admin/jobs_table/constants.js b/app/assets/javascripts/ci/admin/jobs_table/constants.js index 015749a2f59..9b09bfe7a55 100644 --- a/app/assets/javascripts/ci/admin/jobs_table/constants.js +++ b/app/assets/javascripts/ci/admin/jobs_table/constants.js @@ -30,3 +30,4 @@ export const DEFAULT_FIELDS_ADMIN = [ ]; export const RAW_TEXT_WARNING_ADMIN = RAW_TEXT_WARNING; +export const VIEW_ADMIN_JOBS_PAGELOAD = 'view_admin_jobs_pageload'; diff --git a/app/assets/javascripts/observability/components/observability_no_data_empty_state.vue b/app/assets/javascripts/observability/components/observability_no_data_empty_state.vue new file mode 100644 index 00000000000..6d3d07246c1 --- /dev/null +++ b/app/assets/javascripts/observability/components/observability_no_data_empty_state.vue @@ -0,0 +1,24 @@ + + + diff --git a/app/assets/javascripts/observability/components/observability_empty_state.vue b/app/assets/javascripts/observability/components/observability_not_enabled_empty_state.vue similarity index 100% rename from app/assets/javascripts/observability/components/observability_empty_state.vue rename to app/assets/javascripts/observability/components/observability_not_enabled_empty_state.vue diff --git a/app/assets/javascripts/observability/components/provisioned_observability_container.vue b/app/assets/javascripts/observability/components/provisioned_observability_container.vue index 95ffd54fd1d..79b794b96bd 100644 --- a/app/assets/javascripts/observability/components/provisioned_observability_container.vue +++ b/app/assets/javascripts/observability/components/provisioned_observability_container.vue @@ -3,12 +3,12 @@ import { GlLoadingIcon } from '@gitlab/ui'; import ObservabilityContainer from '~/observability/components/observability_container.vue'; import { s__ } from '~/locale'; import { createAlert } from '~/alert'; -import ObservabilityEmptyState from './observability_empty_state.vue'; +import ObservabilityNotEnabledEmptyState from './observability_not_enabled_empty_state.vue'; export default { components: { ObservabilityContainer, - ObservabilityEmptyState, + ObservabilityNotEnabledEmptyState, GlLoadingIcon, }, props: { @@ -85,7 +85,7 @@ export default {