diff --git a/.sonarcloud.properties b/.sonarcloud.properties index 1e778a1e016e..3f096b61189f 100644 --- a/.sonarcloud.properties +++ b/.sonarcloud.properties @@ -7,7 +7,7 @@ sonar.projectName=manager sonar.sources=. sonar.sourceEncoding=UTF-8 sonar.ws.timeout=60 -sonar.projectVersion=radon-sheep-6 +sonar.projectVersion=neptunium-wildebeest sonar.exclusions=node_modules/**, **/node_modules/**, **/dist/**, **/semantic/**, **/coverage/**, **/static/**, **/mock/**, **/mockServiceWorker.js sonar.coverage.exclusions=**/*.spec.js diff --git a/packages/manager/apps/dedicated/CHANGELOG.md b/packages/manager/apps/dedicated/CHANGELOG.md index 9221775b497b..3f4ae32e244d 100644 --- a/packages/manager/apps/dedicated/CHANGELOG.md +++ b/packages/manager/apps/dedicated/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [19.63.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-dedicated@19.62.2...@ovh-ux/manager-dedicated@19.63.0) (2024-10-29) + + +### Bug Fixes + +* **dedicated-cloud:** replace description by name in breadcrumb ([#13249](https://github.com/ovh/manager/issues/13249)) ([b1d1b3a](https://github.com/ovh/manager/commit/b1d1b3a2ceeda15462f28620dc7a789ac0edc92e)) + + +### Features + +* **dedicated.ip:** navigate user to api console ([#12236](https://github.com/ovh/manager/issues/12236)) ([4df8cb5](https://github.com/ovh/manager/commit/4df8cb5530b0bd280773740ad540b7f29c482c23)) +* **dedicated:** modify the delay message for order confirmation ([#12560](https://github.com/ovh/manager/issues/12560)) ([7fdb3e5](https://github.com/ovh/manager/commit/7fdb3e5078ea921b2bba39bd562277281f507550)) + + + + + ## [19.62.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-dedicated@19.62.1...@ovh-ux/manager-dedicated@19.62.2) (2024-10-24) diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dashboard/dedicatedCloud-datacenter-dashboard.controller.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dashboard/dedicatedCloud-datacenter-dashboard.controller.js index f526dfe15fda..8d5d11ec679e 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dashboard/dedicatedCloud-datacenter-dashboard.controller.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dashboard/dedicatedCloud-datacenter-dashboard.controller.js @@ -88,12 +88,6 @@ export default class { datacenterId: this.datacenter.model.id, destinationId, value, - }).result.then((newValue) => { - if (contextTitle === 'dedicatedCloud_datacenter_name') { - this.datacenter.model.name = newValue; - } else { - this.datacenter.model.description = newValue; - } }); } } diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.controller.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.controller.js index 4fc61ea1de35..afe101dc036c 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.controller.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.controller.js @@ -23,8 +23,6 @@ export default class { 'dedicatedCloud_dashboard_nameModifying_success', ), value, - }).result.then((newDescription) => { - this.dedicatedCloud.description = newDescription; - }); + }).result; } } diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js index 4eb065062914..035a50eaf41c 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js @@ -10,7 +10,6 @@ import isUndefined from 'lodash/isUndefined'; import set from 'lodash/set'; import snakeCase from 'lodash/snakeCase'; import some from 'lodash/some'; -import toNumber from 'lodash/toNumber'; import { DEDICATED_CLOUD_CONSTANTS, @@ -344,59 +343,18 @@ class DedicatedCloudService { ); } - getDatacenterInformations(serviceName, datacenterId, forceRefresh) { - return this.OvhHttp.get( - '/sws/dedicatedCloud/{serviceName}/datacenters/{datacenterId}', - { - rootPath: '2api', - urlParams: { - serviceName, - datacenterId, - }, - cache: 'SUB_DATACENTERS', - clearCache: forceRefresh, - }, - ); - } - - updateDatacenterName(serviceName, datacenterId, name) { - return this.OvhHttp.put( - '/dedicatedCloud/{serviceName}/datacenter/{datacenterId}', - { - rootPath: 'apiv6', - urlParams: { - serviceName, - datacenterId, - }, - data: { - name, - }, - }, - ); + getDatacenterInformations(serviceName, datacenterId) { + return this.$http + .get(`/sws/dedicatedCloud/${serviceName}/datacenters/${datacenterId}`, { + serviceType: 'aapi', + }) + .then(({ data }) => data); } - updateDatacenterDescription(serviceName, datacenterId, description) { - return this.OvhHttp.put( - '/dedicatedCloud/{serviceName}/datacenter/{datacenterId}', - { - rootPath: 'apiv6', - urlParams: { - serviceName, - datacenterId, - }, - data: { - description, - }, - broadcast: 'global_display_name_change', - broadcastParam: { - stateParams: { - productId: serviceName, - datacenterId: toNumber(datacenterId), - }, - displayName: description, - }, - }, - ); + updateDatacenterData(serviceName, datacenterId, data) { + return this.$http + .put(`/dedicatedCloud/${serviceName}/datacenter/${datacenterId}`, data) + .then(({ data: result }) => result); } /* ------- SUB DATACENTER HOSTS -------*/ diff --git a/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.controller.js b/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.controller.js index b9ed3cbcdba4..c2075eab0e06 100644 --- a/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.controller.js +++ b/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.controller.js @@ -4,19 +4,52 @@ angular.module('App').controller( 'NameEditionCtrl', class NameEditionCtrl { /* @ngInject */ - constructor($translate, $uibModalInstance, Alerter, DedicatedCloud, data) { + constructor( + $translate, + $interval, + $state, + $uibModalInstance, + Alerter, + DedicatedCloud, + data, + ) { this.$translate = $translate; + this.$interval = $interval; + this.$state = $state; this.$uibModalInstance = $uibModalInstance; this.Alerter = Alerter; this.DedicatedCloud = DedicatedCloud; this.data = data; + this.$poll = null; + } + + pollTask(taskId) { + this.$poll = this.$interval(() => { + this.DedicatedCloud.getOperation(this.data.productId, { + taskId, + }) + .then(({ state }) => { + if (state === 'done') { + this.stopPollTask(); + this.$state.reload(); + } + }) + .catch(this.stopPollTask); + }, 3000); + } + + stopPollTask() { + if (this.$poll) { + this.$interval.cancel(this.$poll); + this.$poll = null; + } } updateDescription() { this.updating = true; return this.updateName() - .then(() => { + .then((data) => { if (this.data.successText) { this.Alerter.success( this.data.successText, @@ -25,6 +58,9 @@ angular.module('App').controller( } this.$uibModalInstance.close(this.newValue); + if (data?.taskId) { + this.pollTask(data.taskId); + } }) .catch((err) => { const message = this.$translate.instant( @@ -59,21 +95,15 @@ angular.module('App').controller( ); break; case 'dedicatedCloud_datacenter_name': - this.modalContextTitle = 'dedicatedCloud_datacenter_name'; - this.updateName = () => - this.DedicatedCloud.updateDatacenterName( - this.data.productId, - this.data.datacenterId, - this.newValue, - ); - break; case 'dedicatedCloud_datacenter_description': - this.modalContextTitle = 'dedicatedCloud_datacenter_description'; + this.modalContextTitle = this.data.contextTitle; this.updateName = () => - this.DedicatedCloud.updateDatacenterDescription( + this.DedicatedCloud.updateDatacenterData( this.data.productId, this.data.datacenterId, - this.newValue, + this.modalContextTitle.endsWith('name') + ? { name: this.newValue } + : { description: this.newValue }, ); break; default: @@ -82,5 +112,9 @@ angular.module('App').controller( break; } } + + $onDestroy() { + this.stopPollTask(); + } }, ); diff --git a/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.html b/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.html index 94a9078fcba0..b95154d453a1 100644 --- a/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.html +++ b/packages/manager/apps/dedicated/client/app/components/name-edition/name-edition.html @@ -2,7 +2,7 @@
{ ...backup, datacenterId: datacenter.id, datacenterName: - datacenter.description || - datacenter.displayName || - datacenter.id.toString(), + datacenter.displayName || datacenter.id.toString(), }), ), ), diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js index 03fc4f479c5a..273da711b52f 100644 --- a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js @@ -13,7 +13,6 @@ export default /* @ngInject */ ($stateProvider) => { DedicatedCloud.getDatacenterInformations( serviceName, datacenterId, - true, ).then((datacenter) => ({ model: { ...datacenter, @@ -58,7 +57,7 @@ export default /* @ngInject */ ($stateProvider) => { 'dedicatedCloudDatacenterAlert', ); }, - breadcrumb: /* @ngInject */ (datacenterId) => datacenterId, + breadcrumb: /* @ngInject */ (datacenter) => datacenter.model.name, }, }); }; diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_de_DE.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_de_DE.json index f4ff1bab687a..d4fae0361ddf 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_de_DE.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_de_DE.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - dass dieser IP-Adressbereich eine gute Reputation hat.", "ip_byoip_disclaimer_confirm_text": "Bestätigen", "ip_byoip_disclaimer_cancel_text": "Abbrechen", - "ip_byoip_disclaimer_ordering_delay_message": "Bitte beachten Sie, dass dieser Prozess bis zu zwei Wochen in Anspruch nehmen kann. Wir entschuldigen uns für die Unannehmlichkeiten." + "ip_byoip_disclaimer_ordering_delay_message": "Bitte beachten Sie, dass dieser Vorgang ungefähr 3 Wochen dauern kann. Wir entschuldigen uns für die Unannehmlichkeiten." } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_en_GB.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_en_GB.json index 973f3dbfbdd5..b52d3c68cde8 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_en_GB.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_en_GB.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - This IP address range has a healthy reputation.", "ip_byoip_disclaimer_confirm_text": "Confirm", "ip_byoip_disclaimer_cancel_text": "Cancel", - "ip_byoip_disclaimer_ordering_delay_message": "Please note that this process may take up to two weeks. We apologise for the inconvenience." + "ip_byoip_disclaimer_ordering_delay_message": "Please note that this process might take around three weeks. We apologise for the inconvenience." } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_es_ES.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_es_ES.json index 784615d27580..516d09a8fe7a 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_es_ES.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_es_ES.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - este rango de direcciones IP tiene una buena reputación.", "ip_byoip_disclaimer_confirm_text": "Confirmar", "ip_byoip_disclaimer_cancel_text": "Cancelar", - "ip_byoip_disclaimer_ordering_delay_message": "Tenga en cuenta que este proceso puede tardar hasta dos semanas. Rogamos disculpe las molestias ocasionadas." + "ip_byoip_disclaimer_ordering_delay_message": "Tenga en cuenta que este proceso puede tardar aproximadamente 3 semanas. Rogamos disculpe las molestias ocasionadas." } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_CA.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_CA.json index 29539affbaf5..77b03ad27050 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_CA.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_CA.json @@ -4,7 +4,7 @@ "ip_byoip_disclaimer_description_point_1": " - Être le propriétaire de la plage d'adresses IP renseignée.", "ip_byoip_disclaimer_description_point_2": " - M'engager à faire en sorte que la plage d'adresses IP renseignée ne soit pas annoncée sur Internet par plusieurs réseaux simultanément (multi-homing)", "ip_byoip_disclaimer_description_point_3": " - Avoir une réputation saine sur cette plage d'adresses IP", - "ip_byoip_disclaimer_ordering_delay_message": "Veuillez noter que ce processus peut prendre jusqu'à deux semaines. Nous vous prions de nous excuser pour ce désagrément.", + "ip_byoip_disclaimer_ordering_delay_message": "Veuillez noter que ce processus peut prendre approximativement 3 semaines. Nous vous prions de nous excuser pour ce désagrément.", "ip_byoip_disclaimer_confirm_text": "Valider", "ip_byoip_disclaimer_cancel_text": "Annuler" } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_FR.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_FR.json index 29539affbaf5..77b03ad27050 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_FR.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_fr_FR.json @@ -4,7 +4,7 @@ "ip_byoip_disclaimer_description_point_1": " - Être le propriétaire de la plage d'adresses IP renseignée.", "ip_byoip_disclaimer_description_point_2": " - M'engager à faire en sorte que la plage d'adresses IP renseignée ne soit pas annoncée sur Internet par plusieurs réseaux simultanément (multi-homing)", "ip_byoip_disclaimer_description_point_3": " - Avoir une réputation saine sur cette plage d'adresses IP", - "ip_byoip_disclaimer_ordering_delay_message": "Veuillez noter que ce processus peut prendre jusqu'à deux semaines. Nous vous prions de nous excuser pour ce désagrément.", + "ip_byoip_disclaimer_ordering_delay_message": "Veuillez noter que ce processus peut prendre approximativement 3 semaines. Nous vous prions de nous excuser pour ce désagrément.", "ip_byoip_disclaimer_confirm_text": "Valider", "ip_byoip_disclaimer_cancel_text": "Annuler" } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_it_IT.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_it_IT.json index a4db323911ef..97017e85fb14 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_it_IT.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_it_IT.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - di avere una buona reputazione su questa classe di indirizzi IP", "ip_byoip_disclaimer_confirm_text": "Conferma", "ip_byoip_disclaimer_cancel_text": "Annulla", - "ip_byoip_disclaimer_ordering_delay_message": "Questo processo potrebbe durare fino a due settimane. Ci scusiamo per l'inconveniente." + "ip_byoip_disclaimer_ordering_delay_message": "Ti ricordiamo che questo processo potrebbe richiedere circa 3 settimane. Ci scusiamo per l'inconveniente." } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pl_PL.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pl_PL.json index 0e55e1440110..d238b84dd418 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pl_PL.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pl_PL.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - wskazany zakres adresów IP posiada pozytywną reputację", "ip_byoip_disclaimer_confirm_text": "Zatwierdź", "ip_byoip_disclaimer_cancel_text": "Anuluj", - "ip_byoip_disclaimer_ordering_delay_message": "Pamiętaj, że proces ten może potrwać do dwóch tygodni. Przepraszamy za niedogodności." + "ip_byoip_disclaimer_ordering_delay_message": "Proces ten może potrwać około 3 tygodni. Przepraszamy za niedogodności." } diff --git a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pt_PT.json b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pt_PT.json index fa9a0dcc870c..e96726c1e0b0 100644 --- a/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pt_PT.json +++ b/packages/manager/apps/dedicated/client/app/ip/byoip/disclaimer/translations/Messages_pt_PT.json @@ -6,5 +6,5 @@ "ip_byoip_disclaimer_description_point_3": " - Ter boa reputação neste intervalo de endereços IP.", "ip_byoip_disclaimer_confirm_text": "Validar", "ip_byoip_disclaimer_cancel_text": "Anular", - "ip_byoip_disclaimer_ordering_delay_message": "Tenha em conta que este processo pode levar até duas semanas. Pedimos desculpa pelo incómodo." + "ip_byoip_disclaimer_ordering_delay_message": "Tenha em conta que este processo pode demorar cerca de 3 semanas. Pedimos desculpa pelo incómodo." } diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/constants.js b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/constants.js index ed9ba4356d24..d04c04b88a55 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/constants.js +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/constants.js @@ -42,9 +42,12 @@ export const BYOIP_USAGE_GUIDE_URL = { 'https://help.ovhcloud.com/csm/en-gb-network-bring-your-own-ip?id=kb_article_view&sysparm_article=KB0044849', }; +export const US_API_CONSOLE_LINK = 'https://api.us.ovhcloud.com/console/'; + export default { TRACKING_PREFIX_SLICE, TRACKING_PREFIX_AGGREGATE, BYOIP_SLICE_PARK_IT_FIRST_ERROR_REGEX, BYOIP_USAGE_GUIDE_URL, + US_API_CONSOLE_LINK, }; diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.controller.js b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.controller.js index a2a03f256c20..ee8d288c28ca 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.controller.js +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.controller.js @@ -1,3 +1,5 @@ +import { US_API_CONSOLE_LINK } from '../constants'; + export default class IpByoipDeleteController { /* @ngInject */ constructor($scope, coreURLBuilder) { @@ -11,6 +13,7 @@ export default class IpByoipDeleteController { 'dedicated', '#/billing/autorenew', ); + this.apiConsoleUrl = US_API_CONSOLE_LINK; this.cancelAction = () => { this.$scope.resetAction(); }; diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.html b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.html index fd4d82a0813d..ff420fcbe10b 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.html +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/byoip/delete/ip-ip-byoip-delete.html @@ -5,8 +5,8 @@ on-dismiss="$ctrl.cancelAction()" >

diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/list.component.js b/packages/manager/apps/dedicated/client/app/ip/components/list/list.component.js index ad0e738e0c06..19d670688c8d 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/list.component.js +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/list.component.js @@ -20,6 +20,7 @@ export default { trackPage: '<', trackingData: '<', goToStatistics: '<', + isDeleteByoipServiceAvailable: '<', }, transclude: { actions: '?ipListActions', diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/list.controller.js b/packages/manager/apps/dedicated/client/app/ip/components/list/list.controller.js index 03888044e492..8d3bdcf801be 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/list.controller.js +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/list.controller.js @@ -145,6 +145,7 @@ export default class IpListController { $scope.params = self.params || null; $scope.isAdditionalIp = self.isAdditionalIp; $scope.isAdmin = coreConfig.getUser().auth?.roles?.includes(ADMIN_ROLE); + $scope.isDeleteByoipServiceAvailable = self.isDeleteByoipServiceAvailable; $scope.tracking = { 'enable-permanent-mitigation': `${TRACKING_PREFIX}::enable-permanent-mitigation`, diff --git a/packages/manager/apps/dedicated/client/app/ip/components/list/popover/ipBlock.html b/packages/manager/apps/dedicated/client/app/ip/components/list/popover/ipBlock.html index 730b67f60a93..e577fc238730 100644 --- a/packages/manager/apps/dedicated/client/app/ip/components/list/popover/ipBlock.html +++ b/packages/manager/apps/dedicated/client/app/ip/components/list/popover/ipBlock.html @@ -117,7 +117,7 @@