diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/constants.js b/packages/manager/apps/web/client/app/components/hosting-domain-offers/constants.js index 6ddec4623374..3ef90ec57476 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/constants.js +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/constants.js @@ -13,6 +13,12 @@ export const CATEGORIES_MAP = { 'hosting-performance-2': 'PERFORMANCE', 'hosting-performance-3': 'PERFORMANCE', 'hosting-performance-4': 'PERFORMANCE', + 'hosting-free-100M': 'FREE_100M', + 'hosting-starter': 'STARTER', + 'hosting-startup': 'STARTUP', + 'hosting-agency': 'AGENCY', + 'hosting-agency-plus': 'AGENCY_PLUS', + 'hosting-agency-max': 'AGENCY_MAX', }; export const CLOUDWEB_OFFER = ['cloudweb1', 'cloudweb2', 'cloudweb3']; @@ -30,6 +36,12 @@ export const VERSION_MAP = { 'hosting-performance-2': 'PERFORMANCE_2', 'hosting-performance-3': 'PERFORMANCE_3', 'hosting-performance-4': 'PERFORMANCE_4', + 'hosting-free-100M': 'FREE_100M', + 'hosting-starter': 'STARTER', + 'hosting-startup': 'STARTUP', + 'hosting-agency': 'AGENCY', + 'hosting-agency-plus': 'AGENCY_PLUS', + 'hosting-agency-max': 'AGENCY_MAX', }; export const BADGES = { @@ -47,6 +59,18 @@ export const NEW_OFFERS_PLAN_CODES = { PERFORMANCE_4: 'hosting-performance-4', }; +export const OFFERS_PLAN_CODES = { + FREE_100M: 'hosting-free-100M', + STARTER: 'hosting-starter', + PERSO: 'hosting-perso', + STARTUP: 'hosting-startup', + PRO: 'hosting-pro', + PERFORMANCE_1: 'hosting-performance-1', + AGENCY: 'hosting-agency', + AGENCY_PLUS: 'hosting-agency-plus', + AGENCY_MAX: 'hosting-agency-max', +}; + export const WEB_CLOUD_DB_VALUES = '512MB RAM - 8GB'; export default { diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/controller.js b/packages/manager/apps/web/client/app/components/hosting-domain-offers/controller.js index 8533b3f2e7d0..9ab68fae29fb 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/controller.js +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/controller.js @@ -6,6 +6,7 @@ import { NEW_OFFERS_END_DATE, BADGES, NEW_OFFERS_PLAN_CODES, + OFFERS_PLAN_CODES, CATEGORIES_MAP, VERSION_MAP, CLOUDWEB_OFFER, @@ -15,10 +16,174 @@ import { export default class WebComponentsHostingDomainOffersController { /* @ngInject */ - constructor($translate, $filter) { + constructor($translate, $filter, ovhFeatureFlipping) { this.$translate = $translate; + this.ovhFeatureFlipping = ovhFeatureFlipping; const bytes = $filter('bytes'); + this.OFFERS = { + FREE_100M: { + TECHNICALS: [ + { prefix: 'sites', values: [1] }, + { prefix: 'disk', values: ['100 Mo SSD'] }, + { prefix: 'emailStorage', values: [1, '5 Go'] }, + ], + SELECTORS: { + FREE_100M: { + planCode: OFFERS_PLAN_CODES.FREE_100M, + }, + }, + }, + STARTER: { + TECHNICALS: [ + { prefix: 'sites', values: [1] }, + { prefix: 'nddFree', values: [1] }, + { prefix: 'emailStorage', values: [2, '5 Go'] }, + { prefix: 'disk', values: ['1 Go SSD'] }, + { prefix: 'cms', values: [] }, + ], + SELECTORS: { + STARTER: { + planCode: OFFERS_PLAN_CODES.STARTER, + }, + }, + }, + PERSO: { + TECHNICALS: [ + { prefix: 'sites', values: [5] }, + { prefix: 'nddFree', values: [1] }, + { prefix: 'emailStorage', values: [10, '5 Go'] }, + { prefix: 'disk', values: ['100 Go SSD'] }, + { prefix: 'cms', values: [] }, + ], + SELECTORS: { + PERSO: { + planCode: OFFERS_PLAN_CODES.PERSO, + }, + }, + }, + STARTUP: { + TECHNICALS: [ + { prefix: 'vcores', values: ['< 1'] }, + { prefix: 'ram', values: ['< 1 Go'] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'disk', values: ['100 Go SSD'] }, + { prefix: 'sites', values: [5] }, + { prefix: 'emailStorage', values: [10, '5 Go'] }, + { prefix: 'dbs', values: [5, '1 Go'] }, + { prefix: 'nddFree', values: [1] }, + ], + SELECTORS: { + STARTUP: { + planCode: OFFERS_PLAN_CODES.STARTUP, + }, + }, + }, + PRO: { + TECHNICALS: [ + { prefix: 'vcores', values: [1] }, + { prefix: 'ram', values: ['2 Go'] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'disk', values: ['250 Go SSD'] }, + { prefix: 'sites', values: [100] }, + { prefix: 'emailStorage', values: [100, '5 Go'] }, + { prefix: 'dbs', values: [10, '2 Go'] }, + { prefix: 'nddFree', values: [1] }, + { prefix: 'cdn', values: [] }, + ], + SELECTORS: { + PRO: { + planCode: OFFERS_PLAN_CODES.PRO, + }, + }, + }, + PERFORMANCE: { + TECHNICALS: [ + { prefix: 'vcores', values: [2] }, + { prefix: 'ram', values: ['4 Go'] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'disk', values: ['500 Go'] }, + { prefix: 'sites', values: [150] }, + { prefix: 'emailStorage', values: [1000, '5 Go'] }, + { prefix: 'dbs', values: [20, '2 Go'] }, + { prefix: 'webcloudDb', values: [] }, + { prefix: 'nddFree', values: [1] }, + { prefix: 'cdn', values: [] }, + ], + SELECTORS: { + PERFORMANCE_1: { + planCode: OFFERS_PLAN_CODES.PERFORMANCE_1, + }, + }, + }, + AGENCY: { + TECHNICALS: [ + { prefix: 'sites', values: [200] }, + { prefix: 'disk', values: ['500 Go SSD'] }, + { prefix: 'ram', values: ['8 Go'] }, + { prefix: 'vcores', values: [6] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'userManagement', values: [] }, + { prefix: 'emailStorage', values: [1000, '5 Go'] }, + { prefix: 'dbs', values: [30, '2 Go'] }, + { prefix: 'webcloudDb', values: [] }, + { prefix: 'cdn', values: [] }, + { prefix: 'git', values: [] }, + ], + SELECTORS: { + AGENCY: { + planCode: OFFERS_PLAN_CODES.AGENCY, + }, + }, + }, + AGENCY_PLUS: { + TECHNICALS: [ + { prefix: 'sites', values: [500] }, + { prefix: 'disk', values: ['700 Go SSD'] }, + { prefix: 'ram', values: ['12 Go'] }, + { prefix: 'vcores', values: [10] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'userManagement', values: [] }, + { prefix: 'emailStorage', values: [1000, '5 Go'] }, + { prefix: 'dbs', values: [40, '2 Go'] }, + { prefix: 'webcloudDb', values: [] }, + { prefix: 'cdn', values: [] }, + { prefix: 'git', values: [] }, + ], + SELECTORS: { + AGENCY_PLUS: { + planCode: OFFERS_PLAN_CODES.AGENCY_PLUS, + }, + }, + }, + AGENCY_MAX: { + TECHNICALS: [ + { prefix: 'sites', values: [3000] }, + { prefix: 'disk', values: ['1 To SSD'] }, + { prefix: 'ram', values: ['16 Go'] }, + { prefix: 'vcores', values: [14] }, + { prefix: 'backupIncluded', values: [] }, + { prefix: 'uptime', values: ['99,9%'] }, + { prefix: 'userManagement', values: [] }, + { prefix: 'emailStorage', values: [1000, '5 Go'] }, + { prefix: 'dbs', values: [50, '2 Go'] }, + { prefix: 'webcloudDb', values: [] }, + { prefix: 'cdn', values: [] }, + { prefix: 'git', values: [] }, + ], + SELECTORS: { + AGENCY_MAX: { + planCode: OFFERS_PLAN_CODES.AGENCY_MAX, + }, + }, + }, + }; + this.NEW_OFFERS = { PERSO: { TECHNICALS: [ @@ -89,7 +254,19 @@ export default class WebComponentsHostingDomainOffersController { } $onInit() { - this.groupedOffers = this.buildOffersGroup(); + return this.ovhFeatureFlipping + .checkFeatureAvailability(['web-hosting:change-offer']) + .then((featureAvailability) => { + this.useNewOffers = featureAvailability.isFeatureAvailable( + 'web-hosting:change-offer', + ); + }) + .catch(() => { + this.useNewOffers = false; + }) + .finally(() => { + this.groupedOffers = this.buildOffersGroup(); + }); } static buildBadgeModel(type, className) { @@ -193,7 +370,8 @@ export default class WebComponentsHostingDomainOffersController { } getNewOffer(offerCategory) { - return this.NEW_OFFERS[offerCategory.toUpperCase()]; + const offers = this.useNewOffers ? this.OFFERS : this.NEW_OFFERS; + return offers[offerCategory.toUpperCase()]; } getOfferTechnicalsInfo(offerCategory) { @@ -202,10 +380,13 @@ export default class WebComponentsHostingDomainOffersController { let serviceDatas = values[1]; if (prefix === 'services' && !serviceDatas) serviceDatas = WEB_CLOUD_DB_VALUES; - return this.$translate.instant( - `web_components_hosting_domain_offers_offer_${offerCategory}_technicals_${prefix}`, - { value1: values[0], value2: serviceDatas }, - ); + const key = this.useNewOffers + ? `web_components_hosting_domain_offers_${prefix}` + : `web_components_hosting_domain_offers_offer_${offerCategory}_technicals_${prefix}`; + return this.$translate.instant(key, { + value1: values[0], + value2: serviceDatas, + }); }, ); } diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_de_DE.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_de_DE.json index 00eb6696dd5c..cb7ef2ac0b10 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_de_DE.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_de_DE.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Derzeitiges Angebot", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Version auswählen", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} zzgl. MwSt./Monat" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} zzgl. MwSt./Monat", + "web_components_hosting_domain_offers_offer_agency": "Agentur", + "web_components_hosting_domain_offers_offer_agency_plus": "Agentur Plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agentur Max", + "web_components_hosting_domain_offers_sites": "{{value1}} Seiten", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} E-Mails {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1-Klick", + "web_components_hosting_domain_offers_nddFree": "{{value1}} NDD kostenlos", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup inklusive", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} DB {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Benutzerverwaltung" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_en_GB.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_en_GB.json index 280fe8c773bf..52c51b54b34b 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_en_GB.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_en_GB.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Current solution", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Choose a version", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} ex. VAT/month" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} ex. VAT/month", + "web_components_hosting_domain_offers_offer_agency": "Agency", + "web_components_hosting_domain_offers_offer_agency_plus": "Agency Plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agency Max", + "web_components_hosting_domain_offers_sites": "{{value1}} Sites", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} emails {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1click", + "web_components_hosting_domain_offers_nddFree": "{{value1}} free domain", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} of RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup included", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} database {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud Database", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "User management" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_es_ES.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_es_ES.json index 5a1ffc21d569..583fa18963de 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_es_ES.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_es_ES.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Producto actual", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Elegir una versión", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}}/mes + IVA" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}}/mes + IVA", + "web_components_hosting_domain_offers_offer_agency": "Agencia", + "web_components_hosting_domain_offers_offer_agency_plus": "Agencia más", + "web_components_hosting_domain_offers_offer_agency_max": "Agencia máxima", + "web_components_hosting_domain_offers_sites": "{{value1}} Sitios", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} correos {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1clic", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd gratis", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} de RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup incluido", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Gestión de usuario" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_CA.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_CA.json index c7d7a4b740e7..f2454ee603c3 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_CA.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_CA.json @@ -1,5 +1,9 @@ { "web_components_hosting_domain_offers_offer_starter": "Starter", + "web_components_hosting_domain_offers_offer_agency": "Agence", + "web_components_hosting_domain_offers_offer_agency_plus": "Agence plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agence max", + "web_components_hosting_domain_offers_offer_perso": "Perso", "web_components_hosting_domain_offers_offer_perso_technicals_discs": "{{value1}} d'espace disque", "web_components_hosting_domain_offers_offer_perso_technicals_emails": "{{value1}} adresses e-mail", @@ -7,6 +11,7 @@ "web_components_hosting_domain_offers_offer_perso_technicals_multisite": "Multisites", "web_components_hosting_domain_offers_offer_perso_technicals_ftp": "Accès FTP illimité", "web_components_hosting_domain_offers_offer_perso_technicals_dbs": "{{value1}} × base de données MySQL {{value2}}", + "web_components_hosting_domain_offers_offer_pro": "Pro", "web_components_hosting_domain_offers_offer_pro_technicals_discs": "{{value1}} d'espace disque", "web_components_hosting_domain_offers_offer_pro_technicals_emails": "{{value1}} adresses e-mail", @@ -14,6 +19,7 @@ "web_components_hosting_domain_offers_offer_pro_technicals_multisite": "Multisites", "web_components_hosting_domain_offers_offer_pro_technicals_ssh": "Accès SSH illimité", "web_components_hosting_domain_offers_offer_pro_technicals_dbs": "{{value1}} × base de données MySQL {{value2}}", + "web_components_hosting_domain_offers_offer_performance": "Performance", "web_components_hosting_domain_offers_offer_performance_technicals_discs": "{{value1}} d'espace disque", "web_components_hosting_domain_offers_offer_performance_technicals_emails": "{{value1}} adresses e-mail", @@ -30,5 +36,19 @@ "web_components_hosting_domain_offers_offer_badge_current": "Offre actuelle", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Choisir une version", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} HT/mois" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} HT/mois", + "web_components_hosting_domain_offers_sites": "{{value1}} Sites", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} mails {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1clic", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd free", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} de RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup inclus", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Gestion user" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_FR.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_FR.json index c20eeeeb53f5..f2454ee603c3 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_FR.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_fr_FR.json @@ -1,5 +1,9 @@ { "web_components_hosting_domain_offers_offer_starter": "Starter", + "web_components_hosting_domain_offers_offer_agency": "Agence", + "web_components_hosting_domain_offers_offer_agency_plus": "Agence plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agence max", + "web_components_hosting_domain_offers_offer_perso": "Perso", "web_components_hosting_domain_offers_offer_perso_technicals_discs": "{{value1}} d'espace disque", "web_components_hosting_domain_offers_offer_perso_technicals_emails": "{{value1}} adresses e-mail", @@ -32,5 +36,19 @@ "web_components_hosting_domain_offers_offer_badge_current": "Offre actuelle", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Choisir une version", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} HT/mois" + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} HT/mois", + "web_components_hosting_domain_offers_sites": "{{value1}} Sites", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} mails {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1clic", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd free", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} de RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup inclus", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Gestion user" } diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_it_IT.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_it_IT.json index e3340d43e8f2..798e4fc77eb7 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_it_IT.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_it_IT.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Soluzione corrente", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Scegliere una versione", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCore, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} +IVA/mese" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} +IVA/mese", + "web_components_hosting_domain_offers_offer_agency": "Agenzia", + "web_components_hosting_domain_offers_offer_agency_plus": "Agenzia plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agenzia max", + "web_components_hosting_domain_offers_sites": "{{value1}} Siti", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} email {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1clic", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd free", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} di RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup inclusi", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Gestione utente" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pl_PL.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pl_PL.json index 2eabffbe533b..a67915438cfd 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pl_PL.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pl_PL.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Aktualna oferta", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Wybierz wersję", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} netto/m-c" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} netto/m-c", + "web_components_hosting_domain_offers_offer_agency": "Agencja", + "web_components_hosting_domain_offers_offer_agency_plus": "Agencja plus", + "web_components_hosting_domain_offers_offer_agency_max": "Agencja max", + "web_components_hosting_domain_offers_sites": "{{value1}} Strony", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} maile {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1klik", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd free", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup wliczony", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Zarządzanie użytkownikami" +} diff --git a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pt_PT.json b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pt_PT.json index a6be859398c0..ae4adc9d0d9f 100644 --- a/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pt_PT.json +++ b/packages/manager/apps/web/client/app/components/hosting-domain-offers/translations/Messages_pt_PT.json @@ -30,5 +30,22 @@ "web_components_hosting_domain_offers_offer_badge_current": "Oferta atual", "web_components_hosting_domain_offers_offer_select_version_placeholder": "Escolher uma versão", "web_components_hosting_domain_offers_offer_select_version_performance": "{{coreNumber}} vCores, {{ramSize}} RAM", - "web_components_hosting_domain_offers_offer_price": "{{priceValue}} /mês + IVA" -} \ No newline at end of file + "web_components_hosting_domain_offers_offer_price": "{{priceValue}} /mês + IVA", + "web_components_hosting_domain_offers_offer_agency": "Agência", + "web_components_hosting_domain_offers_offer_agency_plus": "Agência mais", + "web_components_hosting_domain_offers_offer_agency_max": "Agência máxima", + "web_components_hosting_domain_offers_sites": "{{value1}} Sites", + "web_components_hosting_domain_offers_disk": "{{value1}}", + "web_components_hosting_domain_offers_emailStorage": "{{value1}} e-mails {{value2}}", + "web_components_hosting_domain_offers_cms": "CMS 1clic", + "web_components_hosting_domain_offers_nddFree": "{{value1}} ndd grátis", + "web_components_hosting_domain_offers_vcores": "{{value1}} vCore", + "web_components_hosting_domain_offers_ram": "{{value1}} de RAM", + "web_components_hosting_domain_offers_backupIncluded": "Backup incluído", + "web_components_hosting_domain_offers_uptime": "Uptime {{value1}}", + "web_components_hosting_domain_offers_dbs": "{{value1}} db {{value2}}", + "web_components_hosting_domain_offers_webcloudDb": "WebCloud DB", + "web_components_hosting_domain_offers_cdn": "CDN", + "web_components_hosting_domain_offers_git": "GIT", + "web_components_hosting_domain_offers_userManagement": "Gestão de utilizador" +} diff --git a/packages/manager/apps/web/client/app/hosting/cdn/order/hosting-cdn-order.routing.js b/packages/manager/apps/web/client/app/hosting/cdn/order/hosting-cdn-order.routing.js index d3e958e2992d..d93c8cb4bc53 100644 --- a/packages/manager/apps/web/client/app/hosting/cdn/order/hosting-cdn-order.routing.js +++ b/packages/manager/apps/web/client/app/hosting/cdn/order/hosting-cdn-order.routing.js @@ -165,30 +165,50 @@ export default /* @ngInject */ ($stateProvider) => { workflowOptions: /* @ngInject */ ( catalog, cdnProperties, + serviceInfo, serviceName, trackClick, - ) => ({ - catalog, - catalogItemTypeName: workflowConstants.CATALOG_ITEM_TYPE_NAMES.ADDON, - onPricingSubmit: (pricing) => { - trackClick({ - ...ORDER_CDN_TRACKING.PRICING.NEXT, - name: ORDER_CDN_TRACKING.PRICING.NEXT.name.replace( - /{{pricing}}/g, - `${pricing.interval}M`, - ), - }); - }, - onValidateSubmit() { - const newPlanCode = this.getPlanCode(); - - trackClick('web::hosting::cdn::order::confirm'); - trackClick(`web_hosting_cdn_order::order::${newPlanCode}`); - }, - productName: HOSTING_PRODUCT_NAME, - serviceNameToAddProduct: serviceName, - expressOrder: true, - }), + ) => { + const renewPeriod = serviceInfo?.renew?.period; + const filteredCatalog = + renewPeriod != null + ? { + ...catalog, + addons: (catalog.addons || []).map((addon) => ({ + ...addon, + pricings: (addon.pricings || []).filter( + (p) => + !(p.capacities || []).includes( + pricingConstants.PRICING_CAPACITIES.RENEW, + ) || p.interval === renewPeriod, + ), + })), + } + : catalog; + + return { + catalog: filteredCatalog, + catalogItemTypeName: workflowConstants.CATALOG_ITEM_TYPE_NAMES.ADDON, + onPricingSubmit: (pricing) => { + trackClick({ + ...ORDER_CDN_TRACKING.PRICING.NEXT, + name: ORDER_CDN_TRACKING.PRICING.NEXT.name.replace( + /{{pricing}}/g, + `${pricing.interval}M`, + ), + }); + }, + onValidateSubmit() { + const newPlanCode = this.getPlanCode(); + + trackClick('web::hosting::cdn::order::confirm'); + trackClick(`web_hosting_cdn_order::order::${newPlanCode}`); + }, + productName: HOSTING_PRODUCT_NAME, + serviceNameToAddProduct: serviceName, + expressOrder: true, + }; + }, trackClick: /* @ngInject */ (atInternet) => (hit) => { atInternet.trackClick({ ...hit, diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/hosting.controller.js b/packages/manager/apps/web/client/app/hosting/dashboard/hosting.controller.js index ed5b0909d9a9..b86099c3b41b 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/hosting.controller.js +++ b/packages/manager/apps/web/client/app/hosting/dashboard/hosting.controller.js @@ -71,6 +71,7 @@ export default class { user, userStatisticsLink, userLogsLink, + isChangeOfferFeatureAvailable, isWebsiteFeatureAvailable, isOslToLdpFeatureAvailable, HOSTING_STATUS, @@ -140,6 +141,7 @@ export default class { this.user = user; this.userStatisticsLink = userStatisticsLink; this.userLogsLink = userLogsLink; + this.isChangeOfferFeatureAvailable = isChangeOfferFeatureAvailable; this.isOslToLdpFeatureAvailable = isOslToLdpFeatureAvailable; this.DOMAIN_ORDER_URL = DOMAIN_ORDER_URL; this.HOSTING_ORDER_URL = HOSTING_ORDER_URL; diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/hosting.html b/packages/manager/apps/web/client/app/hosting/dashboard/hosting.html index a63d71d8a18f..ffca1a956459 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/hosting.html +++ b/packages/manager/apps/web/client/app/hosting/dashboard/hosting.html @@ -180,6 +180,20 @@

data-ovh-alert-hide-remove-button class="mt-4" > + + + + + { configurationSelected: true, }); }, + isChangeOfferFeatureAvailable: /* @ngInject */ (ovhFeatureFlipping) => + ovhFeatureFlipping + .checkFeatureAvailability('web-hosting:change-offer') + .then((featureAvailability) => + featureAvailability.isFeatureAvailable('web-hosting:change-offer'), + ) + .catch(() => false), isLocalSeoAvailable: /* @ngInject */ (availableOptions) => availableOptions.find(({ family }) => family === LOCAL_SEO_FAMILY), diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_de_DE.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_de_DE.json index 724cdc52d38b..5cb99bd6e47d 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_de_DE.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_de_DE.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Unsere Webhosting-Angebote entwickeln sich ab dem 1. Juni 2026 weiter. Entdecken Sie die Verbesserungen und Neuheiten, die enthalten sind.", + "hosting_change_offer_banner_link": "Mehr erfahren", "hosting_change_offer_for_service": "Der Dienst ist für dieses Angebot nicht verfügbar.", "hosting_change_offer_for_service_offer": "Dieser Dienst ist für das {{offer}} Angebot nicht verfügbar.", "hosting_common_password_conditions": "Bitte beachten Sie, dass das Passwort nach folgenden Regeln vergeben werden muss:
- mindestens {{t0}} Zeichen
- höchstens {{t1}} Zeichen
- mindestens ein Großbuchstabe
- mindestens ein Kleinbuchstabe
- mindestens eine Zahl
- ausschließlich Zahlen und Buchstaben", @@ -1127,6 +1129,16 @@ "hosting_order_upgrade_start_time_summary_today": "Update geplant für heute um {{time}}.", "hosting_order_upgrade_start_time_summary_tomorrow": "Update geplant für morgen um {{time}}.", "hosting_order_upgrade_no_contract": "Keine neuen Verträge zur Validierung vorhanden", + "hosting_order_upgrade_summary_empty": "Ihr Warenkorb ist leer", + "hosting_order_upgrade_summary_product": "Webhosting", + "hosting_order_upgrade_summary_product_lower": "Webhosting", + "hosting_order_upgrade_summary_duration": "Dauer", + "hosting_order_upgrade_summary_duration_value": "12 Monate", + "hosting_order_upgrade_summary_options": "Optionen", + "hosting_order_upgrade_summary_included": "Inklusive", + "hosting_order_upgrade_summary_total": "Summe", + "hosting_order_upgrade_summary_vat_period": "HT/12 Monate", + "hosting_order_upgrade_summary_cta": "Bestellung fortsetzen", "hosting_migrate_my_ovh_org_success": "Die Migration Ihrer ovh.org-Domain wurde registriert. Sobald sie abgeschlossen ist, erhalten Sie eine E-Mail.", "hosting_migrate_my_ovh_org_error": "Bei der Migration Ihrer OVH Domain ist ein Fehler aufgetreten.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Eine Datenbank bestellen", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_en_GB.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_en_GB.json index d21582dc7641..b414e351798e 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_en_GB.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_en_GB.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Our web hosting offers will evolve from 1st June 2026. Discover the improvements and new features included.", + "hosting_change_offer_banner_link": "Find out more", "hosting_change_offer_for_service": "This service is not available for this solution.", "hosting_change_offer_for_service_offer": "This service is not accessible for the {{offer}} solution.", "hosting_common_password_conditions": "Please note that the password must meet the following criteria:
- Minimum {{t0}} characters
- Maximum {{t1}} characters
- At least one capital letter
- At least one lower-case letter
- At least one number
- Must only contain letters and numbers", @@ -1127,6 +1129,16 @@ "hosting_order_upgrade_start_time_summary_today": "Update scheduled at {{time}} today.", "hosting_order_upgrade_start_time_summary_tomorrow": "Update scheduled at {{time}} tomorrow.", "hosting_order_upgrade_no_contract": "No new contracts to validate", + "hosting_order_upgrade_summary_empty": "Your basket is empty.", + "hosting_order_upgrade_summary_product": "Web hosting", + "hosting_order_upgrade_summary_product_lower": "web hosting plan", + "hosting_order_upgrade_summary_duration": "Duration", + "hosting_order_upgrade_summary_duration_value": "12 months", + "hosting_order_upgrade_summary_options": "Options", + "hosting_order_upgrade_summary_included": "Included", + "hosting_order_upgrade_summary_total": "Total", + "hosting_order_upgrade_summary_vat_period": "Excl. VAT/12 months", + "hosting_order_upgrade_summary_cta": "Continue the order.", "hosting_migrate_my_ovh_org_success": "Your ovh.org domain migration has been processed. You will receive an email when it is complete.", "hosting_migrate_my_ovh_org_error": "An error has occurred migrating your ovh.org domain. ", "hosting_tab_DATABASES_configuration_order_title_button_public": "Order a database", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_es_ES.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_es_ES.json index d22a89ec7f52..6b7f183a787f 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_es_ES.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_es_ES.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Nuestras ofertas de alojamiento web evolucionarán a partir del 1 de junio de 2026. Descubrid las mejoras y las novedades incluidas.", + "hosting_change_offer_banner_link": "Más información", "hosting_change_offer_for_service": "El servicio no está disponible para este producto.", "hosting_change_offer_for_service_offer": "Este servicio no está disponible para la solución {{offer}}.", "hosting_common_password_conditions": "Atención: La contraseña debe cumplir los siguientes criterios:
- mínimo {{t0}} caracteres
- máximo {{t1}} caracteres
- al menos una letra mayúscula
- al menos una letra minúscula
- al menos una cifra
- debe estar compuesto únicamente por cifras y letras", @@ -1117,6 +1119,16 @@ "hosting_order_upgrade_start_time_summary_today": "Actualización prevista a las {{time}} hoy.", "hosting_order_upgrade_start_time_summary_tomorrow": "Actualización prevista a las {{time}} mañana.", "hosting_order_upgrade_no_contract": "No hay ningún contrato pendiente de validación.", + "hosting_order_upgrade_summary_empty": "Vuestro carrito está vacío.", + "hosting_order_upgrade_summary_product": "Web hosting", + "hosting_order_upgrade_summary_product_lower": "alojamiento web", + "hosting_order_upgrade_summary_duration": "Duración", + "hosting_order_upgrade_summary_duration_value": "12 meses", + "hosting_order_upgrade_summary_options": "Opciones", + "hosting_order_upgrade_summary_included": "Incluido", + "hosting_order_upgrade_summary_total": "Total", + "hosting_order_upgrade_summary_vat_period": "Sin IVA/12 meses", + "hosting_order_upgrade_summary_cta": "Continuar con el pedido", "hosting_migrate_my_ovh_org_success": "Hemos recibido la solicitud de migración de su dominio .ovh.org. Recibirá una notificación por correo electrónico cuando haya finalizado.", "hosting_migrate_my_ovh_org_error": "Se ha producido un error al migrar su dominio .ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Contratar una base de datos", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_CA.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_CA.json index cc8c5a68a33d..f29e8f858345 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_CA.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_CA.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Nos offres d'hébergement web évoluent à partir du 1er juin 2026. Découvrez les améliorations et les nouveautés incluses.", + "hosting_change_offer_banner_link": "En savoir plus", "hosting_change_offer_for_service": "Ce service n'est pas accessible pour cette offre.", "hosting_change_offer_for_service_offer": "Ce service n'est pas accessible pour l'offre {{offer}}.", "hosting_common_password_conditions": "Attention, le mot de passe doit respecter les conditions suivantes :
- Minimum {{t0}} caractères
- Maximum {{t1}} caractères
- Au moins une lettre majuscule
- Au moins une lettre minuscule
- Au moins un chiffre
- Doit être composé uniquement de chiffres et de lettres", @@ -1146,6 +1148,16 @@ "hosting_order_upgrade_start_time_summary_today": "Mise à jour prévue à {{time}} aujourd'hui.", "hosting_order_upgrade_start_time_summary_tomorrow": "Mise à jour prévue à {{time}} demain.", "hosting_order_upgrade_no_contract": "Pas de nouveaux contrats à valider", + "hosting_order_upgrade_summary_empty": "Votre panier est vide", + "hosting_order_upgrade_summary_product": "Hébergement Web", + "hosting_order_upgrade_summary_product_lower": "hébergement web", + "hosting_order_upgrade_summary_duration": "Durée", + "hosting_order_upgrade_summary_duration_value": "12 mois", + "hosting_order_upgrade_summary_options": "Options", + "hosting_order_upgrade_summary_included": "Inclus", + "hosting_order_upgrade_summary_total": "Total", + "hosting_order_upgrade_summary_vat_period": "HT/12 mois", + "hosting_order_upgrade_summary_cta": "Continuer la commande", "hosting_migrate_my_ovh_org_success": "La migration de votre domaine ovh.org a bien été prise en compte. Vous recevrez un e-mail lorsqu'elle sera terminée.", "hosting_migrate_my_ovh_org_error": "Une erreur est survenue lors de la migration de votre domaine ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Commander une base de données", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_FR.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_FR.json index cc8c5a68a33d..f29e8f858345 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_FR.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_fr_FR.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Nos offres d'hébergement web évoluent à partir du 1er juin 2026. Découvrez les améliorations et les nouveautés incluses.", + "hosting_change_offer_banner_link": "En savoir plus", "hosting_change_offer_for_service": "Ce service n'est pas accessible pour cette offre.", "hosting_change_offer_for_service_offer": "Ce service n'est pas accessible pour l'offre {{offer}}.", "hosting_common_password_conditions": "Attention, le mot de passe doit respecter les conditions suivantes :
- Minimum {{t0}} caractères
- Maximum {{t1}} caractères
- Au moins une lettre majuscule
- Au moins une lettre minuscule
- Au moins un chiffre
- Doit être composé uniquement de chiffres et de lettres", @@ -1146,6 +1148,16 @@ "hosting_order_upgrade_start_time_summary_today": "Mise à jour prévue à {{time}} aujourd'hui.", "hosting_order_upgrade_start_time_summary_tomorrow": "Mise à jour prévue à {{time}} demain.", "hosting_order_upgrade_no_contract": "Pas de nouveaux contrats à valider", + "hosting_order_upgrade_summary_empty": "Votre panier est vide", + "hosting_order_upgrade_summary_product": "Hébergement Web", + "hosting_order_upgrade_summary_product_lower": "hébergement web", + "hosting_order_upgrade_summary_duration": "Durée", + "hosting_order_upgrade_summary_duration_value": "12 mois", + "hosting_order_upgrade_summary_options": "Options", + "hosting_order_upgrade_summary_included": "Inclus", + "hosting_order_upgrade_summary_total": "Total", + "hosting_order_upgrade_summary_vat_period": "HT/12 mois", + "hosting_order_upgrade_summary_cta": "Continuer la commande", "hosting_migrate_my_ovh_org_success": "La migration de votre domaine ovh.org a bien été prise en compte. Vous recevrez un e-mail lorsqu'elle sera terminée.", "hosting_migrate_my_ovh_org_error": "Une erreur est survenue lors de la migration de votre domaine ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Commander une base de données", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_it_IT.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_it_IT.json index 834ecc336f26..fc88307f8019 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_it_IT.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_it_IT.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Le nostre offerte di hosting web evolveranno a partire dal 1° giugno 2026. Scoprite i miglioramenti e le novità incluse.", + "hosting_change_offer_banner_link": "Scopri di più", "hosting_change_offer_for_service": "Questo servizio non è disponibile per questa offerta. ", "hosting_change_offer_for_service_offer": "Questo servizio non è disponibile per la soluzione {{offer}}.", "hosting_common_password_conditions": "Attenzione, la password deve rispettare queste condizioni:
- minimo {{t0}} caratteri
- massimo {{t1}} caratteri
- Almeno una lettera maiuscola
- Almeno una lettera minuscola
- Almeno una cifra
- Deve essere composto esclusivamente da cifre e lettere", @@ -1127,6 +1129,16 @@ "hosting_order_upgrade_start_time_summary_today": "Aggiornamento pianificato oggi alle {{time}}.", "hosting_order_upgrade_start_time_summary_tomorrow": "Aggiornamento pianificato domani alle {{time}}.", "hosting_order_upgrade_no_contract": "Nessun nuovo contratto da convalidare", + "hosting_order_upgrade_summary_empty": "Il vostro carrello è vuoto", + "hosting_order_upgrade_summary_product": "Hosting web", + "hosting_order_upgrade_summary_product_lower": "l’hosting Web", + "hosting_order_upgrade_summary_duration": "Durata", + "hosting_order_upgrade_summary_duration_value": "12 mesi", + "hosting_order_upgrade_summary_options": "Opzioni", + "hosting_order_upgrade_summary_included": "Incluso", + "hosting_order_upgrade_summary_total": "Totale", + "hosting_order_upgrade_summary_vat_period": "HT/12 mesi", + "hosting_order_upgrade_summary_cta": "Continua l'ordine", "hosting_migrate_my_ovh_org_success": "La migrazione del tuo dominio ovh.org è stata presa in carico. Una volta completata, riceverai un'email.", "hosting_migrate_my_ovh_org_error": "Si è verificato un errore durante la migrazione del tuo dominio ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Ordinare un database", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pl_PL.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pl_PL.json index 9758ea97dfff..3ea881c2d934 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pl_PL.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pl_PL.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "Nasze oferty hostingu internetowego będą się rozwijać od 1 czerwca 2026 roku. Odkryj ulepszenia i nowości, które są w zestawie.", + "hosting_change_offer_banner_link": "Sprawdź", "hosting_change_offer_for_service": "Ta usługa nie jest dostępna dla tej oferty.", "hosting_change_offer_for_service_offer": "Ta usługa nie jest dostępna w ramach oferty {{offer}}.", "hosting_common_password_conditions": "Uwaga: hasło musi spełniać następujące warunki:
- Minimalna liczba znaków: {{t0}}
- Maksymalna liczba znaków: {{t1}}
- Przynajmniej jedna wielka litera
- Przynajmniej jedna mała litera
- Przynajmniej jedna cyfra
- Może zawierać wyłącznie cyfry i litery", @@ -1127,6 +1129,16 @@ "hosting_order_upgrade_start_time_summary_today": "Aktualizacja przewidziana dzisiaj o {{time}}.", "hosting_order_upgrade_start_time_summary_tomorrow": "Aktualizacja przewidziana jutro o {{time}}.", "hosting_order_upgrade_no_contract": "Brak nowych regulaminów do zatwierdzenia", + "hosting_order_upgrade_summary_empty": "Twój koszyk jest pusty", + "hosting_order_upgrade_summary_product": "Hosting", + "hosting_order_upgrade_summary_product_lower": "hosting internetowy", + "hosting_order_upgrade_summary_duration": "Czas trwania", + "hosting_order_upgrade_summary_duration_value": "12 miesięcy", + "hosting_order_upgrade_summary_options": "Opcje", + "hosting_order_upgrade_summary_included": "W cenie", + "hosting_order_upgrade_summary_total": "Razem", + "hosting_order_upgrade_summary_vat_period": "HT/12 miesięcy", + "hosting_order_upgrade_summary_cta": "Kontynuuj zamówienie", "hosting_migrate_my_ovh_org_success": "Migracja Twojej domeny ovh.org została zarejestrowana. Po zakończeniu operacji otrzymasz e-mail.", "hosting_migrate_my_ovh_org_error": "Wystąpił błąd podczas migracji Twojego konta ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Zamów bazę danych", diff --git a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pt_PT.json b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pt_PT.json index f9da5cda617e..f5368b47c95a 100644 --- a/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pt_PT.json +++ b/packages/manager/apps/web/client/app/hosting/dashboard/translations/Messages_pt_PT.json @@ -1,4 +1,6 @@ { + "hosting_change_offer_banner": "As nossas ofertas de alojamento web evoluem a partir de 1 de junho de 2026. Descubra as melhorias e as novidades incluídas.", + "hosting_change_offer_banner_link": "Saber mais", "hosting_change_offer_for_service": "Este serviço não está disponível para esta oferta.", "hosting_change_offer_for_service_offer": "Este serviço não está disponível para a oferta {{offer}}.", "hosting_common_password_conditions": "Tenha em conta que a palavra-passe deve respeitar as seguintes condições:
- Mínimo de {{t0}} caracteres
- Máximo de {{t1}} caracteres
- Pelo menos uma letra maiúscula
- Pelo menos uma letra minúscula
- Pelo menos um número
- Deve ser composto unicamente por números e letras.", @@ -1117,6 +1119,16 @@ "hosting_order_upgrade_start_time_summary_today": "Atualização prevista para hoje, às {{time}}.", "hosting_order_upgrade_start_time_summary_tomorrow": "Atualização prevista para amanhã, às {{time}}.", "hosting_order_upgrade_no_contract": "Sem novos contratos por validar", + "hosting_order_upgrade_summary_empty": "O seu carrinho está vazio", + "hosting_order_upgrade_summary_product": "Alojamento web", + "hosting_order_upgrade_summary_product_lower": "alojamento web", + "hosting_order_upgrade_summary_duration": "Duração", + "hosting_order_upgrade_summary_duration_value": "12 meses", + "hosting_order_upgrade_summary_options": "Opções", + "hosting_order_upgrade_summary_included": "Incluído", + "hosting_order_upgrade_summary_total": "Total", + "hosting_order_upgrade_summary_vat_period": "HT/12 meses", + "hosting_order_upgrade_summary_cta": "Continuar a encomenda", "hosting_migrate_my_ovh_org_success": "A migração do seu domínio ovh.org foi registada com êxito. Receberá um e-mail assim que a operação estiver concluída.", "hosting_migrate_my_ovh_org_error": "Ocorreu um erro aquando da migração do seu domínio ovh.org.", "hosting_tab_DATABASES_configuration_order_title_button_public": "Encomendar uma base de dados", diff --git a/packages/manager/apps/web/client/app/hosting/database/hosting-database.controller.js b/packages/manager/apps/web/client/app/hosting/database/hosting-database.controller.js index 827ab2eadc86..7e4faa636be3 100644 --- a/packages/manager/apps/web/client/app/hosting/database/hosting-database.controller.js +++ b/packages/manager/apps/web/client/app/hosting/database/hosting-database.controller.js @@ -126,43 +126,46 @@ angular.module('App').controller( this.loading.orderCapabilities = true; }); } - -loadExtraSqlPerso() { - return this.hostingDatabaseService - .getExtraSqlPerso(this.hosting.serviceName) - .then((result) => { - const sqlPerso = result?.find((item) => item?.name === SQL_PERSO); - const sqlPersoDelta = - sqlPerso?.database && sqlPerso?.usage - ? sqlPerso?.database - sqlPerso?.usage?.length - : 0; - this.emptySqlPerso = sqlPersoDelta > 0 ? [{ - id: SQL_PERSO, - name: "sqlPerso", - availableSlots: sqlPersoDelta, - isIncluded: true, - }] : []; - - this.extraSqlPerso = result?.filter( - (item) => item?.name?.startsWith(EXTRA_SQL_PERSO_PREFIX), - ); - - this.emptyExtraSqlPerso = this.extraSqlPerso - ?.map((item) => { - const delta = item?.database - (item?.usage?.length || 0); - return { - id: item.id, - name: item.serviceName, - availableSlots: delta, - isIncluded: false, - usage: item?.usage, - }; - }) - .filter((item) => item.availableSlots > 0); - }); -} + loadExtraSqlPerso() { + return this.hostingDatabaseService + .getExtraSqlPerso(this.hosting.serviceName) + .then((result) => { + const sqlPerso = result?.find((item) => item?.name === SQL_PERSO); + const sqlPersoDelta = + sqlPerso?.database && sqlPerso?.usage + ? sqlPerso?.database - sqlPerso?.usage?.length + : 0; + this.emptySqlPerso = + sqlPersoDelta > 0 + ? [ + { + id: SQL_PERSO, + name: 'sqlPerso', + availableSlots: sqlPersoDelta, + isIncluded: true, + }, + ] + : []; + + this.extraSqlPerso = result?.filter((item) => + item?.name?.startsWith(EXTRA_SQL_PERSO_PREFIX), + ); + this.emptyExtraSqlPerso = this.extraSqlPerso + ?.map((item) => { + const delta = item?.database - (item?.usage?.length || 0); + return { + id: item.id, + name: item.serviceName, + availableSlots: delta, + isIncluded: false, + usage: item?.usage, + }; + }) + .filter((item) => item.availableSlots > 0); + }); + } static formatVersion(version) { return (version || '').replace(/_/gi, '.'); @@ -350,10 +353,14 @@ loadExtraSqlPerso() { } onTerminateDatabaseSqlPerso(element) { - return this.coreURLBuilder.buildURL('dedicated', `#/billing/autorenew/delete?serviceId=${element?.name}`, { - selectedType: 'HOSTING_WEB_EXTRA_SQL_PERSO', - }); -} + return this.coreURLBuilder.buildURL( + 'dedicated', + `#/billing/autorenew/delete?serviceId=${element?.name}`, + { + selectedType: 'HOSTING_WEB_EXTRA_SQL_PERSO', + }, + ); + } onOrderDatabaseClick() { this.trackClick(DATABASES_TRACKING.SELECT_LIST_ACTION_ORDER_DB); diff --git a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.component.js b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.component.js index 5dbb30b4141f..572f861f981b 100644 --- a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.component.js +++ b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.component.js @@ -7,6 +7,7 @@ export default { template, bindings: { serviceName: '<', + serviceInfo: '<', hosting: '<', user: '<', cart: '<', diff --git a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.controller.js b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.controller.js index 207a81430de2..c7938868b8ea 100644 --- a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.controller.js +++ b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.controller.js @@ -19,6 +19,22 @@ export default class HostingDatabaseOrderPublicCtrl { } $onInit() { + const renewPeriod = this.serviceInfo?.renew?.period; + if (renewPeriod != null && this.catalog) { + this.catalog = { + ...this.catalog, + addons: (this.catalog.addons || []).map((addon) => ({ + ...addon, + pricings: (addon.pricings || []).filter( + (p) => + !(p.capacities || []).includes( + pricingConstants.PRICING_CAPACITIES.RENEW, + ) || p.interval === renewPeriod, + ), + })), + }; + } + const { catalog, catalogItemTypeName } = this.getRightCatalogConfig(true); this.productOffers = { pricingType: pricingConstants.PRICING_CAPACITIES.RENEW, diff --git a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.routing.js b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.routing.js index 914fc03d7de1..9dcb49b335b3 100644 --- a/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.routing.js +++ b/packages/manager/apps/web/client/app/hosting/database/order/public/hosting-database-order-public.routing.js @@ -14,6 +14,8 @@ export default /* @ngInject */ ($stateProvider) => { goBack: /* @ngInject */ (goToDatabase) => goToDatabase, hosting: /* @ngInject */ (Hosting, serviceName) => Hosting.getSelected(serviceName, true), + serviceInfo: /* @ngInject */ (Hosting, serviceName) => + Hosting.getServiceInfos(serviceName), onError: /* @ngInject */ ($translate, goBack) => (error) => goBack( $translate.instant('ovhManagerHostingDatabaseOrderPublic_error', { diff --git a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.component.js b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.component.js index 9dd9b53ab79c..1e4c584b7bd2 100644 --- a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.component.js +++ b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.component.js @@ -10,6 +10,7 @@ export default { dbCategories: '<', privateSqlCatalog: '<', hosting: '<', + serviceInfo: '<', onError: '<', onSuccess: '<', }, diff --git a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.controller.js b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.controller.js index 0410c16dc680..f4ff9dd70907 100644 --- a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.controller.js +++ b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.controller.js @@ -25,6 +25,30 @@ export default class PrivateSqlActivationController { $onInit() { this.preselectDbCategory = PRESELECTED_DB_CATEGORY; + + const renewPeriod = this.serviceInfo?.renew?.period; + if (this.privateSqlCatalog) { + this.privateSqlCatalog = { + ...this.privateSqlCatalog, + addons: (this.privateSqlCatalog.addons || []).map((addon) => ({ + ...addon, + pricings: (addon.pricings || []) + .filter( + (p) => + renewPeriod == null || + !(p.capacities || []).includes( + pricingConstants.PRICING_CAPACITIES.RENEW, + ) || + p.interval === renewPeriod, + ) + .map((p) => ({ + ...p, + description: `${p.description}-${p.mode}-${p.interval}${p.intervalUnit}`, + })), + })), + }; + } + const { catalog, catalogItemTypeName } = this.getRightCatalogConfig(true); this.productOffers = { pricingType: pricingConstants.PRICING_CAPACITIES.RENEW, diff --git a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.routing.js b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.routing.js index cfeb05b7bd44..481ced2fe594 100644 --- a/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.routing.js +++ b/packages/manager/apps/web/client/app/hosting/database/private-sql-activation/private-sql-activation.routing.js @@ -23,6 +23,8 @@ export default /* @ngInject */ ($stateProvider) => { me: /* @ngInject */ (user) => user, hosting: /* @ngInject */ ($transition$) => $transition$.params().productId, + serviceInfo: /* @ngInject */ (Hosting, hosting) => + Hosting.getServiceInfos(hosting), privateSqlCatalog: /* @ngInject */ (HostingDatabasePrivateSql, me) => HostingDatabasePrivateSql.getPrivateSqlCatalogForHosting( me.ovhSubsidiary, diff --git a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js index 7c30fb987797..a84510fd7f5a 100644 --- a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js +++ b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js @@ -8,7 +8,7 @@ import { LANGUAGES_VERSIONS_GUIDE_URL, } from './general-informations.constants'; import { HOSTING_CDN_ORDER_CDN_VERSION_V1 } from '../cdn/order/hosting-cdn-order.constant'; -import { NEW_OFFERS_NAME } from '../hosting.constants'; +import { OFFERS_NAME, NEW_OFFERS_NAME } from '../hosting.constants'; export default class HostingGeneralInformationsCtrl { /* @ngInject */ @@ -33,6 +33,7 @@ export default class HostingGeneralInformationsCtrl { HostingLocalSeo, HostingRuntimes, hostingSSLCertificate, + isChangeOfferFeatureAvailable, OvhApiScreenshot, user, ) { @@ -56,6 +57,7 @@ export default class HostingGeneralInformationsCtrl { this.HostingLocalSeo = HostingLocalSeo; this.HostingRuntimes = HostingRuntimes; this.hostingSSLCertificate = hostingSSLCertificate; + this.isChangeOfferFeatureAvailable = isChangeOfferFeatureAvailable; this.OvhApiScreenshot = OvhApiScreenshot; this.user = user; this.Domain = Domain; @@ -375,6 +377,12 @@ export default class HostingGeneralInformationsCtrl { } getOfferName(offer) { + if (this.isChangeOfferFeatureAvailable) { + const offerName = OFFERS_NAME[offer]; + return this.$translate.instant( + offerName || `hosting_dashboard_service_offer_${offer}`, + ); + } const offerPrefix = NEW_OFFERS_NAME[offer]; const translateKey = offerPrefix ? `hostings_offer_${offerPrefix}` diff --git a/packages/manager/apps/web/client/app/hosting/general-informations/general-informations.routing.js b/packages/manager/apps/web/client/app/hosting/general-informations/general-informations.routing.js index 68e24b71b2bb..efdde47ad763 100644 --- a/packages/manager/apps/web/client/app/hosting/general-informations/general-informations.routing.js +++ b/packages/manager/apps/web/client/app/hosting/general-informations/general-informations.routing.js @@ -7,6 +7,14 @@ export default /* @ngInject */ ($stateProvider) => { controllerAs: '$ctrl', template, resolve: { + isChangeOfferFeatureAvailable: /* @ngInject */ (ovhFeatureFlipping) => + ovhFeatureFlipping + .checkFeatureAvailability('web-hosting:change-offer') + .then((featureAvailability) => { + return featureAvailability.isFeatureAvailable( + 'web-hosting:change-offer', + ); + }), breadcrumb: () => null, }, }); diff --git a/packages/manager/apps/web/client/app/hosting/hosting.constants.js b/packages/manager/apps/web/client/app/hosting/hosting.constants.js index 33a4ebc25524..b81eea96ed10 100644 --- a/packages/manager/apps/web/client/app/hosting/hosting.constants.js +++ b/packages/manager/apps/web/client/app/hosting/hosting.constants.js @@ -7,6 +7,18 @@ export const NEW_OFFERS_NAME = { PERFORMANCE_4: 'performance_4', }; +export const OFFERS_NAME = { + HOSTING_FREE_100_M: 'hosting-free-100M', + HOSTING_STARTER: 'hosting-starter', + HOSTING_PERSO: 'hosting-perso', + HOSTING_STARTUP: 'hosting-startup', + HOSTING_PRO: 'hosting-pro', + HOSTING_PERFORMANCE_1: 'hosting-performance-1', + HOSTING_AGENCY: 'hosting-agency', + HOSTING_AGENCY_PLUS: 'hosting-agency-plus', + HOSTING_AGENCY_MAX: 'hosting-agency-max', +}; + export const OFFERS_UNELIGIBLE_FOR_MODULE = [ 'START_10_M', 'HOSTING_FREE_100_M', diff --git a/packages/manager/apps/web/client/app/hosting/module/MODULE.html b/packages/manager/apps/web/client/app/hosting/module/MODULE.html index 5540aa0054f8..6d5520858aff 100644 --- a/packages/manager/apps/web/client/app/hosting/module/MODULE.html +++ b/packages/manager/apps/web/client/app/hosting/module/MODULE.html @@ -25,7 +25,7 @@

+
+ + + + + + Consultez la page de maintenance poursuivre la progression des travaux.", "hosting_guides_general_information": "Informations générales", "hosting_datagrid_description": "Créez votre projet web en quelques minutes. Publiez votre blog, votre site internet professionnel ou votre boutique en ligne avec nos hébergements évolutifs taillés pour tous vos projets.", diff --git a/packages/manager/apps/web/client/app/hosting/translations/Messages_fr_FR.json b/packages/manager/apps/web/client/app/hosting/translations/Messages_fr_FR.json index 76bb9fd98e20..720368cc16f2 100644 --- a/packages/manager/apps/web/client/app/hosting/translations/Messages_fr_FR.json +++ b/packages/manager/apps/web/client/app/hosting/translations/Messages_fr_FR.json @@ -11,6 +11,15 @@ "hostings_offer_performance_2": "Performance 2", "hostings_offer_performance_3": "Performance 3", "hostings_offer_performance_4": "Performance 4", + "hosting-free-100M": "Free hosting", + "hosting-starter": "STARTER", + "hosting-perso": "PERSO", + "hosting-startup": "STARTUP", + "hosting-pro": "PRO", + "hosting-performance-1": "PERFORMANCE", + "hosting-agency": "AGENCY", + "hosting-agency-plus": "AGENCY PLUS", + "hosting-agency-max": "AGENCY MAX", "hosting_offer_changing_datavis_tool": "L'outil de visualisation des statistiques de votre hébergement web évolue et est temporairement indisponible. Consultez la page de maintenance poursuivre la progression des travaux.", "hosting_guides_general_information": "Informations générales", "hosting_datagrid_description": "Créez votre projet web en quelques minutes. Publiez votre blog, votre site internet professionnel ou votre boutique en ligne avec nos hébergements évolutifs taillés pour tous vos projets.", diff --git a/packages/manager/apps/web/client/app/hosting/translations/Messages_it_IT.json b/packages/manager/apps/web/client/app/hosting/translations/Messages_it_IT.json index d7eecddfeccf..dbf8a2c410fd 100644 --- a/packages/manager/apps/web/client/app/hosting/translations/Messages_it_IT.json +++ b/packages/manager/apps/web/client/app/hosting/translations/Messages_it_IT.json @@ -19,5 +19,14 @@ "hosting_databgrid_column_state": "Stato", "hosting_databgrid_column_resource_type": "Tipo di risorsa", "hosting_databgrid_column_datacenter": "Localizzazione", - "hosting_databgrid_column_service_name": "Nome del servizio" + "hosting_databgrid_column_service_name": "Nome del servizio", + "hosting-free-100M": "Hosting gratuito", + "hosting-starter": "STARTER", + "hosting-perso": "PERSONALE", + "hosting-startup": "STARTUP", + "hosting-pro": "PRO", + "hosting-performance-1": "PERFORMANCE", + "hosting-agency": "AGENZIA", + "hosting-agency-plus": "AGENZIA PLUS", + "hosting-agency-max": "AGENZIA MAX" } diff --git a/packages/manager/apps/web/client/app/hosting/translations/Messages_pl_PL.json b/packages/manager/apps/web/client/app/hosting/translations/Messages_pl_PL.json index 1d518913f06e..cb06d1be3dc5 100644 --- a/packages/manager/apps/web/client/app/hosting/translations/Messages_pl_PL.json +++ b/packages/manager/apps/web/client/app/hosting/translations/Messages_pl_PL.json @@ -19,5 +19,14 @@ "hosting_databgrid_column_state": "Status", "hosting_databgrid_column_resource_type": "Rodzaj zasobów", "hosting_databgrid_column_datacenter": "Lokalizacja", - "hosting_databgrid_column_service_name": "Nazwa usługi" + "hosting_databgrid_column_service_name": "Nazwa usługi", + "hosting-free-100M": "Darmowe hosting", + "hosting-starter": "STARTER", + "hosting-perso": "PERSO", + "hosting-startup": "STARTUP", + "hosting-pro": "PRO", + "hosting-performance-1": "PERFORMANCE", + "hosting-agency": "AGENCJA", + "hosting-agency-plus": "AGENCJA PLUS", + "hosting-agency-max": "AGENCJA MAX" } diff --git a/packages/manager/apps/web/client/app/hosting/translations/Messages_pt_PT.json b/packages/manager/apps/web/client/app/hosting/translations/Messages_pt_PT.json index 8c17570b4128..1eae9fb1c1a9 100644 --- a/packages/manager/apps/web/client/app/hosting/translations/Messages_pt_PT.json +++ b/packages/manager/apps/web/client/app/hosting/translations/Messages_pt_PT.json @@ -19,5 +19,14 @@ "hosting_databgrid_column_state": "Estado", "hosting_databgrid_column_resource_type": "Tipo de recurso", "hosting_databgrid_column_datacenter": "Localização", - "hosting_databgrid_column_service_name": "Nome do serviço" + "hosting_databgrid_column_service_name": "Nome do serviço", + "hosting-free-100M": "Alojamento gratuito", + "hosting-starter": "STARTER", + "hosting-perso": "PERSO", + "hosting-startup": "STARTUP", + "hosting-pro": "PRO", + "hosting-performance-1": "PERFORMANCE", + "hosting-agency": "AGÊNCIA", + "hosting-agency-plus": "AGÊNCIA PLUS", + "hosting-agency-max": "AGÊNCIA MAX" } diff --git a/packages/manager/apps/web/client/app/private-database/order/clouddb/private-database-order-clouddb.service.js b/packages/manager/apps/web/client/app/private-database/order/clouddb/private-database-order-clouddb.service.js index d21788c123d3..a2cd08215d10 100644 --- a/packages/manager/apps/web/client/app/private-database/order/clouddb/private-database-order-clouddb.service.js +++ b/packages/manager/apps/web/client/app/private-database/order/clouddb/private-database-order-clouddb.service.js @@ -141,7 +141,6 @@ export default class PrivateDatabaseOrderCloudDb { }); } - static getWebCloudCategory(webCloudCatalog) { const offers = webCloudCatalog.plans .filter(({ family }) => family === DB_OFFERS.PRIVATE.FAMILY) diff --git a/packages/manager/apps/web/webpack.config.js b/packages/manager/apps/web/webpack.config.js index dae250c1fdc7..99eb5ca3c934 100644 --- a/packages/manager/apps/web/webpack.config.js +++ b/packages/manager/apps/web/webpack.config.js @@ -101,7 +101,9 @@ module.exports = (env = {}) => { alias: { angular: require.resolve('angular'), 'angular-translate': require.resolve('angular-translate'), - 'angular-translate-loader-partial': require.resolve('angular-translate-loader-partial'), + 'angular-translate-loader-partial': require.resolve( + 'angular-translate-loader-partial', + ), }, }, plugins: [