From 3a393028eda9661c2a9571d042d44190db89f1db Mon Sep 17 00:00:00 2001 From: Paul Dickerson Date: Fri, 31 Jan 2025 17:33:42 +0100 Subject: [PATCH] feat(dedicated): add datacenter network tab ref: MANAGER-16613 Signed-off-by: Paul Dickerson --- .../dedicatedCloud-datacenter.component.js | 2 ++ .../datacenter/dedicatedCloud-datacenter.html | 5 +++ ...edicatedCloud-datacenter-host.component.js | 2 +- ...dicatedCloud-datacenter-host.controller.js | 17 +-------- .../host/dedicatedCloud-datacenter-host.html | 5 +-- ...catedCloud-datacenter-network.component.js | 10 ++++++ ...atedCloud-datacenter-network.controller.js | 6 ++++ .../dedicatedCloud-datacenter-network.html | 1 + .../datacenter/network/index.js | 15 ++++++++ ...datacenter-network-onboarding.component.js | 10 ++++++ ...atacenter-network-onboarding.controller.js | 7 ++++ ...edCloud-datacenter-network-onboarding.html | 36 +++++++++++++++++++ .../datacenter/network/onboarding/index.js | 16 +++++++++ .../translations/Messages_fr_FR.json | 14 ++++++++ .../translations/Messages_fr_FR.json | 1 + .../dedicated-cloud/dedicatedCloud.service.js | 6 ++++ .../dedicatedCloud-datacenter.constants.js | 10 ++++++ .../dedicatedCloud-datacenter.module.js | 2 ++ .../dedicatedCloud-datacenter.routing.js | 29 +++++++++++++++ .../datacenter/host/index copy.js | 21 +++++++++++ ...edicatedCloud-datacenter-network.module.js | 13 +++++++ ...dicatedCloud-datacenter-network.routing.js | 27 ++++++++++++++ .../datacenter/network/index.js | 24 +++++++++++++ ...ud-datacenter-network-onboarding.module.js | 13 +++++++ ...d-datacenter-network-onboarding.routing.js | 28 +++++++++++++++ .../datacenter/network/onboarding/index.js | 25 +++++++++++++ 26 files changed, 324 insertions(+), 21 deletions(-) create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/dedicatedCloud-datacenter-network.component.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/dedicatedCloud-datacenter-network.controller.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/dedicatedCloud-datacenter-network.html create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/index.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.component.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.controller.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.html create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/index.js create mode 100644 packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/translations/Messages_fr_FR.json create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.constants.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/host/index copy.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.module.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.routing.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/index.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.module.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.routing.js create mode 100644 packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/index.js diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dedicatedCloud-datacenter.component.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dedicatedCloud-datacenter.component.js index baa7fe988fbc..b415e2831375 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dedicatedCloud-datacenter.component.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/dedicatedCloud-datacenter.component.js @@ -11,10 +11,12 @@ export default { drpAvailability: '<', drpState: '<', hostsState: '<', + networkState: '<', newProductUrl: '<', dedicatedCloudPCCMigrationState: ' + diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.component.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.component.js index 426a338c415e..e22bf9b92dd6 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.component.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.component.js @@ -4,7 +4,7 @@ import template from './dedicatedCloud-datacenter-host.html'; export default { bindings: { datacenterId: '<', - datacenter: '<', + datacenterWithInfoProxy: '<', orderHost: '<', productId: '<', resourceUpgrade: '<', diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.controller.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.controller.js index d40563936a9d..785429103dc1 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.controller.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.controller.js @@ -26,22 +26,7 @@ export default class { this.RESOURCE_BILLING_TYPES = RESOURCE_BILLING_TYPES; this.RESOURCE_UPGRADE_TYPES = RESOURCE_UPGRADE_TYPES; - return this.fetchDatacenterInfoProxy(); - } - - fetchDatacenterInfoProxy() { - this.loading = true; - - return this.DedicatedCloud.getDatacenterInfoProxy( - this.productId, - this.datacenterId, - ) - .then(({ commercialRangeName }) => { - this.datacenter.model.commercialRangeName = commercialRangeName; - }) - .finally(() => { - this.loading = false; - }); + this.datacenter = this.datacenterWithInfoProxy; } fetchLegacyHostConsumption(hosts) { diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.html b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.html index 7fb4d9cde3d2..2a4834c22edd 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.html +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/host/dedicatedCloud-datacenter-host.html @@ -1,10 +1,7 @@

-
- -
-
+
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/index.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/index.js new file mode 100644 index 000000000000..f8b1df181590 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/index.js @@ -0,0 +1,15 @@ +import angular from 'angular'; + +import 'angular-translate'; +import '@ovh-ux/ui-kit'; + +import component from './dedicatedCloud-datacenter-network.component'; + +const moduleName = 'ovhManagerDedicatedCloudDatacenterNetworkComponent'; + +angular + .module(moduleName, ['oui', 'pascalprecht.translate']) + .component('ovhManagerDedicatedCloudDatacenterNetwork', component) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.component.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.component.js new file mode 100644 index 000000000000..96b83bd6d7d4 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.component.js @@ -0,0 +1,10 @@ +import controller from './dedicatedCloud-datacenter-network-onboarding.controller'; +import template from './dedicatedCloud-datacenter-network-onboarding.html'; + +export default { + bindings: { + network: '<', + }, + controller, + template, +}; diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.controller.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.controller.js new file mode 100644 index 000000000000..3a8783fa7f1e --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.controller.js @@ -0,0 +1,7 @@ +export default class { + /* @ngInject */ + constructor($state, $translate) { + this.$state = $state; + this.$translate = $translate; + } +} diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.html b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.html new file mode 100644 index 000000000000..3581d7e244f4 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.html @@ -0,0 +1,36 @@ +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/index.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/index.js new file mode 100644 index 000000000000..e054582a2845 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/index.js @@ -0,0 +1,16 @@ +import angular from 'angular'; + +import 'angular-translate'; +import '@ovh-ux/ui-kit'; + +import component from './dedicatedCloud-datacenter-network-onboarding.component'; + +const moduleName = + 'ovhManagerDedicatedCloudDatacenterNetworkOnboardingComponent'; + +angular + .module(moduleName, ['oui', 'pascalprecht.translate']) + .component('ovhManagerDedicatedCloudDatacenterNetworkOnboarding', component) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/translations/Messages_fr_FR.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/translations/Messages_fr_FR.json new file mode 100644 index 000000000000..2115398e8bae --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/network/onboarding/translations/Messages_fr_FR.json @@ -0,0 +1,14 @@ +{ + "dedicatedCloud_datacenter_network_onboarding_description1": "En activant cette option, vous pourrez redimensionner, ajouter ou supprimer des NSX Edges selon vos besoins.", + "dedicatedCloud_datacenter_network_onboarding_description2": "Cette option fonctionne sur un modèle de facturation à la consommation : toute modification de la configuration standard des NSX Edges entraînera des frais supplémentaires.", + "dedicatedCloud_datacenter_network_onboarding_cta_start": "Commencer", + "dedicatedCloud_datacenter_network_onboarding_cta_more": "En savoir plus", + "dedicatedCloud_datacenter_network_onboarding_doc_category_tutorial": "Tutoriel", + "dedicatedCloud_datacenter_network_onboarding_doc_category_faq": "FAQ", + "dedicatedCloud_datacenter_network_onboarding_doc1_title": "Premier pas avec NSX", + "dedicatedCloud_datacenter_network_onboarding_doc1_description": "Découvrez NSX, la solution de gestion de réseau Software-Defined Networking (SDN) fournie par VMware.", + "dedicatedCloud_datacenter_network_onboarding_doc2_title": "Comment activer NSX-T sur la solution VMware on OVHcloud", + "dedicatedCloud_datacenter_network_onboarding_doc2_description": "Découvrez comment attribuer des droits à un utilisateur et aux datacenters pour NSX-T", + "dedicatedCloud_datacenter_network_onboarding_doc3_title": "NSX - FAQ", + "dedicatedCloud_datacenter_network_onboarding_doc3_description": "Retrouvez les réponses aux questions les plus fréquentes sur l'utilisation de NSX au sein de l'écosystème Hosted Private Cloud." +} diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/translations/Messages_fr_FR.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/translations/Messages_fr_FR.json index 8ac313d933f2..72fa52689c0d 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/translations/Messages_fr_FR.json +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenter/translations/Messages_fr_FR.json @@ -6,6 +6,7 @@ "dedicatedCloud_tab_datastore": "Datastores", "dedicatedCloud_tab_backup": "Backup", "dedicatedCloud_tab_drp": "Plan de reprise d’activité (PRA)", + "dedicatedCloud_tab_network": "Network", "dedicatedCloud_datacenter_EOL_title": "Date de fin de vie de Dedicated Cloud : 30 Septembre 2022", "dedicatedCloud_datacenter_EOL_part_1": "Nous vous avons informé en Octobre 2021 que nos offres Dedicated Cloud arrivaient en fin de vie et seront définitivement arrêtées le 30 Septembre 2022. Cette étape est importante pour vos plateformes VMware afin d’améliorer la qualité de service, les performances et la sécurité de vos clusters. En effet, le matériel des offres « Dedicated Cloud » utilisé, antérieur à 2018, ne nous permet plus d’assurer le meilleur niveau de service et l’intégration avec les nouvelles architectures modernes de VMware.", "dedicatedCloud_datacenter_EOL_part_2": "Suite à nos précédentes communications, de nombreux clients ont entamé cette planification et migration et nous vous invitons donc à faire de même afin d'éviter cette date butoir du 30 Septembre 2022." diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js index 1297a33f0d9d..29a3e53df49e 100644 --- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js +++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/dedicatedCloud.service.js @@ -1715,6 +1715,12 @@ class DedicatedCloudService { .get(`/dedicatedCloud/${serviceName}/location`) .then(({ data }) => data); } + + getDatacenterOptions(serviceId) { + return this.$http + .get(`/services/${serviceId}/options`) + .then(({ data }) => data); + } } angular.module(moduleName, []).service('DedicatedCloud', DedicatedCloudService); diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.constants.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.constants.js new file mode 100644 index 000000000000..3299c526bbec --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.constants.js @@ -0,0 +1,10 @@ +export const NSX_COMPATIBLE_COMMERCIAL_RANGE = [ + 'NSX', + 'NSX-T', + 'SDDC 2016', + 'SDDC 2018', +]; + +export default { + NSX_COMPATIBLE_COMMERCIAL_RANGE, +}; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.module.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.module.js index 500982ad1a32..94fd0e2dd3bb 100644 --- a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.module.js +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.module.js @@ -6,6 +6,7 @@ import datacenterComponent from '../../components/dedicated-cloud/datacenter'; import datastore from './datastore'; import drp from './drp'; import host from './host'; +import network from './network'; import routing from './dedicatedCloud-datacenter.routing'; const moduleName = 'ovhManagerDedicatedCloudDatacenter'; @@ -18,6 +19,7 @@ angular datastore, drp, host, + network, ]) .config(routing); diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js index 4d4257617a22..c06a2baa372e 100644 --- a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/dedicatedCloud-datacenter.routing.js @@ -1,3 +1,5 @@ +import { NSX_COMPATIBLE_COMMERCIAL_RANGE } from './dedicatedCloud-datacenter.constants'; + export default /* @ngInject */ ($stateProvider) => { $stateProvider.state('app.dedicatedCloud.details.datacenter.details', { url: '/:datacenterId', @@ -28,6 +30,29 @@ export default /* @ngInject */ ($stateProvider) => { id: datacenterId, }, })), + datacenterWithInfoProxy: /* @ngInject */ ( + datacenter, + DedicatedCloud, + datacenterId, + productId, + ) => { + return DedicatedCloud.getDatacenterInfoProxy( + productId, + datacenterId, + ).then((datacenterInfoProxy) => ({ + model: { + ...datacenterInfoProxy, + ...datacenter.model, + }, + })); + }, + isNsxCompatible: /* @ngInject */ (datacenterWithInfoProxy) => { + const vdcRange = datacenterWithInfoProxy.model.commercialRangeName; + return NSX_COMPATIBLE_COMMERCIAL_RANGE.some( + (range) => + range === vdcRange || range.toLocaleLowerCase() === vdcRange, + ); + }, deleteDatacenter: /* @ngInject */ ($state) => () => $state.go( 'app.dedicatedCloud.details.datacenter.details.dashboard.delete', @@ -39,6 +64,8 @@ export default /* @ngInject */ ($stateProvider) => { 'app.dedicatedCloud.details.datacenter.details.datastores', drpState: () => 'app.dedicatedCloud.details.datacenter.details.drp', hostsState: () => 'app.dedicatedCloud.details.datacenter.details.hosts', + networkState: () => + 'app.dedicatedCloud.details.datacenter.details.network', goToHosts: /* @ngInject */ ($state) => () => $state.go('app.dedicatedCloud.details.datacenter.details.hosts'), goToDatastores: /* @ngInject */ ($state) => () => @@ -47,6 +74,8 @@ export default /* @ngInject */ ($stateProvider) => { $state.go('app.dedicatedCloud.details.datacenter.details.backup'), goToDrp: /* @ngInject */ ($state) => () => $state.go('app.dedicatedCloud.details.datacenter.details.drp'), + goToNetwork: /* @ngInject */ ($state) => () => + $state.go('app.dedicatedCloud.details.datacenter.details.network'), goToDrpSummary: /* @ngInject */ ($state, currentDrp) => () => $state.go('app.dedicatedCloud.details.datacenter.details.drp.summary', { drpInformations: currentDrp, diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/host/index copy.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/host/index copy.js new file mode 100644 index 000000000000..413f05378900 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/host/index copy.js @@ -0,0 +1,21 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import 'oclazyload'; + +const moduleName = 'ovhManagerDedicatedCloudDatacenterLazyloading'; + +angular.module(moduleName, ['ui.router', 'oc.lazyLoad']).config( + /* @ngInject */ ($stateProvider) => { + $stateProvider.state('app.dedicatedCloud.details.datacenter.details.**', { + url: '/:datacenterId', + lazyLoad: ($transition$) => { + const $ocLazyLoad = $transition$.injector().get('$ocLazyLoad'); + return import('./dedicatedCloud-datacenter.module').then((mod) => + $ocLazyLoad.inject(mod.default || mod), + ); + }, + }); + }, +); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.module.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.module.js new file mode 100644 index 000000000000..0ef63fe79877 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.module.js @@ -0,0 +1,13 @@ +import angular from 'angular'; + +import networkComponent from '../../../components/dedicated-cloud/datacenter/network'; +import routing from './dedicatedCloud-datacenter-network.routing'; + +const moduleName = 'ovhManagerDedicatedCloudDatacenterNetworkModule'; + +angular + .module(moduleName, [networkComponent]) + .config(routing) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.routing.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.routing.js new file mode 100644 index 000000000000..8b672502d0c2 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/dedicatedCloud-datacenter-network.routing.js @@ -0,0 +1,27 @@ +export default /* @ngInject */ ($stateProvider) => { + $stateProvider.state( + 'app.dedicatedCloud.details.datacenter.details.network', + { + url: '/network', + views: { + pccDatacenterView: 'ovhManagerDedicatedCloudDatacenterNetwork', + }, + redirectTo: (transition) => + transition + .injector() + .getAsync('resources') + .then((resources) => + resources.length === 0 + ? { + state: + 'app.dedicatedCloud.details.datacenter.details.network.onboarding', + } + : false, + ), + resolve: { + resources: /* @ngInject */ ($http) => + $http.get('/dedicatedCloud').then(({ data }) => data), + }, + }, + ); +}; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/index.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/index.js new file mode 100644 index 000000000000..bbd8bc1c01d4 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/index.js @@ -0,0 +1,24 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import 'oclazyload'; + +const moduleName = 'ovhManagerDedicatedCloudDatacenterNetworkLazyloading'; + +angular.module(moduleName, ['ui.router', 'oc.lazyLoad']).config( + /* @ngInject */ ($stateProvider) => { + $stateProvider.state( + 'app.dedicatedCloud.details.datacenter.details.network.**', + { + url: '/network', + lazyLoad: ($transition$) => { + const $ocLazyLoad = $transition$.injector().get('$ocLazyLoad'); + return import( + './dedicatedCloud-datacenter-network.module' + ).then((mod) => $ocLazyLoad.inject(mod.default || mod)); + }, + }, + ); + }, +); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.module.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.module.js new file mode 100644 index 000000000000..ca48c8b6b8ee --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.module.js @@ -0,0 +1,13 @@ +import angular from 'angular'; + +import networkOnboardingComponent from '../../../../components/dedicated-cloud/datacenter/network/onboarding'; +import routing from './dedicatedCloud-datacenter-network-onboarding.routing'; + +const moduleName = 'ovhManagerDedicatedCloudDatacenterNetworkOnboardingModule'; + +angular + .module(moduleName, [networkOnboardingComponent]) + .config(routing) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.routing.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.routing.js new file mode 100644 index 000000000000..f39854a91c71 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/dedicatedCloud-datacenter-network-onboarding.routing.js @@ -0,0 +1,28 @@ +export default /* @ngInject */ ($stateProvider) => { + $stateProvider.state( + 'app.dedicatedCloud.details.datacenter.details.network.onboarding', + { + url: '/onboarding', + views: { + pccDatacenterView: + 'ovhManagerDedicatedCloudDatacenterNetworkOnboarding', + }, + redirectTo: (transition) => + transition + .injector() + .getAsync('resources') + .then((resources) => + resources.length === 0 + ? { + state: + 'app.dedicatedCloud.details.datacenter.details.network', + } + : false, + ), + resolve: { + resources: /* @ngInject */ ($http) => + $http.get('/dedicatedCloud').then(({ data }) => data), + }, + }, + ); +}; diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/index.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/index.js new file mode 100644 index 000000000000..09be487572f0 --- /dev/null +++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenter/network/onboarding/index.js @@ -0,0 +1,25 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import 'oclazyload'; + +const moduleName = + 'ovhManagerDedicatedCloudDatacenterNetworkOnboardingLazyloading'; + +angular.module(moduleName, ['ui.router', 'oc.lazyLoad']).config( + /* @ngInject */ ($stateProvider) => { + $stateProvider.state( + 'app.dedicatedCloud.details.datacenter.details.network.onboarding.**', + { + url: '/network', + lazyLoad: ($transition$) => { + const $ocLazyLoad = $transition$.injector().get('$ocLazyLoad'); + return import( + './dedicatedCloud-datacenter-network-onboarding.module' + ).then((mod) => $ocLazyLoad.inject(mod.default || mod)); + }, + }, + ); + }, +); + +export default moduleName;