diff --git a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/cluster/dashboard/dashboard.html b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/cluster/dashboard/dashboard.html index 60120194168e..b97ff9de7295 100644 --- a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/cluster/dashboard/dashboard.html +++ b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/cluster/dashboard/dashboard.html @@ -16,7 +16,9 @@ data-on-error="$ctrl.onBillingInformationError(error)" data-service-infos="$ctrl.serviceInfos" data-user="$ctrl.user" - data-tracking-prefix="{{$ctrl.trackingPrefix}}" + data-tracking-page="DedicatedServers::dedicated-server::cluster::cluster::dashboard::general-information" + data-tracking-name-suffix="cluster" + tracking-prefix="DedicatedServers::dedicated-server::cluster" > diff --git a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/nodes/node/dashboard/dashboard.routing.js b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/nodes/node/dashboard/dashboard.routing.js index ca225cbb5063..e85264c6aeab 100644 --- a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/nodes/node/dashboard/dashboard.routing.js +++ b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/clusters/nodes/node/dashboard/dashboard.routing.js @@ -282,6 +282,11 @@ export default /* @ngInject */ ($stateProvider) => { productId: serverName, }), trackingPrefix: () => 'dedicated::node::dashboard', + trackingSubscriptionPrefix: () => + 'DedicatedServers::dedicated-server::server', + trackingPage: () => + 'DedicatedServers::dedicated-server::server::server::dashboard::general-information', + trackingNameSuffix: () => 'server', trafficInformation: /* @ngInject */ ( $q, $stateParams, diff --git a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/server/dashboard/dashboard.routing.js b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/server/dashboard/dashboard.routing.js index a5aa09eb4949..5c231674d063 100644 --- a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/server/dashboard/dashboard.routing.js +++ b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/server/dashboard/dashboard.routing.js @@ -258,6 +258,11 @@ export default /* @ngInject */ ($stateProvider) => { productId: serverName, }), trackingPrefix: () => 'dedicated::server::dashboard', + trackingSubscriptionPrefix: () => + 'DedicatedServers::dedicated-server::node', + trackingPage: () => + 'DedicatedServers::dedicated-server::node::node::dashboard::general-information', + trackingNameSuffix: () => 'node', trafficInformation: /* @ngInject */ ( $q, $stateParams, diff --git a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.component.js b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.component.js index 57384dcb63ed..6e0204c9f2bb 100644 --- a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.component.js +++ b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.component.js @@ -2,7 +2,10 @@ import controller from './payment-method.controller'; import template from './payment-method.html'; export default { - bindings: {}, + bindings: { + trackingPage: '<', + trackingCategory: '<', + }, controller, name: 'ovhManagerAutoRenewPaymentMethod', template, diff --git a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.controller.js b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.controller.js index c1f343f7dc01..314b2fe127fe 100644 --- a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.controller.js +++ b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.controller.js @@ -1,9 +1,10 @@ export default class PaymentMethodController { /* @ngInject */ - constructor($http, coreURLBuilder, $filter) { + constructor($http, coreURLBuilder, $filter, atInternet) { this.$http = $http; this.coreURLBuilder = coreURLBuilder; this.$filter = $filter; + this.atInternet = atInternet; } $onInit() { @@ -35,4 +36,17 @@ export default class PaymentMethodController { '#/billing/payment/method', ); } + + trackPaymentClick() { + this.atInternet.trackClick({ + name: `hub::billing::services::listing::tile::link::${ + this.paymentMehtod ? 'edit' : 'activate' + }_services::autorenew`, + type: 'action', + page_category: this.trackingCategory, + page: { + name: this.trackingPage, + }, + }); + } } diff --git a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.html b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.html index 9e9aa1934649..67a794fa3991 100644 --- a/packages/manager/modules/billing-components/src/components/payment-method/payment-method.html +++ b/packages/manager/modules/billing-components/src/components/payment-method/payment-method.html @@ -38,7 +38,11 @@

{{ 'payment_expiration_no_default_method_message' | translate}}

- + {{ !$ctrl.paymentMehtod ? 'payment_method_add_link_label': 'payment_method_update_link_label' | translate}} diff --git a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.component.js b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.component.js index e65a8afb3ac0..89f0133ee76b 100644 --- a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.component.js +++ b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.component.js @@ -6,6 +6,7 @@ export default { billingManagementAvailability: '<', service: '<', trackingPrefix: '@?', + trackingPage: '@?', getCommitmentLink: '&?', getCancelCommitmentLink: '&?', getCancelResiliationLink: '&?', diff --git a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js index 6a1b4539e55a..2f21487a1368 100644 --- a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js +++ b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js @@ -26,7 +26,6 @@ export default class ServicesActionsCtrl { } $onInit() { - this.user = this.coreConfig.getUser(); this.BillingLinksService.generateAutorenewLinks(this.service, { billingManagementAvailability: this.billingManagementAvailability, @@ -77,7 +76,17 @@ export default class ServicesActionsCtrl { } trackAction(action, hasActionInEvent = true) { - if (this.trackingPrefix) { + if (this.trackingPrefix && this.trackingPage) { + const name = `${this.trackingPrefix}::button::${action}::service`; + this.atInternet.trackClick({ + name, + type: 'action', + page_category: 'listing', + page: { + name: this.trackingPage, + }, + }); + } else if (this.trackingPrefix) { const name = hasActionInEvent ? `${this.trackingPrefix}::action::${action}` : `${this.trackingPrefix}::${action}`; diff --git a/packages/manager/modules/billing-components/src/components/subscription-tile/subscription-tile.component.js b/packages/manager/modules/billing-components/src/components/subscription-tile/subscription-tile.component.js index 8c0d2b7e761e..6d3ff0fa71e8 100644 --- a/packages/manager/modules/billing-components/src/components/subscription-tile/subscription-tile.component.js +++ b/packages/manager/modules/billing-components/src/components/subscription-tile/subscription-tile.component.js @@ -13,6 +13,8 @@ export default { goToCancelResiliation: '&', goToResiliation: '&', trackingPrefix: '@', + trackingPage: '@', + trackingNameSuffix: '@', commitImpressionData: '

@@ -127,7 +127,7 @@ class="oui-link_icon" data-ng-href="{{ $ctrl.updateLink }}" data-ng-if="$ctrl.autorenewLink && !$ctrl.serviceInfos.hasParticularRenew() && !$ctrl.serviceInfos.hasPendingResiliation() && !$ctrl.serviceInfos.hasDebt() && !$ctrl.serviceInfos.isOneShot() && !$ctrl.serviceInfos.hasForcedRenew() && !$ctrl.serviceInfos.isResiliated() && $ctrl.serviceInfos.canHandleRenew() && !$ctrl.serviceInfos.hasEngagement()" - data-ng-click="$ctrl.trackAction('go-to-configure-renew')" + data-ng-click="$ctrl.trackAction($ctrl.serviceInfos.hasAutomaticRenew() ?'edit-frequency': 'renew', !$ctrl.serviceInfos.hasAutomaticRenew())" target="_top" >

@@ -160,7 +160,7 @@ class="oui-link_icon" data-ng-href="{{ $ctrl.autorenewLink && !$ctrl.service.hasBillingRights($ctrl.user.nichandle) ? $ctrl.warningLink : $ctrl.billingLink }}" data-ng-if="$ctrl.serviceInfos.hasDebt()" - data-on-click="$ctrl.trackAction('go-to-pay-bill')" + data-ng-click="$ctrl.trackAction('go-to-pay-bill')" target="_top" >

@@ -190,7 +190,7 @@ class="oui-link_icon" data-ng-if="$ctrl.resiliateLink && ($ctrl.serviceInfos.hasAdminRights($ctrl.user.auth.account) || $ctrl.serviceInfos.hasAdminRights($ctrl.user.nichandle))" data-ng-href="{{ $ctrl.resiliateLink }}" - on-click="$ctrl.trackAction('go-to-resiliate')" + data-ng-click="$ctrl.trackAction('stop', true)" target="_top" >

@@ -218,7 +218,7 @@ class="oui-link_icon" data-ng-if="$ctrl.resiliateLink && ($ctrl.serviceInfos.hasAdminRights($ctrl.user.auth.account) || $ctrl.serviceInfos.hasAdminRights($ctrl.user.nichandle))" data-ng-href="{{ $ctrl.resiliateLink }}" - on-click="$ctrl.trackAction('go-to-resiliate')" + data-ng-click="$ctrl.trackAction('stop', true)" target="_top" >

diff --git a/packages/manager/modules/billing/src/autoRenew/agreements/user-agreements.routes.js b/packages/manager/modules/billing/src/autoRenew/agreements/user-agreements.routes.js index bd2fc549f3d8..ecf52db6ef4c 100644 --- a/packages/manager/modules/billing/src/autoRenew/agreements/user-agreements.routes.js +++ b/packages/manager/modules/billing/src/autoRenew/agreements/user-agreements.routes.js @@ -1,5 +1,9 @@ import controller from './user-agreements.controller'; import template from './user-agreements.html'; +import { + TRACKING_AGREEMENTS_PAGE_NAME, + TRACKING_PAGE_CATEGORY, +} from '../autorenew.constants'; export default /* @ngInject */ ( $stateProvider, @@ -19,6 +23,15 @@ export default /* @ngInject */ ( (currentUser) => currentUser.isTrusted && 'app.account.billing.autorenew', ), + atInternet: { + ignore: true, + }, + onEnter: /* @ngInject */ (atInternet) => { + atInternet.trackPage({ + name: TRACKING_AGREEMENTS_PAGE_NAME, + page_category: TRACKING_PAGE_CATEGORY, + }); + }, resolve: { gotoAcceptAllAgreements: /* @ngInject */ ($state, atInternet) => ( agreements, diff --git a/packages/manager/modules/billing/src/autoRenew/autorenew.constants.js b/packages/manager/modules/billing/src/autoRenew/autorenew.constants.js index f7f4252f026c..ed5d9d24eeea 100644 --- a/packages/manager/modules/billing/src/autoRenew/autorenew.constants.js +++ b/packages/manager/modules/billing/src/autoRenew/autorenew.constants.js @@ -75,6 +75,22 @@ export const SERVICE_STATUS = { export const URL_PARAMETER_SEPARATOR = '%20'; +const TRACKING_CHAPTER_1 = 'Hub'; +const TRACKING_CHAPTER_2 = 'billing'; +const TRACKING_CHAPTER_3 = 'services'; + +const TRACKING_PAGE_SUFFIX = 'services::listing::autorenew'; +export const TRACKING_PAGE_CATEGORY = 'listing'; +export const TRACKING_PAGE = `${TRACKING_CHAPTER_1}::${TRACKING_CHAPTER_2}::${TRACKING_CHAPTER_3}::${TRACKING_PAGE_SUFFIX}`; +export const TRACKING_FILTER_NAME_PREFIX = + 'Hub::billing::services::listing::button::filter_services'; + +export const TRACKING_AUTORENEW_PAGE_NAME = `Hub::billing::services::services::listing::autorenew`; +export const TRACKING_SSH_PAGE_NAME = `${TRACKING_AUTORENEW_PAGE_NAME}::ssh`; +export const TRACKING_AGREEMENTS_PAGE_NAME = `${TRACKING_AUTORENEW_PAGE_NAME}::agreements`; + +export const TRACKING_ACTIONS_PREFIX = `${TRACKING_CHAPTER_1}::${TRACKING_CHAPTER_2}::${TRACKING_CHAPTER_3}::${TRACKING_PAGE_CATEGORY}`; + export default { AUTORENEW_EVENT, CONTRACTS_IDS, diff --git a/packages/manager/modules/billing/src/autoRenew/autorenew.controller.js b/packages/manager/modules/billing/src/autoRenew/autorenew.controller.js index bbb40e667da8..161185fa93a2 100644 --- a/packages/manager/modules/billing/src/autoRenew/autorenew.controller.js +++ b/packages/manager/modules/billing/src/autoRenew/autorenew.controller.js @@ -10,6 +10,10 @@ import { COLUMNS_CONFIG, NIC_ALL, URL_PARAMETER_SEPARATOR, + TRACKING_FILTER_NAME_PREFIX, + TRACKING_PAGE_CATEGORY, + TRACKING_PAGE, + TRACKING_ACTIONS_PREFIX, } from './autorenew.constants'; export default class AutorenewCtrl { @@ -35,6 +39,10 @@ export default class AutorenewCtrl { } $onInit() { + this.trackingPage = TRACKING_PAGE; + this.trackingCategory = TRACKING_PAGE_CATEGORY; + this.trackingActionsPrefix = TRACKING_ACTIONS_PREFIX; + this.ALIGNMENT_URL = this.coreConfig.isRegion('EU') ? ALIGNMENT_URLS[this.currentUser.ovhSubsidiary] || ALIGNMENT_URLS.FR : null; @@ -86,6 +94,7 @@ export default class AutorenewCtrl { this.hideHeaderGuide = Object.keys(this.guides.url.my_services).length === 0; } + this.currentCriteria = JSON.parse(JSON.stringify(this.criteria)); } descriptionOfHeading() { @@ -198,6 +207,13 @@ export default class AutorenewCtrl { } onCriteriaChange($criteria) { + const newCriteria = $criteria.find( + (f) => + !this.currentCriteria.some( + (s) => s.property === f.property && s.value === f.value, + ), + ); + const selectedType = find($criteria, { property: 'serviceType' }); const searchText = find($criteria, { property: null }); const filters = reduce( @@ -215,6 +231,17 @@ export default class AutorenewCtrl { {}, ); + if (newCriteria) { + this.atInternet.trackClick({ + name: `${TRACKING_FILTER_NAME_PREFIX}::go-to-${newCriteria.property?.toLowerCase()}-${newCriteria.value?.toLowerCase()}::service`, + type: 'action', + page_category: TRACKING_PAGE_CATEGORY, + page: { + name: TRACKING_PAGE, + }, + }); + } + this.onListParamChanges({ filters: JSON.stringify(filters), selectedType: get(selectedType, 'value'), diff --git a/packages/manager/modules/billing/src/autoRenew/autorenew.html b/packages/manager/modules/billing/src/autoRenew/autorenew.html index 9382d7964fc9..bcd8b6868ebc 100644 --- a/packages/manager/modules/billing/src/autoRenew/autorenew.html +++ b/packages/manager/modules/billing/src/autoRenew/autorenew.html @@ -76,7 +76,11 @@

- + +
@@ -236,6 +240,8 @@ > diff --git a/packages/manager/modules/billing/src/autoRenew/autorenew.routing.js b/packages/manager/modules/billing/src/autoRenew/autorenew.routing.js index b38e9567aee5..5a58546718ac 100644 --- a/packages/manager/modules/billing/src/autoRenew/autorenew.routing.js +++ b/packages/manager/modules/billing/src/autoRenew/autorenew.routing.js @@ -5,7 +5,11 @@ import range from 'lodash/range'; import { BillingService } from '@ovh-ux/manager-models'; -import { NIC_ALL } from './autorenew.constants'; +import { + NIC_ALL, + TRACKING_AUTORENEW_PAGE_NAME, + TRACKING_PAGE_CATEGORY, +} from './autorenew.constants'; export default /* @ngInject */ ($stateProvider, coreConfigProvider) => { $stateProvider.state('app.account.billing.autorenewRedirection', { @@ -243,6 +247,15 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => { } : {}, ), + atInternet: { + ignore: true, + }, + onEnter: /* @ngInject */ (atInternet) => { + atInternet.trackPage({ + name: TRACKING_AUTORENEW_PAGE_NAME, + page_category: TRACKING_PAGE_CATEGORY, + }); + }, redirectTo: (transition) => transition .injector() diff --git a/packages/manager/modules/billing/src/autoRenew/ssh/ssh.routing.js b/packages/manager/modules/billing/src/autoRenew/ssh/ssh.routing.js index 8f37c75238b8..1eb56b9c262a 100644 --- a/packages/manager/modules/billing/src/autoRenew/ssh/ssh.routing.js +++ b/packages/manager/modules/billing/src/autoRenew/ssh/ssh.routing.js @@ -1,5 +1,9 @@ import controller from './user-ssh.controller'; import template from './user-ssh.html'; +import { + TRACKING_SSH_PAGE_NAME, + TRACKING_PAGE_CATEGORY, +} from '../autorenew.constants'; export default /* @ngInject */ ($stateProvider) => { $stateProvider.state('app.account.billing.autorenew.ssh', { @@ -7,6 +11,15 @@ export default /* @ngInject */ ($stateProvider) => { template, controller, controllerAs: 'ctrlSsh', + atInternet: { + ignore: true, + }, + onEnter: /* @ngInject */ (atInternet) => { + atInternet.trackPage({ + name: TRACKING_SSH_PAGE_NAME, + page_category: TRACKING_PAGE_CATEGORY, + }); + }, resolve: { breadcrumb: /* @ngInject */ ($translate) => $translate.instant('user_ssh_title'), diff --git a/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.component.js b/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.component.js index 911ed5bb4eef..995c3c77e7c5 100644 --- a/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.component.js +++ b/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.component.js @@ -30,6 +30,9 @@ export default { specifications: '<', technicalDetails: '<', trackingPrefix: '<', + trackingPage: '<', + trackingSubscriptionPrefix: '<', + trackingNameSuffix: '<', trafficInformation: '<', user: '<', vrackInfos: '<', diff --git a/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.html b/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.html index a3802800e0ce..61f95345c5a5 100644 --- a/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.html +++ b/packages/manager/modules/bm-server-components/src/server-dashboard/dashboard.html @@ -108,7 +108,9 @@ go-to-resiliation="$ctrl.goToResiliation()" service-infos="$ctrl.serviceInfos" highlight-engagement="$ctrl.server.shouldReengage" - tracking-prefix="{{:: 'dedicated::' + $ctrl.trackingPrefix }}" + tracking-prefix="{{ $ctrl.trackingSubscriptionPrefix }}" + data-tracking-page="{{ $ctrl.trackingPage }}" + data-tracking-name-suffix="{{ $ctrl.trackingNameSuffix }}" user="$ctrl.user" commit-impression-data="$ctrl.server.shouldReengage ? $ctrl.RECOMMIT_IMPRESSION_TRACKING_DATA : @@ -170,7 +172,9 @@ go-to-resiliation="$ctrl.goToResiliation()" service-infos="$ctrl.serviceInfos" highlight-engagement="$ctrl.server.shouldReengage" - tracking-prefix="{{:: 'dedicated::' + $ctrl.trackingPrefix }}" + tracking-prefix="{{ $ctrl.trackingSubscriptionPrefix }}" + data-tracking-page="{{ $ctrl.trackingPage }}" + data-tracking-name-suffix="{{ $ctrl.trackingNameSuffix }}" user="$ctrl.user" commit-impression-data="$ctrl.server.shouldReengage ? $ctrl.RECOMMIT_IMPRESSION_TRACKING_DATA : diff --git a/packages/manager/modules/nasha/src/dashboard/dashboard.template.html b/packages/manager/modules/nasha/src/dashboard/dashboard.template.html index 728ae204ae21..78c68646ddc8 100644 --- a/packages/manager/modules/nasha/src/dashboard/dashboard.template.html +++ b/packages/manager/modules/nasha/src/dashboard/dashboard.template.html @@ -143,7 +143,9 @@ service-infos="$ctrl.serviceInfo" service-path="{{:: $ctrl.nashaApiUrl }}" with-engagement="$ctrl.isCommitmentAvailable" - tracking-prefix="nasha::dashboard" + tracking-prefix="Storage_backup::storage_backup::nasha" + data-tracking-page="Storage_backup::storage_backup::nasha::nasha::dashboard::general-information" + data-tracking-name-suffix="nasha" commit-impression-data=":: $ctrl.shouldReengage() ? $ctrl.RECOMMIT_IMPRESSION_TRACKING_DATA : $ctrl.COMMIT_IMPRESSION_TRACKING_DATA" diff --git a/packages/manager/modules/netapp/src/dashboard/index/template.html b/packages/manager/modules/netapp/src/dashboard/index/template.html index 9b4c948986e1..a991ebf949b7 100644 --- a/packages/manager/modules/netapp/src/dashboard/index/template.html +++ b/packages/manager/modules/netapp/src/dashboard/index/template.html @@ -194,7 +194,9 @@ on-error="$ctrl.onBillingInformationError(error)" service-path="{{ ::'/storage/netapp/' + $ctrl.storage.id }}" with-engagement="$ctrl.isCommitmentAvailable" - tracking-prefix="netapp::dashboard" + tracking-prefix="Storage_backup::storage_backup::netapp" + tracking-page="Storage_backup::storage_backup::netapp::netapp::dashboard::general-information" + tracking-name-suffix="netapp" commit-impression-data=":: $ctrl.commitImpressionData" > diff --git a/packages/manager/modules/nutanix/src/dashboard/general-info/template.html b/packages/manager/modules/nutanix/src/dashboard/general-info/template.html index f92bdb579c28..560babd77aa7 100644 --- a/packages/manager/modules/nutanix/src/dashboard/general-info/template.html +++ b/packages/manager/modules/nutanix/src/dashboard/general-info/template.html @@ -235,7 +235,9 @@ go-to-resiliation="$ctrl.goToResiliation()" service-infos="$ctrl.serviceInfo" user="$ctrl.user" - tracking-prefix="{{ ::$ctrl.trackingPrefix }}" + tracking-prefix="Enterprise_solutions::nutanix::nutanix" + tracking-page="Enterprise_solutions::nutanix::nutanix::nutanix::dashboard::general-information" + tracking-name-suffix="nutanix" > diff --git a/packages/manager/modules/vps/src/dashboard/vps-dashboard.controller.js b/packages/manager/modules/vps/src/dashboard/vps-dashboard.controller.js index c247d9c7abbf..fea38fae90f3 100644 --- a/packages/manager/modules/vps/src/dashboard/vps-dashboard.controller.js +++ b/packages/manager/modules/vps/src/dashboard/vps-dashboard.controller.js @@ -90,6 +90,12 @@ export default class { }); } + static getSimpleRangeName(rangeFullName) { + const rangesKeys = Object.values(RANGES).join('|'); + const [simpleRangeName] = rangeFullName.match(new RegExp(rangesKeys, 'i')); + return simpleRangeName?.toLocaleLowerCase(); + } + canBeMigrated() { return this.vpsMigration?.status === MIGRATION_STATUS.AVAILABLE; } @@ -100,6 +106,16 @@ export default class { ); } + getTrackingProductLine() { + if (this.stateVps?.model?.name) { + const model = this.constructor.getSimpleRangeName( + this.stateVps?.model?.name, + ); + return `vps_${model}`; + } + return ''; + } + getRangeCompareLink() { return ( VPS_RANGE_COMPARE_LINKS[this.coreConfig.getUser()?.ovhSubsidiary] || diff --git a/packages/manager/modules/vps/src/dashboard/vps-dashboard.html b/packages/manager/modules/vps/src/dashboard/vps-dashboard.html index b82689a59f1a..d8d46795c5ac 100644 --- a/packages/manager/modules/vps/src/dashboard/vps-dashboard.html +++ b/packages/manager/modules/vps/src/dashboard/vps-dashboard.html @@ -640,7 +640,9 @@ go-to-resiliation="$ctrl.goToResiliation()" service-infos="$ctrl.serviceInfo" highlight-engagement="$ctrl.shouldReengage" - tracking-prefix="{{ ::$ctrl.trackingPrefix }}" + tracking-prefix="{{ ::'VPS::vps::' + $ctrl.getTrackingProductLine() }}" + tracking-page="{{ 'VPS::vps::'+ $ctrl.getTrackingProductLine() + '::' + $ctrl.getTrackingProductLine() + '::dashboard::general-information' }}" + tracking-name-suffix="{{ $ctrl.getTrackingProductLine() }}" user="$ctrl.connectedUser" commit-impression-data="$ctrl.shouldReengage ? $ctrl.RECOMMIT_IMPRESSION_TRACKING_DATA : diff --git a/packages/manager/modules/web-paas/src/details/service/service.html b/packages/manager/modules/web-paas/src/details/service/service.html index cace3c3a0182..053a0b32c606 100644 --- a/packages/manager/modules/web-paas/src/details/service/service.html +++ b/packages/manager/modules/web-paas/src/details/service/service.html @@ -172,7 +172,9 @@ user="$ctrl.user" with-contact-management="false" disable-service-actions="!$ctrl.isAdmin()" - tracking-prefix="web-paas::project-dashboard" + tracking-prefix="Web_paas::web-paas::web-paas" + tracking-page="Web_paas::web-paas::web-paas::web-paas::dashboard::general-information" + tracking-name-suffix="web-paas" >