data-ng-click="$ctrl.onAddDatacenterClick()"
data-translate="dedicatedCloud_datacenters_add"
>
-
-
+
+
+
finden Sie in unseren Leitfäden.",
+ "dedicatedCloud_datacenters_migration_banner_second": "Die VMware NSX-V-Komponente WIRD am 15. Januar 2024 DEAKTIVIERT. Weitere Informationen finden Sie in unseren Migrationsleitfäden."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_en_GB.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_en_GB.json
index 2f36c758806b..0b60edef74a0 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_en_GB.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_en_GB.json
@@ -90,5 +90,7 @@
"dedicatedCloud_datacenters_commercial_name_VSPHERE-WITHOUT-NSX": "vSphere",
"dedicatedCloud_datacenters_commercial_name_VSPHERE-VROPS-WITHOUT-NSX": "vSphere with vROps",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX with vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX with vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "End of life for the VMware NSX-V component as of 15 January 2024: please refer to the email sent in July/August 2023 for migration options. For technical information, please refer to our guides.",
+ "dedicatedCloud_datacenters_migration_banner_second": "IMMINENT DEACTIVATION of the VMware NSX-V component effective 15 January 15 2024. Please refer to our migration guides for more information."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_es_ES.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_es_ES.json
index b1b9f1059e83..7ded977e8879 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_es_ES.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_es_ES.json
@@ -90,5 +90,7 @@
"dedicatedCloud_datacenters_commercial_name_VSPHERE-WITHOUT-NSX": "vSphere",
"dedicatedCloud_datacenters_commercial_name_VSPHERE-VROPS-WITHOUT-NSX": "vSphere con vROps",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX con vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX con vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Final de vida útil del componente VMware NSX-V el día 15 de enero de 2024: consulte el email que le enviamos en julio/agosto de 2023 para conocer las modalidades de migración. Para más información, consulte nuestras guías.",
+ "dedicatedCloud_datacenters_migration_banner_second": "DESACTIVACIÓN INMINENTE del componente VMware NSX-V a partir del 15 de enero de 2024. Para más información, consulte nuestras guías de migración."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_CA.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_CA.json
index a356b8fcb940..ba3af12e094c 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_CA.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_CA.json
@@ -8,7 +8,6 @@
"dedicatedCloud_datacenters_order_host": "Commander un Host",
"dedicatedCloud_datacenters_order_datastore": "Commander un Datastore",
"dedicatedCloud_datacenters_loading_error": "Une erreur est survenue lors du chargement des informations des datacentres.",
- "dedicatedCloud_datacenters_add_not_available": "L’ajout de nouveau datacentre n’est pas disponible pour le moment. Nous travaillons à rendre cette fonctionnalité disponible très prochainement.",
"dedicatedCloud_datacenters_commercial_name_DC": "Dedicated Cloud",
"dedicatedCloud_datacenters_commercial_name_DC-HDS": "Dedicated Cloud HDS",
"dedicatedCloud_datacenters_commercial_name_DC-HIPAA": "Dedicated Cloud HIPAA",
@@ -82,5 +81,7 @@
"dedicatedCloud_datacenters_commercial_name_NSX-T-UNKNOWN": "NSX",
"dedicatedCloud_datacenters_commercial_name_NSX-T-DEFAULT": "NSX",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX avec vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX avec vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Fin de vie du composant VMware NSX-V au 15 janvier 2024 : veuillez-vous reporter à l'email envoyé en juillet/aout 2023 pour connaitre les modalités de migration. Pour des compléments techniques, veuillez consulter nos guides.",
+ "dedicatedCloud_datacenters_migration_banner_second": "DÉSACTIVATION IMMINENTE du composant VMware NSX-V à compter du 15 janvier 2024. Veuillez consulter nos guides de migration pour plus d'informations."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_FR.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_FR.json
index a356b8fcb940..ba3af12e094c 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_FR.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_fr_FR.json
@@ -8,7 +8,6 @@
"dedicatedCloud_datacenters_order_host": "Commander un Host",
"dedicatedCloud_datacenters_order_datastore": "Commander un Datastore",
"dedicatedCloud_datacenters_loading_error": "Une erreur est survenue lors du chargement des informations des datacentres.",
- "dedicatedCloud_datacenters_add_not_available": "L’ajout de nouveau datacentre n’est pas disponible pour le moment. Nous travaillons à rendre cette fonctionnalité disponible très prochainement.",
"dedicatedCloud_datacenters_commercial_name_DC": "Dedicated Cloud",
"dedicatedCloud_datacenters_commercial_name_DC-HDS": "Dedicated Cloud HDS",
"dedicatedCloud_datacenters_commercial_name_DC-HIPAA": "Dedicated Cloud HIPAA",
@@ -82,5 +81,7 @@
"dedicatedCloud_datacenters_commercial_name_NSX-T-UNKNOWN": "NSX",
"dedicatedCloud_datacenters_commercial_name_NSX-T-DEFAULT": "NSX",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX avec vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX avec vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Fin de vie du composant VMware NSX-V au 15 janvier 2024 : veuillez-vous reporter à l'email envoyé en juillet/aout 2023 pour connaitre les modalités de migration. Pour des compléments techniques, veuillez consulter nos guides.",
+ "dedicatedCloud_datacenters_migration_banner_second": "DÉSACTIVATION IMMINENTE du composant VMware NSX-V à compter du 15 janvier 2024. Veuillez consulter nos guides de migration pour plus d'informations."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_it_IT.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_it_IT.json
index a8c4be1521b3..1effb1f14022 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_it_IT.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_it_IT.json
@@ -90,5 +90,7 @@
"dedicatedCloud_datacenters_commercial_name_VSPHERE-WITHOUT-NSX": "vSphere",
"dedicatedCloud_datacenters_commercial_name_VSPHERE-VROPS-WITHOUT-NSX": "vSphere con vROps",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX con vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX con vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Fine del ciclo di vita del componente VMware NSX-V il 15 gennaio 2024: per conoscere le modalità di migrazione, fai riferimento all'email ricevuta a luglio/agosto 2023. Per maggiori dettagli di carattere tecnico, consulta le nostre guide.",
+ "dedicatedCloud_datacenters_migration_banner_second": "DISATTIVAZIONE IMMINENTE del componente VMware NSX-V a partire dal 15 gennaio 2024. Per maggiori informazioni, consulta le nostre guide sulla migrazione."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pl_PL.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pl_PL.json
index bb7b4819a52e..d6dd6a21cc0b 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pl_PL.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pl_PL.json
@@ -90,5 +90,7 @@
"dedicatedCloud_datacenters_commercial_name_VSPHERE-WITHOUT-NSX": "vSphere",
"dedicatedCloud_datacenters_commercial_name_VSPHERE-VROPS-WITHOUT-NSX": "vSphere z vROps",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX z vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX z vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Koniec okresu eksploatacji komponentu VMware NSX-V w dniu 15 stycznia 2024 r.: szczegółowe informacje na temat migracji znajdziesz w wiadomości e-mail wysłanej w lipcu/sierpniu 2023 r. Więcej informacji technicznych znajdziesz w naszych przewodnikach.",
+ "dedicatedCloud_datacenters_migration_banner_second": "Od 15 stycznia 2024 DEZAKTYWACJA komponentu VMware NSX-V. Więcej informacji znajdziesz w przewodnikach dotyczących migracji."
}
diff --git a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pt_PT.json b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pt_PT.json
index d5360bd3c791..8df6de7ad511 100644
--- a/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pt_PT.json
+++ b/packages/manager/apps/dedicated/client/app/components/dedicated-cloud/datacenters/translations/Messages_pt_PT.json
@@ -90,5 +90,7 @@
"dedicatedCloud_datacenters_commercial_name_VSPHERE-WITHOUT-NSX": "vSphere",
"dedicatedCloud_datacenters_commercial_name_VSPHERE-VROPS-WITHOUT-NSX": "vSphere com vROps",
"dedicatedCloud_datacenters_commercial_name_NSX-T-WITHOUT-NSX": "NSX",
- "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX com vROps"
+ "dedicatedCloud_datacenters_commercial_name_NSX-T-VROPS-WITHOUT-NSX": "NSX com vROps",
+ "dedicatedCloud_datacenters_migration_banner_first": "Fim de vida do componente VMware NSX-V a 15 de janeiro de 2024: consulte o e-mail enviado em julho/agosto de 2023 para conhecer as modalidades de migração. Para mais pormenores técnicos, consulte os nossos manuais.",
+ "dedicatedCloud_datacenters_migration_banner_second": "DESATIVAÇÃO IMINENTE do componente VMware NSX-V, a 15 de janeiro de 2024. Consulte os nossos manuais de migração para obter mais informações."
}
diff --git a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenters/dedicatedCloud-datacenters.routes.js b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenters/dedicatedCloud-datacenters.routes.js
index 40fd3f68b4ae..43f22c2be094 100644
--- a/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenters/dedicatedCloud-datacenters.routes.js
+++ b/packages/manager/apps/dedicated/client/app/dedicatedCloud/datacenters/dedicatedCloud-datacenters.routes.js
@@ -8,6 +8,18 @@ export default /* @ngInject */ ($stateProvider) => {
resolve: {
addDatacenter: /* @ngInject */ ($state) => () =>
$state.go('app.dedicatedCloud.details.datacenter.add-datacenter'),
+ migrationBannerAvailable: /* @ngInject */ (ovhFeatureFlipping) => {
+ const firstBannerFeature = 'dedicated-cloud:migrationBannerFirst';
+ const secondBannerFeature = 'dedicated-cloud:migrationBannerSecond';
+ return ovhFeatureFlipping
+ .checkFeatureAvailability([firstBannerFeature, secondBannerFeature])
+ .then((result) => {
+ return {
+ firstBanner: result.isFeatureAvailable(firstBannerFeature),
+ secondBanner: result.isFeatureAvailable(secondBannerFeature),
+ };
+ });
+ },
breadcrumb: /* @ngInject */ ($translate) =>
$translate.instant('dedicated_cloud_datacenters'),
trackClick: /* @ngInject */ (atInternet, trackingPrefix) => (click) => {
diff --git a/packages/manager/apps/web/client/app/domain/webhosting/order/steps/payment/domain-webhosting-order-steps-payment.html b/packages/manager/apps/web/client/app/domain/webhosting/order/steps/payment/domain-webhosting-order-steps-payment.html
index e1305b958e75..4f428c6dc6c2 100644
--- a/packages/manager/apps/web/client/app/domain/webhosting/order/steps/payment/domain-webhosting-order-steps-payment.html
+++ b/packages/manager/apps/web/client/app/domain/webhosting/order/steps/payment/domain-webhosting-order-steps-payment.html
@@ -2,7 +2,7 @@
data-header="{{:: 'domain_webhosting_order_payment_step_title' | translate }}"
data-on-focus="$ctrl.getCheckout()"
data-loading="$ctrl.stepper.loadingCheckout"
- data-valid="$ctrl.agreeContracts"
+ data-valid="!$ctrl.contracts.length || $ctrl.agreeContracts"
data-prevent-next="true"
data-on-cancel="$ctrl.goBackToDashboard()"
data-on-submit="$ctrl.preparePayment()"
diff --git a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js
index 2fcde98816a9..06d5a8faeb6b 100644
--- a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js
+++ b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.controller.js
@@ -5,6 +5,8 @@ import isObject from 'lodash/isObject';
import {
CDN_ADVANCED,
QUOTA_DECIMAL_PRECISION,
+ BADGES,
+ HOSTING_FREE_100_M_OFFER,
} from './general-informations.constants';
import { HOSTING_CDN_ORDER_CDN_VERSION_V1 } from '../cdn/order/hosting-cdn-order.constant';
import { NEW_OFFERS_NAME } from '../hosting.constants';
@@ -33,6 +35,8 @@ export default class HostingGeneralInformationsCtrl {
hostingSSLCertificate,
OvhApiScreenshot,
user,
+ displayNewHostingOfferSticker,
+ HOSTING_NEW_OFFER_UPGRADES,
) {
this.$q = $q;
this.$scope = $scope;
@@ -56,9 +60,14 @@ export default class HostingGeneralInformationsCtrl {
this.hostingSSLCertificate = hostingSSLCertificate;
this.OvhApiScreenshot = OvhApiScreenshot;
this.user = user;
+ this.displayNewHostingOfferSticker = displayNewHostingOfferSticker;
+ this.HOSTING_NEW_OFFERS_WITH_STICKER = HOSTING_NEW_OFFER_UPGRADES.concat([
+ HOSTING_FREE_100_M_OFFER,
+ ]);
this.CDN_ADVANCED = CDN_ADVANCED;
this.CDN_VERSION_V1 = HOSTING_CDN_ORDER_CDN_VERSION_V1;
+ this.BADGE_NEW = BADGES.NEW;
}
$onInit() {
@@ -378,4 +387,14 @@ export default class HostingGeneralInformationsCtrl {
return this.$translate.instant(translateKey);
}
+
+ hasNewHostingOfferSticker() {
+ const {
+ hosting: { offer },
+ } = this.$scope;
+ return (
+ this.displayNewHostingOfferSticker &&
+ this.HOSTING_NEW_OFFERS_WITH_STICKER.includes(offer)
+ );
+ }
}
diff --git a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.html b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.html
index c70dc60ec26d..1a8865108401 100644
--- a/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.html
+++ b/packages/manager/apps/web/client/app/hosting/general-informations/GENERAL_INFORMATIONS.html
@@ -640,6 +640,11 @@
class="text-capitalized mr-2"
data-ng-bind=":: $ctrl.getOfferName(hosting.offer)"
>
+
{
template,
resolve: {
breadcrumb: () => null,
+ displayNewHostingOfferSticker: /* @ngInject */ (ovhFeatureFlipping) =>
+ ovhFeatureFlipping
+ .checkFeatureAvailability('hosting:new-offer-sticker')
+ .then((featureAvailability) =>
+ featureAvailability.isFeatureAvailable('hosting:new-offer-sticker'),
+ ),
},
});
};
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/order-kvm/controller.js b/packages/manager/modules/bm-server-components/src/ipmi/order-kvm/controller.js
index 4bba7aafde1a..3dd69c4c4e8b 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/order-kvm/controller.js
+++ b/packages/manager/modules/bm-server-components/src/ipmi/order-kvm/controller.js
@@ -67,6 +67,10 @@ export default class BmServerComponentsOrderKvmController {
this.handleSuccess(
this.$translate.instant(
'server_configuration_kvm_order_finish_success',
+ {
+ url,
+ orderId,
+ },
),
);
this.$window.open(url, '_blank', 'noopener');
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/service.js b/packages/manager/modules/bm-server-components/src/ipmi/service.js
index fff67a7e8919..a4fccaf82b0a 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/service.js
+++ b/packages/manager/modules/bm-server-components/src/ipmi/service.js
@@ -137,7 +137,7 @@ export default class BmServerComponentsIpmiService {
checkoutCart(cartId) {
return this.$http
.post(`/order/cart/${cartId}/checkout`, {
- autoPayWithPreferredPaymentMethod: true,
+ autoPayWithPreferredPaymentMethod: false,
})
.then(({ data }) => data);
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_de_DE.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_de_DE.json
index 686542a36f9a..ba031d871fe3 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_de_DE.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_de_DE.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Zeitraum:",
"server_configuration_kvm_order_step2_details": "Details der Bestellung:",
"server_configuration_kvm_order_step2_price": "Preis:",
- "server_configuration_kvm_order_finish_success": "Ihr Dienst wurde bestellt. Der Dienst wird gerade von unseren Teams im Rechenzentrum installiert. Sie erhalten eine E-Mail, sobald die Installation abgeschlossen ist.",
+ "server_configuration_kvm_order_finish_success": "Ihr Bestellschein mit der Nummer {{orderId}} wurde ausgestellt. Bitte schließen Sie Ihre Bestellung ab, indem Sie die Zahlung über folgenden Link vornehmen.",
"server_configuration_kvm_order_error": "Bei der KVM-Bestellung ist ein Fehler aufgetreten.",
"server_configuration_kvm_informations": "KVM-Informationen",
"server_configuration_kvm_informations_name": "Name:",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Bitte lesen und akzeptieren Sie die folgenden Verträge:",
"server_configuration_kvm_contract_agreement": "Ich habe die Verträge gelesen und akzeptiere sie.",
"server_configuration_kvm_contract_agreed": "Sie haben die zuvor festgelegten Bedingungen bereits akzeptiert.",
- "server_configuration_kvm_proceed_payment": "Zur Zahlung wechseln"
+ "server_configuration_kvm_proceed_payment": "Bezahlen"
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_en_GB.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_en_GB.json
index fb36838d5db7..8389924553f9 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_en_GB.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_en_GB.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Period:",
"server_configuration_kvm_order_step2_details": "Order details:",
"server_configuration_kvm_order_step2_price": "Price:",
- "server_configuration_kvm_order_finish_success": "Your service has been ordered. Our datacenter teams are currently installing the service. You will receive an email when the installation is complete.",
+ "server_configuration_kvm_order_finish_success": "Your purchase order number {{orderId}} has been issued. Please complete your order by paying via the following link.",
"server_configuration_kvm_order_error": "An error has occurred ordering the KVM.",
"server_configuration_kvm_informations": "KVM details",
"server_configuration_kvm_informations_name": "Name:",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Please read and accept the terms and conditions below:",
"server_configuration_kvm_contract_agreement": "I confirm that I have read and understood the terms & conditions.",
"server_configuration_kvm_contract_agreed": "You have already accepted the terms and conditions previously set out.",
- "server_configuration_kvm_proceed_payment": "Go to payment"
+ "server_configuration_kvm_proceed_payment": "Pay"
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_es_ES.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_es_ES.json
index 6ef57c32e51f..2fc3bc8c2bb4 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_es_ES.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_es_ES.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Período",
"server_configuration_kvm_order_step2_details": "Detalles del pedido:",
"server_configuration_kvm_order_step2_price": "Precio:",
- "server_configuration_kvm_order_finish_success": "El servicio se ha contratado correctamente. Nuestro equipo está instalando el servicio en el datacenter. Recibirá un mensaje de correo electrónico cuando la instalación haya finalizado.",
+ "server_configuration_kvm_order_finish_success": "La orden de pedido número {{orderId}} se ha generado correctamente. Por favor, complete el pedido realizando el pago en el siguiente enlace.",
"server_configuration_kvm_order_error": "Se ha producido un error al enviar el pedido de KVM.",
"server_configuration_kvm_informations": "Información del KVM",
"server_configuration_kvm_informations_name": "Nombre:",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Por favor, lea y acepte los contratos siguientes:",
"server_configuration_kvm_contract_agreement": "He leído y acepto los contratos.",
"server_configuration_kvm_contract_agreed": "Ya ha aceptado los términos y condiciones mencionados anteriormente.",
- "server_configuration_kvm_proceed_payment": "Proceder al pago"
+ "server_configuration_kvm_proceed_payment": "Pagar"
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_CA.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_CA.json
index 8a5bb353c384..00ee0970bd01 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_CA.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_CA.json
@@ -47,8 +47,8 @@
"server_configuration_kvm_contract_validation_text": "Merci de lire et d'accepter le(s) contrat(s) ci-dessous :",
"server_configuration_kvm_contract_agreement": "J'ai lu et j'accepte les contrats",
"server_configuration_kvm_contract_agreed": "Vous avez déjà accepté les termes et conditions précédemment définis.",
- "server_configuration_kvm_proceed_payment": "Passer au paiement",
- "server_configuration_kvm_order_finish_success": "Votre service a bien été commandé. Le service est en cours d'installation par nos équipes en datacentre. Vous recevrez un mail lorsque l'installation sera finalisée.",
+ "server_configuration_kvm_proceed_payment": "Payer",
+ "server_configuration_kvm_order_finish_success": "Votre bon de commande numéro {{orderId}} a bien été émis. Merci de finaliser votre commande en procédant au paiement sur le lien suivant.",
"server_configuration_kvm_order_error": "Une erreur est survenue lors de la commande de KVM.",
"server_configuration_kvm_informations": "Informations de votre KVM",
"server_configuration_kvm_informations_name": "Nom :",
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_FR.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_FR.json
index 8a5bb353c384..00ee0970bd01 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_FR.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_fr_FR.json
@@ -47,8 +47,8 @@
"server_configuration_kvm_contract_validation_text": "Merci de lire et d'accepter le(s) contrat(s) ci-dessous :",
"server_configuration_kvm_contract_agreement": "J'ai lu et j'accepte les contrats",
"server_configuration_kvm_contract_agreed": "Vous avez déjà accepté les termes et conditions précédemment définis.",
- "server_configuration_kvm_proceed_payment": "Passer au paiement",
- "server_configuration_kvm_order_finish_success": "Votre service a bien été commandé. Le service est en cours d'installation par nos équipes en datacentre. Vous recevrez un mail lorsque l'installation sera finalisée.",
+ "server_configuration_kvm_proceed_payment": "Payer",
+ "server_configuration_kvm_order_finish_success": "Votre bon de commande numéro {{orderId}} a bien été émis. Merci de finaliser votre commande en procédant au paiement sur le lien suivant.",
"server_configuration_kvm_order_error": "Une erreur est survenue lors de la commande de KVM.",
"server_configuration_kvm_informations": "Informations de votre KVM",
"server_configuration_kvm_informations_name": "Nom :",
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_it_IT.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_it_IT.json
index 91e6fb082518..9377b454bd0a 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_it_IT.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_it_IT.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Periodo:",
"server_configuration_kvm_order_step2_details": "Dettagli dell'ordine:",
"server_configuration_kvm_order_step2_price": "Prezzo:",
- "server_configuration_kvm_order_finish_success": "Il servizio è stato ordinato correttamente. I nostri team stanno installando il servizio nel datacenter. Una volta terminata l’installazione, riceverai un’email.",
+ "server_configuration_kvm_order_finish_success": "Il buono d'ordine numero {{orderId}} è stato generato correttamente. Per completare l’ordine, effettua il pagamento cliccando su questo link.",
"server_configuration_kvm_order_error": "Si è verificato un errore durante l'ordine del KVM.",
"server_configuration_kvm_informations": "Informazioni del KVM",
"server_configuration_kvm_informations_name": "Nome:",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Leggi e accetta i seguenti contratti:",
"server_configuration_kvm_contract_agreement": "Ho letto e accetto le condizioni contrattuali.",
"server_configuration_kvm_contract_agreed": "I termini e le condizioni precedentemente definiti sono già stati accettati.",
- "server_configuration_kvm_proceed_payment": "Vai al pagamento"
+ "server_configuration_kvm_proceed_payment": "Paga"
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pl_PL.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pl_PL.json
index 0b0162d6bbcf..09b7fdfcb4a2 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pl_PL.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pl_PL.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Okres:",
"server_configuration_kvm_order_step2_details": "Informacje dotyczące zamówienia:",
"server_configuration_kvm_order_step2_price": "Cena:",
- "server_configuration_kvm_order_finish_success": "Usługa została zamówiona. Usługa jest w tej chwili instalowana przez nasze zespoły w centrum danych. Po zakończeniu instalacji otrzymasz e-mail.",
+ "server_configuration_kvm_order_finish_success": "Zamówienie numer {{orderId}} zostało złożone. Prosimy o sfinalizowanie zamówienia, klikając link.",
"server_configuration_kvm_order_error": "Wystąpił błąd podczas zamawiania usługi KVM.",
"server_configuration_kvm_informations": "Informacje dotyczące usługi KVM",
"server_configuration_kvm_informations_name": "Nazwa:",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Przeczytaj i zaakceptuj poniższy regulamin/regulaminy:",
"server_configuration_kvm_contract_agreement": "Przeczytałem i akceptuję regulaminy.",
"server_configuration_kvm_contract_agreed": "Zaakceptowałeś już obowiązujące warunki.",
- "server_configuration_kvm_proceed_payment": "Przejdź do płatności"
+ "server_configuration_kvm_proceed_payment": "Zapłać"
}
diff --git a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pt_PT.json b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pt_PT.json
index fb21a9e05daf..aecd4b04a533 100644
--- a/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pt_PT.json
+++ b/packages/manager/modules/bm-server-components/src/ipmi/translations/Messages_pt_PT.json
@@ -50,7 +50,7 @@
"server_configuration_kvm_order_step2_duration": "Período:",
"server_configuration_kvm_order_step2_details": "Detalhes da encomenda:",
"server_configuration_kvm_order_step2_price": "Preço:",
- "server_configuration_kvm_order_finish_success": "O seu serviço foi encomendado com êxito. O serviço está em curso de instalação pelas nossas equipas no datacenter. Receberá um e-mail quando a instalação estiver finalizada.",
+ "server_configuration_kvm_order_finish_success": "A sua nota de encomenda número {{orderId}} foi emitida com sucesso. Finalize a sua encomenda efetuando o pagamento através da seguinte ligação.",
"server_configuration_kvm_order_error": "Ocorreu um erro aquando da encomenda do seu KVM.",
"server_configuration_kvm_informations": "Informações do seu KVM",
"server_configuration_kvm_informations_name": "Nome",
@@ -76,5 +76,5 @@
"server_configuration_kvm_contract_validation_text": "Agradecemos que leia e aceite o(s) contrato(s) abaixo:",
"server_configuration_kvm_contract_agreement": "Li e aceito os contratos",
"server_configuration_kvm_contract_agreed": "Já aceitou os termos e condições definidos anteriormente.",
- "server_configuration_kvm_proceed_payment": "Passar ao pagamento"
+ "server_configuration_kvm_proceed_payment": "Pagar"
}
diff --git a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/component.js b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/component.js
index 916f74f5be12..7f8d34a47358 100644
--- a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/component.js
+++ b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/component.js
@@ -3,6 +3,9 @@ import template from './template.html';
import 'font-awesome/css/font-awesome.css';
export default {
+ bindings: {
+ hasInvoice: '<',
+ },
controller,
template,
};
diff --git a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/constants.js b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/constants.js
index 0e28c2880865..0fbf65070761 100644
--- a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/constants.js
+++ b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/constants.js
@@ -4,7 +4,11 @@ export const TASK_STATUS_ENUM = {
SUCCESS: 'SUCCESS',
};
-export const API_PATH = '/me/carbonCalculator/task';
+export const API_ROOT_PATH = '/me/carbonCalculator/';
+
+export const INVOICE_API_PATH = `${API_ROOT_PATH}hasInvoice`;
+
+export const TASK_API_PATH = `${API_ROOT_PATH}task`;
export const TRACKING_NAME = 'dedicated::account::carbon_consumption';
@@ -12,7 +16,8 @@ export const API_FETCH_INTERVAL = 3000;
export default {
TASK_STATUS_ENUM,
- API_PATH,
+ INVOICE_API_PATH,
+ TASK_API_PATH,
API_FETCH_INTERVAL,
TRACKING_NAME,
};
diff --git a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/service.js b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/service.js
index daee5d75fd1d..eaaca8cecfa1 100644
--- a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/service.js
+++ b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/service.js
@@ -1,4 +1,4 @@
-import { API_PATH } from './constants';
+import { INVOICE_API_PATH, TASK_API_PATH } from './constants';
export default class CarbonFootprintService {
/* @ngInject */
@@ -23,7 +23,9 @@ export default class CarbonFootprintService {
}
getTask(taskID) {
- return this.$http.get(`${API_PATH}/${taskID}`).then(({ data }) => data);
+ return this.$http
+ .get(`${TASK_API_PATH}/${taskID}`)
+ .then(({ data }) => data);
}
computeBilling() {
@@ -31,10 +33,17 @@ export default class CarbonFootprintService {
const now = new Date();
now.setUTCDate(0); // sets the date to the last date of the previous month
const date = now.toISOString().substring(0, 10);
- return this.$http.post(API_PATH, { date }).then(({ data }) => data);
+ return this.$http.post(TASK_API_PATH, { date }).then(({ data }) => data);
}
downloadBilling(url) {
this.$window.location = url;
}
+
+ hasInvoice() {
+ return this.$http
+ .get(INVOICE_API_PATH)
+ .then(({ data }) => data.hasInvoice)
+ .catch(() => false);
+ }
}
diff --git a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/template.html b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/template.html
index d86589e71937..9785efb336f6 100644
--- a/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/template.html
+++ b/packages/manager/modules/carbon-calculator/src/dashboard/carbon-footprint/template.html
@@ -7,6 +7,7 @@
data-variant="primary"
data-on-click="$ctrl.computeBilling()"
data-disabled="$ctrl.$asyncFetching"
+ data-ng-if="$ctrl.hasInvoice"
>
{
$state.href($state.current.name, $transition$.params()),
dashboardLink: /* @ngInject */ ($state) => $state.href('app.dashboard'),
breadcrumb: () => null,
+ hasInvoice: /* @ngInject */ (carbonFootprintService) =>
+ carbonFootprintService.hasInvoice(),
},
atInternet: {
rename: TRACKING_NAME,
diff --git a/packages/manager/modules/carbon-calculator/src/dashboard/template.html b/packages/manager/modules/carbon-calculator/src/dashboard/template.html
index faf5c8310742..9170cef91f5c 100644
--- a/packages/manager/modules/carbon-calculator/src/dashboard/template.html
+++ b/packages/manager/modules/carbon-calculator/src/dashboard/template.html
@@ -8,5 +8,5 @@
data-translate="carbon_calculator_dashboard_carbon_footprint_explanation"
>
-
+
diff --git a/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.controller.js b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.controller.js
index d5cbd5def7ed..a93737db59f8 100644
--- a/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.controller.js
+++ b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.controller.js
@@ -186,12 +186,12 @@ export default class LogsStreamsHomeCtrl {
}
/**
- * navigates to the alerts page
+ * navigates to the archives page
*
- * @param {any} stream, stream for which alerts should be managed
+ * @param {any} stream, stream for which archives should be managed
* @memberof LogsStreamsHomeCtrl
*/
- gotoArchives(stream) {
+ goToArchives(stream) {
this.CucCloudMessage.flushChildMessage();
this.$state.go('dbaas-logs.detail.streams.stream.archives', {
serviceName: this.serviceName,
@@ -199,6 +199,20 @@ export default class LogsStreamsHomeCtrl {
});
}
+ /**
+ * navigates to the subscriptions page
+ *
+ * @param {object} stream, stream for which subscriptions should be managed
+ * @memberof LogsStreamsHomeCtrl
+ */
+ goToSubscriptions(stream) {
+ this.CucCloudMessage.flushChildMessage();
+ this.$state.go('dbaas-logs.detail.streams.stream.subscriptions', {
+ serviceName: this.serviceName,
+ streamId: stream.streamId,
+ });
+ }
+
/**
* navigates to follow live stream page
*
diff --git a/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.html b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.html
index 3ef4c1c1042f..5f6d4a5b0840 100644
--- a/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.html
+++ b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/home/logs-streams-home.html
@@ -89,6 +89,15 @@
>
{{ $row.nbAlertCondition || "-" }}
+
+ {{ $row.nbSubscription || "-" }}
+
>
+
+ this.LogsStreamsService.getStream(this.serviceName, this.streamId),
+ });
+ this.stream.load();
+ }
+
+ /**
+ * Retrieve subscription list, according to pagination/sort/filter
+ *
+ * @param offset int element offset to retrieve results from
+ * @param pageSize int Number of results to retrieve
+ * @param sort Object Sort object from ovh-ui datagrid
+ * @param criteria Object Criteria object from ovh-ui datagrid
+ * @return {*|Promise}
+ */
+ loadSubscriptions({ offset, pageSize = 1, sort, criteria }) {
+ const filters = criteria.map((criterion) => {
+ const name = criterion.property || 'resource.name';
+ return datagridToIcebergFilter(name, criterion.operator, criterion.value);
+ });
+ const pageOffset = Math.ceil(offset / pageSize);
+ return this.LogsStreamsSubscriptionsService.getPaginatedStreamSubscriptions(
+ this.serviceName,
+ this.streamId,
+ pageOffset,
+ pageSize,
+ { name: sort.property, dir: sort.dir === -1 ? 'DESC' : 'ASC' },
+ filters,
+ );
+ }
+
+ /**
+ * Display a modal to confirm subscription deletion
+ *
+ * @param subscription Object Subscription object from API
+ * @return {*|Promise}
+ */
+ showSubscriptionDeleteConfirm(subscription) {
+ this.CucCloudMessage.flushChildMessage();
+ return this.CucControllerHelper.modal
+ .showDeleteModal({
+ titleText: this.$translate.instant(
+ 'streams_subscriptions_delete_modal_title',
+ ),
+ textHtml: this.$translate.instant(
+ 'streams_subscriptions_delete_modal_content',
+ {
+ resourceName: `${subscription.resource.name}`,
+ },
+ ),
+ })
+ .then(() => this.removeSubscription(subscription));
+ }
+
+ /**
+ * Delete a subscription on API
+ * Update datagrid accordingly
+ *
+ * @param subscription Object Subscription object from API
+ */
+ removeSubscription(subscription) {
+ this.CucCloudMessage.flushChildMessage();
+ this.deleteSubscriptionLoading = true;
+ this.LogsStreamsSubscriptionsService.deleteSubscription(
+ this.serviceName,
+ this.streamId,
+ subscription,
+ )
+ .then((operation) =>
+ this.LogsHelperService.handleOperation(
+ this.serviceName,
+ operation.data,
+ 'streams_subscriptions_delete_success',
+ { resourceName: subscription.resource.name },
+ ),
+ )
+ .catch((err) => {
+ this.LogsHelperService.handleError(
+ 'streams_subscriptions_delete_error',
+ err,
+ { resourceName: subscription.resource.name },
+ );
+ })
+ .finally(() => {
+ this.deleteSubscriptionLoading = false;
+ this.ouiDatagridService.refresh('subscriptions-datagrid', true);
+ this.CucControllerHelper.scrollPageToTop();
+ });
+ }
+}
diff --git a/packages/manager/modules/dbaas-logs/src/logs/detail/streams/subscriptions/streams-subscriptions.html b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/subscriptions/streams-subscriptions.html
new file mode 100644
index 000000000000..45e03f772cc5
--- /dev/null
+++ b/packages/manager/modules/dbaas-logs/src/logs/detail/streams/subscriptions/streams-subscriptions.html
@@ -0,0 +1,65 @@
+
+
+
+