diff --git a/.eslintignore b/.eslintignore
index 9ed6ad6e5d6c..55d3639e01d9 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -73,3 +73,4 @@ packages/manager/apps/communication
packages/manager/apps/pci-project
packages/manager/apps/hub
packages/manager/apps/pci-file-storage
+packages/manager/apps/network-vrack
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 20330d49e749..92fd65d8dc47 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -42,6 +42,7 @@
/packages/manager/apps/metrics @ovh/dev-manager-infrastructure-baremetalstorage
/packages/manager/apps/nasha @ovh/dev-manager-infrastructure-baremetalstorage
/packages/manager/apps/netapp @ovh/dev-manager-infrastructure-baremetalstorage
+/packages/manager/apps/network-vrack @ovh/dev-manager-infrastructure-network
/packages/manager/apps/nutanix @ovh/dev-manager-enterprise-nutanixBackup
/packages/manager/apps/observability @ovh/dev-manager-enablers-all
/packages/manager/apps/okms @ovh/dev-manager-enterprise-kms
diff --git a/.prettierignore b/.prettierignore
index 04ce4e6dad60..4708621fb211 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -35,3 +35,4 @@ packages/manager/apps/zimbra
packages/manager/apps/pci-project
packages/manager/apps/hub
packages/manager/apps/pci-file-storage
+packages/manager/apps/network-vrack
diff --git a/.sonarcloud.properties b/.sonarcloud.properties
index da74ff29c3d2..0cec53372187 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=tennessine-samurai-10
+sonar.projectVersion=sulfur-mule-1
sonar.exclusions=node_modules/**, **/node_modules/**, **/dist/**, **/semantic/**, **/coverage/**, **/static/**, **/mock/**, **/mockServiceWorker.js
sonar.coverage.exclusions=**/*.spec.js
diff --git a/.stylelintignore b/.stylelintignore
index b3a589edf8b9..b8b98166a193 100644
--- a/.stylelintignore
+++ b/.stylelintignore
@@ -17,3 +17,4 @@ packages/manager/apps/communication
packages/manager/apps/zimbra
packages/manager/apps/hub
packages/manager/apps/pci-file-storage
+packages/manager/apps/network-vrack
diff --git a/packages/components/ng-at-internet/CHANGELOG.md b/packages/components/ng-at-internet/CHANGELOG.md
index e1558c17180a..f77380c896cc 100644
--- a/packages/components/ng-at-internet/CHANGELOG.md
+++ b/packages/components/ng-at-internet/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [6.0.46](https://github.com/ovh/manager/compare/@ovh-ux/ng-at-internet@6.0.45...@ovh-ux/ng-at-internet@6.0.46) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/ng-at-internet
+
+
+
+
+
## [6.0.45](https://github.com/ovh/manager/compare/@ovh-ux/ng-at-internet@6.0.44...@ovh-ux/ng-at-internet@6.0.45) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/ng-at-internet
diff --git a/packages/components/ng-at-internet/package.json b/packages/components/ng-at-internet/package.json
index 4ee3e4642589..7fcf19ea7f67 100644
--- a/packages/components/ng-at-internet/package.json
+++ b/packages/components/ng-at-internet/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/ng-at-internet",
- "version": "6.0.45",
+ "version": "6.0.46",
"private": true,
"description": "ATInternet tracking library wrapper for AngularJS",
"keywords": [
@@ -35,7 +35,7 @@
"prepare": "rollup -c --environment BUILD:production"
},
"dependencies": {
- "@ovh-ux/ovh-at-internet": "^0.29.4"
+ "@ovh-ux/ovh-at-internet": "^0.30.0"
},
"devDependencies": {
"@ovh-ux/component-rollup-config": "^13.2.0",
diff --git a/packages/components/ng-shell-tracking/CHANGELOG.md b/packages/components/ng-shell-tracking/CHANGELOG.md
index 99ce824ed4a4..2165cf46081b 100644
--- a/packages/components/ng-shell-tracking/CHANGELOG.md
+++ b/packages/components/ng-shell-tracking/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.7.40](https://github.com/ovh/manager/compare/@ovh-ux/ng-shell-tracking@0.7.39...@ovh-ux/ng-shell-tracking@0.7.40) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/ng-shell-tracking
+
+
+
+
+
## [0.7.39](https://github.com/ovh/manager/compare/@ovh-ux/ng-shell-tracking@0.7.38...@ovh-ux/ng-shell-tracking@0.7.39) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/ng-shell-tracking
diff --git a/packages/components/ng-shell-tracking/package.json b/packages/components/ng-shell-tracking/package.json
index 9cb082c4d6d1..eb36089c6022 100644
--- a/packages/components/ng-shell-tracking/package.json
+++ b/packages/components/ng-shell-tracking/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/ng-shell-tracking",
- "version": "0.7.39",
+ "version": "0.7.40",
"private": true,
"description": "ATInternet tracking library wrapper for AngularJS",
"keywords": [
@@ -36,7 +36,7 @@
"prepare": "rollup -c --environment BUILD:production"
},
"dependencies": {
- "@ovh-ux/ovh-at-internet": "^0.29.4"
+ "@ovh-ux/ovh-at-internet": "^0.30.0"
},
"devDependencies": {
"@ovh-ux/component-rollup-config": "^13.2.0",
diff --git a/packages/components/ovh-at-internet/CHANGELOG.md b/packages/components/ovh-at-internet/CHANGELOG.md
index 6265aab404aa..3c28ce32374d 100644
--- a/packages/components/ovh-at-internet/CHANGELOG.md
+++ b/packages/components/ovh-at-internet/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.30.0](https://github.com/ovh/manager/compare/@ovh-ux/ovh-at-internet@0.29.4...@ovh-ux/ovh-at-internet@0.30.0) (2026-03-04)
+
+
+### Features
+
+* fix ovh at internet behavior ([d81f245](https://github.com/ovh/manager/commit/d81f245b6186d67a200ef073de9745334bd4fbd0)), closes [#MANAGER-20904](https://github.com/ovh/manager/issues/MANAGER-20904)
+
+
+
+
+
## [0.29.4](https://github.com/ovh/manager/compare/@ovh-ux/ovh-at-internet@0.29.3...@ovh-ux/ovh-at-internet@0.29.4) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/ovh-at-internet
diff --git a/packages/components/ovh-at-internet/package.json b/packages/components/ovh-at-internet/package.json
index 3df8a69da172..ec0e52c92aa6 100644
--- a/packages/components/ovh-at-internet/package.json
+++ b/packages/components/ovh-at-internet/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/ovh-at-internet",
- "version": "0.29.4",
+ "version": "0.30.0",
"description": "ATInternet tracking library for OVHcloud.",
"keywords": [
"at-internet",
diff --git a/packages/components/ovh-at-internet/src/ovh-at-internet.ts b/packages/components/ovh-at-internet/src/ovh-at-internet.ts
index d6e7587212c2..6bd26a05d6e6 100644
--- a/packages/components/ovh-at-internet/src/ovh-at-internet.ts
+++ b/packages/components/ovh-at-internet/src/ovh-at-internet.ts
@@ -43,6 +43,16 @@ function isTrackingDebug() {
return window.localStorage?.getItem('MANAGER_TRACKING_DEBUG');
}
+function deleteCookieOnAllDomains(cookieName: string) {
+ const parts = window.location.hostname?.split('.');
+ const expired = 'Expires=Thu, 01 Jan 1970 00:00:01 GMT';
+ ['', ...parts.map((_, i) => ` Domain=.${parts.slice(i + 1).join('.')};`)]
+ .filter((d) => d !== ' Domain=.;')
+ .forEach((domainPart) => {
+ document.cookie = `${cookieName}=; Path=/;${domainPart} ${expired};`;
+ });
+}
+
export default class OvhAtInternet extends OvhAtInternetConfig {
/**
* Reference to ATInternet Tag object from their JS library.
@@ -229,6 +239,7 @@ export default class OvhAtInternet extends OvhAtInternetConfig {
window.pa.privacy.include.event('*', 'beforeConsent');
window.pa.privacy.exclude.storageKey('pa_uid', ['beforeConsent']);
window.pa.privacy.setMode('beforeConsent');
+ deleteCookieOnAllDomains('pa_privacy');
}
}
@@ -256,8 +267,9 @@ export default class OvhAtInternet extends OvhAtInternetConfig {
.finally(() => {
this.setEnabled(consent);
if (!consent && this.shouldUsePianoAnalytics()) {
- document.cookie = `_pctx=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
- document.cookie = `_pcid=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
+ deleteCookieOnAllDomains('_pctx');
+ deleteCookieOnAllDomains('_pcid');
+ deleteCookieOnAllDomains('pa_privacy');
}
});
}
diff --git a/packages/components/ovh-shell/CHANGELOG.md b/packages/components/ovh-shell/CHANGELOG.md
index 2d7bd8017160..47a4cc48442d 100644
--- a/packages/components/ovh-shell/CHANGELOG.md
+++ b/packages/components/ovh-shell/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [4.10.7](https://github.com/ovh/manager/compare/@ovh-ux/shell@4.10.6...@ovh-ux/shell@4.10.7) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/shell
+
+
+
+
+
## [4.10.6](https://github.com/ovh/manager/compare/@ovh-ux/shell@4.10.5...@ovh-ux/shell@4.10.6) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/shell
diff --git a/packages/components/ovh-shell/package.json b/packages/components/ovh-shell/package.json
index 335c1ce2256f..d0bcafef2960 100644
--- a/packages/components/ovh-shell/package.json
+++ b/packages/components/ovh-shell/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/shell",
- "version": "4.10.6",
+ "version": "4.10.7",
"description": "Communication and interaction between applications",
"repository": {
"type": "git",
@@ -30,7 +30,7 @@
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-sso": "^0.7.2",
- "@ovh-ux/ovh-at-internet": "^0.29.4",
+ "@ovh-ux/ovh-at-internet": "^0.30.0",
"@ovh-ux/request-tagger": "^0.6.0",
"@ovh-ux/url-builder": "^2.4.3",
"dompurify": "^3.2.4",
diff --git a/packages/manager-tools/manager-pm/CHANGELOG.md b/packages/manager-tools/manager-pm/CHANGELOG.md
index b26312bee089..9971585eb042 100644
--- a/packages/manager-tools/manager-pm/CHANGELOG.md
+++ b/packages/manager-tools/manager-pm/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.53.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-pm@0.52.1...@ovh-ux/manager-pm@0.53.0) (2026-03-11)
+
+
+### Features
+
+* **vrack:** init react app ([43389da](https://github.com/ovh/manager/commit/43389da91100cc53699e7e2d6b567ed22bf64198)), closes [#MANAGER-16231](https://github.com/ovh/manager/issues/MANAGER-16231)
+
+
+
+
+
## [0.52.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-pm@0.52.0...@ovh-ux/manager-pm@0.52.1) (2026-02-24)
**Note:** Version bump only for package @ovh-ux/manager-pm
diff --git a/packages/manager-tools/manager-pm/package.json b/packages/manager-tools/manager-pm/package.json
index abdd06933f39..797cb683c88b 100644
--- a/packages/manager-tools/manager-pm/package.json
+++ b/packages/manager-tools/manager-pm/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-pm",
- "version": "0.52.1",
+ "version": "0.53.0",
"private": true,
"description": "",
"license": "BSD-3-Clause",
diff --git a/packages/manager-tools/manager-pm/src/playbook/catalog/pnpm-catalog.json b/packages/manager-tools/manager-pm/src/playbook/catalog/pnpm-catalog.json
index 6d34e1197075..4599e6cabcb2 100644
--- a/packages/manager-tools/manager-pm/src/playbook/catalog/pnpm-catalog.json
+++ b/packages/manager-tools/manager-pm/src/playbook/catalog/pnpm-catalog.json
@@ -29,6 +29,7 @@
"packages/manager/apps/nutanix",
"packages/manager/apps/okms",
"packages/manager/apps/nasha",
+ "packages/manager/apps/network-vrack",
"packages/manager/apps/pci-ai-endpoints",
"packages/manager/apps/pci-ai-tools",
"packages/manager/apps/pci-billing",
diff --git a/packages/manager-ui-kit/CHANGELOG.md b/packages/manager-ui-kit/CHANGELOG.md
index cae93ed4c5cd..d812e8be5ce8 100644
--- a/packages/manager-ui-kit/CHANGELOG.md
+++ b/packages/manager-ui-kit/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.2.4](https://github.com/ovh/manager/compare/@ovh-ux/muk@1.2.3...@ovh-ux/muk@1.2.4) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/muk
+
+
+
+
+
## [1.2.3](https://github.com/ovh/manager/compare/@ovh-ux/muk@1.2.2...@ovh-ux/muk@1.2.3) (2026-02-06)
**Note:** Version bump only for package @ovh-ux/muk
diff --git a/packages/manager-ui-kit/package.json b/packages/manager-ui-kit/package.json
index d0446f6fcdca..d022a975399b 100644
--- a/packages/manager-ui-kit/package.json
+++ b/packages/manager-ui-kit/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/muk",
- "version": "1.2.3",
+ "version": "1.2.4",
"description": "MUK:Manager UI Kit",
"homepage": "https://github.com/ovh/manager/blob/master/packages/manager-ui-kit/README.md",
"bugs": {
@@ -60,7 +60,7 @@
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-utils": "^0.5.0",
- "@ovh-ux/manager-react-shell-client": "^1.2.3",
+ "@ovh-ux/manager-react-shell-client": "^1.2.4",
"@ovh-ux/manager-static-analysis-kit": "^0.15.0",
"@ovh-ux/manager-tailwind-config": "^0.6.2",
"@ovh-ux/manager-tests-setup": "^0.8.0",
diff --git a/packages/manager-wiki/CHANGELOG.md b/packages/manager-wiki/CHANGELOG.md
index 19de9445789a..90200c7f51b0 100644
--- a/packages/manager-wiki/CHANGELOG.md
+++ b/packages/manager-wiki/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.26.8](https://github.com/ovh/manager/compare/@ovh-ux/manager-wiki@0.26.7...@ovh-ux/manager-wiki@0.26.8) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-wiki
+
+
+
+
+
## [0.26.7](https://github.com/ovh/manager/compare/@ovh-ux/manager-wiki@0.26.6...@ovh-ux/manager-wiki@0.26.7) (2026-02-06)
**Note:** Version bump only for package @ovh-ux/manager-wiki
diff --git a/packages/manager-wiki/package.json b/packages/manager-wiki/package.json
index 9fa7e9b652ba..aaee49b36970 100644
--- a/packages/manager-wiki/package.json
+++ b/packages/manager-wiki/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-wiki",
- "version": "0.26.7",
+ "version": "0.26.8",
"private": true,
"description": "Manager Wiki",
"license": "BSD-3-Clause",
@@ -13,7 +13,7 @@
},
"dependencies": {
"@ovh-ux/manager-core-api": "^0.21.2",
- "@ovh-ux/muk": "^1.2.3",
+ "@ovh-ux/muk": "^1.2.4",
"@ovhcloud/ods-react": "19.5.0",
"@ovhcloud/ods-themes": "19.5.0",
"clsx": "^2.1.1",
@@ -32,7 +32,7 @@
"@ovh-ux/manager-core-api": "^0.12.0",
"@ovh-ux/ovh-at-internet": "^0.21.6",
"@ovh-ux/request-tagger": "^0.6.0",
- "@ovh-ux/shell": "^4.10.6",
+ "@ovh-ux/shell": "^4.10.7",
"@ovh-ux/url-builder": "^2.4.3",
"@storybook/addon-docs": "^8.6.7",
"@storybook/addon-essentials": "^8.6.7",
diff --git a/packages/manager/apps/account-creation/CHANGELOG.md b/packages/manager/apps/account-creation/CHANGELOG.md
index 10325583ee5a..830426452d3a 100644
--- a/packages/manager/apps/account-creation/CHANGELOG.md
+++ b/packages/manager/apps/account-creation/CHANGELOG.md
@@ -3,6 +3,43 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.13.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-account-creation-app@0.13.1...@ovh-ux/manager-account-creation-app@0.13.2) (2026-03-09)
+
+
+### Bug Fixes
+
+* **account-creation:** add conditional gender and birthday ([0a7f82a](https://github.com/ovh/manager/commit/0a7f82a0018df029db4b9aeac2bd0c80dffaa3f1)), closes [#MANAGER-20917](https://github.com/ovh/manager/issues/MANAGER-20917)
+
+
+
+
+
+## [0.13.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-account-creation-app@0.13.0...@ovh-ux/manager-account-creation-app@0.13.1) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-account-creation-app
+
+
+
+
+
+# [0.13.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-account-creation-app@0.12.2...@ovh-ux/manager-account-creation-app@0.13.0) (2026-03-03)
+
+
+### Bug Fixes
+
+* **account-creation:** add conditional NIN ([6e97d0a](https://github.com/ovh/manager/commit/6e97d0a257d60a9502abd5c149ec01a0d7e0dc70)), closes [#MANAGER-21054](https://github.com/ovh/manager/issues/MANAGER-21054)
+* **account-creation:** remove siret mandatory hotfix ([d144407](https://github.com/ovh/manager/commit/d144407a6c786fa2d958c88676541797a0e2da5a)), closes [#MANAGER-20933](https://github.com/ovh/manager/issues/MANAGER-20933)
+* **i18n:** add missing translations [CDS 1193] ([7af273e](https://github.com/ovh/manager/commit/7af273ebb84029ffcd5c4dafc8cca92fe72cf412))
+
+
+### Features
+
+* **account-creation:** add corporation type ([30d9741](https://github.com/ovh/manager/commit/30d97412caaf2545aacc7e0b7f473f39ecdeaf23)), closes [#MANAGER-20913](https://github.com/ovh/manager/issues/MANAGER-20913)
+
+
+
+
+
## [0.12.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-account-creation-app@0.12.1...@ovh-ux/manager-account-creation-app@0.12.2) (2026-02-25)
diff --git a/packages/manager/apps/account-creation/package.json b/packages/manager/apps/account-creation/package.json
index 146daa300d13..456dcca91435 100644
--- a/packages/manager/apps/account-creation/package.json
+++ b/packages/manager/apps/account-creation/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-account-creation-app",
- "version": "0.12.2",
+ "version": "0.13.2",
"private": true,
"description": "Application used to finalize an account creation",
"repository": {
@@ -24,12 +24,12 @@
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-utils": "^0.5.0",
- "@ovh-ux/manager-gcj-module": "^0.8.3",
+ "@ovh-ux/manager-gcj-module": "^0.8.4",
"@ovh-ux/manager-react-components": "2.43.2",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "^0.6.0",
- "@ovh-ux/shell": "^4.10.6",
+ "@ovh-ux/shell": "^4.10.7",
"@ovhcloud/ods-components": "18.6.4",
"@ovhcloud/ods-react": "^19.3.0",
"@ovhcloud/ods-themes": "19.3.0",
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_de_DE.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_de_DE.json
index 8d3bc03d662e..f301c9f7422b 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_de_DE.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_de_DE.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Vorname des gesetzlichen Vertreters",
"account_details_field_corporation_lastname": "Name des gesetzlichen Vertreters",
"account_details_section_address_kyc_info": "Achten Sie darauf, alle Informationen einzugeben, und vergewissern Sie sich, dass Ihre persönlichen Daten mit dem Namen und der Adresse in Ihren offiziellen Dokumenten übereinstimmen, um eine Bestellung aufzugeben.
Geben Sie Ihre vollständige Adresse an.
Die Adresse muss mit der Adresse auf dem Adressnachweis übereinstimmen, der zur Überprüfung Ihrer Identität angefordert wird.
",
- "account_details_field_italian_sdi": "Empfänger-Code für die elektronische Rechnungsstellung (SDI)"
+ "account_details_field_italian_sdi": "Empfänger-Code für die elektronische Rechnungsstellung (SDI)",
+ "account_details_field_corporationType": "Unternehmensart",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personal",
+ "account_details_field_nationalIdentificationNumber": "Nationale Identifikationsnummer",
+ "account_details_field_sex": "Geschlecht",
+ "account_details_field_birthDay": "Geburtsdatum",
+ "account_details_sex_option_female": "Weiblich",
+ "account_details_sex_option_male": "Männlich"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_en_GB.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_en_GB.json
index 89a7dafd86d5..d7c58431f13b 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_en_GB.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_en_GB.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Last name (legal representative):",
"account_details_field_corporation_lastname": "First name (legal representative):",
"account_details_section_address_kyc_info": "Please remember to fill in every field and confirm that your personal details match the name and address in your official documents before placing your order.
Enter your full address
The address must match the one on the proof of address for identity verification.
",
- "account_details_field_italian_sdi": "Recipient code for electronic billing (SDI)"
+ "account_details_field_italian_sdi": "Recipient code for electronic invoicing (SDI)",
+ "account_details_field_corporationType": "Type of company",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personal",
+ "account_details_field_nationalIdentificationNumber": "National identification number",
+ "account_details_field_sex": "Sex",
+ "account_details_field_birthDay": "Date of birth",
+ "account_details_sex_option_female": "Female",
+ "account_details_sex_option_male": "Male"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_es_ES.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_es_ES.json
index c22fad5003a2..a9dc961a0eca 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_es_ES.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_es_ES.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Nombre del representante legal",
"account_details_field_corporation_lastname": "Apellido del representante legal",
"account_details_section_address_kyc_info": "Para poder realizar su pedido, deberá incluir toda la información solicitada y asegurarse de que sus datos personales coinciden con el nombre y la dirección que aparecen en sus documentos oficiales.
Introduzca su dirección completa
La dirección debe corresponder a la que aparece en el justificante de dirección que se le solicitará para comprobar su identidad.
",
- "account_details_field_italian_sdi": "Código del destinatario para la factura electrónica (SDI)"
+ "account_details_field_italian_sdi": "Código del destinatario para la facturación electrónica (SDI)",
+ "account_details_field_corporationType": "Tipo de empresa",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personal",
+ "account_details_field_nationalIdentificationNumber": "Número de identificación nacional",
+ "account_details_field_sex": "Género",
+ "account_details_field_birthDay": "Fecha de nacimiento",
+ "account_details_sex_option_female": "Femenino",
+ "account_details_sex_option_male": "Masculino"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_CA.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_CA.json
index 8298d45821bc..88c01bbb34a8 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_CA.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_CA.json
@@ -46,5 +46,20 @@
"account_details_field_sms_consent": "J'accepte librement de recevoir des SMS relatifs aux nouveautés et offres commerciales d'OVHcloud",
"account_details_button_validate": "Valider",
"account_details_error_message": "Veuillez vérifier les champs marqués en rouge.",
- "account_details_success_message": "Vos informations ont été enregistrées avec succès."
+ "account_details_success_message": "Vos informations ont été enregistrées avec succès.",
+ "account_details_field_corporationType": "Type d'entreprise",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personnelle",
+ "account_details_field_nationalIdentificationNumber": "Numéro d'identification national",
+ "account_details_field_sex": "Genre",
+ "account_details_field_birthDay": "Date de naissance",
+ "account_details_sex_option_female": "Femme",
+ "account_details_sex_option_male": "Homme"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_FR.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_FR.json
index 8298d45821bc..88c01bbb34a8 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_FR.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_FR.json
@@ -46,5 +46,20 @@
"account_details_field_sms_consent": "J'accepte librement de recevoir des SMS relatifs aux nouveautés et offres commerciales d'OVHcloud",
"account_details_button_validate": "Valider",
"account_details_error_message": "Veuillez vérifier les champs marqués en rouge.",
- "account_details_success_message": "Vos informations ont été enregistrées avec succès."
+ "account_details_success_message": "Vos informations ont été enregistrées avec succès.",
+ "account_details_field_corporationType": "Type d'entreprise",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personnelle",
+ "account_details_field_nationalIdentificationNumber": "Numéro d'identification national",
+ "account_details_field_sex": "Genre",
+ "account_details_field_birthDay": "Date de naissance",
+ "account_details_sex_option_female": "Femme",
+ "account_details_sex_option_male": "Homme"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_it_IT.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_it_IT.json
index a27a94c4425f..5e37f8cf4717 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_it_IT.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_it_IT.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Nome del rappresentante legale",
"account_details_field_corporation_lastname": "Cognome del rappresentante legale",
"account_details_section_address_kyc_info": "Per effettuare un ordine, ricordati di inserire tutte le informazioni richieste e assicurati che i tuoi dati personali coincidano con il nome e l’indirizzo che appaiono nei documenti ufficiali.
Inserisci il tuo indirizzo completo
L'indirizzo deve coincidere con quello presente nel giustificativo richiesto per verificare la tua identità
",
- "account_details_field_italian_sdi": "Codice destinatario per fatturazione elettronica (SDI)"
+ "account_details_field_italian_sdi": "Codice del destinatario per la fatturazione elettronica (SDI)",
+ "account_details_field_corporationType": "Tipo di impresa",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Personale",
+ "account_details_field_nationalIdentificationNumber": "Numero di identificazione nazionale",
+ "account_details_field_sex": "Genere",
+ "account_details_field_birthDay": "Data di nascita",
+ "account_details_sex_option_female": "F",
+ "account_details_sex_option_male": "M"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_pl_PL.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_pl_PL.json
index 6f7a316679d3..e1d0fe8a0180 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_pl_PL.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_pl_PL.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Imię prawnego przedstawiciela",
"account_details_field_corporation_lastname": "Nazwisko prawnego przedstawiciela",
"account_details_section_address_kyc_info": "Przed złożeniem zamówienia pamiętaj o wprowadzeniu wszystkich informacji i upewnij się, że Twoje imię i nazwisko odpowiada danym osobowym podanym w Twoich oficjalnych dokumentach.
Wpisz pełny adres
Adres musi być zgodny z adresem widniejącym w dokumencie potwierdzającym Twoją tożsamość
",
- "account_details_field_italian_sdi": "Kod nabywcy na fakturze elektronicznej (SDI)"
+ "account_details_field_italian_sdi": "Kod odbiorcy do fakturowania elektronicznego (SDI)",
+ "account_details_field_corporationType": "Rodzaj przedsiębiorstwa",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Osobowa",
+ "account_details_field_nationalIdentificationNumber": "Numer identyfikacji narodowej",
+ "account_details_field_sex": "Płeć",
+ "account_details_field_birthDay": "Data urodzenia",
+ "account_details_sex_option_female": "Kobieta",
+ "account_details_sex_option_male": "Mężczyzna"
}
diff --git a/packages/manager/apps/account-creation/public/translations/account-details/Messages_pt_PT.json b/packages/manager/apps/account-creation/public/translations/account-details/Messages_pt_PT.json
index a82ebfd8da92..aaeca45359b7 100644
--- a/packages/manager/apps/account-creation/public/translations/account-details/Messages_pt_PT.json
+++ b/packages/manager/apps/account-creation/public/translations/account-details/Messages_pt_PT.json
@@ -50,5 +50,20 @@
"account_details_field_corporation_firstname": "Nome próprio do representante legal",
"account_details_field_corporation_lastname": "Nome do representante legal",
"account_details_section_address_kyc_info": "Não se esqueça de introduzir todas as informações e certifique-se de que os seus dados pessoais correspondem ao nome e endereço que constam nos seus documentos oficiais, para que possa efetuar uma encomenda.
Introduza a sua morada completa
A morada deve corresponder ao que figura no comprovativo de morada que lhe será pedido para verificar a sua identidade.
",
- "account_details_field_italian_sdi": "Código do destinatário para a faturação eletrónica (SDI)"
+ "account_details_field_italian_sdi": "Código do destinatário para a faturação eletrónica (SDI)",
+ "account_details_field_corporationType": "Tipo de empresa",
+ "account_details_field_corporationType_sapa": "SAPA",
+ "account_details_field_corporationType_sas": "SAS",
+ "account_details_field_corporationType_sc": "SC",
+ "account_details_field_corporationType_scarl": "SCARL",
+ "account_details_field_corporationType_snc": "SNC",
+ "account_details_field_corporationType_spa": "SPA",
+ "account_details_field_corporationType_srl": "SRL",
+ "account_details_field_corporationType_ss": "SS",
+ "account_details_field_corporationType_personnelle": "Pessoal",
+ "account_details_field_nationalIdentificationNumber": "Número de identificação nacional",
+ "account_details_field_sex": "Género",
+ "account_details_field_birthDay": "Data de nascimento",
+ "account_details_sex_option_female": "Feminino",
+ "account_details_sex_option_male": "Masculino"
}
diff --git a/packages/manager/apps/account-creation/src/hooks/zod/useZod.ts b/packages/manager/apps/account-creation/src/hooks/zod/useZod.ts
index 6d8378b9f955..2b24ad90ac38 100644
--- a/packages/manager/apps/account-creation/src/hooks/zod/useZod.ts
+++ b/packages/manager/apps/account-creation/src/hooks/zod/useZod.ts
@@ -1,10 +1,24 @@
import { z } from 'zod';
import { Rule } from '@/types/rule';
+type OptionalRuleZodSchema = z.ZodOptional<
+ z.ZodString | z.ZodEffects
+>;
+
+type OptionalUnionWithEmpty = z.ZodUnion<
+ [OptionalRuleZodSchema, z.ZodLiteral<''>]
+>;
+
export type RuleZodSchema =
| z.ZodString
| z.ZodEffects
- | z.ZodOptional>;
+ | OptionalRuleZodSchema
+ | OptionalUnionWithEmpty
+ | z.ZodEffects<
+ OptionalUnionWithEmpty,
+ string | undefined,
+ string | undefined
+ >;
export const toZodField = (field: Rule): RuleZodSchema => {
let zodSchema: RuleZodSchema = z
@@ -35,7 +49,9 @@ export const toZodField = (field: Rule): RuleZodSchema => {
}
if (!field.mandatory) {
- return zodSchema.optional();
+ return z
+ .union([zodSchema.optional(), z.literal('')])
+ .transform((val) => (val === '' ? undefined : val));
}
return zodSchema;
diff --git a/packages/manager/apps/account-creation/src/pages/accountDetails/accountDetails.page.tsx b/packages/manager/apps/account-creation/src/pages/accountDetails/accountDetails.page.tsx
index 845a91837cb7..3f16c93f6dac 100644
--- a/packages/manager/apps/account-creation/src/pages/accountDetails/accountDetails.page.tsx
+++ b/packages/manager/apps/account-creation/src/pages/accountDetails/accountDetails.page.tsx
@@ -3,7 +3,7 @@ import { Trans, useTranslation } from 'react-i18next';
import { Controller, SubmitHandler, useForm, useWatch } from 'react-hook-form';
import { useSearchParams } from 'react-router-dom';
import { useMutation } from '@tanstack/react-query';
-import { z, ZodOptional } from 'zod';
+import { z } from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';
import {
BaseLayout,
@@ -23,6 +23,7 @@ import {
OdsSkeleton,
OdsText,
OdsMessage,
+ OdsDatepicker,
} from '@ovhcloud/ods-components/react';
import {
PHONE_NUMBER_COUNTRY_ISO_CODE,
@@ -38,7 +39,7 @@ import {
ODS_PHONE_NUMBER_COUNTRY_ISO_CODE,
ODS_TEXT_PRESET,
} from '@ovhcloud/ods-components';
-import { Country, User } from '@ovh-ux/manager-config';
+import { User } from '@ovh-ux/manager-config';
import { NAMESPACES } from '@ovh-ux/manager-common-translations';
import {
ButtonType,
@@ -53,8 +54,6 @@ import { useMe } from '@/data/hooks/useMe';
import { Rule, RuleField } from '@/types/rule';
import {
getZodSchemaFromRule,
- RuleZodSchema,
- toZodField,
useZodTranslatedError,
} from '@/hooks/zod/useZod';
import { putMe } from '@/data/api/me';
@@ -73,8 +72,6 @@ import {
useTrackBackButtonClick,
} from '@/hooks/tracking/useTracking';
import {
- CNIN_NON_MANDATORY_RULE,
- CNIN_RULE,
COUNTRIES_VAT_LABEL,
TRACKING_GOAL_TYPE,
} from './accountDetails.constants';
@@ -88,7 +85,6 @@ import {
} from '@/components/formSkeleton';
import ExitGuard from '@/components/exitGuard/ExitGuard.component';
import InvalidationRedirectGuard from '@/components/invalidationRedirectGuard/InvalidationRedirectGuard.component';
-import { isCNINMandatory, isCNINVisible } from '@/helpers/xander/xanderHelper';
type AccountDetailsFormProps = {
rules: Record;
@@ -118,9 +114,6 @@ function AccountDetailsForm({
const pageTracking = usePageTracking();
const { trackClick, trackPage } = useTrackingContext();
const { trackError } = useTrackError('final-step');
- const [cninSchemaOverride, setCninSchemaOverride] = useState<
- RuleZodSchema | undefined
- >(undefined);
const {
legalForm,
@@ -141,19 +134,11 @@ function AccountDetailsForm({
const zodSchema = useMemo(() => {
const baseSchema = getZodSchemaFromRule(rules);
- // TODO: Remove after mandatory check is implemented in Xander for FR
- if (cninSchemaOverride) {
- return baseSchema.extend({
- confirmSend: z.literal(true),
- smsConsent: z.boolean().optional(),
- companyNationalIdentificationNumber: cninSchemaOverride,
- });
- }
return baseSchema.extend({
confirmSend: z.literal(true),
smsConsent: z.boolean().optional(),
});
- }, [rules, cninSchemaOverride]);
+ }, [rules]);
function renderTranslatedZodError(message: string | undefined, rule: Rule) {
if (!message) return undefined;
@@ -249,29 +234,6 @@ function AccountDetailsForm({
if (!phone && country !== phoneCountry) {
setValue('phoneCountry', country);
}
-
- // TODO: Remove after mandatory check is implemented in Xander for FR
- if (
- legalForm === 'corporation' && // Add only for corporation legal form
- isCNINMandatory({
- ovhSubsidiary,
- country: (country as Country) || undefined,
- defaultMandatory:
- rules?.companyNationalIdentificationNumber?.mandatory,
- })
- ) {
- setCninSchemaOverride(toZodField(CNIN_RULE));
- } else if (
- (legalForm === 'association' || legalForm === 'administration') &&
- isCNINVisible({
- ovhSubsidiary,
- country: (country as Country) || undefined,
- })
- ) {
- setCninSchemaOverride(toZodField(CNIN_NON_MANDATORY_RULE));
- } else {
- setCninSchemaOverride(undefined);
- }
}
}, [country]);
@@ -423,6 +385,160 @@ function AccountDetailsForm({
);
}}
/>
+ {/* Display national identification number if legal form is individual and national identification number rule is present */}
+ {isIndividualLegalForm(legalForm) &&
+ rules?.nationalIdentificationNumber && (
+ <>
+ (
+
+
+
+ {errors.nationalIdentificationNumber &&
+ rules?.nationalIdentificationNumber && (
+
+ {renderTranslatedZodError(
+ errors.nationalIdentificationNumber.message,
+ rules?.nationalIdentificationNumber,
+ )}
+
+ )}
+
+ )}
+ />
+ >
+ )}
+ {rules?.sex?.mandatory && (
+ (
+
+
+
+ );
+ }
+ return null;
+ },
+ };
+ }
+
+ // Case B: All Other Columns
+ // We want them to be empty on the Group Header row to avoid visual clutter or errors
+ return {
+ ...config,
+ isSearchable: false,
+ cell: (props: any) => {
+ // If it is a group header, render nothing in this column
+ if (props.row.depth === 0) {
+ if (config.id === penultimateVisibleColumnId) {
+ const rowOriginal = props.row.original;
+ const count = rowOriginal.subRows.length;
+
+ return (
+
@@ -33,6 +22,7 @@
data-server="$ctrl.server"
data-server-name="$ctrl.serverName"
data-interfaces="$ctrl.interfaces"
+ data-ola="$ctrl.ola"
data-specifications="$ctrl.specifications"
data-urls="$ctrl.urls"
data-failover-ips="$ctrl.failoverIps"
diff --git a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/interfaces/interfaces.routing.js b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/interfaces/interfaces.routing.js
index ce5cfcac108e..ad571d7b62d8 100644
--- a/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/interfaces/interfaces.routing.js
+++ b/packages/manager/apps/dedicated/client/app/dedicated/dedicated-server/servers/interfaces/interfaces.routing.js
@@ -90,7 +90,7 @@ export default /* @ngInject */ ($stateProvider) => {
urls: /* @ngInject */ (constants, user) =>
constants.urls[user.ovhSubsidiary],
breadcrumb: /* @ngInject */ ($translate) =>
- $translate.instant('dedicated_server_interfaces'),
+ $translate.instant('dedicated_server_interfaces_breadcrumb'),
goToInterfaces: ($state, Alerter, serverName) => (
message = false,
type = 'success',
diff --git a/packages/manager/apps/dedicated/package.json b/packages/manager/apps/dedicated/package.json
index 68587106f388..02a6db1a7aac 100644
--- a/packages/manager/apps/dedicated/package.json
+++ b/packages/manager/apps/dedicated/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-dedicated",
- "version": "20.74.14",
+ "version": "20.75.3",
"private": true,
"description": "OVHcloud Dedicated control panel.",
"repository": {
@@ -26,34 +26,34 @@
"@ovh-ux/manager-banner": "^1.3.7",
"@ovh-ux/manager-beta-preference": "^1.0.6",
"@ovh-ux/manager-billing": "^0.65.4",
- "@ovh-ux/manager-billing-components": "^4.35.5",
- "@ovh-ux/manager-bm-server-components": "^2.21.1",
+ "@ovh-ux/manager-billing-components": "^4.35.6",
+ "@ovh-ux/manager-bm-server-components": "^2.22.0",
"@ovh-ux/manager-catalog-price": "^1.8.1",
"@ovh-ux/manager-cda": "^1.10.2",
"@ovh-ux/manager-cloud-connect": "^1.27.1",
"@ovh-ux/manager-cloud-styles": "^1.9.3",
- "@ovh-ux/manager-components": "^1.28.0",
+ "@ovh-ux/manager-components": "^1.29.0",
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core": "^13.4.4",
"@ovh-ux/manager-dbaas-logs": "^1.37.5",
"@ovh-ux/manager-error-page": "^2.4.7",
"@ovh-ux/manager-exchange": "^4.18.3",
"@ovh-ux/manager-filters": "^1.2.2",
- "@ovh-ux/manager-iplb": "^1.30.2",
+ "@ovh-ux/manager-iplb": "^1.31.0",
"@ovh-ux/manager-log-to-customer": "^2.8.2",
"@ovh-ux/manager-metrics": "^1.6.2",
"@ovh-ux/manager-models": "^2.7.11",
"@ovh-ux/manager-nasha": "^2.20.3",
"@ovh-ux/manager-netapp": "^2.17.10",
"@ovh-ux/manager-ng-layout-helpers": "^2.13.1",
- "@ovh-ux/manager-nutanix": "^2.11.29",
+ "@ovh-ux/manager-nutanix": "^2.12.0",
"@ovh-ux/manager-resource-tagging": "^1.3.2",
"@ovh-ux/manager-support": "^2.1.45",
"@ovh-ux/manager-trusted-nic": "^1.2.2",
"@ovh-ux/manager-veeam-enterprise": "^1.13.3",
"@ovh-ux/manager-vps": "^2.50.15",
- "@ovh-ux/manager-vrack": "^1.22.0",
- "@ovh-ux/ng-at-internet": "^6.0.45",
+ "@ovh-ux/manager-vrack": "^1.23.0",
+ "@ovh-ux/ng-at-internet": "^6.0.46",
"@ovh-ux/ng-at-internet-ui-router-plugin": "^3.5.6",
"@ovh-ux/ng-log-live-tail": "^2.7.2",
"@ovh-ux/ng-ovh-api-wrappers": "^5.1.0",
@@ -82,13 +82,13 @@
"@ovh-ux/ng-ovh-web-universe-components": "^9.21.3",
"@ovh-ux/ng-pagination-front": "^10.3.7",
"@ovh-ux/ng-q-allsettled": "^2.1.7",
- "@ovh-ux/ng-shell-tracking": "^0.7.39",
+ "@ovh-ux/ng-shell-tracking": "^0.7.40",
"@ovh-ux/ng-tail-logs": "^2.2.6",
"@ovh-ux/ng-translate-async-loader": "^2.2.7",
"@ovh-ux/ng-ui-router-breadcrumb": "^1.4.3",
"@ovh-ux/ng-ui-router-layout": "^4.3.7",
"@ovh-ux/request-tagger": "^0.6.0",
- "@ovh-ux/shell": "^4.10.6",
+ "@ovh-ux/shell": "^4.10.7",
"@ovh-ux/ui-kit": "^6.10.5",
"@uirouter/angularjs": "^1.0.23",
"URIjs": "^1.14.0",
diff --git a/packages/manager/apps/exchange/CHANGELOG.md b/packages/manager/apps/exchange/CHANGELOG.md
index 13ee698575d7..7736e53ef006 100644
--- a/packages/manager/apps/exchange/CHANGELOG.md
+++ b/packages/manager/apps/exchange/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.13.49](https://github.com/ovh/manager/compare/@ovh-ux/manager-exchange-app@0.13.48...@ovh-ux/manager-exchange-app@0.13.49) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-exchange-app
+
+
+
+
+
## [0.13.48](https://github.com/ovh/manager/compare/@ovh-ux/manager-exchange-app@0.13.47...@ovh-ux/manager-exchange-app@0.13.48) (2026-02-11)
**Note:** Version bump only for package @ovh-ux/manager-exchange-app
diff --git a/packages/manager/apps/exchange/package.json b/packages/manager/apps/exchange/package.json
index 82fba888969b..2ba3adb716e5 100644
--- a/packages/manager/apps/exchange/package.json
+++ b/packages/manager/apps/exchange/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-exchange-app",
- "version": "0.13.48",
+ "version": "0.13.49",
"private": true,
"repository": {
"type": "git",
@@ -23,7 +23,7 @@
"@ovh-ux/manager-log-to-customer": "^2.8.2",
"@ovh-ux/manager-ng-apiv2-helper": "^0.2.1",
"@ovh-ux/manager-ng-layout-helpers": "^2.13.1",
- "@ovh-ux/ng-at-internet": "^6.0.45",
+ "@ovh-ux/ng-at-internet": "^6.0.46",
"@ovh-ux/ng-log-live-tail": "^2.7.2",
"@ovh-ux/ng-ovh-api-wrappers": "^5.1.0",
"@ovh-ux/ng-ovh-chart": "^1.3.5",
diff --git a/packages/manager/apps/freefax/CHANGELOG.md b/packages/manager/apps/freefax/CHANGELOG.md
index b15f233e3173..abe7480cc44a 100644
--- a/packages/manager/apps/freefax/CHANGELOG.md
+++ b/packages/manager/apps/freefax/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [9.0.78](https://github.com/ovh/manager/compare/@ovh-ux/manager-freefax-app@9.0.77...@ovh-ux/manager-freefax-app@9.0.78) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-freefax-app
+
+
+
+
+
## [9.0.77](https://github.com/ovh/manager/compare/@ovh-ux/manager-freefax-app@9.0.76...@ovh-ux/manager-freefax-app@9.0.77) (2026-02-20)
diff --git a/packages/manager/apps/freefax/package.json b/packages/manager/apps/freefax/package.json
index 5fa978f86853..4863ab8da9b4 100644
--- a/packages/manager/apps/freefax/package.json
+++ b/packages/manager/apps/freefax/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-freefax-app",
- "version": "9.0.77",
+ "version": "9.0.78",
"private": true,
"description": "Freefax standalone application.",
"repository": {
@@ -23,7 +23,7 @@
"@ovh-ux/manager-freefax": "^7.9.6",
"@ovh-ux/manager-ng-layout-helpers": "^2.13.1",
"@ovh-ux/manager-telecom-styles": "^4.8.8",
- "@ovh-ux/ng-at-internet": "^6.0.45",
+ "@ovh-ux/ng-at-internet": "^6.0.46",
"@ovh-ux/ng-ovh-api-wrappers": "^5.1.0",
"@ovh-ux/ng-ovh-checkbox-table": "^2.1.7",
"@ovh-ux/ng-ovh-contracts": "^4.6.6",
diff --git a/packages/manager/apps/hpc-backup-agent-iaas/CHANGELOG.md b/packages/manager/apps/hpc-backup-agent-iaas/CHANGELOG.md
index 78154e347bac..460de70169f7 100644
--- a/packages/manager/apps/hpc-backup-agent-iaas/CHANGELOG.md
+++ b/packages/manager/apps/hpc-backup-agent-iaas/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.1.23](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-backup-agent-iaas-app@0.1.22...@ovh-ux/manager-hpc-backup-agent-iaas-app@0.1.23) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-hpc-backup-agent-iaas-app
+
+
+
+
+
## [0.1.22](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-backup-agent-iaas-app@0.1.21...@ovh-ux/manager-hpc-backup-agent-iaas-app@0.1.22) (2026-02-26)
**Note:** Version bump only for package @ovh-ux/manager-hpc-backup-agent-iaas-app
diff --git a/packages/manager/apps/hpc-backup-agent-iaas/package.json b/packages/manager/apps/hpc-backup-agent-iaas/package.json
index 144f505cbc26..a74c563fcf68 100644
--- a/packages/manager/apps/hpc-backup-agent-iaas/package.json
+++ b/packages/manager/apps/hpc-backup-agent-iaas/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hpc-backup-agent-iaas-app",
- "version": "0.1.22",
+ "version": "0.1.23",
"private": true,
"description": "OVHcloud Backup Agent for IaaS",
"repository": {
@@ -25,10 +25,10 @@
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-utils": "*",
"@ovh-ux/manager-react-components": "2.43.1",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "*",
- "@ovh-ux/shell": "^4.10.6",
+ "@ovh-ux/shell": "^4.10.7",
"@ovhcloud/ods-components": "~18.6.2",
"@ovhcloud/ods-themes": "~18.6.2",
"@tanstack/react-query": "5.51.21",
diff --git a/packages/manager/apps/hpc-vmware-public-vcf-aas/CHANGELOG.md b/packages/manager/apps/hpc-vmware-public-vcf-aas/CHANGELOG.md
index b29faeaf0b40..2ab07d2b8398 100644
--- a/packages/manager/apps/hpc-vmware-public-vcf-aas/CHANGELOG.md
+++ b/packages/manager/apps/hpc-vmware-public-vcf-aas/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.31.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.31.1...@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.31.2) (2026-03-11)
+
+**Note:** Version bump only for package @ovh-ux/manager-hpc-vmware-public-vcf-aas-app
+
+
+
+
+
+## [0.31.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.31.0...@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.31.1) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-hpc-vmware-public-vcf-aas-app
+
+
+
+
+
# [0.31.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.30.3...@ovh-ux/manager-hpc-vmware-public-vcf-aas-app@0.31.0) (2026-02-24)
diff --git a/packages/manager/apps/hpc-vmware-public-vcf-aas/package.json b/packages/manager/apps/hpc-vmware-public-vcf-aas/package.json
index 6e84d55dcd57..6a45a26f533f 100644
--- a/packages/manager/apps/hpc-vmware-public-vcf-aas/package.json
+++ b/packages/manager/apps/hpc-vmware-public-vcf-aas/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hpc-vmware-public-vcf-aas-app",
- "version": "0.31.0",
+ "version": "0.31.2",
"private": true,
"description": "New managed VMware Public VCF aas offers",
"repository": {
@@ -27,9 +27,9 @@
"@ovh-ux/manager-module-common-api": "^0.6.7",
"@ovh-ux/manager-module-order": "^0.14.1",
"@ovh-ux/manager-module-vcd-api": "^0.11.3",
- "@ovh-ux/manager-network-common": "^0.9.0",
+ "@ovh-ux/manager-network-common": "^0.10.0",
"@ovh-ux/manager-react-components": "^2.43.1",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "^0.6.0",
"@ovhcloud/ods-components": "^18.6.2",
diff --git a/packages/manager/apps/hpc-vmware-vsphere/CHANGELOG.md b/packages/manager/apps/hpc-vmware-vsphere/CHANGELOG.md
index 06eeb6ad6882..980446781c7c 100644
--- a/packages/manager/apps/hpc-vmware-vsphere/CHANGELOG.md
+++ b/packages/manager/apps/hpc-vmware-vsphere/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.3.20](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-vmware-vsphere-app@0.3.19...@ovh-ux/manager-hpc-vmware-vsphere-app@0.3.20) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-hpc-vmware-vsphere-app
+
+
+
+
+
## [0.3.19](https://github.com/ovh/manager/compare/@ovh-ux/manager-hpc-vmware-vsphere-app@0.3.18...@ovh-ux/manager-hpc-vmware-vsphere-app@0.3.19) (2026-02-16)
**Note:** Version bump only for package @ovh-ux/manager-hpc-vmware-vsphere-app
diff --git a/packages/manager/apps/hpc-vmware-vsphere/package.json b/packages/manager/apps/hpc-vmware-vsphere/package.json
index 4d2b12c38c09..2a5d38d75340 100644
--- a/packages/manager/apps/hpc-vmware-vsphere/package.json
+++ b/packages/manager/apps/hpc-vmware-vsphere/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hpc-vmware-vsphere-app",
- "version": "0.3.19",
+ "version": "0.3.20",
"private": true,
"description": "Managed VMware vsphere services",
"repository": {
@@ -27,7 +27,7 @@
"@ovh-ux/manager-core-utils": "^0.5.0",
"@ovh-ux/manager-module-order": "^0.14.1",
"@ovh-ux/manager-react-components": "2.43.1",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "^0.6.0",
"@ovhcloud/ods-components": "18.6.2",
diff --git a/packages/manager/apps/hub/CHANGELOG.md b/packages/manager/apps/hub/CHANGELOG.md
index 130f060eb2c1..ef94a9e58af8 100644
--- a/packages/manager/apps/hub/CHANGELOG.md
+++ b/packages/manager/apps/hub/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.29.8](https://github.com/ovh/manager/compare/@ovh-ux/manager-hub-app@0.29.7...@ovh-ux/manager-hub-app@0.29.8) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-hub-app
+
+
+
+
+
## [0.29.7](https://github.com/ovh/manager/compare/@ovh-ux/manager-hub-app@0.29.6...@ovh-ux/manager-hub-app@0.29.7) (2026-02-16)
diff --git a/packages/manager/apps/hub/package.json b/packages/manager/apps/hub/package.json
index 452597caed57..eaa2ee427221 100644
--- a/packages/manager/apps/hub/package.json
+++ b/packages/manager/apps/hub/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hub-app",
- "version": "0.29.7",
+ "version": "0.29.8",
"private": true,
"description": "OVHcloud Dashboard control panel.",
"repository": {
@@ -24,7 +24,7 @@
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-models": "^2.7.11",
"@ovh-ux/manager-react-components": "^1.48.0",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "^0.6.0",
"@ovhcloud/ods-common-core": "17.2.1",
diff --git a/packages/manager/apps/hycu/CHANGELOG.md b/packages/manager/apps/hycu/CHANGELOG.md
index 972454d5113d..28818edb8111 100644
--- a/packages/manager/apps/hycu/CHANGELOG.md
+++ b/packages/manager/apps/hycu/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.15.39](https://github.com/ovh/manager/compare/@ovh-ux/manager-hycu-app@0.15.38...@ovh-ux/manager-hycu-app@0.15.39) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-hycu-app
+
+
+
+
+
## [0.15.38](https://github.com/ovh/manager/compare/@ovh-ux/manager-hycu-app@0.15.37...@ovh-ux/manager-hycu-app@0.15.38) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/manager-hycu-app
diff --git a/packages/manager/apps/hycu/package.json b/packages/manager/apps/hycu/package.json
index 1f61c52ea3a1..41954f37e3c9 100644
--- a/packages/manager/apps/hycu/package.json
+++ b/packages/manager/apps/hycu/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hycu-app",
- "version": "0.15.38",
+ "version": "0.15.39",
"private": true,
"description": "Backup HYCU for OVHcloud",
"repository": {
@@ -26,7 +26,7 @@
"@ovh-ux/manager-module-common-api": "^0.6.7",
"@ovh-ux/manager-module-order": "^0.14.1",
"@ovh-ux/manager-react-components": "1.48.0",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/manager-tailwind-config": "^0.6.2",
"@ovh-ux/request-tagger": "^0.6.0",
diff --git a/packages/manager/apps/iam/CHANGELOG.md b/packages/manager/apps/iam/CHANGELOG.md
index a3ac9a074f89..cc32f5b5380f 100644
--- a/packages/manager/apps/iam/CHANGELOG.md
+++ b/packages/manager/apps/iam/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [3.2.23](https://github.com/ovh/manager/compare/@ovh-ux/manager-iam-app@3.2.22...@ovh-ux/manager-iam-app@3.2.23) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-iam-app
+
+
+
+
+
## [3.2.22](https://github.com/ovh/manager/compare/@ovh-ux/manager-iam-app@3.2.21...@ovh-ux/manager-iam-app@3.2.22) (2026-03-03)
**Note:** Version bump only for package @ovh-ux/manager-iam-app
diff --git a/packages/manager/apps/iam/package.json b/packages/manager/apps/iam/package.json
index 3179ff293ec4..e10a9f6029cf 100644
--- a/packages/manager/apps/iam/package.json
+++ b/packages/manager/apps/iam/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-iam-app",
- "version": "3.2.22",
+ "version": "3.2.23",
"private": true,
"description": "IAM standalone application.",
"repository": {
@@ -27,7 +27,7 @@
"@ovh-ux/manager-iam": "^1.27.0",
"@ovh-ux/manager-log-to-customer": "^2.8.2",
"@ovh-ux/manager-ng-layout-helpers": "^2.13.1",
- "@ovh-ux/ng-at-internet": "^6.0.45",
+ "@ovh-ux/ng-at-internet": "^6.0.46",
"@ovh-ux/ng-at-internet-ui-router-plugin": "^3.5.6",
"@ovh-ux/ng-log-live-tail": "^2.7.2",
"@ovh-ux/ng-ovh-api-wrappers": "^5.1.0",
@@ -38,11 +38,11 @@
"@ovh-ux/ng-ovh-swimming-poll": "^5.1.7",
"@ovh-ux/ng-ovh-utils": "^14.5.5",
"@ovh-ux/ng-pagination-front": "^10.3.7",
- "@ovh-ux/ng-shell-tracking": "^0.7.39",
+ "@ovh-ux/ng-shell-tracking": "^0.7.40",
"@ovh-ux/ng-ui-router-breadcrumb": "^1.4.3",
"@ovh-ux/ng-ui-router-layout": "^4.3.7",
"@ovh-ux/request-tagger": "^0.6.0",
- "@ovh-ux/shell": "^4.10.6",
+ "@ovh-ux/shell": "^4.10.7",
"@ovh-ux/ui-kit": "^6.10.5",
"@uirouter/angularjs": "^1.0.23",
"angular": "^1.7.5",
diff --git a/packages/manager/apps/identity-access-management/CHANGELOG.md b/packages/manager/apps/identity-access-management/CHANGELOG.md
index c560edd208c6..4fc9146042c5 100644
--- a/packages/manager/apps/identity-access-management/CHANGELOG.md
+++ b/packages/manager/apps/identity-access-management/CHANGELOG.md
@@ -3,6 +3,26 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.8.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-identity-access-management-app@0.8.1...@ovh-ux/manager-identity-access-management-app@0.8.2) (2026-03-09)
+
+
+### Bug Fixes
+
+* **iam:** add translation for ServiceAccount delete modal ([abe1a6b](https://github.com/ovh/manager/commit/abe1a6bd7ff0278b2b6ef115f9e815a7766b7553)), closes [#MAIAM-81](https://github.com/ovh/manager/issues/MAIAM-81)
+* **iam:** fix links for ServiceAccounts tabs ([c9ed269](https://github.com/ovh/manager/commit/c9ed26906004fd9c4b95501345569b5370c91b42)), closes [#MAIAM-81](https://github.com/ovh/manager/issues/MAIAM-81)
+
+
+
+
+
+## [0.8.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-identity-access-management-app@0.8.0...@ovh-ux/manager-identity-access-management-app@0.8.1) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-identity-access-management-app
+
+
+
+
+
# [0.8.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-identity-access-management-app@0.7.4...@ovh-ux/manager-identity-access-management-app@0.8.0) (2026-03-03)
diff --git a/packages/manager/apps/identity-access-management/package.json b/packages/manager/apps/identity-access-management/package.json
index c32f88393a66..21e2b278f815 100644
--- a/packages/manager/apps/identity-access-management/package.json
+++ b/packages/manager/apps/identity-access-management/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-identity-access-management-app",
- "version": "0.8.0",
+ "version": "0.8.2",
"private": true,
"description": "manage iam policies users tags etc",
"repository": {
@@ -24,7 +24,7 @@
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-utils": "^0.5.0",
"@ovh-ux/manager-react-components": "^2.43.1",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/request-tagger": "^0.6.0",
"@ovhcloud/ods-components": "^18.3.0",
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_de_DE.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_de_DE.json
index 83a5ce186ebe..7883e3d5190f 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_de_DE.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_de_DE.json
@@ -31,5 +31,8 @@
"iam_user_roles_ADMIN": "Administrator",
"iam_user_roles_REGULAR": "Eingeschränkter Administrator",
"iam_user_roles_UNPRIVILEGED": "Nur Lesen",
- "iam_user_roles_NONE": "Keine"
+ "iam_user_roles_NONE": "Keine",
+ "iam_service_accounts_modal_title_delete": "Das Dienstkonto {{serviceName}} löschen",
+ "iam_service_accounts_modal_message_delete": "Sind Sie sicher, dass Sie das Dienstkonto {{serviceName}} löschen möchten?",
+ "iam_service_accounts_datagrid_column_associated_policies": "Verwandte Richtlinien"
}
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_en_GB.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_en_GB.json
index 77bef258cdad..a5cb2bdcd4d0 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_en_GB.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_en_GB.json
@@ -31,5 +31,8 @@
"iam_user_roles_ADMIN": "Administrator",
"iam_user_roles_REGULAR": "Restricted administrator",
"iam_user_roles_UNPRIVILEGED": "Read-only",
- "iam_user_roles_NONE": "None"
+ "iam_user_roles_NONE": "None",
+ "iam_service_accounts_modal_title_delete": "Delete the service account {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Are you sure you want to delete the service account {{serviceName}}?",
+ "iam_service_accounts_datagrid_column_associated_policies": "Associated policies"
}
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_es_ES.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_es_ES.json
new file mode 100644
index 000000000000..899f724cbaf9
--- /dev/null
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_es_ES.json
@@ -0,0 +1,38 @@
+{
+ "iam_identities": "Identidades",
+ "iam_identities_users": "Usuarios locales",
+ "iam_identities_user_groups": "Grupos de usuarios",
+ "iam_identities_service_accounts": "Cuenta de servicio",
+ "iam_identities_sso": "SSO",
+ "iam_service_accounts_add_account": "Añadir una cuenta de servicio",
+ "iam_service_accounts_edit_account": "Modificar la cuenta de servicio",
+ "iam_service_accounts_fill_informations": "Introducir la información",
+ "iam_service_accounts_service_account_name": "Nombre de la cuenta de servicio",
+ "iam_service_accounts_service_password": "Contraseña",
+ "iam_service_accounts_warning_content": "Ya no tendrás acceso al contenido del token. Asegúrate de guardarlo de manera segura.",
+ "iam_service_accounts_callback_url": "URL de callback",
+ "iam_service_accounts_policies": "Políticas",
+ "iam_service_accounts_help_info": "Ayuda",
+ "iam_service_accounts_optional_step": "Este paso es opcional y puede realizarse más adelante.",
+ "iam_service_accounts_no_policies_title": "No hay ninguna política disponible en tu cuenta",
+ "iam_service_accounts_no_policies_description": "Aún no has creado ninguna política en tu cuenta. Para adjuntar una política a esta cuenta de servicio, primero debes crear una.",
+ "iam_service_accounts_create_policy": "Crear una política",
+ "iam_service_accounts_search": "Búsqueda",
+ "iam_service_accounts_service_account_created": "Cuenta de servicio creada",
+ "iam_service_accounts_your_service_account_created": "Tu cuenta de servicio ha sido creada correctamente.",
+ "iam_service_accounts_add_success_title": "Cuenta de servicio creada",
+ "iam_service_accounts_add_success_content": "Su cuenta de servicio se ha creado con éxito. Puede encontrarlo en la tabla de abajo.",
+ "iam_service_accounts_add_error": "¡Ups! No conseguimos añadir la cuenta de servicio.",
+ "iam_service_accounts_edit_success": "La cuenta de servicio se ha modificado correctamente.",
+ "iam_service_accounts_edit_error": "¡Ups! No conseguimos modificar la cuenta de servicio.",
+ "iam_service_accounts_modal_title_delete": "Eliminar la cuenta de servicio {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "¿Estás seguro de que quieres eliminar la cuenta de servicio {{serviceName}} ?",
+ "iam_service_accounts_delete_success": "La cuenta de servicio se ha eliminado correctamente.",
+ "iam_service_accounts_delete_error": "¡Ups! No conseguimos eliminar la cuenta de servicio.",
+ "iam_user_users_role": "Privilegio",
+ "iam_user_roles_ADMIN": "Administrador",
+ "iam_user_roles_REGULAR": "Administrador restringido",
+ "iam_user_roles_UNPRIVILEGED": "Solo lectura",
+ "iam_user_roles_NONE": "Ninguno",
+ "iam_service_accounts_datagrid_column_associated_policies": "Políticas asociadas"
+}
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_CA.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_CA.json
index 74c172af6575..c0a3c32d44ac 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_CA.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_CA.json
@@ -13,6 +13,7 @@
"iam_service_accounts_callback_url": "URL de callback",
"iam_service_accounts_policies": "Politiques",
"iam_service_accounts_help_info": "Aide",
+ "iam_service_accounts_datagrid_column_associated_policies": "Politiques associées",
"iam_service_accounts_optional_step": "Cette étape est facultative et peut être effectuée ultérieurement.",
"iam_service_accounts_no_policies_title": "Aucune politique disponible dans votre compte",
"iam_service_accounts_no_policies_description": "Vous n'avez encore créé aucune politique dans votre compte. Pour attacher une politique à ce compte de service, vous devez d'abord en créer une.",
@@ -25,6 +26,8 @@
"iam_service_accounts_add_error": "Oups! Nous n'arrivons pas à ajouter le compte de service.",
"iam_service_accounts_edit_success": "Le compte de service a bien été modifié.",
"iam_service_accounts_edit_error": "Oups! Nous n'arrivons pas à modifier le compte de service.",
+ "iam_service_accounts_modal_title_delete": "Supprimer le compte de service {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Êtes-vous sûr de vouloir supprimer le compte de service {{serviceName}} ?",
"iam_service_accounts_delete_success": "Le compte de service a bien été supprimé.",
"iam_service_accounts_delete_error": "Oups! Nous n'arrivons pas à supprimer le compte de service.",
"iam_user_users_role": "Privilège",
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_FR.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_FR.json
index 74c172af6575..c0a3c32d44ac 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_FR.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_fr_FR.json
@@ -13,6 +13,7 @@
"iam_service_accounts_callback_url": "URL de callback",
"iam_service_accounts_policies": "Politiques",
"iam_service_accounts_help_info": "Aide",
+ "iam_service_accounts_datagrid_column_associated_policies": "Politiques associées",
"iam_service_accounts_optional_step": "Cette étape est facultative et peut être effectuée ultérieurement.",
"iam_service_accounts_no_policies_title": "Aucune politique disponible dans votre compte",
"iam_service_accounts_no_policies_description": "Vous n'avez encore créé aucune politique dans votre compte. Pour attacher une politique à ce compte de service, vous devez d'abord en créer une.",
@@ -25,6 +26,8 @@
"iam_service_accounts_add_error": "Oups! Nous n'arrivons pas à ajouter le compte de service.",
"iam_service_accounts_edit_success": "Le compte de service a bien été modifié.",
"iam_service_accounts_edit_error": "Oups! Nous n'arrivons pas à modifier le compte de service.",
+ "iam_service_accounts_modal_title_delete": "Supprimer le compte de service {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Êtes-vous sûr de vouloir supprimer le compte de service {{serviceName}} ?",
"iam_service_accounts_delete_success": "Le compte de service a bien été supprimé.",
"iam_service_accounts_delete_error": "Oups! Nous n'arrivons pas à supprimer le compte de service.",
"iam_user_users_role": "Privilège",
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_it_IT.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_it_IT.json
index 6d881fe4b13c..26f34b4f6ce5 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_it_IT.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_it_IT.json
@@ -31,5 +31,8 @@
"iam_user_roles_ADMIN": "Amministratore",
"iam_user_roles_REGULAR": "Amministratore con restrizioni",
"iam_user_roles_UNPRIVILEGED": "Sola lettura",
- "iam_user_roles_NONE": "Nessuna"
+ "iam_user_roles_NONE": "Nessuna",
+ "iam_service_accounts_modal_title_delete": "Elimina l'account di servizio {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Sei sicuro di voler eliminare l'account di servizio {{serviceName}} ?",
+ "iam_service_accounts_datagrid_column_associated_policies": "Politiche associate"
}
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pl_PL.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pl_PL.json
new file mode 100644
index 000000000000..cda3fd3f5c13
--- /dev/null
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pl_PL.json
@@ -0,0 +1,38 @@
+{
+ "iam_identities": "Tożsamości",
+ "iam_identities_users": "Użytkownicy lokalni",
+ "iam_identities_user_groups": "Grupy użytkowników",
+ "iam_identities_service_accounts": "Konto usługi",
+ "iam_identities_sso": "SSO",
+ "iam_service_accounts_add_account": "Dodaj konto usługi",
+ "iam_service_accounts_edit_account": "Edytuj konto usługi",
+ "iam_service_accounts_fill_informations": "Wprowadź informacje",
+ "iam_service_accounts_service_account_name": "Nazwa konta usługi",
+ "iam_service_accounts_service_password": "Hasło",
+ "iam_service_accounts_warning_content": "Nie będziesz miał już dostępu do treści tokena. Upewnij się, że go bezpiecznie zapiszesz.",
+ "iam_service_accounts_callback_url": "URL zwrotny",
+ "iam_service_accounts_policies": "Polityki",
+ "iam_service_accounts_help_info": "Pomoc",
+ "iam_service_accounts_optional_step": "Ten krok jest opcjonalny i można go wykonać później.",
+ "iam_service_accounts_no_policies_title": "Brak polityki dostępnej w Twoim koncie",
+ "iam_service_accounts_no_policies_description": "Nie utworzyłeś jeszcze żadnej polityki w swoim koncie. Aby przypisać politykę do tego konta usługi, musisz najpierw utworzyć jedną.",
+ "iam_service_accounts_create_policy": "Utwórz politykę",
+ "iam_service_accounts_search": "Wyszukiwanie",
+ "iam_service_accounts_service_account_created": "Konto usługi utworzone",
+ "iam_service_accounts_your_service_account_created": "Twoje konto usługi zostało pomyślnie utworzone.",
+ "iam_service_accounts_add_success_title": "Konto usługi utworzone",
+ "iam_service_accounts_add_success_content": "Twoje konto serwisowe zostało pomyślnie utworzone. Możesz je znaleźć w tabeli poniżej.",
+ "iam_service_accounts_add_error": "Ups! Nie możemy dodać konta serwisowego.",
+ "iam_service_accounts_edit_success": "Konto serwisowe zostało pomyślnie zmodyfikowane.",
+ "iam_service_accounts_edit_error": "Ups! Nie możemy zmodyfikować konta serwisowego.",
+ "iam_service_accounts_modal_title_delete": "Usuń konto usługi {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Czy na pewno chcesz usunąć konto usługi {{serviceName}} ?",
+ "iam_service_accounts_delete_success": "Konto serwisowe zostało pomyślnie usunięte.",
+ "iam_service_accounts_delete_error": "Ups! Nie możemy usunąć konta serwisowego.",
+ "iam_user_users_role": "Uprawnienie",
+ "iam_user_roles_ADMIN": "Administrator",
+ "iam_user_roles_REGULAR": "Administrator z ograniczeniami",
+ "iam_user_roles_UNPRIVILEGED": "Tylko do odczytu",
+ "iam_user_roles_NONE": "Brak",
+ "iam_service_accounts_datagrid_column_associated_policies": "Powiązane polityki"
+}
diff --git a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pt_PT.json b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pt_PT.json
index 879c4048b6a4..78d43f7a034d 100644
--- a/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pt_PT.json
+++ b/packages/manager/apps/identity-access-management/public/translations/service-accounts/Messages_pt_PT.json
@@ -31,5 +31,8 @@
"iam_user_roles_ADMIN": "Administrador",
"iam_user_roles_REGULAR": "Administrador restrito",
"iam_user_roles_UNPRIVILEGED": "Apenas leitura",
- "iam_user_roles_NONE": "Nenhum/a"
+ "iam_user_roles_NONE": "Nenhum/a",
+ "iam_service_accounts_modal_title_delete": "Eliminar a conta de serviço {{serviceName}}",
+ "iam_service_accounts_modal_message_delete": "Tem a certeza de que deseja eliminar a conta de serviço {{serviceName}} ?",
+ "iam_service_accounts_datagrid_column_associated_policies": "Políticas associadas"
}
diff --git a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/components/ServiceAccountsTabs.component.tsx b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/components/ServiceAccountsTabs.component.tsx
index a90bc1df2d53..e2485035fe57 100644
--- a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/components/ServiceAccountsTabs.component.tsx
+++ b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/components/ServiceAccountsTabs.component.tsx
@@ -13,12 +13,12 @@ export function ServiceAccountsTabs() {
return (
-
+
{t('iam_identities_users')}
-
+
{t('iam_identities_user_groups')}
@@ -28,7 +28,7 @@ export function ServiceAccountsTabs() {
-
+
{t('iam_identities_sso')}
diff --git a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/delete/ServiceAccountsDelete.page.tsx b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/delete/ServiceAccountsDelete.page.tsx
index e875c2461d15..ab6e670598ea 100644
--- a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/delete/ServiceAccountsDelete.page.tsx
+++ b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/delete/ServiceAccountsDelete.page.tsx
@@ -10,7 +10,7 @@ import { SERVICE_ACCOUNTS_TRACKING } from '@/tracking.constant';
import { useDeleteIamServiceAccount } from '@/data/hooks/useGetIamServiceAccounts';
export default function ServiceAccountsDelete() {
- const { t } = useTranslation(['service-accounts', 'permanent-tokens', NAMESPACES.ACTIONS]);
+ const { t } = useTranslation(['service-accounts', NAMESPACES.ACTIONS]);
const { trackClick, trackPage } = useOvhTracking();
const { addSuccess, addError } = useNotifications();
const navigate = useNavigate();
@@ -56,7 +56,9 @@ export default function ServiceAccountsDelete() {
return (
diff --git a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/listing/useDatagridColumn.tsx b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/listing/useDatagridColumn.tsx
index fca93f096dd9..92c9d415e1fc 100644
--- a/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/listing/useDatagridColumn.tsx
+++ b/packages/manager/apps/identity-access-management/src/pages/serviceAccounts/listing/useDatagridColumn.tsx
@@ -12,7 +12,7 @@ import { Actions } from './Actions.component';
import { ServiceAccountsPolicyCount } from '@/pages/serviceAccounts/components/ServiceAccountsPolicyCount.component';
export function useDatagridColumn(): DatagridColumn[] {
- const { t } = useTranslation('permanent-tokens');
+ const { t } = useTranslation(['permanent-tokens', 'service-accounts']);
const formatDate = useFormatDate();
return [
@@ -40,7 +40,7 @@ export function useDatagridColumn(): DatagridColumn[] {
},
{
id: 'policy-count',
- label: 'Politiques associées',
+ label: t('iam_service_accounts_datagrid_column_associated_policies', { ns: 'service-accounts' }),
cell: (account: IamServiceAccount) => (
),
diff --git a/packages/manager/apps/iplb/CHANGELOG.md b/packages/manager/apps/iplb/CHANGELOG.md
index d86be762849f..5aba6a597ca9 100644
--- a/packages/manager/apps/iplb/CHANGELOG.md
+++ b/packages/manager/apps/iplb/CHANGELOG.md
@@ -3,6 +3,30 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [3.2.51](https://github.com/ovh/manager/compare/@ovh-ux/manager-iplb-app@3.2.50...@ovh-ux/manager-iplb-app@3.2.51) (2026-03-09)
+
+**Note:** Version bump only for package @ovh-ux/manager-iplb-app
+
+
+
+
+
+## [3.2.50](https://github.com/ovh/manager/compare/@ovh-ux/manager-iplb-app@3.2.49...@ovh-ux/manager-iplb-app@3.2.50) (2026-03-05)
+
+**Note:** Version bump only for package @ovh-ux/manager-iplb-app
+
+
+
+
+
+## [3.2.49](https://github.com/ovh/manager/compare/@ovh-ux/manager-iplb-app@3.2.48...@ovh-ux/manager-iplb-app@3.2.49) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-iplb-app
+
+
+
+
+
## [3.2.48](https://github.com/ovh/manager/compare/@ovh-ux/manager-iplb-app@3.2.47...@ovh-ux/manager-iplb-app@3.2.48) (2026-02-26)
**Note:** Version bump only for package @ovh-ux/manager-iplb-app
diff --git a/packages/manager/apps/iplb/package.json b/packages/manager/apps/iplb/package.json
index 4739e2eef8bb..af1667071954 100644
--- a/packages/manager/apps/iplb/package.json
+++ b/packages/manager/apps/iplb/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-iplb-app",
- "version": "3.2.48",
+ "version": "3.2.51",
"private": true,
"description": "IP Load Balancer standalone application.",
"repository": {
@@ -17,14 +17,14 @@
"start": "webpack-dev-server"
},
"dependencies": {
- "@ovh-ux/manager-components": "^1.28.0",
+ "@ovh-ux/manager-components": "^1.29.0",
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core": "^13.4.4",
"@ovh-ux/manager-filters": "^1.2.2",
- "@ovh-ux/manager-iplb": "^1.30.2",
+ "@ovh-ux/manager-iplb": "^1.31.0",
"@ovh-ux/manager-log-to-customer": "^2.8.2",
"@ovh-ux/manager-ng-layout-helpers": "^2.13.1",
- "@ovh-ux/ng-at-internet": "^6.0.45",
+ "@ovh-ux/ng-at-internet": "^6.0.46",
"@ovh-ux/ng-log-live-tail": "^2.7.2",
"@ovh-ux/ng-ovh-actions-menu": "^5.1.7",
"@ovh-ux/ng-ovh-api-wrappers": "^5.1.0",
diff --git a/packages/manager/apps/ips/CHANGELOG.md b/packages/manager/apps/ips/CHANGELOG.md
index 25c11837d8bd..82c6884f3def 100644
--- a/packages/manager/apps/ips/CHANGELOG.md
+++ b/packages/manager/apps/ips/CHANGELOG.md
@@ -3,6 +3,49 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.7.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-ips-app@0.6.0...@ovh-ux/manager-ips-app@0.7.0) (2026-03-11)
+
+
+### Bug Fixes
+
+* **ips:** fix copilot feedbacks ([5bc3db5](https://github.com/ovh/manager/commit/5bc3db54a0d66172dc129cf0023c62f95902358d)), closes [#MANAGER-19522](https://github.com/ovh/manager/issues/MANAGER-19522)
+* **ips:** fix order feedbacks ([db45f10](https://github.com/ovh/manager/commit/db45f10db4bd24a64f05bf6729f17408fec8bee7)), closes [#MANAGER-19717](https://github.com/ovh/manager/issues/MANAGER-19717)
+* **ips:** updating the description label displayed when selecting a bandwidth in the order page ([c4f49f8](https://github.com/ovh/manager/commit/c4f49f82ee5564bcc09c632f77ad2f8716a5b311)), closes [#MANAGER-21050](https://github.com/ovh/manager/issues/MANAGER-21050)
+
+
+### Features
+
+* **ips:** add bandwidth order ([fc5cd27](https://github.com/ovh/manager/commit/fc5cd27bcd224ba42f1121a50cb5149b6cbde880)), closes [#MANAGER-19717](https://github.com/ovh/manager/issues/MANAGER-19717)
+
+
+
+
+
+# [0.6.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-ips-app@0.5.2...@ovh-ux/manager-ips-app@0.6.0) (2026-03-09)
+
+
+### Bug Fixes
+
+* **ips:** removing redundant subnet info from the datagrid ([11bc5af](https://github.com/ovh/manager/commit/11bc5af378b5e1da5ddd0790fce2e6e2cb065982)), closes [#MANAGER-20845](https://github.com/ovh/manager/issues/MANAGER-20845)
+
+
+### Features
+
+* **ips:** add button to add reverse DNS on ipv6 empty result ([73a1b4e](https://github.com/ovh/manager/commit/73a1b4e7e1b892fcc31dfc3198f6a2317b0bdd2a)), closes [#MANAGER-20559](https://github.com/ovh/manager/issues/MANAGER-20559)
+* **ips:** add port range support ([417ce7e](https://github.com/ovh/manager/commit/417ce7e71b154e73903b6e380957004166c79e6c)), closes [#MANAGER-20168](https://github.com/ovh/manager/issues/MANAGER-20168)
+
+
+
+
+
+## [0.5.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-ips-app@0.5.1...@ovh-ux/manager-ips-app@0.5.2) (2026-03-04)
+
+**Note:** Version bump only for package @ovh-ux/manager-ips-app
+
+
+
+
+
## [0.5.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-ips-app@0.5.0...@ovh-ux/manager-ips-app@0.5.1) (2026-02-05)
**Note:** Version bump only for package @ovh-ux/manager-ips-app
diff --git a/packages/manager/apps/ips/package.json b/packages/manager/apps/ips/package.json
index 80c8a9b6d21f..41e7b1f60d1b 100644
--- a/packages/manager/apps/ips/package.json
+++ b/packages/manager/apps/ips/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-ips-app",
- "version": "0.5.1",
+ "version": "0.7.0",
"private": true,
"description": "Ips manager app",
"repository": {
@@ -24,10 +24,10 @@
"@ovh-ux/manager-config": "^8.9.0",
"@ovh-ux/manager-core-api": "^0.21.2",
"@ovh-ux/manager-core-utils": "^0.5.0",
- "@ovh-ux/manager-module-common-api": "^0.6.7",
"@ovh-ux/manager-module-order": "^0.14.1",
+ "@ovh-ux/manager-network-common": "^0.10.0",
"@ovh-ux/manager-react-components": "^2.43.1",
- "@ovh-ux/manager-react-core-application": "^0.15.4",
+ "@ovh-ux/manager-react-core-application": "^0.15.5",
"@ovh-ux/manager-react-shell-client": "^0.11.2",
"@ovh-ux/muk": "^0.10.1",
"@ovh-ux/request-tagger": "^0.4.1",
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_de_DE.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_de_DE.json
index ff17f0cc8433..381c6393ae44 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_de_DE.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_de_DE.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Modus",
"protocolColumnLabel": "Protokoll",
"sourceColumnLabel": "Quell-IP-Adresse",
- "sourcePortColumnLabel": "Quell-Port",
- "destinationPortColumnLabel": "Ziel-Port",
+ "sourcePortColumnLabel": "Hafenquelle (Bereich)",
+ "destinationPortColumnLabel": "Zielhafen (Bereich)",
"tcpOptionsColumnLabel": "TCP-Status",
"permit_action": "Erlauben",
"deny_action": "Verbieten",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "Die Firewall kann erst aktiviert werden, wenn eine erste Regel erstellt wurde.",
"destinationPortLowerThanSourcePortError": "Der Zielport darf nicht kleiner als der Quellport sein.",
"createRuleErrorMessage": "Die eingegebenen Daten enthalten Fehler. Bitte überprüfen Sie die rot markierten Felder.",
- "requiredFieldError": "Dieses Feld muss ausgefüllt werden."
+ "requiredFieldError": "Dieses Feld muss ausgefüllt werden.",
+ "port_format_tooltip": "Das Format des Hafens kann entweder als einzelne Zahl (zum Beispiel: \"123\"), oder als Bereich von Häfen (zum Beispiel: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_en_GB.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_en_GB.json
index 0c07e900e2ab..96aebb22205b 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_en_GB.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_en_GB.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Mode",
"protocolColumnLabel": "Protocol",
"sourceColumnLabel": "Source IP",
- "sourcePortColumnLabel": "Source port",
- "destinationPortColumnLabel": "Destination port",
+ "sourcePortColumnLabel": "Source port (range)",
+ "destinationPortColumnLabel": "Destination port (range)",
"tcpOptionsColumnLabel": "TCP status",
"permit_action": "Authorise",
"deny_action": "Refuse",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "The firewall cannot be enabled until a first rule has been created.",
"destinationPortLowerThanSourcePortError": "The destination port must be greater than or equal to the source port",
"createRuleErrorMessage": "There are errors in the data entered, please check the fields in red.",
- "requiredFieldError": "Required field"
+ "requiredFieldError": "Required field",
+ "port_format_tooltip": "The port format can be provided either as a single number (for example: \"123\"), or as a range of ports (for example: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_es_ES.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_es_ES.json
index 4f709634a952..2f21b187454d 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_es_ES.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_es_ES.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Modo",
"protocolColumnLabel": "Protocolo",
"sourceColumnLabel": "Dirección IP de origen",
- "sourcePortColumnLabel": "Puerto de origen",
- "destinationPortColumnLabel": "Puerto de destino",
+ "sourcePortColumnLabel": "Puerto de origen (rango)",
+ "destinationPortColumnLabel": "Puerto de destino (rango)",
"tcpOptionsColumnLabel": "Estado TCP",
"permit_action": "Autorizar",
"deny_action": "Denegar",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "El firewall no puede activarse hasta que se cree una primera regla.",
"destinationPortLowerThanSourcePortError": "El puerto de destino no puede ser menor que el puerto de origen",
"createRuleErrorMessage": "Hay errores en los datos introducidos. Por favor, compruebe los campos marcados en rojo.",
- "requiredFieldError": "Este campo es obligatorio."
+ "requiredFieldError": "Este campo es obligatorio.",
+ "port_format_tooltip": "El formato del puerto puede ser proporcionado ya sea en forma de un solo número (por ejemplo: \"123\"), o en forma de un rango de puertos (por ejemplo: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_CA.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_CA.json
index d86d27e63ed1..ca33f21df482 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_CA.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_CA.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Mode",
"protocolColumnLabel": "Protocole",
"sourceColumnLabel": "Adresse IP source",
- "sourcePortColumnLabel": "Port source",
- "destinationPortColumnLabel": "Port de destination",
+ "sourcePortColumnLabel": "Port source (plage)",
+ "destinationPortColumnLabel": "Port de destination (plage)",
"tcpOptionsColumnLabel": "État TCP",
"permit_action": "Autoriser",
"deny_action": "Refuser",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "Le firewall ne peut pas être activé tant qu'une 1ère règle n'a pas été créée.",
"destinationPortLowerThanSourcePortError": "Le port de destination ne peut pas être inférieur au port source",
"createRuleErrorMessage": "Il y a des erreurs dans les données saisies, veuillez vérifier les champs signalés en rouge.",
- "requiredFieldError": "Ce champ est requis"
+ "requiredFieldError": "Ce champ est requis",
+ "port_format_tooltip": "Le format du port peut être fourni soit sous forme d'un seul chiffre (par exemple : \"123\"), soit sous forme d'une plage de ports (par exemple : \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_FR.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_FR.json
index d86d27e63ed1..ca33f21df482 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_FR.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_fr_FR.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Mode",
"protocolColumnLabel": "Protocole",
"sourceColumnLabel": "Adresse IP source",
- "sourcePortColumnLabel": "Port source",
- "destinationPortColumnLabel": "Port de destination",
+ "sourcePortColumnLabel": "Port source (plage)",
+ "destinationPortColumnLabel": "Port de destination (plage)",
"tcpOptionsColumnLabel": "État TCP",
"permit_action": "Autoriser",
"deny_action": "Refuser",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "Le firewall ne peut pas être activé tant qu'une 1ère règle n'a pas été créée.",
"destinationPortLowerThanSourcePortError": "Le port de destination ne peut pas être inférieur au port source",
"createRuleErrorMessage": "Il y a des erreurs dans les données saisies, veuillez vérifier les champs signalés en rouge.",
- "requiredFieldError": "Ce champ est requis"
+ "requiredFieldError": "Ce champ est requis",
+ "port_format_tooltip": "Le format du port peut être fourni soit sous forme d'un seul chiffre (par exemple : \"123\"), soit sous forme d'une plage de ports (par exemple : \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_it_IT.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_it_IT.json
index 150a6a80eb29..9388cbab37d3 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_it_IT.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_it_IT.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Modo",
"protocolColumnLabel": "Protocollo",
"sourceColumnLabel": "Indirizzo IP sorgente",
- "sourcePortColumnLabel": "Porta sorgente",
- "destinationPortColumnLabel": "Porta di destinazione",
+ "sourcePortColumnLabel": "Porto di partenza (intervallo)",
+ "destinationPortColumnLabel": "Porto di destinazione (intervallo)",
"tcpOptionsColumnLabel": "Stato TCP",
"permit_action": "Autorizza",
"deny_action": "Rifiuta",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "Il firewall non può essere attivato fino a quando non viene creata una prima regola.",
"destinationPortLowerThanSourcePortError": "La porta di destinazione non può essere inferiore alla porta sorgente",
"createRuleErrorMessage": "Sono presenti errori nei dati inseriti, controlla i campi evidenziati in rosso.",
- "requiredFieldError": "Questo campo è obbligatorio"
+ "requiredFieldError": "Questo campo è obbligatorio",
+ "port_format_tooltip": "Il formato del porto può essere fornito sia sotto forma di un solo numero (ad esempio: \"123\"), sia sotto forma di un intervallo di porti (ad esempio: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pl_PL.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pl_PL.json
index 57a122e502d7..7e8c14b6e2ed 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pl_PL.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pl_PL.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Tryb",
"protocolColumnLabel": "Protokół",
"sourceColumnLabel": "Źródłowy adres IP",
- "sourcePortColumnLabel": "Port źródłowy",
- "destinationPortColumnLabel": "Port docelowy",
+ "sourcePortColumnLabel": "Port źródłowy (zakres)",
+ "destinationPortColumnLabel": "Port docelowy (zakres)",
"tcpOptionsColumnLabel": "Stan TCP",
"permit_action": "Zezwalaj",
"deny_action": "Odrzucaj",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "Nie można włączyć firewalla, dopóki nie zostanie utworzona pierwsza reguła.",
"destinationPortLowerThanSourcePortError": "Docelowy port nie może mieć numeru mniejszego niż port źródłowy",
"createRuleErrorMessage": "Wprowadzone dane zawierają błędy. Sprawdź pola zaznaczone na czerwono.",
- "requiredFieldError": "Uzupełnienie tego pola jest obowiązkowe"
+ "requiredFieldError": "Uzupełnienie tego pola jest obowiązkowe",
+ "port_format_tooltip": "Format portu może być podany jako pojedyncza liczba (na przykład: \"123\"), lub jako zakres portów (na przykład: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pt_PT.json b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pt_PT.json
index b9a98696cdbe..1d1b2c3a98e5 100644
--- a/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pt_PT.json
+++ b/packages/manager/apps/ips/public/translations/edge-network-firewall/Messages_pt_PT.json
@@ -25,8 +25,8 @@
"modeColumnLabel": "Modo",
"protocolColumnLabel": "Protocolo",
"sourceColumnLabel": "Endereço IP de origem",
- "sourcePortColumnLabel": "Porta de origem",
- "destinationPortColumnLabel": "Porta de destino",
+ "sourcePortColumnLabel": "Porto de origem (intervalo)",
+ "destinationPortColumnLabel": "Porto de destino (intervalo)",
"tcpOptionsColumnLabel": "Estado TCP",
"permit_action": "Autorizar",
"deny_action": "Recusar",
@@ -40,5 +40,6 @@
"firewall_not_created_tooltip": "A firewall não pode ser ativada enquanto não se criar uma primeira regra.",
"destinationPortLowerThanSourcePortError": "A porta de destino não pode ser inferior à porta de origem",
"createRuleErrorMessage": "Existem erros nos dados introduzidos, queira verificar os campos assinalados a vermelho.",
- "requiredFieldError": "Campo obrigatório"
+ "requiredFieldError": "Campo obrigatório",
+ "port_format_tooltip": "O formato do porto pode ser fornecido sob a forma de um único número (por exemplo: \"123\"), ou sob a forma de um intervalo de portos (por exemplo: \"123-125\")."
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_de_DE.json b/packages/manager/apps/ips/public/translations/ips/Messages_de_DE.json
index aa1f60cb9e9f..88fe8e0b3659 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_de_DE.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_de_DE.json
@@ -6,5 +6,6 @@
"task_error_message": "Task-Status: {{status}}. Kommentar: {{comment}}",
"ip_task_status_cancelled": "abgebrochen",
"ip_task_status_customerError": "Fehler",
- "ip_task_status_ovhError": "Fehler"
+ "ip_task_status_ovhError": "Fehler",
+ "current_bandwidth": "Aktuelle Bandbreite"
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_en_GB.json b/packages/manager/apps/ips/public/translations/ips/Messages_en_GB.json
index c86b7fc44055..1872c23aa0a5 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_en_GB.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_en_GB.json
@@ -6,5 +6,6 @@
"task_error_message": "Task status: {{status}}. Comment: {{comment}}",
"ip_task_status_cancelled": "cancelled",
"ip_task_status_customerError": "error",
- "ip_task_status_ovhError": "error"
+ "ip_task_status_ovhError": "error",
+ "current_bandwidth": "Current bandwidth"
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_es_ES.json b/packages/manager/apps/ips/public/translations/ips/Messages_es_ES.json
index 1d9d442e3f35..20823bac23e1 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_es_ES.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_es_ES.json
@@ -6,5 +6,6 @@
"task_error_message": "Estado de la tarea: {{status}}. Comentario: {{comment}}",
"ip_task_status_cancelled": "cancelada",
"ip_task_status_customerError": "error",
- "ip_task_status_ovhError": "error"
+ "ip_task_status_ovhError": "error",
+ "current_bandwidth": "Ancho de banda actual"
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_fr_CA.json b/packages/manager/apps/ips/public/translations/ips/Messages_fr_CA.json
index 2574cfe7a076..a979c69ca29d 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_fr_CA.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_fr_CA.json
@@ -3,6 +3,7 @@
"order": "Commander une IP",
"byoip": "BYOIP",
"free_price": "Gratuit",
+ "current_bandwidth": "Bande passante actuelle",
"task_error_message": "Statut de la tâche: {{status}}. Commentaire: {{comment}}",
"ip_task_status_cancelled": "annulée",
"ip_task_status_customerError": "erreur",
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_fr_FR.json b/packages/manager/apps/ips/public/translations/ips/Messages_fr_FR.json
index 2574cfe7a076..a979c69ca29d 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_fr_FR.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_fr_FR.json
@@ -3,6 +3,7 @@
"order": "Commander une IP",
"byoip": "BYOIP",
"free_price": "Gratuit",
+ "current_bandwidth": "Bande passante actuelle",
"task_error_message": "Statut de la tâche: {{status}}. Commentaire: {{comment}}",
"ip_task_status_cancelled": "annulée",
"ip_task_status_customerError": "erreur",
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_it_IT.json b/packages/manager/apps/ips/public/translations/ips/Messages_it_IT.json
index a0eac5ba6884..5b0c830aa61e 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_it_IT.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_it_IT.json
@@ -6,5 +6,6 @@
"task_error_message": "Stato del task: {{status}}. Commento: {{comment}}",
"ip_task_status_cancelled": "annullato",
"ip_task_status_customerError": "errore",
- "ip_task_status_ovhError": "errore"
+ "ip_task_status_ovhError": "errore",
+ "current_bandwidth": "Larghezza di banda attuale"
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_pl_PL.json b/packages/manager/apps/ips/public/translations/ips/Messages_pl_PL.json
index 27ae63e0e803..f1ecead7d8f7 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_pl_PL.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_pl_PL.json
@@ -6,5 +6,6 @@
"task_error_message": "Status zadania: {{status}}. Komentarz: {{comment}}",
"ip_task_status_cancelled": "anulowane",
"ip_task_status_customerError": "błąd",
- "ip_task_status_ovhError": "błąd"
+ "ip_task_status_ovhError": "błąd",
+ "current_bandwidth": "Aktualna przepustowość"
}
diff --git a/packages/manager/apps/ips/public/translations/ips/Messages_pt_PT.json b/packages/manager/apps/ips/public/translations/ips/Messages_pt_PT.json
index d8887c8f0678..7fd08950341b 100644
--- a/packages/manager/apps/ips/public/translations/ips/Messages_pt_PT.json
+++ b/packages/manager/apps/ips/public/translations/ips/Messages_pt_PT.json
@@ -6,5 +6,6 @@
"task_error_message": "Estado da tarefa: {{status}}. Comentário: {{comment}}",
"ip_task_status_cancelled": "anulada",
"ip_task_status_customerError": "erro",
- "ip_task_status_ovhError": "erro"
+ "ip_task_status_ovhError": "erro",
+ "current_bandwidth": "Largura de banda atual"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_de_DE.json b/packages/manager/apps/ips/public/translations/listing/Messages_de_DE.json
index 692ed8f6d90d..35878d57e499 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_de_DE.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_de_DE.json
@@ -114,5 +114,6 @@
"survey_link": "Gefällt Ihnen das?",
"survey_link_tooltip": "Gefällt Ihnen diese Seite? Teilen Sie uns Ihre Anmerkungen mit!",
"listingColumnsIpGameFirewallConfigured": "Konfiguriert",
- "listingColumnsIpGameFirewallConfiguredTooltip": "Die Game Firewall ist konfiguriert. Klicken Sie hier, um die Konfiguration erneut vorzunehmen."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "Die Game Firewall ist konfiguriert. Klicken Sie hier, um die Konfiguration erneut vorzunehmen.",
+ "listingNoResultFoundIpv6": "Keine Ergebnisse (Klicken hier. um einen Reverse-DNS zu konfigurieren, damit Ihre IP gelistet wird)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_en_GB.json b/packages/manager/apps/ips/public/translations/listing/Messages_en_GB.json
index 86c307a88a51..ca5bd2b28a5e 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_en_GB.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_en_GB.json
@@ -114,5 +114,6 @@
"survey_link": "Like it?",
"survey_link_tooltip": "Like this page? Send us your feedback!",
"listingColumnsIpGameFirewallConfigured": "Configured",
- "listingColumnsIpGameFirewallConfiguredTooltip": "The Game Firewall is configured. Click to reconfigure."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "The Game Firewall is configured. Click to reconfigure.",
+ "listingNoResultFoundIpv6": "No results (Click here to configure a reverse DNS so that your IP is listed)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_es_ES.json b/packages/manager/apps/ips/public/translations/listing/Messages_es_ES.json
index c20351df8fd4..793b0c864769 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_es_ES.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_es_ES.json
@@ -114,5 +114,6 @@
"survey_link": "¿Le gusta?",
"survey_link_tooltip": "¿Le gusta esta página? ¡Envíenos sus comentarios!",
"listingColumnsIpGameFirewallConfigured": "Configurada",
- "listingColumnsIpGameFirewallConfiguredTooltip": "El Game Firewall está configurado correctamente. Haga clic aquí para volver a configurarlo."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "El Game Firewall está configurado correctamente. Haga clic aquí para volver a configurarlo.",
+ "listingNoResultFoundIpv6": "Ningún resultado (Hacer clic aquí. para configurar un reverse DNS para que tu IP esté listada)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_fr_CA.json b/packages/manager/apps/ips/public/translations/listing/Messages_fr_CA.json
index 72c1b590e05d..68b72ba707b8 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_fr_CA.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_fr_CA.json
@@ -114,5 +114,6 @@
"aggregate_in_progress": "Agrégation en cours",
"creation_in_progress": "Création en cours",
"survey_link": "Vous aimez?",
- "survey_link_tooltip": "Vous aimez cette page ? Faites nous part de vos remarques !"
+ "survey_link_tooltip": "Vous aimez cette page ? Faites nous part de vos remarques !",
+ "listingNoResultFoundIpv6": "Aucun résultat (Cliquer ici pour configurer un reverse DNS pour que votre IP soit listée)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_fr_FR.json b/packages/manager/apps/ips/public/translations/listing/Messages_fr_FR.json
index 72c1b590e05d..68b72ba707b8 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_fr_FR.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_fr_FR.json
@@ -114,5 +114,6 @@
"aggregate_in_progress": "Agrégation en cours",
"creation_in_progress": "Création en cours",
"survey_link": "Vous aimez?",
- "survey_link_tooltip": "Vous aimez cette page ? Faites nous part de vos remarques !"
+ "survey_link_tooltip": "Vous aimez cette page ? Faites nous part de vos remarques !",
+ "listingNoResultFoundIpv6": "Aucun résultat (Cliquer ici pour configurer un reverse DNS pour que votre IP soit listée)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_it_IT.json b/packages/manager/apps/ips/public/translations/listing/Messages_it_IT.json
index d2cb95e4ac38..4afce3f8f6cd 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_it_IT.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_it_IT.json
@@ -114,5 +114,6 @@
"survey_link": "Ti piace?",
"survey_link_tooltip": "Ti piace questa pagina? Condividi con noi i tuoi commenti!",
"listingColumnsIpGameFirewallConfigured": "Configurato",
- "listingColumnsIpGameFirewallConfiguredTooltip": "Il Game Firewall è configurato. Clicca per configurare di nuovo."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "Il Game Firewall è configurato. Clicca per configurare di nuovo.",
+ "listingNoResultFoundIpv6": "Nessun risultato (Clicca qui. per configurare un reverse DNS affinché il tuo IP sia elencato)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_pl_PL.json b/packages/manager/apps/ips/public/translations/listing/Messages_pl_PL.json
index 6c55acd34ae6..31e6b8c4c014 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_pl_PL.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_pl_PL.json
@@ -114,5 +114,6 @@
"survey_link": "Jaka jest Twoja opinia?",
"survey_link_tooltip": "Podoba Ci się ta strona? Podziel się z nami swoimi uwagami!",
"listingColumnsIpGameFirewallConfigured": "Skonfigurowany",
- "listingColumnsIpGameFirewallConfiguredTooltip": "Game Firewall został skonfigurowany. Kliknij, aby ponownie skonfigurować."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "Game Firewall został skonfigurowany. Kliknij, aby ponownie skonfigurować.",
+ "listingNoResultFoundIpv6": "Brak wyników (Kliknij tutaj. aby skonfigurować reverse DNS, aby Twój adres IP był wymieniony)"
}
diff --git a/packages/manager/apps/ips/public/translations/listing/Messages_pt_PT.json b/packages/manager/apps/ips/public/translations/listing/Messages_pt_PT.json
index a2fdcc39c5c3..cb9b5d6f65e3 100644
--- a/packages/manager/apps/ips/public/translations/listing/Messages_pt_PT.json
+++ b/packages/manager/apps/ips/public/translations/listing/Messages_pt_PT.json
@@ -114,5 +114,6 @@
"survey_link": "Gostou?",
"survey_link_tooltip": "Gostou desta página? Partilhe connosco as suas observações!",
"listingColumnsIpGameFirewallConfigured": "Configurado",
- "listingColumnsIpGameFirewallConfiguredTooltip": "O Game Firewall está configurado. Clique para reconfigurar."
+ "listingColumnsIpGameFirewallConfiguredTooltip": "O Game Firewall está configurado. Clique para reconfigurar.",
+ "listingNoResultFoundIpv6": "Nenhum resultado (Clique aqui. para configurar um reverse DNS para que o seu IP seja listado)"
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_de_DE.json b/packages/manager/apps/ips/public/translations/order/Messages_de_DE.json
index ce46dbc3c7a0..0134549c438f 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_de_DE.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_de_DE.json
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Rufen Sie Ihr neues IPv6-Präfix zur Verwendung mit den vRack-Diensten ab.",
"ipv6_limit_reached_error": "Die maximale Anzahl an zusätzlichen IPv6-Blöcken wurde bereits erreicht.",
"ipv6_region_3_blocks_limit_reached_error": "Die maximale Anzahl von 3 zusätzlichen IPv6-Blöcken wurde in der ausgewählten Region bereits erreicht. Bitte wählen Sie eine andere Region.",
- "ipv6_region_already_used_error": "Sie verfügen bereits über einen Block aus der ausgewählten Region in Ihrem vRack. Bitte wählen Sie eine andere Region."
+ "ipv6_region_already_used_error": "Sie verfügen bereits über einen Block aus der ausgewählten Region in Ihrem vRack. Bitte wählen Sie eine andere Region.",
+ "vrack_bandwidth_section_title": "Wählen Sie eine öffentliche Bandbreite aus",
+ "vrack_bandwidth_section_description": "Bei der Zuweisung einer zusätzlichen IP zu einem privaten vRack-Netzwerk muss die öffentliche Bandbreite aktiviert werden.",
+ "ap_bandwidth_limit_tooltip_info": "Die Verfügbarkeit der Bandbreite kann in der Region Asien-Pazifik eingeschränkt sein.",
+ "ip_order_success_message": "Ihre Bestellung für die zusätzliche IP hat in einem neuen Tab begonnen. Bitte schließen Sie diese ab, um Ihren Kauf abzuschließen. Wenn sich der neue Tab nicht öffnet, hier klicken.",
+ "upgrade_bandwidth_order_success_message": "Ihre Bestellung für die Bandbreite hat in einem neuen Tab begonnen. Bitte schließen Sie diese ab, um Ihren Kauf abzuschließen. Wenn sich der neue Tab nicht öffnet, hier klicken.",
+ "bandwidth_option_card_tooltip": "Ein anteiliger Kostenbetrag gilt für die verbleibenden Tage Ihres aktuellen Abrechnungszyklus, und die volle Preisgestaltung beginnt im nächsten Abrechnungszyklus.",
+ "vrack_bandwidth_double_order_info_message": "Eine Bestellung für die öffentliche Bandbreite und eine Bestellung für die zusätzliche IP sind erforderlich, wenn Sie bereits eine aktivierte öffentliche Bandbreite auf Ihrem vRack haben. Wenn Sie noch keine aktivierte öffentliche Bandbreite haben, ist nur eine Bestellung erforderlich.",
+ "upgrade_bandwidth_order_error_message": "Ein Fehler ist bei der Bestellung der öffentlichen Bandbreite aufgetreten. Bitte versuchen Sie es später noch einmal.",
+ "vrack_bandwidth_section_description_1": "Bei der Zuweisung einer zusätzlichen IP-Adresse zu einem vRack-Netzwerk gilt die öffentliche Bandbreite für den Datenverkehr zwischen OVHcloud und dem Internet.",
+ "vrack_bandwidth_section_description_2": "Die ausgewählte öffentliche Bandbreite gilt für ein vRack-Netzwerk in der angegebenen Region und wird zwischen allen zusätzlichen IP-Adressen an diesem Standort, die an dieses Netzwerk geroutet sind, geteilt.",
+ "vrack_bandwidth_section_description_3": "Bitte wählen Sie das für Ihre Bedürfnisse geeignete Paket aus (es kann später aufgerüstet werden)."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_en_GB.json b/packages/manager/apps/ips/public/translations/order/Messages_en_GB.json
index eea307a2dc40..ca4bee4e7ee3 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_en_GB.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_en_GB.json
@@ -1,6 +1,6 @@
{
"title": "Order Additional IP addresses",
- "per_ip": "IP",
+ "per_ip": "/IP",
"per_ip_full": "per IP",
"ip_version_title": "Select the IP address version",
"ip_version_description": "In many cases, you may need either a standard IPv4 or the latest IPv6 protocol. Please note that the list of compatible products may vary.",
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Get your new IPv6 prefix to use in vRack services.",
"ipv6_limit_reached_error": "You have reached the maximum limit of additional IPv6 blocks",
"ipv6_region_3_blocks_limit_reached_error": "You have reached the maximum limit of 3 additional IPv6 blocks in the selected region. Please select another region",
- "ipv6_region_already_used_error": "You already have a block from the region selected in your vRack. Please select another region"
+ "ipv6_region_already_used_error": "You already have a block from the region selected in your vRack. Please select another region",
+ "vrack_bandwidth_section_title": "Select a public bandwidth",
+ "vrack_bandwidth_section_description": "When assigning an additional IP to a private vRack network, public bandwidth must be enabled.",
+ "ap_bandwidth_limit_tooltip_info": "Bandwidth availability may be limited in the Asia-Pacific regions.",
+ "ip_order_success_message": "Your additional IP order has started in a new tab. Please complete it to finalise your purchase. If the new tab does not open, click here.",
+ "upgrade_bandwidth_order_success_message": "Your bandwidth order has started in a new tab. Please complete it to finalise your purchase. If the new tab does not open, click here.",
+ "bandwidth_option_card_tooltip": "A pro-rata charge applies for the remaining days of your current billing cycle, and full pricing begins in the next billing cycle.",
+ "vrack_bandwidth_double_order_info_message": "An order for public bandwidth and an order for the additional IP are required if you already have public bandwidth enabled on your vRack. If you do not yet have public bandwidth enabled, only one order is necessary.",
+ "upgrade_bandwidth_order_error_message": "An error occurred while ordering the public bandwidth. Please try again later.",
+ "vrack_bandwidth_section_description_1": "When assigning an additional IP address to a vRack network, the public bandwidth applies to the traffic between OVHcloud and the Internet.",
+ "vrack_bandwidth_section_description_2": "The selected public bandwidth applies to a vRack network in the given region and is shared among all additional IP addresses at that location routed to this network.",
+ "vrack_bandwidth_section_description_3": "Please select the plan applicable to your needs (it can be upgraded later)."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_es_ES.json b/packages/manager/apps/ips/public/translations/order/Messages_es_ES.json
index a7a6b2e4e0c4..1e47eb9f29d1 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_es_ES.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_es_ES.json
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Obtenga su nuevo prefijo IPv6 para utilizarlo en los servicios vRack.",
"ipv6_limit_reached_error": "Ya ha alcanzado el número máximo de bloques de IPv6 adicionales.",
"ipv6_region_3_blocks_limit_reached_error": "Ya ha alcanzado el número máximo de 3 bloques de IPv6 adicionales en la región seleccionada. Por favor, seleccione otra región.",
- "ipv6_region_already_used_error": "Ya tiene un bloque de la región seleccionada en el vRack. Por favor, seleccione otra región."
+ "ipv6_region_already_used_error": "Ya tiene un bloque de la región seleccionada en el vRack. Por favor, seleccione otra región.",
+ "vrack_bandwidth_section_title": "Seleccionar un ancho de banda público",
+ "vrack_bandwidth_section_description": "Al asignar una IP adicional a una red privada vRack, el ancho de banda público debe estar activado.",
+ "ap_bandwidth_limit_tooltip_info": "La disponibilidad del ancho de banda puede estar limitada en las regiones de Asia-Pacífico.",
+ "ip_order_success_message": "Tu pedido de IP adicional ha comenzado en una nueva pestaña. Por favor, termínalo para finalizar tu compra. Si la nueva pestaña no se abre, Haga clic aquí.",
+ "upgrade_bandwidth_order_success_message": "Tu pedido de ancho de banda ha comenzado en una nueva pestaña. Por favor, termínalo para finalizar tu compra. Si la nueva pestaña no se abre, Haga clic aquí.",
+ "bandwidth_option_card_tooltip": "Se aplica un coste prorrateado por los días restantes de tu ciclo de facturación actual y la tarificación completa comienza en el siguiente ciclo de facturación.",
+ "vrack_bandwidth_double_order_info_message": "Se necesita un pedido para el ancho de banda público y un pedido para la IP adicional, si ya tienes un ancho de banda público activado en tu vRack. Si aún no tienes un ancho de banda público activado, solo se necesita un pedido.",
+ "upgrade_bandwidth_order_error_message": "Se ha producido un error al realizar el pedido del ancho de banda público. Por favor, vuelva a intentarlo más adelante.",
+ "vrack_bandwidth_section_description_1": "Al asignar una dirección IP adicional a una red vRack, el ancho de banda público se aplica al tráfico entre OVHcloud e Internet.",
+ "vrack_bandwidth_section_description_2": "El ancho de banda público seleccionado se aplica a una red vRack en la región dada y se comparte entre todas las direcciones IP adicionales de esa ubicación que están enrutadas a esta red.",
+ "vrack_bandwidth_section_description_3": "Por favor, selecciona el paquete aplicable a tus necesidades (se puede actualizar más adelante)."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_fr_CA.json b/packages/manager/apps/ips/public/translations/order/Messages_fr_CA.json
index 4c1c79d5da00..5aa88c3d7cc2 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_fr_CA.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_fr_CA.json
@@ -47,5 +47,15 @@
"new_prefix_ipv6_card_description": "Obtenez votre nouveau préfixe IPv6 à utiliser dans les services vRack.",
"ipv6_limit_reached_error": "Le nombre maximum de blocs IPv6 supplémentaires a déjà été atteint",
"ipv6_region_3_blocks_limit_reached_error": "Le nombre maximum de 3 blocs IPv6 supplémentaires a déjà été atteint dans la région sélectionnée. Veuillez choisir une autre région.",
- "ipv6_region_already_used_error": "Vous disposez déjà d'un bloc de la région sélectionnée dans votre vRack. Veuillez choisir une autre région."
+ "ipv6_region_already_used_error": "Vous disposez déjà d'un bloc de la région sélectionnée dans votre vRack. Veuillez choisir une autre région.",
+ "vrack_bandwidth_section_title": "Sélectionner une bande passante publique",
+ "vrack_bandwidth_section_description_1": "Lors de l’attribution d’une adresse IP supplémentaire à un réseau vRack, la bande passante publique s’applique au trafic entre OVHcloud et Internet.",
+ "vrack_bandwidth_section_description_2": "La bande passante publique sélectionnée s’applique à un réseau vRack dans la région donnée et est partagée entre toutes les adresses IP supplémentaires de cet emplacement routées vers ce réseau.",
+ "vrack_bandwidth_section_description_3": "Veuillez sélectionner le forfait applicable à vos besoins (il peut être mis à niveau ultérieurement).",
+ "ap_bandwidth_limit_tooltip_info": "La disponibilité de la bande passante peut être limitée dans les régions Asie-Pacifique.",
+ "ip_order_success_message": "Votre commande d'IP additionnelle a commencé dans un nouvel onglet. Veuillez la terminer pour finaliser votre achat. Si le nouvel onglet ne s'ouvre pas, cliquez ici.",
+ "upgrade_bandwidth_order_success_message": "Votre commande de bande passante a commencé dans un nouvel onglet. Veuillez la terminer pour finaliser votre achat. Si le nouvel onglet ne s'ouvre pas, cliquez ici.",
+ "bandwidth_option_card_tooltip": "Un coût au prorata s'applique pour les jours restants de votre cycle de facturation actuel et la tarification complète commence le cycle de facturation suivant.",
+ "vrack_bandwidth_double_order_info_message": "Une commande pour la bande passante publique et une commande pour l'IP additionnelle, sont nécessaires si vous avez déjà une bande passante publique activée sur votre vRack. Si vous n'avez pas encore de bande passante publique activée, une seule commande est nécessaire.",
+ "upgrade_bandwidth_order_error_message": "Une erreur est survenue lors de la commande de la bande passante publique. Veuillez réessayer ultérieurement."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_fr_FR.json b/packages/manager/apps/ips/public/translations/order/Messages_fr_FR.json
index 4c1c79d5da00..5aa88c3d7cc2 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_fr_FR.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_fr_FR.json
@@ -47,5 +47,15 @@
"new_prefix_ipv6_card_description": "Obtenez votre nouveau préfixe IPv6 à utiliser dans les services vRack.",
"ipv6_limit_reached_error": "Le nombre maximum de blocs IPv6 supplémentaires a déjà été atteint",
"ipv6_region_3_blocks_limit_reached_error": "Le nombre maximum de 3 blocs IPv6 supplémentaires a déjà été atteint dans la région sélectionnée. Veuillez choisir une autre région.",
- "ipv6_region_already_used_error": "Vous disposez déjà d'un bloc de la région sélectionnée dans votre vRack. Veuillez choisir une autre région."
+ "ipv6_region_already_used_error": "Vous disposez déjà d'un bloc de la région sélectionnée dans votre vRack. Veuillez choisir une autre région.",
+ "vrack_bandwidth_section_title": "Sélectionner une bande passante publique",
+ "vrack_bandwidth_section_description_1": "Lors de l’attribution d’une adresse IP supplémentaire à un réseau vRack, la bande passante publique s’applique au trafic entre OVHcloud et Internet.",
+ "vrack_bandwidth_section_description_2": "La bande passante publique sélectionnée s’applique à un réseau vRack dans la région donnée et est partagée entre toutes les adresses IP supplémentaires de cet emplacement routées vers ce réseau.",
+ "vrack_bandwidth_section_description_3": "Veuillez sélectionner le forfait applicable à vos besoins (il peut être mis à niveau ultérieurement).",
+ "ap_bandwidth_limit_tooltip_info": "La disponibilité de la bande passante peut être limitée dans les régions Asie-Pacifique.",
+ "ip_order_success_message": "Votre commande d'IP additionnelle a commencé dans un nouvel onglet. Veuillez la terminer pour finaliser votre achat. Si le nouvel onglet ne s'ouvre pas, cliquez ici.",
+ "upgrade_bandwidth_order_success_message": "Votre commande de bande passante a commencé dans un nouvel onglet. Veuillez la terminer pour finaliser votre achat. Si le nouvel onglet ne s'ouvre pas, cliquez ici.",
+ "bandwidth_option_card_tooltip": "Un coût au prorata s'applique pour les jours restants de votre cycle de facturation actuel et la tarification complète commence le cycle de facturation suivant.",
+ "vrack_bandwidth_double_order_info_message": "Une commande pour la bande passante publique et une commande pour l'IP additionnelle, sont nécessaires si vous avez déjà une bande passante publique activée sur votre vRack. Si vous n'avez pas encore de bande passante publique activée, une seule commande est nécessaire.",
+ "upgrade_bandwidth_order_error_message": "Une erreur est survenue lors de la commande de la bande passante publique. Veuillez réessayer ultérieurement."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_it_IT.json b/packages/manager/apps/ips/public/translations/order/Messages_it_IT.json
index e6228a695817..053ebec25187 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_it_IT.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_it_IT.json
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Ottieni il nuovo prefisso IPv6 da utilizzare nei servizi vRack.",
"ipv6_limit_reached_error": "È stato raggiunto il numero massimo di blocchi IPv6 aggiuntivi",
"ipv6_region_3_blocks_limit_reached_error": "È stato raggiunto il numero massimo di 3 blocchi IPv6 aggiuntivi nella Region selezionata. Scegli un'altra Region",
- "ipv6_region_already_used_error": "Disponi già di un blocco della Region selezionata nella tua vRack. Scegli un'altra Region"
+ "ipv6_region_already_used_error": "Disponi già di un blocco della Region selezionata nella tua vRack. Scegli un'altra Region",
+ "vrack_bandwidth_section_title": "Selezionare una larghezza di banda pubblica",
+ "vrack_bandwidth_section_description": "Quando si assegna un'IP aggiuntiva a una rete privata vRack, la larghezza di banda pubblica deve essere attivata.",
+ "ap_bandwidth_limit_tooltip_info": "La disponibilità della larghezza di banda può essere limitata nelle regioni dell'Asia-Pacifico.",
+ "ip_order_success_message": "Il tuo ordine di IP aggiuntiva è iniziato in una nuova scheda. Si prega di completarlo per finalizzare l'acquisto. Se la nuova scheda non si apre, clicca qui.",
+ "upgrade_bandwidth_order_success_message": "Il tuo ordine di larghezza di banda è iniziato in una nuova scheda. Si prega di completarlo per finalizzare l'acquisto. Se la nuova scheda non si apre, clicca qui.",
+ "bandwidth_option_card_tooltip": "Si applica un costo proporzionale per i giorni rimanenti del tuo ciclo di fatturazione attuale e la tariffazione completa inizia nel ciclo di fatturazione successivo.",
+ "vrack_bandwidth_double_order_info_message": "È necessario un ordine per la larghezza di banda pubblica e un ordine per l'IP aggiuntiva, se hai già una larghezza di banda pubblica attivata sul tuo vRack. Se non hai ancora una larghezza di banda pubblica attivata, è necessario un solo ordine.",
+ "upgrade_bandwidth_order_error_message": "Si è verificato un errore durante l'ordine della larghezza di banda pubblica. Riprova più tardi.",
+ "vrack_bandwidth_section_description_1": "Quando si assegna un indirizzo IP aggiuntivo a una rete vRack, la larghezza di banda pubblica si applica al traffico tra OVHcloud e Internet.",
+ "vrack_bandwidth_section_description_2": "La larghezza di banda pubblica selezionata si applica a una rete vRack nella regione specificata ed è condivisa tra tutti gli indirizzi IP aggiuntivi di quella posizione instradati verso questa rete.",
+ "vrack_bandwidth_section_description_3": "Si prega di selezionare il piano applicabile alle proprie esigenze (può essere aggiornato in seguito)."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_pl_PL.json b/packages/manager/apps/ips/public/translations/order/Messages_pl_PL.json
index 8cc17bc79352..357c9b2ab4e2 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_pl_PL.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_pl_PL.json
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Uzyskaj nowy prefiks IPv6, którego będziesz używał w usługach vRack.",
"ipv6_limit_reached_error": "Maksymalna liczba dodatkowych bloków IPv6 została już osiągnięta",
"ipv6_region_3_blocks_limit_reached_error": "W wybranym regionie została już osiągnięta maksymalna liczba 3 dodatkowych bloków IPv6. Wybierz inny region.",
- "ipv6_region_already_used_error": "Dysponujesz już blokiem wybranego regionu w ramach usługi vRack. Wybierz inny region."
+ "ipv6_region_already_used_error": "Dysponujesz już blokiem wybranego regionu w ramach usługi vRack. Wybierz inny region.",
+ "vrack_bandwidth_section_title": "Wybierz publiczną przepustowość",
+ "vrack_bandwidth_section_description": "Podczas przypisywania dodatkowego adresu IP do prywatnej sieci vRack, publiczna przepustowość musi być aktywna.",
+ "ap_bandwidth_limit_tooltip_info": "Dostępność przepustowości może być ograniczona w regionach Azji i Pacyfiku.",
+ "ip_order_success_message": "Twoje zamówienie na dodatkowy adres IP rozpoczęło się w nowej karcie. Proszę je dokończyć, aby sfinalizować zakupu. Jeśli nowa karta się nie otworzy, kliknij tutaj.",
+ "upgrade_bandwidth_order_success_message": "Twoje zamówienie na przepustowość rozpoczęło się w nowej karcie. Proszę je dokończyć, aby sfinalizować zakupu. Jeśli nowa karta się nie otworzy, kliknij tutaj.",
+ "bandwidth_option_card_tooltip": "Koszt proporcjonalny dotyczy pozostałych dni bieżącego cyklu rozliczeniowego, a pełna cena zaczyna się w następnym cyklu rozliczeniowym.",
+ "vrack_bandwidth_double_order_info_message": "Zamówienie na publiczną przepustowość oraz zamówienie na dodatkowy adres IP są wymagane, jeśli masz już aktywną publiczną przepustowość na swoim vRack. Jeśli nie masz jeszcze aktywnej publicznej przepustowości, potrzebne jest tylko jedno zamówienie.",
+ "upgrade_bandwidth_order_error_message": "Wystąpił błąd podczas zamawiania publicznej przepustowości. Spróbuj ponownie później.",
+ "vrack_bandwidth_section_description_1": "Podczas przydzielania dodatkowego adresu IP do sieci vRack, pasmo publiczne dotyczy ruchu między OVHcloud a Internetem.",
+ "vrack_bandwidth_section_description_2": "Wybrane pasmo publiczne dotyczy sieci vRack w danym regionie i jest dzielone między wszystkie dodatkowe adresy IP w tej lokalizacji, które są routowane do tej sieci.",
+ "vrack_bandwidth_section_description_3": "Proszę wybrać odpowiedni plan do swoich potrzeb (może być później zaktualizowany)."
}
diff --git a/packages/manager/apps/ips/public/translations/order/Messages_pt_PT.json b/packages/manager/apps/ips/public/translations/order/Messages_pt_PT.json
index b18db901fe21..f7e04f729207 100644
--- a/packages/manager/apps/ips/public/translations/order/Messages_pt_PT.json
+++ b/packages/manager/apps/ips/public/translations/order/Messages_pt_PT.json
@@ -47,5 +47,16 @@
"new_prefix_ipv6_card_description": "Obtenha o seu novo prefixo IPv6 para utilizar nos serviços vRack.",
"ipv6_limit_reached_error": "O número máximo de blocos IPv6 adicionais já foi atingido",
"ipv6_region_3_blocks_limit_reached_error": "O número máximo de 3 blocos IPv6 adicionais já foi atingido na região selecionada. Escolha outra região.",
- "ipv6_region_already_used_error": "Já dispõe de um bloco da região selecionada no seu vRack. Escolha outra região."
+ "ipv6_region_already_used_error": "Já dispõe de um bloco da região selecionada no seu vRack. Escolha outra região.",
+ "vrack_bandwidth_section_title": "Selecionar uma largura de banda pública",
+ "vrack_bandwidth_section_description": "Ao atribuir um IP adicional a uma rede privada vRack, a largura de banda pública deve ser ativada.",
+ "ap_bandwidth_limit_tooltip_info": "A disponibilidade da largura de banda pode ser limitada nas regiões da Ásia-Pacífico.",
+ "ip_order_success_message": "O seu pedido de IP adicional começou numa nova aba. Por favor, termine-o para finalizar a sua compra. Se a nova aba não abrir, clique aqui.",
+ "upgrade_bandwidth_order_success_message": "O seu pedido de largura de banda começou numa nova aba. Por favor, termine-o para finalizar a sua compra. Se a nova aba não abrir, clique aqui.",
+ "bandwidth_option_card_tooltip": "Um custo proporcional aplica-se aos dias restantes do seu ciclo de faturação atual e a tarifação completa começa no ciclo de faturação seguinte.",
+ "vrack_bandwidth_double_order_info_message": "Um pedido para a largura de banda pública e um pedido para o IP adicional são necessários se já tiver uma largura de banda pública ativada no seu vRack. Se ainda não tiver largura de banda pública ativada, é necessário apenas um pedido.",
+ "upgrade_bandwidth_order_error_message": "Ocorreu um erro ao fazer o pedido da largura de banda pública. Volte a tentar mais tarde",
+ "vrack_bandwidth_section_description_1": "Ao atribuir um endereço IP adicional a uma rede vRack, a largura de banda pública aplica-se ao tráfego entre a OVHcloud e a Internet.",
+ "vrack_bandwidth_section_description_2": "A largura de banda pública selecionada aplica-se a uma rede vRack na região dada e é partilhada entre todos os endereços IP adicionais desse local que estão encaminhados para esta rede.",
+ "vrack_bandwidth_section_description_3": "Por favor, selecione o plano aplicável às suas necessidades (pode ser atualizado posteriormente)."
}
diff --git a/packages/manager/apps/ips/src/__mocks__/vrack.ts b/packages/manager/apps/ips/src/__mocks__/vrack.ts
index 14e7dcd232d7..4ee8977e1760 100644
--- a/packages/manager/apps/ips/src/__mocks__/vrack.ts
+++ b/packages/manager/apps/ips/src/__mocks__/vrack.ts
@@ -21,6 +21,132 @@ export const vrackMockList = [
},
];
+export const publicRoutingRegionMocks = [
+ {
+ region: 'eu-west-par',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-west-gra',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-west-lim',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-west-eri',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-west-rbx',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-west-sbg',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'eu-central-waw',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'ca-east-bhs',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'ca-east-tor',
+ defaultBandwidthLimit: 5000,
+ publicRoutingType: 'PUBLIC-ROUTING-3-AZ',
+ },
+ {
+ region: 'ap-south-mum',
+ defaultBandwidthLimit: 100,
+ publicRoutingType: 'PUBLIC-ROUTING-1-AZ',
+ },
+ {
+ region: 'ap-southeast-sgp',
+ defaultBandwidthLimit: 100,
+ publicRoutingType: 'PUBLIC-ROUTING-1-AZ',
+ },
+ {
+ region: 'ap-southeast-syd',
+ defaultBandwidthLimit: 100,
+ publicRoutingType: 'PUBLIC-ROUTING-1-AZ',
+ },
+];
+
+export const publicRoutingBandwidthLimitMocks = [
+ {
+ region: 'eu-west-par',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-west-gra',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-west-lim',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-west-eri',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-west-rbx',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-west-sbg',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'eu-central-waw',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'ca-east-bhs',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'ca-east-tor',
+ bandwidthLimit: 5000,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'ap-south-mum',
+ bandwidthLimit: 100,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'ap-southeast-sgp',
+ bandwidthLimit: 100,
+ bandwidthLimitType: 'default',
+ },
+ {
+ region: 'ap-southeast-syd',
+ bandwidthLimit: 100,
+ bandwidthLimitType: 'default',
+ },
+];
+
export type GetVrackMocksParams = {
nbVrack?: number;
getVrackKo?: boolean;
@@ -32,6 +158,16 @@ export const getVrackMocks = ({
getVrackKo,
isVrackExpired,
}: GetVrackMocksParams): Handler[] => [
+ {
+ url: '/vrack/publicRoutingRegion',
+ response: publicRoutingRegionMocks,
+ api: 'v6',
+ },
+ {
+ url: '/vrack/:serviceName/publicRoutingBandwidthLimit',
+ response: publicRoutingBandwidthLimitMocks,
+ api: 'v6',
+ },
{
url: '/vrack/:serviceName/task/:taskId',
response: {},
@@ -58,4 +194,14 @@ export const getVrackMocks = ({
api: 'v6',
status: getVrackKo ? 400 : 200,
},
+ {
+ url: '/order/cartServiceOption/vrack/:serviceName',
+ response: [],
+ api: 'v6',
+ },
+ {
+ url: '/order/upgrade/bandwidthVrack',
+ response: [],
+ api: 'v6',
+ },
];
diff --git a/packages/manager/apps/ips/src/components/ApiError/ApiErrorMessage.tsx b/packages/manager/apps/ips/src/components/ApiError/ApiErrorMessage.tsx
index 80be193126a9..44642895298c 100644
--- a/packages/manager/apps/ips/src/components/ApiError/ApiErrorMessage.tsx
+++ b/packages/manager/apps/ips/src/components/ApiError/ApiErrorMessage.tsx
@@ -9,11 +9,14 @@ import { ApiError } from '@ovh-ux/manager-core-api';
import { TRANSLATION_NAMESPACES } from '@/utils';
-export const useApiErrorMessage = (error?: ApiError | null) => {
+export const useApiErrorMessage = (error?: ApiError | Error | null) => {
const { t } = useTranslation(TRANSLATION_NAMESPACES.error);
- const errorMessage = error?.response?.data?.message || error?.message;
- const ovhQueryId = error?.response?.headers?.['x-ovh-queryid'] as string;
+ const errorMessage =
+ (error as ApiError)?.response?.data?.message || error?.message;
+ const ovhQueryId = (error as ApiError)?.response?.headers?.[
+ 'x-ovh-queryid'
+ ] as string;
if (!errorMessage) {
return undefined;
@@ -25,7 +28,7 @@ export const useApiErrorMessage = (error?: ApiError | null) => {
};
export type ApiErrorMessageProps = {
- error?: ApiError | null;
+ error?: ApiError | Error | null;
isDismissible?: boolean;
className?: string;
};
diff --git a/packages/manager/apps/ips/src/components/BandwidthOptionCard/BandwidthOptionCard.tsx b/packages/manager/apps/ips/src/components/BandwidthOptionCard/BandwidthOptionCard.tsx
new file mode 100644
index 000000000000..46c1678c0b17
--- /dev/null
+++ b/packages/manager/apps/ips/src/components/BandwidthOptionCard/BandwidthOptionCard.tsx
@@ -0,0 +1,112 @@
+import React from 'react';
+
+import { useTranslation } from 'react-i18next';
+
+import {
+ ODS_CARD_COLOR,
+ ODS_ICON_NAME,
+ ODS_MESSAGE_COLOR,
+ ODS_TEXT_PRESET,
+} from '@ovhcloud/ods-components';
+import {
+ OdsCard,
+ OdsIcon,
+ OdsMessage,
+ OdsRadio,
+ OdsText,
+ OdsTooltip,
+} from '@ovhcloud/ods-components/react';
+
+import { useBandwidthFormatConverter } from '@ovh-ux/manager-network-common';
+import { handleClick } from '@ovh-ux/manager-react-components';
+
+import { PriceDescription } from '../PriceDescription/PriceDescription';
+
+import './bandwidth-option-card.scss';
+
+export type BandwidthOptionCardProps = {
+ className?: string;
+ isDisabled?: boolean;
+ isSelected?: boolean;
+ message?: string;
+ messageColor?: ODS_MESSAGE_COLOR;
+ onClick?: () => void;
+ bandwidthLimit: number;
+ price: number;
+ tooltip?: string;
+};
+
+export const BandwidthOptionCard: React.FC = ({
+ className,
+ isDisabled,
+ isSelected,
+ message,
+ messageColor = ODS_MESSAGE_COLOR.information,
+ onClick,
+ bandwidthLimit,
+ price,
+ tooltip,
+}) => {
+ const { t } = useTranslation();
+ const stateStyle = isDisabled
+ ? 'cursor-not-allowed bg-neutral-100'
+ : 'cursor-pointer hover:shadow-md';
+ const cardStyle = isSelected ? 'option_card_selected' : 'option_card m-[1px]';
+ const converter = useBandwidthFormatConverter();
+ return (
+ !isDisabled && onClick?.())}
+ color={ODS_CARD_COLOR.neutral}
+ >
+