diff --git a/packages/manager/apps/dedicated/client/app/account/user/security/user-security.controller.js b/packages/manager/apps/dedicated/client/app/account/user/security/user-security.controller.js
index 15df487986aa..af8b1ba145bf 100644
--- a/packages/manager/apps/dedicated/client/app/account/user/security/user-security.controller.js
+++ b/packages/manager/apps/dedicated/client/app/account/user/security/user-security.controller.js
@@ -13,6 +13,7 @@ export default [
'UserAccount.services.doubleAuth.u2f',
'UserAccount.services.doubleAuth.backupCode',
'Alerter',
+ 'coreConfig',
function UserAccountDoubleAuthController(
$scope,
$q,
@@ -22,13 +23,18 @@ export default [
DoubleAuthU2fService,
DoubleAuthBackupCodeService,
Alerter,
+ coreConfig,
) {
+ const {
+ auth: { method: authMethod },
+ } = coreConfig.getUser();
$scope.doubleAuth = {
sms: 'disabled',
totp: 'disabled',
u2f: 'disabled',
backupCode: 'disabled',
isLoading: false,
+ isConnectionSSO: authMethod === 'provider',
};
/* ===============================
diff --git a/packages/manager/apps/dedicated/client/app/account/user/security/user-security.html b/packages/manager/apps/dedicated/client/app/account/user/security/user-security.html
index f52b598ec81e..ac961937faf3 100644
--- a/packages/manager/apps/dedicated/client/app/account/user/security/user-security.html
+++ b/packages/manager/apps/dedicated/client/app/account/user/security/user-security.html
@@ -82,22 +82,36 @@
>
+49 (0) 681 906730. Vielen Dank für Ihr Verständnis.",
"core_pcc_top_guide_11_title": "Offizielle Dokumentation zu Nutanix",
"older_interface": "Altes Kundeninterface",
- "core_pcc_top_guide_12_title": "Offizielle Dokumentation zu SAP HANA on Private Cloud"
+ "core_pcc_top_guide_12_title": "Offizielle Dokumentation zu SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "IPs die Verbindung zum vCenter erlauben"
}
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_en_GB.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_en_GB.json
index 3284b906c292..3f060c82cb6e 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_en_GB.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_en_GB.json
@@ -545,5 +545,6 @@
"common_unavailable_information": "Information unavailable",
"common_resiliate_contact_support": "To cancel this service, please call our support team on:
0333 370 0425. Thank you for choosing OVH.",
"core_pcc_top_guide_11_title": "Nutanix official documentation",
- "core_pcc_top_guide_12_title": "SAP HANA on Private Cloud official documentation"
+ "core_pcc_top_guide_12_title": "SAP HANA on Private Cloud official documentation",
+ "core_pcc_top_guide_13_title": "Authorise IPs to connect to vCenter"
}
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_es_ES.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_es_ES.json
index 906b73c931c8..ced65899a29c 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_es_ES.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_es_ES.json
@@ -545,5 +545,6 @@
"common_unavailable_information": "Información no disponible",
"common_resiliate_contact_support": "Para dar de baja este servicio, puede ponerse en contacto con nuestro Soporte en el
91 758 34 77. ¡Gracias por su comprensión!",
"core_pcc_top_guide_11_title": "Documentación oficial de Nutanix",
- "core_pcc_top_guide_12_title": "Documentación oficial de SAP HANA on Private Cloud"
+ "core_pcc_top_guide_12_title": "Documentación oficial de SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autorizar las direcciones IP a conectarse al vCenter"
}
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_CA.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_CA.json
index d2cad2a875ad..7e63c5cc6029 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_CA.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_CA.json
@@ -487,6 +487,7 @@
"core_pcc_top_guide_10_title": "Documentation officielle de NSX",
"core_pcc_top_guide_11_title": "Documentation officielle de Nutanix",
"core_pcc_top_guide_12_title": "Documentation officielle de SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autoriser des IP à se connecter au vCenter",
"sso_modal_title": "OVH - Authentification",
"sso_modal_loading": "Chargement...",
"sso_modal_user_title": "Vous étiez connecté en tant que :",
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_FR.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_FR.json
index d2cad2a875ad..7e63c5cc6029 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_FR.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_fr_FR.json
@@ -487,6 +487,7 @@
"core_pcc_top_guide_10_title": "Documentation officielle de NSX",
"core_pcc_top_guide_11_title": "Documentation officielle de Nutanix",
"core_pcc_top_guide_12_title": "Documentation officielle de SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autoriser des IP à se connecter au vCenter",
"sso_modal_title": "OVH - Authentification",
"sso_modal_loading": "Chargement...",
"sso_modal_user_title": "Vous étiez connecté en tant que :",
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_it_IT.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_it_IT.json
index 48fcc8a5b4ad..636282fe0b3c 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_it_IT.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_it_IT.json
@@ -545,5 +545,6 @@
"common_unavailable_information": "Informazione non disponibile",
"common_resiliate_contact_support": "Per disattivare questo servizio, contatta il nostro supporto tecnico al numero
02 5560 0423 o apri un ticket.",
"core_pcc_top_guide_11_title": "Documentazione ufficiale di Nutanix",
- "core_pcc_top_guide_12_title": "Documentazione ufficiale di SAP HANA on Private Cloud"
+ "core_pcc_top_guide_12_title": "Documentazione ufficiale di SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autorizzare IP a connettersi al vCenter"
}
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_pl_PL.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_pl_PL.json
index 84aa45aac6e7..840e0c09750f 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_pl_PL.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_pl_PL.json
@@ -545,5 +545,6 @@
"common_unavailable_information": "Informacja niedostępna",
"common_resiliate_contact_support": "Aby zrezygnować z tej usługi, skontaktuj się z Pomocą techniczną. Zadzwoń na numer:
71 750 02 00 i
wybierz 3. Dziękujemy za wyrozumiałość.",
"core_pcc_top_guide_11_title": "Oficjalna dokumentacja Nutanix",
- "core_pcc_top_guide_12_title": "Oficjalna dokumentacja SAP HANA on Private Cloud"
+ "core_pcc_top_guide_12_title": "Oficjalna dokumentacja SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autoryzacja adresów IP, które mogą łączyć się z vCenter"
}
diff --git a/packages/manager/apps/dedicated/client/app/common/translations/Messages_pt_PT.json b/packages/manager/apps/dedicated/client/app/common/translations/Messages_pt_PT.json
index 0c4c0737f048..c1156892727d 100644
--- a/packages/manager/apps/dedicated/client/app/common/translations/Messages_pt_PT.json
+++ b/packages/manager/apps/dedicated/client/app/common/translations/Messages_pt_PT.json
@@ -545,5 +545,6 @@
"common_unavailable_information": "Informação indisponível",
"common_resiliate_contact_support": "Para cancelar este serviço, contacte o nosso apoio ao cliente através do
+351 213 155 642. Obrigado pela sua compreensão.",
"core_pcc_top_guide_11_title": "Documentação oficial da Nutanix",
- "core_pcc_top_guide_12_title": "Documentação oficial do SAP HANA on Private Cloud"
+ "core_pcc_top_guide_12_title": "Documentação oficial do SAP HANA on Private Cloud",
+ "core_pcc_top_guide_13_title": "Autorizar endereços IP a ligar-se ao vCenter"
}
diff --git a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.controller.js b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.controller.js
index 586692e5b721..1d2b4b5878b8 100644
--- a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.controller.js
+++ b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.controller.js
@@ -31,7 +31,7 @@ export default class AgoraIpOrderCtrl {
}
getlowestPrice() {
- const plans = this.ipCatalog.filter((plan) =>
+ const plans = this.ipCatalog?.filter((plan) =>
Object.values(IP_FAILOVER_PLANCODE).includes(plan.planCode),
);
plans.forEach(
diff --git a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.service.js b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.service.js
index b6f0e5525f67..01434d5e0fe3 100644
--- a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.service.js
+++ b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ip-ip-agoraOrder.service.js
@@ -42,6 +42,7 @@ export default class IpAgoraOrder {
pricingMode = 'default',
quantity = 1,
serviceName,
+ datacenter,
}) {
const productToOrder = {
configuration,
@@ -51,6 +52,7 @@ export default class IpAgoraOrder {
productId,
quantity,
serviceName,
+ datacenter,
};
if (description) {
@@ -95,6 +97,13 @@ export default class IpAgoraOrder {
});
}
+ if (datacenter) {
+ productToOrder.configuration.push({
+ label: 'datacenter',
+ value: datacenter,
+ });
+ }
+
return productToOrder;
}
}
diff --git a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.constant.js b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.constant.js
index 44f3293a1997..5eb781b9e030 100644
--- a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.constant.js
+++ b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.constant.js
@@ -20,6 +20,10 @@ export const PRODUCT_TYPES = {
apiTypeName: 'VPS',
typeName: 'VPS',
},
+ parking: {
+ apiTypeName: 'parking',
+ typeName: 'parking',
+ },
};
export const IP_AGORA = {
@@ -67,6 +71,56 @@ export const BLOCK_ADDITIONAL_IP = 'Block Additional IP';
export { TRACKING_PREFIX, ADDITIONAL_IP, ALERT_ID, IP_FAILOVER_PLANCODE };
+export const DATACENTER_TO_COUNTRY = {
+ PAR: 'fr',
+ GRA: 'fr',
+ SBG: 'fr',
+ LIM: 'de',
+ WAW: 'pl',
+ ERI: 'uk',
+ VIN: 'us',
+ HIL: 'us',
+ BHS: 'ca',
+ SGP: 'sg',
+ SYD: 'au',
+ RBX: 'fr',
+ YYZ: 'ca',
+ YNM: 'in',
+ CR2: 'fr',
+};
+
+export const DATACENTER_TO_REGION = {
+ RBX: 'eu-west-rbx',
+ GRA: 'eu-west-gra',
+ SBG: 'eu-west-sbg',
+ PAR: 'eu-west-par',
+ CR2: 'labeu-west-1-preprod',
+ LIM: 'eu-west-lim',
+ WAW: 'eu-central-waw',
+ ERI: 'eu-west-eri',
+ BHS: 'ca-east-bhs',
+ YYZ: 'ca-east-tor',
+ SGP: 'ap-southeast-sgp',
+ SYD: 'ap-southeast-syd',
+ YNM: 'ap-south-mum',
+ VIN: 'us-east-vin',
+ HIL: 'us-west-hil',
+};
+
+export const IP_LOCATION_GROUPS_BASED_ON_DATACENTER = [
+ {
+ labels: ['APAC/CANADA', 'CANADA - ASIA'],
+ countries: ['au', 'ca', 'sg', 'in'],
+ datacenter: ['SYD', 'BHS', 'YYZ', 'YNM', 'SGP'],
+ },
+ {
+ labels: ['EUROPE'],
+ countries: ['de', 'fr', 'pl', 'uk'],
+ datacenter: ['RBX', 'GRA', 'LIM', 'CR2', 'PAR', 'SBG', 'WAW', 'ERI'],
+ },
+ { labels: ['USA'], countries: ['us'], datacenter: ['HIL', 'VIN'] },
+];
+
export default {
FETCH_PRICE_MAX_TRIES,
IP_LOCATION_GROUPS,
@@ -77,4 +131,7 @@ export default {
IP_FAILOVER_PLANCODE,
BLOCK_ADDITIONAL_IP,
ALERT_ID,
+ DATACENTER_TO_COUNTRY,
+ DATACENTER_TO_REGION,
+ IP_LOCATION_GROUPS_BASED_ON_DATACENTER,
};
diff --git a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.controller.js b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.controller.js
index a8875d1ac90d..89d64e0e815f 100644
--- a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.controller.js
+++ b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.controller.js
@@ -25,6 +25,9 @@ import {
BLOCK_ADDITIONAL_IP,
IP_FAILOVER_PLANCODE,
ALERT_ID,
+ DATACENTER_TO_COUNTRY,
+ DATACENTER_TO_REGION,
+ IP_LOCATION_GROUPS_BASED_ON_DATACENTER,
} from './ipv4.constant';
export default class AgoraIpV4OrderController {
@@ -67,6 +70,9 @@ export default class AgoraIpV4OrderController {
}
$onInit() {
+ this.catalogByLocation = [];
+ this.isParkingIp = false;
+ this.parkingIpOffers = [];
this.model = {
params: {},
selectedService: null,
@@ -111,6 +117,11 @@ export default class AgoraIpV4OrderController {
services: this.Ipv4AgoraOrder.getServices(),
})
.then((results) => {
+ results.services.push({
+ displayName: this.$translate.instant('ip_servicetype__PARK'),
+ serviceName: 'parking',
+ type: 'parking',
+ });
this.user = results.user;
this.services = results.services.map((service) => ({
...service,
@@ -152,6 +163,10 @@ export default class AgoraIpV4OrderController {
(config) => config.name === 'country',
).values;
+ const datacenterCodes = ipOffer.details.product.configurations.find(
+ (config) => config.name === 'datacenter',
+ )?.values;
+
return {
productName: ipOffer.invoiceName,
productShortName: ipOffer.invoiceName.replace(/^.*\]\s*/, ''),
@@ -162,6 +177,7 @@ export default class AgoraIpV4OrderController {
).price,
maximumQuantity,
quantities: range(1, maximumQuantity + 1),
+ datacenterCodes,
countries: countryCodes.map((countryCode) => ({
code: countryCode,
description: this.$translate.instant(
@@ -206,13 +222,15 @@ export default class AgoraIpV4OrderController {
}
request.then((region) => {
- this.model.selectedServiceRegion =
- this.model.selectedService?.type ===
- PRODUCT_TYPES.dedicatedServer.typeName
- ? this.$translate.instant(`ip_region_${region}`)
- : this.ovhManagerRegionService.getTranslatedMicroRegionLocation(
- region.toUpperCase(),
- );
+ if (region) {
+ this.model.selectedServiceRegion =
+ this.model.selectedService?.type ===
+ PRODUCT_TYPES.dedicatedServer.typeName
+ ? this.$translate.instant(`ip_region_${region}`)
+ : this.ovhManagerRegionService.getTranslatedMicroRegionLocation(
+ region.toUpperCase(),
+ );
+ }
this.loadServiceRegion = false;
});
}
@@ -237,6 +255,23 @@ export default class AgoraIpV4OrderController {
return 'USA';
}
+ static getRegionFromDatacenter(datacenter) {
+ return IP_LOCATION_GROUPS_BASED_ON_DATACENTER.find((group) =>
+ group.datacenter.includes(datacenter),
+ )?.labels;
+ }
+
+ static getCountriesFromDatacenter(selectedServiceDatacenter, ipOffers) {
+ const ipOffer = ipOffers.find((offer) => {
+ return offer.details.product.configurations
+ .find((config) => config.name === 'datacenter')
+ ?.values?.includes(selectedServiceDatacenter);
+ });
+ return ipOffer.details.product.configurations.find(
+ (config) => config.name === 'country',
+ )?.values;
+ }
+
loadPrivateCloudIpOffers(serviceName) {
const countries = this.orderableIpCountries.map((code) => {
return {
@@ -272,6 +307,40 @@ export default class AgoraIpV4OrderController {
this.trackStep(3);
}
+ onIpServiceSelection() {
+ this.isParkingIp =
+ this.model?.selectedService?.type === PRODUCT_TYPES.parking.typeName;
+ if (this.isParkingIp) {
+ this.loading.region = true;
+ this.parkingIpOffers = this.ipCatalog.filter((plan) =>
+ /^ip-v4|^ip-failover/.test(plan.planCode),
+ );
+ const DATACENTERS = this.parkingIpOffers
+ .map((ipOffer) => {
+ return ipOffer.details.product.configurations.find(
+ (config) => config.name === 'datacenter',
+ )?.values;
+ })
+ .flat();
+ const uniqueDatacenters = [...new Set(DATACENTERS)];
+ this.catalogByLocation = uniqueDatacenters.map((datacenter) => {
+ const flag =
+ datacenter === 'ERI' ? 'gb' : DATACENTER_TO_COUNTRY[datacenter];
+ return {
+ datacenter,
+ regionName: DATACENTER_TO_REGION[datacenter],
+ location: this.$translate.instant(
+ `ip_agora_ipv6_location_${DATACENTER_TO_REGION[datacenter]}`,
+ ),
+ icon: `oui-flag oui-flag_${flag}`,
+ };
+ });
+ this.loading.region = false;
+ return null;
+ }
+ return this.manageLoadIpOffers();
+ }
+
manageLoadIpOffers() {
this.trackStep(2);
this.loading.ipOffers = true;
@@ -323,23 +392,60 @@ export default class AgoraIpV4OrderController {
loadIpOffers() {
this.model.params = {};
let ipOffersPromise;
+ let failoverIpOfferDetails;
+ let blockIpOfferDetails;
this.isPrivateCloudOffer =
- get(this.model, 'selectedService.type') ===
- PRODUCT_TYPES.privateCloud.typeName;
+ this.model?.selectedService?.type === PRODUCT_TYPES.privateCloud.typeName;
if (this.isPrivateCloudOffer) {
ipOffersPromise = this.loadPrivateCloudIpOffers(
get(this.model, 'selectedService.serviceName'),
);
+ } else if (this.isParkingIp) {
+ // Country for Single IP selection in parking
+ const country = [
+ DATACENTER_TO_COUNTRY[this.model.selectedRegion.datacenter],
+ ];
+ // Multiple countries are available for block IP selection in parking and vrack
+ const countries = AgoraIpV4OrderController.getCountriesFromDatacenter(
+ this.model.selectedRegion.datacenter,
+ this.parkingIpOffers,
+ ).map((value) => value.toLowerCase());
+ const ipOfferDetails = this.parkingIpOffers.map(
+ this.createOfferDto.bind(this),
+ );
+ const ipOffersByDatacenter = AgoraIpV4OrderController.getRegionFromDatacenter(
+ this.model.selectedRegion.datacenter,
+ );
+ blockIpOfferDetails = this.filterOffer(
+ ipOfferDetails,
+ 'productShortName',
+ 'block',
+ );
+ failoverIpOfferDetails = this.filterOffer(
+ ipOfferDetails,
+ 'planCode',
+ 'failover',
+ );
+ this.failoverIpOffers = this.getOfferDetails(
+ failoverIpOfferDetails,
+ ipOffersByDatacenter,
+ country,
+ );
+ this.blockIpOffers = this.getOfferDetails(
+ blockIpOfferDetails,
+ ipOffersByDatacenter,
+ countries,
+ ).sort((a, b) => a.price.value - b.price.value);
} else {
ipOffersPromise = this.Ipv4AgoraOrder.getIpOffers(
this.user.ovhSubsidiary,
this.catalogName,
).then((ipOffers) => {
- const ipOfferDetails = ipOffers.map(this.createOfferDto.bind(this));
- let failoverIpOfferDetails;
- let blockIpOfferDetails;
+ const ipOfferDetails = ipOffers
+ .filter((plan) => /^ip-v4|^ip-failover/.test(plan.planCode))
+ .map(this.createOfferDto.bind(this));
if (this.model.selectedService.type === PRODUCT_TYPES.vps.typeName) {
failoverIpOfferDetails = ipOfferDetails
.filter(({ planCode }) => planCode.includes('failover'))
@@ -445,6 +551,13 @@ export default class AgoraIpV4OrderController {
this.model.params.selectedCountry = head(
get(this.model, 'params.selectedOffer.countries'),
);
+ } else if (this.isParkingIp) {
+ const code = DATACENTER_TO_COUNTRY[this.model.selectedRegion.datacenter];
+ this.model.params.selectedCountry = {
+ code: code.toUpperCase(),
+ description: this.$translate.instant(`country_${code.toUpperCase()}`),
+ icon: `oui-flag oui-flag_${code}`,
+ };
}
}
@@ -497,6 +610,17 @@ export default class AgoraIpV4OrderController {
serviceName: get(this.model, 'selectedService.serviceName'),
...commonProductProps,
});
+ } else if (this.isParkingIp) {
+ const { datacenter } = this.model.selectedRegion;
+ productToOrder = this.IpAgoraOrder.constructor.createProductToOrder({
+ organisation: get(
+ this.model.params,
+ 'selectedOrganisation.organisationId',
+ ),
+ ...commonProductProps,
+ country: params.selectedCountry?.code,
+ datacenter,
+ });
} else {
productToOrder = this.IpAgoraOrder.constructor.createProductToOrder({
organisation: get(
@@ -558,7 +682,8 @@ export default class AgoraIpV4OrderController {
return (
this.model.selectedService?.type === PRODUCT_TYPES.vps.typeName ||
this.model.selectedService?.type ===
- PRODUCT_TYPES.dedicatedServer.typeName
+ PRODUCT_TYPES.dedicatedServer.typeName ||
+ this.model.selectedService?.type === PRODUCT_TYPES.parking.typeName
);
}
@@ -567,7 +692,8 @@ export default class AgoraIpV4OrderController {
this.model.selectedService?.type ===
PRODUCT_TYPES.privateCloud.typeName ||
this.model.selectedService?.type ===
- PRODUCT_TYPES.dedicatedServer.typeName
+ PRODUCT_TYPES.dedicatedServer.typeName ||
+ this.model.selectedService?.type === PRODUCT_TYPES.parking.typeName
);
}
diff --git a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.html b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.html
index 576f6572f372..3c6abbddede8 100644
--- a/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.html
+++ b/packages/manager/apps/dedicated/client/app/components/ip/agoraOrder/ipv4/ipv4.html
@@ -3,7 +3,9 @@
data-current-index="$ctrl.currentStep"
data-on-finish="$ctrl.redirectToPaymentPage()"
>
+
@@ -55,17 +57,48 @@
data-translate="ip_order_noservices"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -188,71 +221,110 @@
+
+
-