From db6e2202184a55b87770f44e081e9448379a831a Mon Sep 17 00:00:00 2001 From: Guillaume Hyenne Date: Fri, 24 Oct 2025 11:14:58 +0200 Subject: [PATCH 1/8] fix(telecom.telephony): remove DE prefix on alias order and rename GB ref: #PRDCOL-243 Signed-off-by: Guillaume Hyenne --- .../telecom/src/app/common/translations/Messages_fr_FR.json | 2 +- .../billingAccount/orderAlias/order-alias.constant.js | 3 +-- .../telephony/billingAccount/orderAlias/order-alias.service.js | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_FR.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_FR.json index 907e844b3664..88242b9fa181 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_FR.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_FR.json @@ -299,7 +299,7 @@ "country_FO": "Féroé, Îles", "country_FR": "France", "country_GA": "Gabon", - "country_GB": "Grande-Bretagne", + "country_GB": "Royaume-uni", "country_GD": "Grenade", "country_GE": "Géorgie", "country_GF": "Guyane Française", diff --git a/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.constant.js b/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.constant.js index 06a8b57543fc..7fca84de6892 100644 --- a/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.constant.js +++ b/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.constant.js @@ -30,7 +30,7 @@ export const TELEPHONY_NUMBER_OFFER = { title: 'telephony_order_international_title', tip: 'telephony_order_international_tip', description: 'telephony_order_international_description', - clarification: '( +32, +44, +49, ... )', + clarification: '( +32, +44, ... )', state: 'telecom.telephony.billingAccount.orderAlias.international', }, }, @@ -55,7 +55,6 @@ export const TELEPHONY_NUMBER_OFFER = { prefix: { fr: '+33', be: '+32', - de: '+49', gb: '+44', ch: '+41', es: '+34', diff --git a/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.service.js b/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.service.js index 4dc73e419a35..73a5c12aac9d 100644 --- a/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.service.js +++ b/packages/manager/apps/telecom/src/app/telecom/telephony/billingAccount/orderAlias/order-alias.service.js @@ -32,7 +32,7 @@ export default /* @ngInject */ function TelecomTelephonyBillingAccountOrderAlias const firstForeigns = pull( Object.keys(TELEPHONY_NUMBER_OFFER.prefix), country, - ).slice(0, 3); + ).slice(0, 2); return `${map( firstForeigns, (theCountry) => TELEPHONY_NUMBER_OFFER.prefix[theCountry], From e0653f66b0a02f03949d5d2a46f0a3d2bff78c3b Mon Sep 17 00:00:00 2001 From: CDS Translator Agent Date: Mon, 27 Oct 2025 07:47:14 +0000 Subject: [PATCH 2/8] fix(i18n): add missing translations [CDS 756] Signed-off-by: CDS Translator Agent --- .../telecom/src/app/common/translations/Messages_de_DE.json | 2 +- .../telecom/src/app/common/translations/Messages_es_ES.json | 2 +- .../telecom/src/app/common/translations/Messages_fr_CA.json | 2 +- .../telecom/src/app/common/translations/Messages_it_IT.json | 2 +- .../telecom/src/app/common/translations/Messages_pl_PL.json | 2 +- .../telecom/src/app/common/translations/Messages_pt_PT.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_de_DE.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_de_DE.json index 917a5bcd91a1..49683e56cea3 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_de_DE.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_de_DE.json @@ -299,7 +299,7 @@ "country_FO": "Färöer-Inseln", "country_FR": "Frankreich", "country_GA": "Gabun", - "country_GB": "Großbritannien", + "country_GB": "Vereinigtes Königreich", "country_GD": "Grenada", "country_GE": "Georgien", "country_GF": "Französisch-Guayana", diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_es_ES.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_es_ES.json index 996b772ac2cd..23a7e1d05298 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_es_ES.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_es_ES.json @@ -299,7 +299,7 @@ "country_FO": "Feroe, Islas", "country_FR": "Francia", "country_GA": "Gabón", - "country_GB": "Gran Bretaña", + "country_GB": "Reino Unido", "country_GD": "Granada", "country_GE": "Georgia", "country_GF": "Guayana Francesa", diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_CA.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_CA.json index 907e844b3664..88242b9fa181 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_CA.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_fr_CA.json @@ -299,7 +299,7 @@ "country_FO": "Féroé, Îles", "country_FR": "France", "country_GA": "Gabon", - "country_GB": "Grande-Bretagne", + "country_GB": "Royaume-uni", "country_GD": "Grenade", "country_GE": "Géorgie", "country_GF": "Guyane Française", diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_it_IT.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_it_IT.json index 8dabeb776303..07198dde2603 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_it_IT.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_it_IT.json @@ -299,7 +299,7 @@ "country_FO": "Fær Øer, Isole", "country_FR": "Francia", "country_GA": "Gabon", - "country_GB": "Gran Bretagna", + "country_GB": "Regno Unito", "country_GD": "Grenada", "country_GE": "Georgia", "country_GF": "Guyana Francese", diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_pl_PL.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_pl_PL.json index d38d286cbe2c..e9732785a821 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_pl_PL.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_pl_PL.json @@ -299,7 +299,7 @@ "country_FO": "Wyspy Owcze", "country_FR": "Francja", "country_GA": "Gabon", - "country_GB": "Wielka Brytania", + "country_GB": "Zjednoczone Królestwo", "country_GD": "Grenada", "country_GE": "Gruzja", "country_GF": "Gujana Francuska", diff --git a/packages/manager/apps/telecom/src/app/common/translations/Messages_pt_PT.json b/packages/manager/apps/telecom/src/app/common/translations/Messages_pt_PT.json index 1c2e4e1e897d..a7e9de215b35 100644 --- a/packages/manager/apps/telecom/src/app/common/translations/Messages_pt_PT.json +++ b/packages/manager/apps/telecom/src/app/common/translations/Messages_pt_PT.json @@ -299,7 +299,7 @@ "country_FO": "Feroe, Ilhas", "country_FR": "França", "country_GA": "Gabão", - "country_GB": "Grã-Bretanha", + "country_GB": "Reino Unido", "country_GD": "Granada", "country_GE": "Geórgia", "country_GF": "Guiana Francesa", From cd50e627cf1635683666e481e9512834d1d94245 Mon Sep 17 00:00:00 2001 From: Guillaume Hyenne Date: Fri, 24 Oct 2025 10:02:01 +0200 Subject: [PATCH 3/8] fix(telecom.sms): remove type class of sms ref: #PRDCOL-59 Signed-off-by: Guillaume Hyenne --- .../telecom-sms-sms-compose.controller.js | 17 ------------ .../sms/compose/telecom-sms-sms-compose.html | 27 ------------------- .../compose/translations/Messages_fr_FR.json | 7 ----- 3 files changed, 51 deletions(-) diff --git a/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.controller.js b/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.controller.js index d02cada8bc34..061a0d9354a0 100644 --- a/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.controller.js +++ b/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.controller.js @@ -7,7 +7,6 @@ import get from 'lodash/get'; import head from 'lodash/head'; import map from 'lodash/map'; import omit from 'lodash/omit'; -import pull from 'lodash/pull'; import set from 'lodash/set'; import size from 'lodash/size'; import sortBy from 'lodash/sortBy'; @@ -76,7 +75,6 @@ export default class { init: false, send: false, }; - this.enums = {}; this.user = {}; this.senders = { raw: [], @@ -131,14 +129,12 @@ export default class { .then(() => this.$q .all({ - enums: this.fetchEnums(), user: this.fetchUser(), senders: this.fetchSenders(), receivers: this.fetchReceivers(), phonebooks: this.fetchPhonebooks(), }) .then((result) => { - this.enums = result.enums; this.user = result.user; this.senders.raw = result.senders; this.receivers.raw = result.receivers; @@ -170,19 +166,6 @@ export default class { }); } - /** - * Fetch enums. - * @return {Promise} - */ - fetchEnums() { - return this.TucSmsMediator.getApiScheme().then((schema) => { - const smsClass = { - smsClass: pull(schema.models['sms.ClassEnum'].enum, 'toolkit'), - }; - return smsClass; - }); - } - /** * Fetch user. * @return {Promise} diff --git a/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.html b/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.html index 7eda4be04032..85f1ea864df4 100644 --- a/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.html +++ b/packages/manager/modules/sms/src/sms/sms/compose/telecom-sms-sms-compose.html @@ -592,33 +592,6 @@

- -
-
- - -
-
- - diff --git a/packages/manager/modules/sms/src/sms/sms/compose/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/sms/compose/translations/Messages_fr_FR.json index 919406bcc483..f9df28b44d81 100644 --- a/packages/manager/modules/sms/src/sms/sms/compose/translations/Messages_fr_FR.json +++ b/packages/manager/modules/sms/src/sms/sms/compose/translations/Messages_fr_FR.json @@ -51,13 +51,6 @@ "sms_sms_compose_differed_period_date_placeholder": "Sélectionnez une date d’envoi", "sms_sms_compose_differed_period_date_error_required": "Le champ \"Date\" est obligatoire.", "sms_sms_compose_differed_period_time_label": "Heure :", - "sms_sms_compose_class_label": "Type de SMS", - "sms_sms_compose_class_flash": "Flash", - "sms_sms_compose_class_phoneDisplay": "Standard", - "sms_sms_compose_class_sim": "SIM", - "sms_sms_compose_class_info_flash": "Le Flash SMS s’affiche directement sur l’écran du téléphone.", - "sms_sms_compose_class_info_phoneDisplay": "Le SMS Standard est le SMS le plus couramment utilisé.", - "sms_sms_compose_class_info_sim": "Le SMS SIM est automatiquement sauvegardé sur la carte SIM du téléphone.", "sms_sms_compose_send": "Envoyer", "sms_sms_compose_status_success": "Votre SMS a bien été envoyé", "sms_sms_compose_status_failed": "Une erreur est survenue lors de l’envoi de votre SMS", From 8a7d136d8618effced46b48e2d1d873f53d243ff Mon Sep 17 00:00:00 2001 From: Guillaume Hyenne Date: Wed, 8 Oct 2025 14:21:14 +0200 Subject: [PATCH 4/8] fix(web.mxplan): display a warning message in order if select idn domain ref: #PRDCOL-97 Signed-off-by: Guillaume Hyenne Co-authored-by: CDS Translator Agent --- .../src/order/email-domain-order.controller.js | 3 +++ .../email-domain/src/order/email-domain-order.html | 8 +++++++- .../src/order/translations/Messages_de_DE.json | 3 ++- .../src/order/translations/Messages_en_GB.json | 3 ++- .../src/order/translations/Messages_es_ES.json | 3 ++- .../src/order/translations/Messages_fr_CA.json | 3 ++- .../src/order/translations/Messages_fr_FR.json | 3 ++- .../src/order/translations/Messages_it_IT.json | 3 ++- .../src/order/translations/Messages_pl_PL.json | 3 ++- .../src/order/translations/Messages_pt_PT.json | 3 ++- 10 files changed, 26 insertions(+), 9 deletions(-) diff --git a/packages/manager/modules/email-domain/src/order/email-domain-order.controller.js b/packages/manager/modules/email-domain/src/order/email-domain-order.controller.js index 83514c25c55d..6b55dee2fbdf 100644 --- a/packages/manager/modules/email-domain/src/order/email-domain-order.controller.js +++ b/packages/manager/modules/email-domain/src/order/email-domain-order.controller.js @@ -1,3 +1,4 @@ +import punycode from 'punycode'; import find from 'lodash/find'; import get from 'lodash/get'; import includes from 'lodash/includes'; @@ -48,6 +49,8 @@ export default class MXPlanOrderCtrl { } onDomainChange() { + this.isIdnDomainName = + punycode.toASCII(this.model.selectedDomain) !== this.model.selectedDomain; this.loading.domain = true; return this.deleteItem(this.item) .catch((error) => diff --git a/packages/manager/modules/email-domain/src/order/email-domain-order.html b/packages/manager/modules/email-domain/src/order/email-domain-order.html index 3654cf7865e1..404c40d562f0 100644 --- a/packages/manager/modules/email-domain/src/order/email-domain-order.html +++ b/packages/manager/modules/email-domain/src/order/email-domain-order.html @@ -25,13 +25,19 @@ data-editable="!$ctrl.loading.checkout" > + +

+
Date: Tue, 28 Oct 2025 15:43:02 +0100 Subject: [PATCH 5/8] fix(web.exchange): add translation key exchange version SE ref: #PRDCOL-245 Signed-off-by: Guillaume Hyenne --- .../exchange/src/dashboard/translations/Messages_fr_FR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json index e5d19cd49132..37b1c9d0db8d 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json @@ -103,6 +103,7 @@ "exchange_server_commercial_version_2013": "2013", "exchange_server_commercial_version_2016": "2016", "exchange_server_commercial_version_2019": "2019", + "exchange_server_commercial_version_SE": "SE", "exchange_tab_ACCOUNTS_webmail": "Webmail :", "exchange_tab_ACCOUNTS_table_empty": "Vous n'avez pas de compte", "exchange_tab_ACCOUNTS_table_empty_type_BASIC": "Vous n'avez pas de compte de type Basic", From 6824d0e945acd4a3a1d8bc5d7988d43c4da800dc Mon Sep 17 00:00:00 2001 From: CDS Translator Agent Date: Tue, 28 Oct 2025 14:49:10 +0000 Subject: [PATCH 6/8] fix(i18n): add missing translations [CDS 759] Signed-off-by: CDS Translator Agent --- .../exchange/src/dashboard/translations/Messages_de_DE.json | 3 ++- .../exchange/src/dashboard/translations/Messages_en_GB.json | 3 ++- .../exchange/src/dashboard/translations/Messages_es_ES.json | 3 ++- .../exchange/src/dashboard/translations/Messages_fr_CA.json | 1 + .../exchange/src/dashboard/translations/Messages_it_IT.json | 3 ++- .../exchange/src/dashboard/translations/Messages_pl_PL.json | 3 ++- .../exchange/src/dashboard/translations/Messages_pt_PT.json | 3 ++- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json index 0912183e2280..a40659207f7f 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "Die Zwei-Faktor-Authentifizierung wurde gelöscht.", "exchange_delete_mfa_error": "Bei der Löschung der Zwei-Faktor-Authentifizierung ist ein Fehler aufgetreten: {{error}}", "exchange_tab_LOGS": "Logs", - "exchange_tab_ACCOUNTS_menu_migrate": "Accounts migrieren" + "exchange_tab_ACCOUNTS_menu_migrate": "Accounts migrieren", + "exchange_server_commercial_version_SE": "SE" } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json index 5fd2bf6bfac3..1ffe205961f9 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "The two-factor authentication was successfully deleted.", "exchange_delete_mfa_error": "An error has occurred deleting the two-factor authentication: {{error}}", "exchange_tab_LOGS": "Logs", - "exchange_tab_ACCOUNTS_menu_migrate": "Migrate accounts" + "exchange_tab_ACCOUNTS_menu_migrate": "Migrate accounts", + "exchange_server_commercial_version_SE": "SE" } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json index 4eabd845a10f..aab5fea2d845 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "Se ha eliminado la doble autenticación.", "exchange_delete_mfa_error": "Se ha producido un error al eliminar la doble autenticación: {{error}}", "exchange_tab_LOGS": "Logs", - "exchange_tab_ACCOUNTS_menu_migrate": "Migrar cuentas" + "exchange_tab_ACCOUNTS_menu_migrate": "Migrar cuentas", + "exchange_server_commercial_version_SE": "SE" } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json index e5d19cd49132..37b1c9d0db8d 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json @@ -103,6 +103,7 @@ "exchange_server_commercial_version_2013": "2013", "exchange_server_commercial_version_2016": "2016", "exchange_server_commercial_version_2019": "2019", + "exchange_server_commercial_version_SE": "SE", "exchange_tab_ACCOUNTS_webmail": "Webmail :", "exchange_tab_ACCOUNTS_table_empty": "Vous n'avez pas de compte", "exchange_tab_ACCOUNTS_table_empty_type_BASIC": "Vous n'avez pas de compte de type Basic", diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json index a3ce2d097891..3769af1c1feb 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "L’autenticazione a due fattori è stata eliminata correttamente.", "exchange_delete_mfa_error": "Si è verificato un errore durante l’eliminazione della doppia autenticazione: {{error}}", "exchange_tab_LOGS": "Log", - "exchange_tab_ACCOUNTS_menu_migrate": "Migrare account" + "exchange_tab_ACCOUNTS_menu_migrate": "Migrare account", + "exchange_server_commercial_version_SE": "SE" } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json index f97f8adbb318..380571335b2f 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "Weryfikacja dwuetapowa za pomocą wiadomości SMS została usunięta.", "exchange_delete_mfa_error": "Wystąpił błąd podczas usuwania weryfikacji dwuetapowej: {{error}}", "exchange_tab_LOGS": "Logi", - "exchange_tab_ACCOUNTS_menu_migrate": "Migracja kont" + "exchange_tab_ACCOUNTS_menu_migrate": "Migracja kont", + "exchange_server_commercial_version_SE": "SE" } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json index 28c6d0d2f47e..1c066650b710 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json @@ -1669,5 +1669,6 @@ "exchange_delete_mfa_success": "A dupla autenticação foi eliminada com êxito.", "exchange_delete_mfa_error": "Ocorreu um erro aquando da eliminação da dupla autenticação: {{error}}", "exchange_tab_LOGS": "Logs", - "exchange_tab_ACCOUNTS_menu_migrate": "Migrar contas" + "exchange_tab_ACCOUNTS_menu_migrate": "Migrar contas", + "exchange_server_commercial_version_SE": "SE" } From cc878a07a52ce5e86f7d7b067a6bcdc16af048b2 Mon Sep 17 00:00:00 2001 From: Guillaume Hyenne Date: Thu, 9 Oct 2025 15:48:49 +0200 Subject: [PATCH 7/8] fix(web.exchange): fix wrong quota definition on shared account ref: #PRDCOL-130 Signed-off-by: Guillaume Hyenne Co-authored-by: CDS Translator Agent --- .../translations/Messages_de_DE.json | 5 +- .../translations/Messages_en_GB.json | 5 +- .../translations/Messages_es_ES.json | 5 +- .../translations/Messages_fr_CA.json | 3 +- .../translations/Messages_fr_FR.json | 3 +- .../translations/Messages_it_IT.json | 5 +- .../translations/Messages_pl_PL.json | 5 +- .../translations/Messages_pt_PT.json | 5 +- .../add/shared-account-add.controller.js | 30 +++++++- .../add/shared-account-add.html | 19 ++++- .../shared-account/shared-account.service.js | 75 +++++++++++++++++-- .../shared-account-update.controller.js | 32 ++++++-- .../update/shared-account-update.html | 19 ++++- .../src/exchange/exchange.service.js | 33 ++++++++ 14 files changed, 207 insertions(+), 37 deletions(-) diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json index a40659207f7f..3de5d6cf33c7 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_de_DE.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "Wird ausgeführt", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Für diesen Alias ist bereits ein Task geplant oder in der Ausführung", "exchange_tab_ALIAS_add_button": "Alias hinzufügen", - "exchange_tab_ALIAS_creation_quota_description": "Das Quota muss zwischen {0} {1} und {2} {3} liegen.", + "exchange_tab_ALIAS_creation_quota_description": "Das Kontingent muss zwischen {0} {1} und {2} {3} liegen. Sie haben bereits {4} {5} der verfügbaren {6} {7} zugewiesen.", "exchange_tab_ALIAS_creation_error_no_local_part": "Bitte geben Sie einen personalisierten Namen für die E-Mail-Adresse an (vor dem @-Zeichen).", "exchange_tab_ALIAS_creation_error_regex": "Der Name vor dem @-Zeichen muss aus alphanumerischen Zeichen bestehen und darf die Zeichen .-_+ enthalten (Beispiel: e_mail-3.addresse+abc).", "exchange_tab_ALIAS_taken_error_message": "E-Mail-Adresse existiert bereits.", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "Bei der Löschung der Zwei-Faktor-Authentifizierung ist ein Fehler aufgetreten: {{error}}", "exchange_tab_LOGS": "Logs", "exchange_tab_ACCOUNTS_menu_migrate": "Accounts migrieren", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "Jeder erworbene Exchange-Account gibt Ihnen Zugang zu 5 GB gemeinsam genutztem Speicher." } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json index 1ffe205961f9..64aa5d1e4c87 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_en_GB.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "In progress", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "A task involving this alias is scheduled or is currently in progress", "exchange_tab_ALIAS_add_button": "Add an alias", - "exchange_tab_ALIAS_creation_quota_description": "The quota must be between {0} {1} and {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "The quota must be between {0} {1} and {2} {3}. You have already allocated {4} {5} of the {6} {7} available.", "exchange_tab_ALIAS_creation_error_no_local_part": "Please provide a personal account name for the email address (before the @ sign).", "exchange_tab_ALIAS_creation_error_regex": "The personal account name (before the @ sign) must contain both letters and numbers, or the characters .-_+ (example: e_mail-3.address+abc).", "exchange_tab_ALIAS_taken_error_message": "Email address already exists.", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "An error has occurred deleting the two-factor authentication: {{error}}", "exchange_tab_LOGS": "Logs", "exchange_tab_ACCOUNTS_menu_migrate": "Migrate accounts", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "With each Exchange account purchased, you get 5 GB of shared storage." } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json index aab5fea2d845..98523af29bdf 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_es_ES.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "En proceso", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Hay una tarea que afecta a ese alias planificada o realizándose", "exchange_tab_ALIAS_add_button": "Añadir un alias", - "exchange_tab_ALIAS_creation_quota_description": "El límite debe estar entre {0} {1} y {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "La cuota debe estar comprendida entre {0} {1} y {2} {3}. Ya ha asignado {4} {5} de los {6} {7} disponibles.", "exchange_tab_ALIAS_creation_error_no_local_part": "Indique una parte local en la dirección de correo (antes de la arroba). ", "exchange_tab_ALIAS_creation_error_regex": "La parte local (antes de la arroba) debe incluir caracteres alfanuméricos o los caracteres .-_+ (por ejemplo, email-3.direccion+abc).", "exchange_tab_ALIAS_taken_error_message": "La dirección de correo ya existe.", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "Se ha producido un error al eliminar la doble autenticación: {{error}}", "exchange_tab_LOGS": "Logs", "exchange_tab_ACCOUNTS_menu_migrate": "Migrar cuentas", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "Cada cuenta de Exchange adquirida ofrece 5GB de almacenamiento compartido." } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json index 37b1c9d0db8d..df2d235a76fb 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_CA.json @@ -204,7 +204,8 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "En cours", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Une tâche concernant cet alias est planifiée ou en cours d'exécution", "exchange_tab_ALIAS_add_button": "Ajouter un alias", - "exchange_tab_ALIAS_creation_quota_description": "Le quota doit être compris entre {0} {1} et {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "Le quota doit être compris entre {0} {1} et {2} {3}. Vous avez déjà alloué {4} {5} des {6} {7} disponibles.", + "exchange_tab_ALIAS_creation_quota_tooltip": "Chaque compte Exchange acheté ouvre le droit à 5Go de stockage partagé.", "exchange_tab_ALIAS_creation_error_no_local_part": "Veuillez indiquer une partie locale à l'adresse email (avant l'arobase).", "exchange_tab_ALIAS_creation_error_regex": "La partie locale (avant l'arobase) doit contenir des caractères alphanumériques ou les caractères .-_+ (exemple: e_mail-3.addresse+abc).", "exchange_tab_ALIAS_taken_error_message": "Adresse email déjà existante.", diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json index 37b1c9d0db8d..df2d235a76fb 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_fr_FR.json @@ -204,7 +204,8 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "En cours", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Une tâche concernant cet alias est planifiée ou en cours d'exécution", "exchange_tab_ALIAS_add_button": "Ajouter un alias", - "exchange_tab_ALIAS_creation_quota_description": "Le quota doit être compris entre {0} {1} et {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "Le quota doit être compris entre {0} {1} et {2} {3}. Vous avez déjà alloué {4} {5} des {6} {7} disponibles.", + "exchange_tab_ALIAS_creation_quota_tooltip": "Chaque compte Exchange acheté ouvre le droit à 5Go de stockage partagé.", "exchange_tab_ALIAS_creation_error_no_local_part": "Veuillez indiquer une partie locale à l'adresse email (avant l'arobase).", "exchange_tab_ALIAS_creation_error_regex": "La partie locale (avant l'arobase) doit contenir des caractères alphanumériques ou les caractères .-_+ (exemple: e_mail-3.addresse+abc).", "exchange_tab_ALIAS_taken_error_message": "Adresse email déjà existante.", diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json index 3769af1c1feb..ab63d0b37256 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_it_IT.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "In corso", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Un task su questo alias è stato pianificato o è in corso di esecuzione", "exchange_tab_ALIAS_add_button": "Aggiungi un alias", - "exchange_tab_ALIAS_creation_quota_description": "La quota deve essere compresa tra {0} {1} e {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "La quota deve essere compresa tra {0} {1} e {2} {3} Hai già assegnato {4} {5} di {6} {7} disponibili.", "exchange_tab_ALIAS_creation_error_no_local_part": "Indica la parte dell'indirizzo di posta elettronica che si trova prima della @.", "exchange_tab_ALIAS_creation_error_regex": "Indica la parte dell'indirizzo di posta elettronica che si trova prima della @ deve contenere caratteri alfanumerici o caratteri .-_+ (exemple: e_mail-3.addresse+abc).", "exchange_tab_ALIAS_taken_error_message": "Indirizzo mail già esistente.", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "Si è verificato un errore durante l’eliminazione della doppia autenticazione: {{error}}", "exchange_tab_LOGS": "Log", "exchange_tab_ACCOUNTS_menu_migrate": "Migrare account", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "Ogni account Exchange acquistato dà diritto a 5GB di spazio di storage condiviso." } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json index 380571335b2f..6c0c8005e986 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pl_PL.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "W realizacji", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Zadanie dotyczące tego aliasu jest już zaplanowane lub wykonywane.", "exchange_tab_ALIAS_add_button": "Dodaj alias", - "exchange_tab_ALIAS_creation_quota_description": "Wielkość limitu powinna zawierać się między {0} {1} a {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "Limit musi mieścić się w zakresie od {0} {1} do {2} {3}. Używasz {4} {5} z dostępnych {6} {7}.", "exchange_tab_ALIAS_creation_error_no_local_part": "Wskaż nazwę adresu e-mail (przed znakiem @).", "exchange_tab_ALIAS_creation_error_regex": "Nazwa adresu (przed znakiem @) powinna zawierać znaki alfanumeryczne lub znaki .-_+ (przykład: e_mail-3.adres+abc).", "exchange_tab_ALIAS_taken_error_message": "Istniejący adres email", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "Wystąpił błąd podczas usuwania weryfikacji dwuetapowej: {{error}}", "exchange_tab_LOGS": "Logi", "exchange_tab_ACCOUNTS_menu_migrate": "Migracja kont", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "Każde konto Exchange zapewnia dodatkowe 5 GB wspólnej przestrzeni dyskowej." } diff --git a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json index 1c066650b710..52e5365b7464 100644 --- a/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json +++ b/packages/manager/modules/exchange/src/dashboard/translations/Messages_pt_PT.json @@ -201,7 +201,7 @@ "exchange_tab_ALIAS_state_TASK_ON_DOING": "Em curso", "exchange_tab_ALIAS_state_TASK_ON_DOING_tooltip": "Um trabalho relativo a este alias já se encontra planificado ou em curso de execução", "exchange_tab_ALIAS_add_button": "Adicionar um alias", - "exchange_tab_ALIAS_creation_quota_description": "O limite deve estar entre {0} {1} e {2} {3}.", + "exchange_tab_ALIAS_creation_quota_description": "O quota deve ser compreendido entre {0} {1} e {2} {3}. Você já alocou {4} {5} dos {6} {7} disponíveis.", "exchange_tab_ALIAS_creation_error_no_local_part": "Por favor indique o local-part do endereço de email (parte do endereço antes da arroba @)", "exchange_tab_ALIAS_creation_error_regex": "A local-part (parte do endereço de e-mail antes da arroba @) deve conter caracteres alfanuméricos ou os caracteres .-_+ (exemplo: e_mail-3.endereço+abc).", "exchange_tab_ALIAS_taken_error_message": "Endereço de e-mail já existente.", @@ -1670,5 +1670,6 @@ "exchange_delete_mfa_error": "Ocorreu um erro aquando da eliminação da dupla autenticação: {{error}}", "exchange_tab_LOGS": "Logs", "exchange_tab_ACCOUNTS_menu_migrate": "Migrar contas", - "exchange_server_commercial_version_SE": "SE" + "exchange_server_commercial_version_SE": "SE", + "exchange_tab_ALIAS_creation_quota_tooltip": "Cada conta Exchange comprada dá direito a 5Go de armazenamento compartilhado." } diff --git a/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.controller.js b/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.controller.js index cda85e921a82..9f496e3ae733 100644 --- a/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.controller.js +++ b/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.controller.js @@ -158,6 +158,26 @@ export default class ExchangeAddSharedAccountCtrl { toDisplay: { value, unit }, }, ), + reservedQuota: Object.assign( + angular.copy(this.optionsToCreateNewAccounts.reservedQuota), + { + toDisplay: { + ...this.services.ExchangeSharedAccounts.formatQuota( + this.optionsToCreateNewAccounts.reservedQuota, + ), + }, + }, + ), + totalQuota: Object.assign( + angular.copy(this.optionsToCreateNewAccounts.totalQuota), + { + toDisplay: { + ...this.services.ExchangeSharedAccounts.formatQuota( + this.optionsToCreateNewAccounts.totalQuota, + ), + }, + }, + ), }); this.accountBeingCreated.quota = this.optionsToCreateNewAccounts.quota.value; @@ -196,10 +216,12 @@ export default class ExchangeAddSharedAccountCtrl { selectQuota() { if (this.optionsToCreateNewAccounts.quota.value) { - this.accountBeingCreated.quota = this.services.ExchangeSharedAccounts.convertQuota( - this.optionsToCreateNewAccounts.quota.value, - this.optionsToCreateNewAccounts.quota.unit, - this.optionsToCreateNewAccounts.minQuota.unit, + this.accountBeingCreated.quota = Math.trunc( + this.services.ExchangeSharedAccounts.convertQuota( + this.optionsToCreateNewAccounts.quota.value, + this.optionsToCreateNewAccounts.quota.unit, + this.optionsToCreateNewAccounts.minQuota.unit, + ), ); this.formattedQuota = this.services.ExchangeSharedAccounts.getFormattedQuota( diff --git a/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.html b/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.html index 3b48efd30fec..b43c5c3ad3f6 100644 --- a/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.html +++ b/packages/manager/modules/exchange/src/shared-account/add/shared-account-add.html @@ -52,7 +52,7 @@ required data-ng-change="ctrl.emailOnChange()" data-ng-model="ctrl.domain" - data-ng-options="domain.displayName for domain in ctrl.optionsToCreateNewAccounts.availableDomains | orderBy:'formattedName'" + data-ng-options="domain.displayName for domain in ctrl.optionsToCreateNewAccounts.availableDomains | orderBy:'displayName'" > @@ -80,10 +80,16 @@ data-ng-class="{ 'has-error': ctrl.hasQuotaFieldErrors() }" > +
diff --git a/packages/manager/modules/exchange/src/shared-account/shared-account.service.js b/packages/manager/modules/exchange/src/shared-account/shared-account.service.js index 3c605a5213c1..cbaf3721f041 100644 --- a/packages/manager/modules/exchange/src/shared-account/shared-account.service.js +++ b/packages/manager/modules/exchange/src/shared-account/shared-account.service.js @@ -4,6 +4,7 @@ import keys from 'lodash/keys'; export default class ExchangeSharedAccounts { /* @ngInject */ constructor( + $q, $translate, wucExchange, OvhHttp, @@ -11,6 +12,7 @@ export default class ExchangeSharedAccounts { WucConverterService, ) { this.services = { + $q, $translate, wucExchange, OvhHttp, @@ -40,12 +42,73 @@ export default class ExchangeSharedAccounts { } retrievingNewSharedAccountOptions(organization, exchange) { - return this.services.OvhHttp.get( - `/sws/exchange/${organization}/${exchange}/sharedAccounts/options`, - { - rootPath: '2api', - }, - ); + return this.services.$q + .all({ + accounts: this.services.wucExchange.getAccountIds({ + organizationName: organization, + exchangeService: exchange, + }), + externalContacts: this.services.wucExchange.getExternalContactIds({ + organizationName: organization, + exchangeService: exchange, + }), + mailingLists: this.services.wucExchange.getMailingListIds({ + organizationName: organization, + exchangeService: exchange, + }), + sharedAccountQuota: this.retrievingQuota(organization, exchange), + domains: this.services.wucExchange.getDomainIds({ + organizationName: organization, + exchangeService: exchange, + state: 'ok', + }), + resourceAccounts: this.services.wucExchange.getResourceAccountIds({ + organizationName: organization, + exchangeService: exchange, + }), + }) + .then( + ({ + accounts, + externalContacts, + mailingLists, + sharedAccountQuota, + domains, + resourceAccounts, + }) => ({ + availableDomains: domains.map((domain) => ({ + name: domain, + displayName: punycode.toUnicode(domain), + })), + availableSecurity: [ + // Hardcodded no available in api. + 'NONE', + 'VADERETRO', + ], + takenEmails: [].concat( + accounts, + mailingLists, + externalContacts, + resourceAccounts, + ), + minQuota: { + unit: 'MiB', + value: 100, // Hardcodded no available in api. + }, + maxQuota: { + unit: 'MiB', + value: sharedAccountQuota.singleMailboxQuotaLimit, + }, + reservedQuota: { + unit: 'MiB', + value: sharedAccountQuota.quotaReserved, + }, + totalQuota: { + unit: 'MiB', + value: sharedAccountQuota.quotaLimit, + }, + }), + ); } addingSharedAccount(organization, exchange, data) { diff --git a/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.controller.js b/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.controller.js index ca1226ae0401..35660825b6de 100644 --- a/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.controller.js +++ b/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.controller.js @@ -171,6 +171,26 @@ export default class ExchangeUpdateSharedAccountCtrl { toDisplay: { value, unit }, }, ), + reservedQuota: Object.assign( + angular.copy(this.optionsToUpdateAccount.reservedQuota), + { + toDisplay: { + ...this.services.ExchangeSharedAccounts.formatQuota( + this.optionsToUpdateAccount.reservedQuota, + ), + }, + }, + ), + totalQuota: Object.assign( + angular.copy(this.optionsToUpdateAccount.totalQuota), + { + toDisplay: { + ...this.services.ExchangeSharedAccounts.formatQuota( + this.optionsToUpdateAccount.totalQuota, + ), + }, + }, + ), }); this.accountBeingUpdated.quota = this.optionsToUpdateAccount.quota.value; @@ -222,10 +242,12 @@ export default class ExchangeUpdateSharedAccountCtrl { selectQuota() { if (this.optionsToUpdateAccount.quota.value) { - this.accountBeingUpdated.quota = this.services.ExchangeSharedAccounts.convertQuota( - this.optionsToUpdateAccount.quota.value, - this.optionsToUpdateAccount.quota.unit, - this.optionsToUpdateAccount.minQuota.unit, + this.accountBeingUpdated.quota = Math.trunc( + this.services.ExchangeSharedAccounts.convertQuota( + this.optionsToUpdateAccount.quota.value, + this.optionsToUpdateAccount.quota.unit, + this.optionsToUpdateAccount.minQuota.unit, + ), ); this.formattedQuota = this.services.ExchangeSharedAccounts.getFormattedQuota( @@ -260,8 +282,8 @@ export default class ExchangeUpdateSharedAccountCtrl { this.services.messaging.writeError( this.services.$translate.instant( 'exchange_ACTION_add_account_error_message', + { message: failure.message }, ), - failure, ); }) .finally(() => { diff --git a/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.html b/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.html index ef2fa8862289..854becb6399d 100644 --- a/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.html +++ b/packages/manager/modules/exchange/src/shared-account/update/shared-account-update.html @@ -47,7 +47,7 @@ required data-ng-change="ctrl.emailOnChange()" data-ng-model="ctrl.domain" - data-ng-options="domain.displayName for domain in ctrl.optionsToUpdateAccount.availableDomains | orderBy:'formattedName'" + data-ng-options="domain.displayName for domain in ctrl.optionsToUpdateAccount.availableDomains | orderBy:'displayName'" > @@ -75,10 +75,16 @@ data-ng-class="{ 'has-error': ctrl.hasQuotaFieldErrors() }" > +
diff --git a/packages/manager/modules/web-universe-components/src/exchange/exchange.service.js b/packages/manager/modules/web-universe-components/src/exchange/exchange.service.js index 10fc9c998288..a4b9b58ac613 100644 --- a/packages/manager/modules/web-universe-components/src/exchange/exchange.service.js +++ b/packages/manager/modules/web-universe-components/src/exchange/exchange.service.js @@ -1791,6 +1791,39 @@ export default class Exchange { }); } + getExternalContactIds(opts) { + return this.services.$http + .get( + `/email/exchange/${opts.organizationName}/service/${opts.exchangeService}/externalContact`, + ) + .then(({ data }) => data); + } + + getMailingListIds(opts) { + return this.services.$http + .get( + `/email/exchange/${opts.organizationName}/service/${opts.exchangeService}/mailingList`, + ) + .then(({ data }) => data); + } + + getDomainIds(opts) { + return this.services.$http + .get( + `/email/exchange/${opts.organizationName}/service/${opts.exchangeService}/domain`, + { state: opts.state || 'ok' }, + ) + .then(({ data }) => data); + } + + getResourceAccountIds(opts) { + return this.services.$http + .get( + `/email/exchange/${opts.organizationName}/service/${opts.exchangeService}/resourceAccount`, + ) + .then(({ data }) => data); + } + /** * @param {string} ovhSubsidiary * @param {number} price From 17e8c5440679d310102120fd28a8c040db49308a Mon Sep 17 00:00:00 2001 From: Atef ZAAFOURI Date: Fri, 1 Aug 2025 17:45:05 +0200 Subject: [PATCH 8/8] feat(sms): order time2chat number ref: #PRDCOL-13 Signed-off-by: Guillaume Hyenne Co-authored-by: Atef ZAAFOURI Co-authored-by: CDS Translator Agent --- packages/manager/modules/sms/.eslintrc.json | 1 + packages/manager/modules/sms/package.json | 1 + .../modules/sms/src/sms/dashboard/routing.js | 2 + .../telecom-sms-dashboard.component.js | 2 + .../telecom-sms-dashboard.controller.js | 81 ++++--- .../translations/Messages_de_DE.json | 3 +- .../translations/Messages_en_GB.json | 3 +- .../translations/Messages_es_ES.json | 3 +- .../translations/Messages_fr_CA.json | 3 +- .../translations/Messages_fr_FR.json | 3 +- .../translations/Messages_it_IT.json | 3 +- .../translations/Messages_pl_PL.json | 3 +- .../translations/Messages_pt_PT.json | 3 +- .../sms/senders/configure-time2chat/index.js | 22 ++ ...lecom-sms-configure-time2chat.component.js | 8 + ...ecom-sms-configure-time2chat.controller.js | 131 ++++++++++ .../telecom-sms-configure-time2chat.html | 225 ++++++++++++++++++ .../telecom-sms-configure-time2chat.module.js | 14 ++ ...telecom-sms-configure-time2chat.routing.js | 14 ++ .../translations/Messages_de_DE.json | 24 ++ .../translations/Messages_en_GB.json | 24 ++ .../translations/Messages_es_ES.json | 24 ++ .../translations/Messages_fr_CA.json | 24 ++ .../translations/Messages_fr_FR.json | 24 ++ .../translations/Messages_it_IT.json | 24 ++ .../translations/Messages_pl_PL.json | 24 ++ .../translations/Messages_pt_PT.json | 24 ++ .../src/sms/senders/orderTime2Chat/index.js | 22 ++ .../orderTime2Chat.component.js | 12 + .../orderTime2Chat.controller.js | 72 ++++++ .../orderTime2Chat/orderTime2Chat.html | 111 +++++++++ .../orderTime2Chat/orderTime2Chat.module.js | 17 ++ .../orderTime2Chat/orderTime2Chat.routing.js | 41 ++++ .../translations/Messages_de_DE.json | 15 ++ .../translations/Messages_en_GB.json | 15 ++ .../translations/Messages_es_ES.json | 15 ++ .../translations/Messages_fr_CA.json | 15 ++ .../translations/Messages_fr_FR.json | 15 ++ .../translations/Messages_it_IT.json | 15 ++ .../translations/Messages_pl_PL.json | 15 ++ .../translations/Messages_pt_PT.json | 15 ++ .../senders/telecom-sms-senders.component.js | 4 +- .../senders/telecom-sms-senders.controller.js | 8 +- .../src/sms/senders/telecom-sms-senders.html | 92 +++---- .../senders/translations/Messages_de_DE.json | 3 +- .../senders/translations/Messages_en_GB.json | 3 +- .../senders/translations/Messages_es_ES.json | 3 +- .../senders/translations/Messages_fr_CA.json | 3 +- .../senders/translations/Messages_fr_FR.json | 3 +- .../senders/translations/Messages_it_IT.json | 3 +- .../senders/translations/Messages_pl_PL.json | 3 +- .../senders/translations/Messages_pt_PT.json | 3 +- .../sms/src/sms/telecom-sms.constant.js | 3 + .../sms/src/sms/telecom-sms.routing.js | 1 + .../sms/src/sms/telecom-sms.service.js | 44 ++++ .../src/sms/translations/Messages_de_DE.json | 3 +- .../src/sms/translations/Messages_en_GB.json | 3 +- .../src/sms/translations/Messages_es_ES.json | 3 +- .../src/sms/translations/Messages_fr_CA.json | 1 + .../src/sms/translations/Messages_fr_FR.json | 1 + .../src/sms/translations/Messages_it_IT.json | 3 +- .../src/sms/translations/Messages_pl_PL.json | 3 +- .../src/sms/translations/Messages_pt_PT.json | 3 +- 63 files changed, 1207 insertions(+), 101 deletions(-) create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/index.js create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.component.js create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.controller.js create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.html create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.module.js create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.routing.js create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_de_DE.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_en_GB.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_es_ES.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_CA.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_FR.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_it_IT.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pl_PL.json create mode 100644 packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pt_PT.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/index.js create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.component.js create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.controller.js create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.html create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.module.js create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.routing.js create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_de_DE.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_en_GB.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_es_ES.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_CA.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_FR.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_it_IT.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pl_PL.json create mode 100644 packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pt_PT.json diff --git a/packages/manager/modules/sms/.eslintrc.json b/packages/manager/modules/sms/.eslintrc.json index c12d22beb416..3f327145b817 100644 --- a/packages/manager/modules/sms/.eslintrc.json +++ b/packages/manager/modules/sms/.eslintrc.json @@ -1,5 +1,6 @@ { "globals": { + "JSURL": true, "moment": true } } diff --git a/packages/manager/modules/sms/package.json b/packages/manager/modules/sms/package.json index f9bd3781132c..aea070072539 100644 --- a/packages/manager/modules/sms/package.json +++ b/packages/manager/modules/sms/package.json @@ -13,6 +13,7 @@ "main": "./src/index.js", "dependencies": { "bootstrap4": "twbs/bootstrap#v4.6.2", + "jsurl": "^0.1.5", "lodash": "^4.17.15" }, "devDependencies": { diff --git a/packages/manager/modules/sms/src/sms/dashboard/routing.js b/packages/manager/modules/sms/src/sms/dashboard/routing.js index a693aa4b5ee8..abe7e7326f4f 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/routing.js +++ b/packages/manager/modules/sms/src/sms/dashboard/routing.js @@ -27,6 +27,8 @@ export default /* @ngInject */ ($stateProvider) => { .then((statisticsList) => statisticsList.flat()), goToCreditTransfer: /* @ngInject */ ($state) => () => $state.go('sms.service.dashboard.creditTransfer'), + goToOrderTime2Chat: /* @ngInject */ ($state) => () => + $state.go('sms.service.dashboard.orderTime2Chat'), goToCreditOrder: /* @ngInject */ ($state) => () => $state.go('sms.service.order'), translationsRefresh: /* @ngInject */ ($translate) => $translate.refresh(), diff --git a/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.component.js b/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.component.js index d69bce9837ea..8a87bb5d8eae 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.component.js +++ b/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.component.js @@ -10,12 +10,14 @@ export default { getReloadCreditLink: '<', goToCreditTransfer: '<', + goToOrderTime2Chat: '<', goToCreditOrder: '<', trackClick: '<', serviceName: '<', isSmppAccount: '<', + smsFeatureAvailability: '<', }, controller, name: 'ovhManagerSmsDashboard', diff --git a/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.controller.js b/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.controller.js index 385a62e84855..30ce1586a143 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.controller.js +++ b/packages/manager/modules/sms/src/sms/dashboard/telecom-sms-dashboard.controller.js @@ -49,18 +49,26 @@ export default class { }, ] : []), - { - name: 'recredit_options', - sref: 'sms.service.order', - text: this.$translate.instant('sms_actions_credit_account'), - hit: `${this.DASHBOARD_TRACKING_PREFIX}::credit-account`, - }, - { - name: 'credit_transfer', - sref: 'sms.service.dashboard.creditTransfer', - text: this.$translate.instant('sms_actions_credit_transfer'), - hit: `${this.DASHBOARD_TRACKING_PREFIX}::transfer-credit`, - }, + ...(!this.isSmppAccount + ? [ + { + name: 'create_campaign', + sref: 'sms.service.batches.create', + text: this.$translate.instant('sms_actions_create_campaign'), + hit: 'sms::service::dashboard::add-campaign', + }, + ] + : []), + ...(!this.isSmppAccount + ? [ + { + name: 'campaign_history', + sref: 'sms.service.batches.history', + text: this.$translate.instant('sms_actions_campaign_history'), + hit: 'sms::service::dashboard::historic-campaigns', + }, + ] + : []), ...(!this.isSmppAccount ? [ { @@ -97,26 +105,6 @@ export default class { }, ] : []), - ...(!this.isSmppAccount - ? [ - { - name: 'create_campaign', - sref: 'sms.service.batches.create', - text: this.$translate.instant('sms_actions_create_campaign'), - hit: 'sms::service::dashboard::add-campaign', - }, - ] - : []), - ...(!this.isSmppAccount - ? [ - { - name: 'campaign_history', - sref: 'sms.service.batches.history', - text: this.$translate.instant('sms_actions_campaign_history'), - hit: 'sms::service::dashboard::historic-campaigns', - }, - ] - : []), ...(this.isSmppAccount ? [ { @@ -127,6 +115,28 @@ export default class { }, ] : []), + { + name: 'recredit_options', + sref: 'sms.service.order', + text: this.$translate.instant('sms_actions_credit_account'), + hit: `${this.DASHBOARD_TRACKING_PREFIX}::credit-account`, + }, + { + name: 'credit_transfer', + sref: 'sms.service.dashboard.creditTransfer', + text: this.$translate.instant('sms_actions_credit_transfer'), + hit: `${this.DASHBOARD_TRACKING_PREFIX}::transfer-credit`, + }, + ...(this.smsFeatureAvailability.isFeatureAvailable('sms:time2chat') + ? [ + { + name: 'order_time2chat', + sref: 'sms.service.senders.orderTime2Chat', + text: this.$translate.instant('sms_actions_order_time2chat'), + hit: `${this.DASHBOARD_TRACKING_PREFIX}::order-time2chat`, + }, + ] + : []), ]; this.statisticsFilters = Object.values(STATISTICS_FILTER).map((value) => ({ @@ -244,4 +254,11 @@ export default class { ); return this.goToCreditOrder(); } + + onGoToOrderTime2Chat() { + this.trackClick( + `${this.DASHBOARD_TRACKING_PREFIX}::report::order-time2chat`, + ); + return this.goToOrderTime2Chat(); + } } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_de_DE.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_de_DE.json index fb2c959df798..171163d639f1 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_de_DE.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_de_DE.json @@ -21,5 +21,6 @@ "sms_statistics_delivered_number": "Anzahl der gelieferten SMS", "sms_statistics_stop_subscribe_number": "Anzahl der Abmeldungen", "sms_actions_credit_transfer": "Übertragung von Mitteln", - "sms_actions_smpp_parameter": "SMPP einrichten" + "sms_actions_smpp_parameter": "SMPP einrichten", + "sms_actions_order_time2chat": "Bestellen Sie eine Time2Chat-Nummer" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_en_GB.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_en_GB.json index fd75d2769829..43948118b451 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_en_GB.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_en_GB.json @@ -21,5 +21,6 @@ "sms_statistics_delivered_number": "Number of SMS delivered", "sms_statistics_stop_subscribe_number": "Number of unsubscriptions", "sms_actions_credit_transfer": "Transfer credits", - "sms_actions_smpp_parameter": "Configure my SMPP" + "sms_actions_smpp_parameter": "Configure my SMPP", + "sms_actions_order_time2chat": "Order a Time2Chat number" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_es_ES.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_es_ES.json index ef014ea51986..73f9e934ce0b 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_es_ES.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_es_ES.json @@ -21,5 +21,6 @@ "sms_statistics_delivered_number": "Número de SMS entregados", "sms_statistics_stop_subscribe_number": "Número de bajas", "sms_actions_credit_transfer": "Transferir crédito", - "sms_actions_smpp_parameter": "Configurar mi SMPP" + "sms_actions_smpp_parameter": "Configurar mi SMPP", + "sms_actions_order_time2chat": "Pedir un número Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_CA.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_CA.json index 15361cbd281c..c7f618ce13e7 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_CA.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_CA.json @@ -21,5 +21,6 @@ "sms_statictics_credit_reload": "Recharger crédits", "sms_statistics_sent_number": "Nombre de SMS envoyés", "sms_statistics_delivered_number": "Nombre de SMS délivrés", - "sms_statistics_stop_subscribe_number": "Nombre de désabonnements" + "sms_statistics_stop_subscribe_number": "Nombre de désabonnements", + "sms_actions_order_time2chat": "Commander un numéro Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_FR.json index 15361cbd281c..c7f618ce13e7 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_FR.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_fr_FR.json @@ -21,5 +21,6 @@ "sms_statictics_credit_reload": "Recharger crédits", "sms_statistics_sent_number": "Nombre de SMS envoyés", "sms_statistics_delivered_number": "Nombre de SMS délivrés", - "sms_statistics_stop_subscribe_number": "Nombre de désabonnements" + "sms_statistics_stop_subscribe_number": "Nombre de désabonnements", + "sms_actions_order_time2chat": "Commander un numéro Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_it_IT.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_it_IT.json index 30f4107ef576..6e676a14b57d 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_it_IT.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_it_IT.json @@ -21,5 +21,6 @@ "sms_statistics_delivered_number": "Numero di SMS consegnati", "sms_statistics_stop_subscribe_number": "Numero di disiscrizioni", "sms_actions_credit_transfer": "Trasferire crediti", - "sms_actions_smpp_parameter": "Impostare il tuo SMPP" + "sms_actions_smpp_parameter": "Impostare il tuo SMPP", + "sms_actions_order_time2chat": "Comandare un numero Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pl_PL.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pl_PL.json index 95b5aa1492ba..7b37a54783cf 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pl_PL.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pl_PL.json @@ -21,5 +21,6 @@ "sms_statistics_delivered_number": "Liczba dostarczonych wiadomości SMS", "sms_statistics_stop_subscribe_number": "Liczba rezygnacji z otrzymywania wiadomości", "sms_actions_credit_transfer": "Przeniesienie zasileń", - "sms_actions_smpp_parameter": "Skonfiguruj SMPP" + "sms_actions_smpp_parameter": "Skonfiguruj SMPP", + "sms_actions_order_time2chat": "Zamów numer Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pt_PT.json b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pt_PT.json index 9ffd8b0f6ada..83dfcb88271d 100644 --- a/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pt_PT.json +++ b/packages/manager/modules/sms/src/sms/dashboard/translations/Messages_pt_PT.json @@ -21,5 +21,6 @@ "sms_statictics_credit_reload": "Recarregar créditos", "sms_statistics_sent_number": "Número de SMS enviados", "sms_statistics_delivered_number": "Número de SMS emitidos", - "sms_statistics_stop_subscribe_number": "Número de assinaturas" + "sms_statistics_stop_subscribe_number": "Número de assinaturas", + "sms_actions_order_time2chat": "Encomendar um número Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/index.js b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/index.js new file mode 100644 index 000000000000..73db8b4c5736 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/index.js @@ -0,0 +1,22 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import 'oclazyload'; + +const moduleName = 'ovhManagerSmsSendersConfigureTime2ChatLazyloading'; + +angular + .module(moduleName, ['ui.router', 'oc.lazyLoad']) + .config(($stateProvider) => { + $stateProvider.state('sms.service.senders.configure-time2chat.**', { + url: '/:number/configure', + lazyLoad: ($transition$) => { + const $ocLazyLoad = $transition$.injector().get('$ocLazyLoad'); + + return import('./telecom-sms-configure-time2chat.module').then((mod) => + $ocLazyLoad.inject(mod.default || mod), + ); + }, + }); + }); + +export default moduleName; diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.component.js b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.component.js new file mode 100644 index 000000000000..cb332c934106 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.component.js @@ -0,0 +1,8 @@ +import controller from './telecom-sms-configure-time2chat.controller'; +import template from './telecom-sms-configure-time2chat.html'; + +export default { + bindings: {}, + controller, + template, +}; diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.controller.js b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.controller.js new file mode 100644 index 000000000000..b801e68417d9 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.controller.js @@ -0,0 +1,131 @@ +import { PHONE_NUMBER_FOR_TIME2CHAT_REGEX } from '../../telecom-sms.constant'; + +export default class SmsSendersConfigureTime2ChatCtrl { + /* @ngInject */ + constructor($q, $stateParams, $translate, SmsService, TucToast) { + this.$q = $q; + this.$stateParams = $stateParams; + this.$translate = $translate; + this.smsService = SmsService; + this.TucToast = TucToast; + this.PHONE_NUMBER_FOR_TIME2CHAT_REGEX = PHONE_NUMBER_FOR_TIME2CHAT_REGEX; + } + + $onInit() { + this.isLoading = true; + this.$q + .all({ + contactInfo: this.smsService.getContactInfo( + this.$stateParams.serviceName, + this.$stateParams.number, + ), + autoResponse: this.smsService.getAutoResponseMessage( + this.$stateParams.serviceName, + this.$stateParams.number, + ), + kycData: this.smsService.getKyc( + this.$stateParams.serviceName, + this.$stateParams.number, + ), + }) + .then(({ contactInfo, autoResponse, kycData }) => { + this.contactInfoData = contactInfo; + this.kycData = kycData; + this.autoResponseData = autoResponse; + }) + .catch((err) => { + this.TucToast.error( + this.$translate.instant('sms_senders_configure_loading_error', { + error: err?.data?.message, + }), + ); + }) + .finally(() => { + this.isLoading = false; + }); + } + + /** + * Update contact info. + * @return {Promise} + */ + updateContactInfo() { + this.contactInfoForm.$setPristine(); + return this.smsService + .updateContactInfo( + this.$stateParams.serviceName, + this.$stateParams.number, + this.contactInfoData, + ) + .then(() => { + this.TucToast.success( + this.$translate.instant( + 'sms_senders_configure_contact_info_update_success', + ), + ); + }) + .catch((err) => { + this.TucToast.error( + this.$translate.instant( + 'sms_senders_configure_contact_info_update_error', + { error: err?.data?.message }, + ), + ); + }); + } + + /** + * Update auto response message. + * @return {Promise} + */ + updateAutoResponseMessage() { + this.autoResponseMessageForm.$setPristine(); + return this.smsService + .updateAutoResponseMessage( + this.$stateParams.serviceName, + this.$stateParams.number, + this.autoResponseData, + ) + .then(() => { + this.TucToast.success( + this.$translate.instant( + 'sms_senders_configure_auto_response_update_success', + ), + ); + }) + .catch((err) => { + this.TucToast.error( + this.$translate.instant( + 'sms_senders_configure_auto_response_update_error', + { error: err?.data?.message }, + ), + ); + }); + } + + /** + * Update kyc info. + * @return {Promise} + */ + updateKyc() { + this.kycForm.$setPristine(); + return this.smsService + .updateKyc( + this.$stateParams.serviceName, + this.$stateParams.number, + this.kycData, + ) + .then(() => { + this.TucToast.success( + this.$translate.instant('sms_senders_configure_kyc_update_success'), + ); + }) + .catch((err) => { + this.TucToast.error( + this.$translate.instant('sms_senders_configure_kyc_update_error', { + error: err?.data?.message, + }), + ); + }); + } +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.html b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.html new file mode 100644 index 000000000000..14745c5ef2e8 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.html @@ -0,0 +1,225 @@ +
+
+ + +

+
+ +
+ +
+ +
+ + +
+
+
+

+
+ +

+

+
+ + + + + + + + + + + + + + + + + +
+ +

+

+
+ + + + + + + + +
+
+
+
+

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.module.js b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.module.js new file mode 100644 index 000000000000..749d7465f0eb --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.module.js @@ -0,0 +1,14 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import component from './telecom-sms-configure-time2chat.component'; +import routing from './telecom-sms-configure-time2chat.routing'; + +const moduleName = 'ovhManagerSmsSendersConfigureTime2Chat'; + +angular + .module(moduleName, ['ui.router']) + .component('smsSendersConfigureTime2Chat', component) + .config(routing) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.routing.js b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.routing.js new file mode 100644 index 000000000000..bebe55f2dbff --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/telecom-sms-configure-time2chat.routing.js @@ -0,0 +1,14 @@ +export default /* @ngInject */ ($stateProvider) => { + $stateProvider.state('sms.service.senders.configure-time2chat', { + url: '/:number/configure', + views: { + 'smsView@sms.service': { + component: 'smsSendersConfigureTime2Chat', + }, + }, + resolve: { + breadcrumb: /* @ngInject */ ($translate) => + $translate.instant('sms_senders_configure_time2chat'), + }, + }); +}; diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_de_DE.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_de_DE.json new file mode 100644 index 000000000000..a58fb9579bf0 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_de_DE.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS-Konversation: Time2Chat", + "sms_senders_configure_auto_response": "Automatische Antworten", + "sms_senders_configure_contact_info_title": "1. Wenn der Endkunde auf die Nachricht mit \"Kontakt\" antwortet", + "sms_senders_configure_contact_info_subtitle": "Er erhält sofort die folgenden Informationen.", + "sms_senders_configure_contact_info_label_commercial_name": "Handelsname", + "sms_senders_configure_contact_info_label_phonenumber": "Telefonnummer (im internationalen Format 0033 oder +33)", + "sms_senders_configure_contact_info_label_website": "Website", + "sms_senders_configure_kyc_label_company_name": "Firmenname", + "sms_senders_configure_kyc_label_brand_name": "Marke, die den Dienst nutzt", + "sms_senders_configure_kyc_label_primary_use_case": "Hauptanwendungsfall", + "sms_senders_configure_kyc_label_operational_contact_name": "Name des Kontakts", + "sms_senders_configure_kyc_label_contact_email": "E-Mail des Kontakts", + "sms_senders_configure_auto_response_message_title": "2. Wenn Sie nicht auf Kundenanfragen antworten", + "sms_senders_configure_auto_response_message_subtitle": "Er erhält nach 24 Stunden eine Nachricht, die ihm mitteilt, dass das Gespräch beendet ist.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "Die Aktualisierung der Informationen zu automatischen Antworten konnte nicht abgeschlossen werden. {{ error }}", + "sms_senders_configure_auto_response_update_error": "Die Aktualisierung der Nachricht für automatische Antworten konnte nicht abgeschlossen werden. {{ error }}", + "sms_senders_configure_kyc_update_error": "Die Aktualisierung des KYC konnte nicht abgeschlossen werden. {{ error }}", + "sms_senders_configure_contact_info_update_success": "Die Aktualisierung der Informationen zu automatischen Antworten wurde berücksichtigt.", + "sms_senders_configure_auto_response_update_success": "Die Aktualisierung der Nachricht für automatische Antworten wurde berücksichtigt.", + "sms_senders_configure_kyc_update_success": "Das KYC-Update wurde berücksichtigt.", + "sms_senders_configure_loading_error": "Ein Fehler ist aufgetreten beim Abrufen der Informationen. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_en_GB.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_en_GB.json new file mode 100644 index 000000000000..84388544000e --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_en_GB.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversational: Time2Chat", + "sms_senders_configure_auto_response": "Automatic responses", + "sms_senders_configure_contact_info_title": "1. If the end customer replies \"contact\" to the message", + "sms_senders_configure_contact_info_subtitle": "They will immediately receive the following information.", + "sms_senders_configure_contact_info_label_commercial_name": "Trade name", + "sms_senders_configure_contact_info_label_phonenumber": "Phone number (in international format 0033 or +33)", + "sms_senders_configure_contact_info_label_website": "Website", + "sms_senders_configure_kyc_label_company_name": "Name of company", + "sms_senders_configure_kyc_label_brand_name": "Brand using the service", + "sms_senders_configure_kyc_label_primary_use_case": "Main use case", + "sms_senders_configure_kyc_label_operational_contact_name": "Contact name", + "sms_senders_configure_kyc_label_contact_email": "Contact email", + "sms_senders_configure_auto_response_message_title": "2. If you do not respond to customer messages", + "sms_senders_configure_auto_response_message_subtitle": "They will receive a message after 24 hours indicating that the conversation has ended.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "The update of automatic response information could not be completed. {{ error }}", + "sms_senders_configure_auto_response_update_error": "The update of the automatic response message could not be completed. {{ error }}", + "sms_senders_configure_kyc_update_error": "The update of KYC could not be completed. {{ error }}", + "sms_senders_configure_contact_info_update_success": "The update of automatic response information has been taken into account.", + "sms_senders_configure_auto_response_update_success": "The update of the automatic response message has been taken into account.", + "sms_senders_configure_kyc_update_success": "The KYC update has been taken into account.", + "sms_senders_configure_loading_error": "An error occurred while retrieving the information. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_es_ES.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_es_ES.json new file mode 100644 index 000000000000..14d67338dc7b --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_es_ES.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversacional : Time2Chat", + "sms_senders_configure_auto_response": "Respuestas automáticas", + "sms_senders_configure_contact_info_title": "1. Si el cliente final responde \"contacto\" al mensaje", + "sms_senders_configure_contact_info_subtitle": "Recibirá inmediatamente la siguiente información.", + "sms_senders_configure_contact_info_label_commercial_name": "Nombre comercial", + "sms_senders_configure_contact_info_label_phonenumber": "Número de teléfono (en formato internacional 0033 o +33)", + "sms_senders_configure_contact_info_label_website": "Sitio web", + "sms_senders_configure_kyc_label_company_name": "Razón social", + "sms_senders_configure_kyc_label_brand_name": "Marca que utiliza el servicio", + "sms_senders_configure_kyc_label_primary_use_case": "Caso de uso principal", + "sms_senders_configure_kyc_label_operational_contact_name": "Nombre del contacto", + "sms_senders_configure_kyc_label_contact_email": "Correo electrónico del contacto", + "sms_senders_configure_auto_response_message_title": "2. Si no responde a los mensajes del cliente", + "sms_senders_configure_auto_response_message_subtitle": "Recibirá un mensaje después de 24 horas que le indicará que la conversación ha terminado.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "La actualización de la información de respuestas automáticas no se pudo completar. {{ error }}", + "sms_senders_configure_auto_response_update_error": "La actualización del mensaje de respuestas automáticas no se pudo completar. {{ error }}", + "sms_senders_configure_kyc_update_error": "La actualización del KYC no se pudo completar. {{ error }}", + "sms_senders_configure_contact_info_update_success": "La actualización de la información de respuestas automáticas ha sido registrada.", + "sms_senders_configure_auto_response_update_success": "La actualización del mensaje de respuestas automáticas ha sido registrada.", + "sms_senders_configure_kyc_update_success": "La actualización del KYC ha sido tenida en cuenta.", + "sms_senders_configure_loading_error": "Se ha producido un error al recuperar la información. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_CA.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_CA.json new file mode 100644 index 000000000000..80bbad5f7acf --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_CA.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversationnel : Time2Chat", + "sms_senders_configure_auto_response": "Réponses automatiques", + "sms_senders_configure_contact_info_title": "1. Si le client final répond \"contact\" au message", + "sms_senders_configure_contact_info_subtitle": "Il recevra immédiatement les informations suivantes.", + "sms_senders_configure_contact_info_label_commercial_name": "Nom commercial", + "sms_senders_configure_contact_info_label_phonenumber": "Numéro de téléphone (au format international 0033 ou +33)", + "sms_senders_configure_contact_info_label_website": "Site internet", + "sms_senders_configure_kyc_label_company_name": "Raison sociale", + "sms_senders_configure_kyc_label_brand_name": "Marque utilisant le service", + "sms_senders_configure_kyc_label_primary_use_case": "Cas d'utilisation principal", + "sms_senders_configure_kyc_label_operational_contact_name": "Nom du contact", + "sms_senders_configure_kyc_label_contact_email": "Email du contact", + "sms_senders_configure_auto_response_message_title": "2. Si vous ne répondez pas aux messages client", + "sms_senders_configure_auto_response_message_subtitle": "Il recevra un message au bout de 24 heures qui lui indiquera que la conversation est terminée.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "La mise à jour des informations de réponses automatiques n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_auto_response_update_error": "La mise à jour du message de réponses automatiques n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_kyc_update_error": "La mise à jour du KYC n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_contact_info_update_success": "La mise à jour des informations de réponses automatiques a été prise en compte.", + "sms_senders_configure_auto_response_update_success": "La mise à jour du message de réponses automatiques a été prise en compte.", + "sms_senders_configure_kyc_update_success": "La mise à jour du KYC a été prise en compte.", + "sms_senders_configure_loading_error": "Une erreur est survenue lors de la récupération des informations. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_FR.json new file mode 100644 index 000000000000..80bbad5f7acf --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_fr_FR.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversationnel : Time2Chat", + "sms_senders_configure_auto_response": "Réponses automatiques", + "sms_senders_configure_contact_info_title": "1. Si le client final répond \"contact\" au message", + "sms_senders_configure_contact_info_subtitle": "Il recevra immédiatement les informations suivantes.", + "sms_senders_configure_contact_info_label_commercial_name": "Nom commercial", + "sms_senders_configure_contact_info_label_phonenumber": "Numéro de téléphone (au format international 0033 ou +33)", + "sms_senders_configure_contact_info_label_website": "Site internet", + "sms_senders_configure_kyc_label_company_name": "Raison sociale", + "sms_senders_configure_kyc_label_brand_name": "Marque utilisant le service", + "sms_senders_configure_kyc_label_primary_use_case": "Cas d'utilisation principal", + "sms_senders_configure_kyc_label_operational_contact_name": "Nom du contact", + "sms_senders_configure_kyc_label_contact_email": "Email du contact", + "sms_senders_configure_auto_response_message_title": "2. Si vous ne répondez pas aux messages client", + "sms_senders_configure_auto_response_message_subtitle": "Il recevra un message au bout de 24 heures qui lui indiquera que la conversation est terminée.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "La mise à jour des informations de réponses automatiques n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_auto_response_update_error": "La mise à jour du message de réponses automatiques n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_kyc_update_error": "La mise à jour du KYC n'a pas pu aboutir. {{ error }}", + "sms_senders_configure_contact_info_update_success": "La mise à jour des informations de réponses automatiques a été prise en compte.", + "sms_senders_configure_auto_response_update_success": "La mise à jour du message de réponses automatiques a été prise en compte.", + "sms_senders_configure_kyc_update_success": "La mise à jour du KYC a été prise en compte.", + "sms_senders_configure_loading_error": "Une erreur est survenue lors de la récupération des informations. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_it_IT.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_it_IT.json new file mode 100644 index 000000000000..d10c9241adc6 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_it_IT.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversazionale : Time2Chat", + "sms_senders_configure_auto_response": "Risposte automatiche", + "sms_senders_configure_contact_info_title": "1. Se il cliente finale risponde \"contatto\" al messaggio", + "sms_senders_configure_contact_info_subtitle": "Riceverà immediatamente le seguenti informazioni.", + "sms_senders_configure_contact_info_label_commercial_name": "Nome commerciale", + "sms_senders_configure_contact_info_label_phonenumber": "Numero di telefono (nel formato internazionale 0033 o +33)", + "sms_senders_configure_contact_info_label_website": "Sito internet", + "sms_senders_configure_kyc_label_company_name": "Ragione sociale", + "sms_senders_configure_kyc_label_brand_name": "Marca che utilizza il servizio", + "sms_senders_configure_kyc_label_primary_use_case": "Caso d'uso principale", + "sms_senders_configure_kyc_label_operational_contact_name": "Nome del contatto", + "sms_senders_configure_kyc_label_contact_email": "Email del contatto", + "sms_senders_configure_auto_response_message_title": "2. Se non rispondi ai messaggi del cliente", + "sms_senders_configure_auto_response_message_subtitle": "Riceverà un messaggio dopo 24 ore che gli indicherà che la conversazione è terminata.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "L'aggiornamento delle informazioni delle risposte automatiche non è riuscito. {{ error }}", + "sms_senders_configure_auto_response_update_error": "L'aggiornamento del messaggio delle risposte automatiche non è riuscito. {{ error }}", + "sms_senders_configure_kyc_update_error": "L'aggiornamento del KYC non è riuscito. {{ error }}", + "sms_senders_configure_contact_info_update_success": "L'aggiornamento delle informazioni delle risposte automatiche è stato preso in considerazione.", + "sms_senders_configure_auto_response_update_success": "L'aggiornamento del messaggio delle risposte automatiche è stato preso in considerazione.", + "sms_senders_configure_kyc_update_success": "L'aggiornamento del KYC è stato preso in considerazione.", + "sms_senders_configure_loading_error": "Si è verificato un errore durante il recupero delle informazioni. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pl_PL.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pl_PL.json new file mode 100644 index 000000000000..8f1c078ce03f --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pl_PL.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Konwersacyjny : Time2Chat", + "sms_senders_configure_auto_response": "Automatyczne odpowiedzi", + "sms_senders_configure_contact_info_title": "1. Jeśli klient końcowy odpowie \"kontakt\" na wiadomość", + "sms_senders_configure_contact_info_subtitle": "Otrzyma natychmiast następujące informacje.", + "sms_senders_configure_contact_info_label_commercial_name": "Nazwa handlowa", + "sms_senders_configure_contact_info_label_phonenumber": "Numer telefonu (w formacie międzynarodowym 0033 lub +33)", + "sms_senders_configure_contact_info_label_website": "Strona internetowa", + "sms_senders_configure_kyc_label_company_name": "Nazwa firmy", + "sms_senders_configure_kyc_label_brand_name": "Marka korzystająca z usługi", + "sms_senders_configure_kyc_label_primary_use_case": "Główny przypadek użycia", + "sms_senders_configure_kyc_label_operational_contact_name": "Imię i nazwisko kontaktu", + "sms_senders_configure_kyc_label_contact_email": "Email kontaktu", + "sms_senders_configure_auto_response_message_title": "2. Jeśli nie odpowiesz na wiadomości klienta", + "sms_senders_configure_auto_response_message_subtitle": "Otrzyma wiadomość po 24 godzinach, która poinformuje go, że rozmowa została zakończona.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "Aktualizacja informacji o automatycznych odpowiedziach nie powiodła się. {{ error }}", + "sms_senders_configure_auto_response_update_error": "Aktualizacja wiadomości automatycznych odpowiedzi nie powiodła się. {{ error }}", + "sms_senders_configure_kyc_update_error": "Aktualizacja KYC nie powiodła się. {{ error }}", + "sms_senders_configure_contact_info_update_success": "Aktualizacja informacji o automatycznych odpowiedziach została uwzględniona.", + "sms_senders_configure_auto_response_update_success": "Aktualizacja wiadomości automatycznych odpowiedzi została uwzględniona.", + "sms_senders_configure_kyc_update_success": "Aktualizacja KYC została uwzględniona.", + "sms_senders_configure_loading_error": "Wystąpił błąd podczas pobierania informacji. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pt_PT.json b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pt_PT.json new file mode 100644 index 000000000000..45d239396de5 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/configure-time2chat/translations/Messages_pt_PT.json @@ -0,0 +1,24 @@ +{ + "sms_senders_configure_time2chat": "SMS Conversacional : Time2Chat", + "sms_senders_configure_auto_response": "Respostas automáticas", + "sms_senders_configure_contact_info_title": "1. Se o cliente final responder \"contacto\" à mensagem", + "sms_senders_configure_contact_info_subtitle": "Ele receberá imediatamente as seguintes informações.", + "sms_senders_configure_contact_info_label_commercial_name": "Nome comercial", + "sms_senders_configure_contact_info_label_phonenumber": "Número de telefone (no formato internacional 0033 ou +33)", + "sms_senders_configure_contact_info_label_website": "Site internet", + "sms_senders_configure_kyc_label_company_name": "Razão social", + "sms_senders_configure_kyc_label_brand_name": "Marca utilizando o serviço", + "sms_senders_configure_kyc_label_primary_use_case": "Caso de uso principal", + "sms_senders_configure_kyc_label_operational_contact_name": "Nome do contacto", + "sms_senders_configure_kyc_label_contact_email": "Email do contacto", + "sms_senders_configure_auto_response_message_title": "2. Se você não responder às mensagens do cliente", + "sms_senders_configure_auto_response_message_subtitle": "Ele receberá uma mensagem após 24 horas que indicará que a conversa terminou.", + "sms_senders_configure_kyc": "KYC", + "sms_senders_configure_contact_info_update_error": "A atualização das informações de respostas automáticas não pôde ser concluída. {{ error }}", + "sms_senders_configure_auto_response_update_error": "A atualização da mensagem de respostas automáticas não pôde ser concluída. {{ error }}", + "sms_senders_configure_kyc_update_error": "A atualização do KYC não pôde ser concluída. {{ error }}", + "sms_senders_configure_contact_info_update_success": "A atualização das informações de respostas automáticas foi considerada.", + "sms_senders_configure_auto_response_update_success": "A atualização da mensagem de respostas automáticas foi considerada.", + "sms_senders_configure_kyc_update_success": "A atualização do KYC foi considerada.", + "sms_senders_configure_loading_error": "Ocorreu um erro ao recuperar as informações. {{ error }}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/index.js b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/index.js new file mode 100644 index 000000000000..ccc0793a3b57 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/index.js @@ -0,0 +1,22 @@ +import angular from 'angular'; +import '@uirouter/angularjs'; +import 'oclazyload'; + +const moduleName = 'ovhManagerSmsOrderTime2ChatComponentLazyloading'; + +angular + .module(moduleName, ['ui.router', 'oc.lazyLoad']) + .config(($stateProvider) => { + $stateProvider.state('sms.service.senders.orderTime2Chat.**', { + url: '/orderTime2Chat', + lazyLoad: ($transition$) => { + const $ocLazyLoad = $transition$.injector().get('$ocLazyLoad'); + + return import('./orderTime2Chat.module').then((mod) => + $ocLazyLoad.inject(mod.default || mod), + ); + }, + }); + }); + +export default moduleName; diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.component.js b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.component.js new file mode 100644 index 000000000000..a411f9448928 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.component.js @@ -0,0 +1,12 @@ +import controller from './orderTime2Chat.controller'; +import template from './orderTime2Chat.html'; + +export default { + bindings: { + goToDashboard: '<', + serviceName: '<', + trackClick: '<', + }, + controller, + template, +}; diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.controller.js b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.controller.js new file mode 100644 index 000000000000..5c31ffad3b9e --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.controller.js @@ -0,0 +1,72 @@ +import JSURL from 'jsurl'; +import { PHONE_NUMBER_FOR_TIME2CHAT_REGEX } from '../../telecom-sms.constant'; + +export default class SmsOrderTime2ChatCtrl { + /* @ngInject */ + constructor($q, $window, $translate, RedirectionService) { + this.$q = $q; + this.$window = $window; + this.$translate = $translate; + this.expressOrderUrl = RedirectionService.getURL('expressOrder'); + this.PHONE_NUMBER_FOR_TIME2CHAT_REGEX = PHONE_NUMBER_FOR_TIME2CHAT_REGEX; + } + + onSubmit() { + const expressParams = { + productId: 'sms', + planCode: 'sms-time2chat', + quantity: 1, + configuration: [ + { + label: 'sms_account', + value: this.serviceName, + }, + { + label: 'name', + value: this.model.name, + }, + { + label: 'website', + value: this.model.website, + }, + { + label: 'phonenumber', + value: this.model.phonenumber, + }, + { + label: 'company_name', + value: this.model.company_name, + }, + { + label: 'brand_using_service', + value: this.model.brand_name, + }, + { + label: 'primary_use_case', + value: this.model.primary_use_case, + }, + { + label: 'operational_contact_name', + value: this.model.operational_contact_name, + }, + { + label: 'operational_contact_email', + value: this.model.operational_contact_email, + }, + ], + }; + this.expressOrderUrl = `${this.expressOrderUrl}?products=${JSURL.stringify([ + expressParams, + ])}`; + + this.$window.open(this.expressOrderUrl, '_blank', 'noopener'); + this.goToDashboard(); + } + + onCancel() { + this.trackClick( + `${this.DASHBOARD_TRACKING_PREFIX}::order-time2chat::cancel`, + ); + return this.goToDashboard(); + } +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.html b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.html new file mode 100644 index 000000000000..5aace6bcf34a --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.html @@ -0,0 +1,111 @@ +
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.module.js b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.module.js new file mode 100644 index 000000000000..e4f1f4fd751f --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.module.js @@ -0,0 +1,17 @@ +import angular from 'angular'; +import ngAtInternet from '@ovh-ux/ng-at-internet'; +import '@uirouter/angularjs'; +import '@ovh-ux/ui-kit'; + +import routing from './orderTime2Chat.routing'; +import component from './orderTime2Chat.component'; + +const moduleName = 'ovhManagerSmsOrderTime2ChatComponent'; + +angular + .module(moduleName, [ngAtInternet, 'oui', 'ui.router']) + .config(routing) + .component('smsOrderTime2ChatComponent', component) + .run(/* @ngTranslationsInject:json ./translations */); + +export default moduleName; diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.routing.js b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.routing.js new file mode 100644 index 000000000000..017cf41deac0 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/orderTime2Chat.routing.js @@ -0,0 +1,41 @@ +export default /* @ngInject */ ($stateProvider) => { + $stateProvider.state('sms.service.senders.orderTime2Chat', { + url: '/orderTime2Chat', + views: { + modal: { + component: 'smsOrderTime2ChatComponent', + }, + }, + layout: 'modal', + resolve: { + goToDashboard: /* @ngInject */ ($state, TucToast) => ( + message = false, + type = 'success', + ) => { + const reload = message && type === 'success'; + const promise = $state.go( + 'sms.service.senders', + {}, + { + reload, + }, + ); + if (message) { + promise.then(() => { + if (type === 'success') { + TucToast.success(message); + } else { + TucToast.error(message); + } + }); + } + return promise; + }, + breadcrumb: /* @ngInject */ ($translate) => + $translate.instant('sms_order_time2chat_title'), + }, + atInternet: { + ignore: true, + }, + }); +}; diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_de_DE.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_de_DE.json new file mode 100644 index 000000000000..ad7fa798adfb --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_de_DE.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Bestellen Sie eine Time2Chat-Nummer", + "sms_order_time2chat_description": "Bitte füllen Sie die folgenden Informationen aus, damit wir Ihre Bestellung bearbeiten können.", + "sms_order_time2chat_action_order": "Weiter", + "sms_order_time2chat_action_cancel": "Abbrechen", + "sms_order_time2chat_label_phonenumber": "Telefonnummer (im internationalen Format 0033 oder +33)", + "sms_order_time2chat_label_website": "Website", + "sms_order_time2chat_label_name": "Name", + "sms_order_time2chat_label_company_name": "Firmenname", + "sms_order_time2chat_label_brand_name": "Marke, die den Dienst nutzt", + "sms_order_time2chat_label_primary_use_case": "Hauptanwendungsfall", + "sms_order_time2chat_label_operational_contact_name": "Name des Kontakts", + "sms_order_time2chat_label_operational_contact_email": "E-Mail des Kontakts", + "sms_order_time2chat_message_error": "Es ist ein Fehler aufgetreten: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_en_GB.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_en_GB.json new file mode 100644 index 000000000000..63b0c93e8d24 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_en_GB.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Order a Time2Chat number", + "sms_order_time2chat_description": "Please fill in the information below so that we can process your order.", + "sms_order_time2chat_action_order": "Continue", + "sms_order_time2chat_action_cancel": "Cancel", + "sms_order_time2chat_label_phonenumber": "Phone number (in international format 0033 or +33)", + "sms_order_time2chat_label_website": "Website", + "sms_order_time2chat_label_name": "Name", + "sms_order_time2chat_label_company_name": "Name of company", + "sms_order_time2chat_label_brand_name": "Brand using the service", + "sms_order_time2chat_label_primary_use_case": "Main use case", + "sms_order_time2chat_label_operational_contact_name": "Contact name", + "sms_order_time2chat_label_operational_contact_email": "Contact email", + "sms_order_time2chat_message_error": "An error occurred: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_es_ES.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_es_ES.json new file mode 100644 index 000000000000..a64ff367df4c --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_es_ES.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Pedir un número Time2Chat", + "sms_order_time2chat_description": "Por favor, complete la información a continuación para que podamos procesar su pedido.", + "sms_order_time2chat_action_order": "Continuar", + "sms_order_time2chat_action_cancel": "Cancelar", + "sms_order_time2chat_label_phonenumber": "Número de teléfono (en formato internacional 0033 o +33)", + "sms_order_time2chat_label_website": "Sitio web", + "sms_order_time2chat_label_name": "Nombre", + "sms_order_time2chat_label_company_name": "Razón social", + "sms_order_time2chat_label_brand_name": "Marca que utiliza el servicio", + "sms_order_time2chat_label_primary_use_case": "Caso de uso principal", + "sms_order_time2chat_label_operational_contact_name": "Nombre del contacto", + "sms_order_time2chat_label_operational_contact_email": "Correo electrónico del contacto", + "sms_order_time2chat_message_error": "Se ha producido un error: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_CA.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_CA.json new file mode 100644 index 000000000000..892da0c36c59 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_CA.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Commander un numéro Time2Chat", + "sms_order_time2chat_description": "Merci de remplir les informations ci-dessous afin que nous puissions traiter votre commande.", + "sms_order_time2chat_action_order": "Continuer", + "sms_order_time2chat_action_cancel": "Annuler", + "sms_order_time2chat_label_phonenumber": "Numéro de téléphone (au format international 0033 ou +33)", + "sms_order_time2chat_label_website": "Site internet", + "sms_order_time2chat_label_name": "Nom", + "sms_order_time2chat_label_company_name": "Raison sociale", + "sms_order_time2chat_label_brand_name": "Marque utilisant le service", + "sms_order_time2chat_label_primary_use_case": "Cas d'utilisation principal", + "sms_order_time2chat_label_operational_contact_name": "Nom du contact", + "sms_order_time2chat_label_operational_contact_email": "Email du contact", + "sms_order_time2chat_message_error": "Une erreur est survenue : {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_FR.json new file mode 100644 index 000000000000..892da0c36c59 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_fr_FR.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Commander un numéro Time2Chat", + "sms_order_time2chat_description": "Merci de remplir les informations ci-dessous afin que nous puissions traiter votre commande.", + "sms_order_time2chat_action_order": "Continuer", + "sms_order_time2chat_action_cancel": "Annuler", + "sms_order_time2chat_label_phonenumber": "Numéro de téléphone (au format international 0033 ou +33)", + "sms_order_time2chat_label_website": "Site internet", + "sms_order_time2chat_label_name": "Nom", + "sms_order_time2chat_label_company_name": "Raison sociale", + "sms_order_time2chat_label_brand_name": "Marque utilisant le service", + "sms_order_time2chat_label_primary_use_case": "Cas d'utilisation principal", + "sms_order_time2chat_label_operational_contact_name": "Nom du contact", + "sms_order_time2chat_label_operational_contact_email": "Email du contact", + "sms_order_time2chat_message_error": "Une erreur est survenue : {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_it_IT.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_it_IT.json new file mode 100644 index 000000000000..bb19de12a5f0 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_it_IT.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Comandare un numero Time2Chat", + "sms_order_time2chat_description": "Grazie per compilare le informazioni qui sotto affinché possiamo elaborare il tuo ordine.", + "sms_order_time2chat_action_order": "Continua", + "sms_order_time2chat_action_cancel": "Annulla", + "sms_order_time2chat_label_phonenumber": "Numero di telefono (nel formato internazionale 0033 o +33)", + "sms_order_time2chat_label_website": "Sito internet", + "sms_order_time2chat_label_name": "Nome", + "sms_order_time2chat_label_company_name": "Ragione sociale", + "sms_order_time2chat_label_brand_name": "Marca che utilizza il servizio", + "sms_order_time2chat_label_primary_use_case": "Caso d'uso principale", + "sms_order_time2chat_label_operational_contact_name": "Nome del contatto", + "sms_order_time2chat_label_operational_contact_email": "Email del contatto", + "sms_order_time2chat_message_error": "Si è verificato un errore: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pl_PL.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pl_PL.json new file mode 100644 index 000000000000..25896add2766 --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pl_PL.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Zamów numer Time2Chat", + "sms_order_time2chat_description": "Proszę wypełnić poniższe informacje, abyśmy mogli przetworzyć Twoje zamówienie.", + "sms_order_time2chat_action_order": "Kontynuuj", + "sms_order_time2chat_action_cancel": "Anuluj", + "sms_order_time2chat_label_phonenumber": "Numer telefonu (w formacie międzynarodowym 0033 lub +33)", + "sms_order_time2chat_label_website": "Strona internetowa", + "sms_order_time2chat_label_name": "Nazwa", + "sms_order_time2chat_label_company_name": "Nazwa firmy", + "sms_order_time2chat_label_brand_name": "Marka korzystająca z usługi", + "sms_order_time2chat_label_primary_use_case": "Główny przypadek użycia", + "sms_order_time2chat_label_operational_contact_name": "Imię i nazwisko kontaktu", + "sms_order_time2chat_label_operational_contact_email": "Email kontaktu", + "sms_order_time2chat_message_error": "Wystąpił błąd: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pt_PT.json b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pt_PT.json new file mode 100644 index 000000000000..64a8be4d80cc --- /dev/null +++ b/packages/manager/modules/sms/src/sms/senders/orderTime2Chat/translations/Messages_pt_PT.json @@ -0,0 +1,15 @@ +{ + "sms_order_time2chat_title": "Encomendar um número Time2Chat", + "sms_order_time2chat_description": "Por favor, preencha as informações abaixo para que possamos processar o seu pedido.", + "sms_order_time2chat_action_order": "Continuar", + "sms_order_time2chat_action_cancel": "Anular", + "sms_order_time2chat_label_phonenumber": "Número de telefone (no formato internacional 0033 ou +33)", + "sms_order_time2chat_label_website": "Site", + "sms_order_time2chat_label_name": "Nome", + "sms_order_time2chat_label_company_name": "Razão social", + "sms_order_time2chat_label_brand_name": "Marca que utiliza o serviço", + "sms_order_time2chat_label_primary_use_case": "Caso de uso principal", + "sms_order_time2chat_label_operational_contact_name": "Nome do contato", + "sms_order_time2chat_label_operational_contact_email": "Email do contato", + "sms_order_time2chat_message_error": "Ocorreu um erro: {{error}}" +} diff --git a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.component.js b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.component.js index 6f4ce6dfc5fc..d5a2f7a7beab 100644 --- a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.component.js +++ b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.component.js @@ -5,11 +5,13 @@ import controller from './telecom-sms-senders.controller'; import template from './telecom-sms-senders.html'; import add from './add'; +import orderTime2Chat from './orderTime2Chat'; +import configureTime2Chat from './configure-time2chat'; const moduleName = 'ovhManagerSmsSendersComponent'; angular - .module(moduleName, ['ui.router', add]) + .module(moduleName, ['ui.router', add, orderTime2Chat, configureTime2Chat]) .config(($stateProvider) => { $stateProvider.state('sms.service.senders', { url: '/senders', diff --git a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.controller.js b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.controller.js index b361fd8b7110..4da5c504d9c5 100644 --- a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.controller.js +++ b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.controller.js @@ -27,6 +27,7 @@ export default class { OvhApiSms, TucToast, TucToastError, + smsFeatureAvailability, ) { this.$stateParams = $stateParams; this.$q = $q; @@ -42,6 +43,7 @@ export default class { }; this.TucToast = TucToast; this.TucToastError = TucToastError; + this.smsFeatureAvailability = smsFeatureAvailability; } $onInit() { @@ -72,7 +74,7 @@ export default class { .all( map(senders, (sender) => { set(sender, 'serviceInfos', null); - if (sender.type === 'virtual') { + if (['virtual', 'time2chat'].includes(sender.type)) { const number = `00${trimStart(sender.sender, '+')}`; return this.api.sms.virtualNumbers .getVirtualNumbersServiceInfos({ number }) @@ -291,7 +293,7 @@ export default class { if (sender.status === 'waitingValidation') { return false; } - return sender.type === 'virtual' + return ['virtual', 'time2chat'].includes(sender.type) ? sender.serviceInfos.status !== 'expired' : true; } @@ -303,7 +305,7 @@ export default class { */ static canTerminate(sender) { return ( - sender.type === 'virtual' && + ['virtual', 'time2chat'].includes(sender.type) && sender.serviceInfos.canDeleteAtExpiration && sender.serviceInfos.status !== 'expired' ); diff --git a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.html b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.html index bf96a39cbdc8..695c10fa1d89 100644 --- a/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.html +++ b/packages/manager/modules/sms/src/sms/senders/telecom-sms-senders.html @@ -34,47 +34,18 @@
-
- - -
+ + +
@@ -311,21 +302,36 @@ data-translate="sms_edit" > -
  • +
  • + +
  • +
  • -
  • +
  • diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_de_DE.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_de_DE.json index 6fe1244e9237..f229aa1a390c 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_de_DE.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_de_DE.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_ko": "Oups ! Impossible de résilier le numéro virtuel.
    {{error}}", "sms_senders_add_warning": "Ihre Anfrage wird innerhalb von 48 Stunden bearbeitet.", "sms_senders_breadcrumb": "Absender", - "sms_senders_label_comment": "Kommentar" + "sms_senders_label_comment": "Kommentar", + "sms_senders_order_time2chat": "Bestellen Sie eine Nr. Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_en_GB.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_en_GB.json index ca5973b25383..c7866e3d52ac 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_en_GB.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_en_GB.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_info_cancel": "Are you sure you want to cancel the termination request for the virtual number “{{ number }}”?", "sms_senders_terminate_sender_ko": "Oops! Unable to cancel the virtual number.
    {{error}}", "sms_senders_add_warning": "Your request will be processed within 48 hours", - "sms_senders_breadcrumb": "Senders" + "sms_senders_breadcrumb": "Senders", + "sms_senders_order_time2chat": "Order a Time2Chat number" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_es_ES.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_es_ES.json index 1d02a2652da6..79952fa3db93 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_es_ES.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_es_ES.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_ko": "¡Vaya! No se ha podido dar de baja el número virtual.
    {{error}}", "sms_senders_add_warning": "Trataremos su solicitud en un plazo de 48 horas.", "sms_senders_label_comment": "Comentario", - "sms_senders_breadcrumb": "Remitentes" + "sms_senders_breadcrumb": "Remitentes", + "sms_senders_order_time2chat": "Pedir un n° Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_CA.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_CA.json index d6c9ba672a1f..21f55f3cfbc0 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_CA.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_CA.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_info": "Voulez-vous résilier le n° virtuel «{{ number }}» (La résiliation sera effective le {{ date }}) ?", "sms_senders_terminate_sender_info_cancel": "Voulez-vous annuler la demande de résiliation pour le n° virtuel «{{ number }}» ?", "sms_senders_terminate_sender_ko": "Oups ! Impossible de résilier le numéro virtuel.
    {{error}}", - "sms_senders_add_warning": "Le traitement de votre demande sera effectué dans un délai de 48h" + "sms_senders_add_warning": "Le traitement de votre demande sera effectué dans un délai de 48h", + "sms_senders_order_time2chat": "Commander un n° Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_FR.json index d6c9ba672a1f..21f55f3cfbc0 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_FR.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_fr_FR.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_info": "Voulez-vous résilier le n° virtuel «{{ number }}» (La résiliation sera effective le {{ date }}) ?", "sms_senders_terminate_sender_info_cancel": "Voulez-vous annuler la demande de résiliation pour le n° virtuel «{{ number }}» ?", "sms_senders_terminate_sender_ko": "Oups ! Impossible de résilier le numéro virtuel.
    {{error}}", - "sms_senders_add_warning": "Le traitement de votre demande sera effectué dans un délai de 48h" + "sms_senders_add_warning": "Le traitement de votre demande sera effectué dans un délai de 48h", + "sms_senders_order_time2chat": "Commander un n° Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_it_IT.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_it_IT.json index 3e5eb8f69f0f..38f948513687 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_it_IT.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_it_IT.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_info_cancel": "Vuoi annullare la richiesta di disattivazione del numero virtuale «{{ number }}»?", "sms_senders_terminate_sender_ko": "Ops! Impossibile disattivare il numero virtuale:
    {{error}}", "sms_senders_add_warning": "La tua richiesta verrà gestita entro 48 ore", - "sms_senders_breadcrumb": "Mittenti" + "sms_senders_breadcrumb": "Mittenti", + "sms_senders_order_time2chat": "Comandare un n° Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_pl_PL.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_pl_PL.json index 3557a9642803..c32134cae03c 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_pl_PL.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_pl_PL.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_ko": "Ojej! Nie można przetworzyć rezygnacji z wirtualnego numeru.
    {{error}}", "sms_senders_add_warning": "Twoje zlecenie zostanie przetworzone w ciągu 48 godzin", "sms_senders_label_comment": "Komentarz", - "sms_senders_breadcrumb": "Nadawcy" + "sms_senders_breadcrumb": "Nadawcy", + "sms_senders_order_time2chat": "Zamów numer Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/senders/translations/Messages_pt_PT.json b/packages/manager/modules/sms/src/sms/senders/translations/Messages_pt_PT.json index a52c55fcd463..67b46c8bb6e3 100644 --- a/packages/manager/modules/sms/src/sms/senders/translations/Messages_pt_PT.json +++ b/packages/manager/modules/sms/src/sms/senders/translations/Messages_pt_PT.json @@ -55,5 +55,6 @@ "sms_senders_terminate_sender_ko": "Oups ! Impossible de résilier le numéro virtuel.
    {{error}}", "sms_senders_breadcrumb": "Remetentes", "sms_senders_label_comment": "Comentário", - "sms_senders_add_warning": "O tratamento do seu pedido será efetuado num prazo de 48h" + "sms_senders_add_warning": "O tratamento do seu pedido será efetuado num prazo de 48h", + "sms_senders_order_time2chat": "Encomendar um n° Time2Chat" } diff --git a/packages/manager/modules/sms/src/sms/telecom-sms.constant.js b/packages/manager/modules/sms/src/sms/telecom-sms.constant.js index ac0dc842aa27..07ce6ea6dec1 100644 --- a/packages/manager/modules/sms/src/sms/telecom-sms.constant.js +++ b/packages/manager/modules/sms/src/sms/telecom-sms.constant.js @@ -257,10 +257,13 @@ const SMS_PHONEBOOKS = { }, }; +export const PHONE_NUMBER_FOR_TIME2CHAT_REGEX = /^(\+33|0033)[1-9](?:[\s.-]?\d{2}){4}$/; + export default { SMPP_GUIDES, SMS_URL, SMS_GUIDES, SMS_ALERTS, SMS_PHONEBOOKS, + PHONE_NUMBER_FOR_TIME2CHAT_REGEX, }; diff --git a/packages/manager/modules/sms/src/sms/telecom-sms.routing.js b/packages/manager/modules/sms/src/sms/telecom-sms.routing.js index d517e246c577..74583dceda38 100644 --- a/packages/manager/modules/sms/src/sms/telecom-sms.routing.js +++ b/packages/manager/modules/sms/src/sms/telecom-sms.routing.js @@ -45,6 +45,7 @@ export default /* @ngInject */ ($stateProvider) => { ovhFeatureFlipping.checkFeatureAvailability([ 'sms:hlr', 'sms:response', + 'sms:time2chat', ]), trackClick: /* @ngInject */ (atInternet) => (hit) => { atInternet.trackClick({ diff --git a/packages/manager/modules/sms/src/sms/telecom-sms.service.js b/packages/manager/modules/sms/src/sms/telecom-sms.service.js index 3e23b6cdd934..32c6e7b432c5 100644 --- a/packages/manager/modules/sms/src/sms/telecom-sms.service.js +++ b/packages/manager/modules/sms/src/sms/telecom-sms.service.js @@ -178,4 +178,48 @@ export default /* @ngInject */ ($http, $timeout, iceberg) => ({ }); return filterRequest; }, + + getContactInfo(serviceName, number) { + return $http + .get(`/sms/${serviceName}/virtualNumbers/${number}/time2chat/contact`) + .then(({ data }) => data); + }, + + getAutoResponseMessage(serviceName, number) { + return $http + .get( + `/sms/${serviceName}/virtualNumbers/${number}/time2chat/autoResponse`, + ) + .then(({ data }) => data); + }, + + getKyc(serviceName, number) { + return $http + .get(`/sms/${serviceName}/virtualNumbers/${number}/time2chat/kyc`) + .then(({ data }) => data); + }, + + updateContactInfo(serviceName, number, params) { + return $http + .put( + `/sms/${serviceName}/virtualNumbers/${number}/time2chat/contact`, + params, + ) + .then(({ data }) => data); + }, + + updateAutoResponseMessage(serviceName, number, params) { + return $http + .put( + `/sms/${serviceName}/virtualNumbers/${number}/time2chat/autoResponse`, + params, + ) + .then(({ data }) => data); + }, + + updateKyc(serviceName, number, params) { + return $http + .put(`/sms/${serviceName}/virtualNumbers/${number}/time2chat/kyc`, params) + .then(({ data }) => data); + }, }); diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_de_DE.json b/packages/manager/modules/sms/src/sms/translations/Messages_de_DE.json index f592551275c3..fe99191bcfe1 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_de_DE.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_de_DE.json @@ -41,5 +41,6 @@ "sms_reset": "Zurücksetzen", "sms_submit": "Bestätigen", "sms_today": "Heute", - "sms_yes": "Ja" + "sms_yes": "Ja", + "sms_configure": "Konfigurieren" } diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_en_GB.json b/packages/manager/modules/sms/src/sms/translations/Messages_en_GB.json index 758d1909cc25..de461093d30b 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_en_GB.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_en_GB.json @@ -41,5 +41,6 @@ "sms_header_guide": "Guides", "sms_header_guide_start_with_sms": "Getting started with OVHcloud SMS", "sms_smpp_channel_qualification_marketing": "Marketing", - "sms_smpp_channel_qualification_transactional": "Transactional" + "sms_smpp_channel_qualification_transactional": "Transactional", + "sms_configure": "Configure" } diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_es_ES.json b/packages/manager/modules/sms/src/sms/translations/Messages_es_ES.json index fb09f84bbb06..51ef05878e0b 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_es_ES.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_es_ES.json @@ -41,5 +41,6 @@ "sms_header_guide": "Guías", "sms_header_guide_start_with_sms": "Empezar con los SMS de OVHcloud", "sms_smpp_channel_qualification_marketing": "Marketing", - "sms_smpp_channel_qualification_transactional": "Transaccional" + "sms_smpp_channel_qualification_transactional": "Transaccional", + "sms_configure": "Configurar" } diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_fr_CA.json b/packages/manager/modules/sms/src/sms/translations/Messages_fr_CA.json index b4f0c03212f9..04fe71307dc0 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_fr_CA.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_fr_CA.json @@ -34,6 +34,7 @@ "sms_common_resiliation": "Résilier", "sms_delete": "Supprimer", "sms_edit": "Éditer", + "sms_configure": "Configurer", "sms_loading": "Chargement en cours", "sms_modify": "Modifier", "sms_no": "non", diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_fr_FR.json b/packages/manager/modules/sms/src/sms/translations/Messages_fr_FR.json index b4f0c03212f9..04fe71307dc0 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_fr_FR.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_fr_FR.json @@ -34,6 +34,7 @@ "sms_common_resiliation": "Résilier", "sms_delete": "Supprimer", "sms_edit": "Éditer", + "sms_configure": "Configurer", "sms_loading": "Chargement en cours", "sms_modify": "Modifier", "sms_no": "non", diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_it_IT.json b/packages/manager/modules/sms/src/sms/translations/Messages_it_IT.json index 9fa6dca7f1dd..ae8d99a5be87 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_it_IT.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_it_IT.json @@ -41,5 +41,6 @@ "sms_header_guide": "Guide", "sms_header_guide_start_with_sms": "Come utilizzare gli SMS OVHcloud", "sms_smpp_channel_qualification_marketing": "Marketing", - "sms_smpp_channel_qualification_transactional": "Transazionale" + "sms_smpp_channel_qualification_transactional": "Transazionale", + "sms_configure": "Configura" } diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_pl_PL.json b/packages/manager/modules/sms/src/sms/translations/Messages_pl_PL.json index 0d83756bd9d9..e390e8993dd0 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_pl_PL.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_pl_PL.json @@ -41,5 +41,6 @@ "sms_header_guide": "Przewodniki", "sms_header_guide_start_with_sms": "Pierwsze kroki z SMS OVHcloud", "sms_smpp_channel_qualification_marketing": "Marketing", - "sms_smpp_channel_qualification_transactional": "Transakcyjny" + "sms_smpp_channel_qualification_transactional": "Transakcyjny", + "sms_configure": "Skonfiguruj" } diff --git a/packages/manager/modules/sms/src/sms/translations/Messages_pt_PT.json b/packages/manager/modules/sms/src/sms/translations/Messages_pt_PT.json index aace1db1132c..457157aee14a 100644 --- a/packages/manager/modules/sms/src/sms/translations/Messages_pt_PT.json +++ b/packages/manager/modules/sms/src/sms/translations/Messages_pt_PT.json @@ -41,5 +41,6 @@ "sms_reset": "Reset", "sms_submit": "Validar", "sms_today": "Hoje", - "sms_yes": "sim" + "sms_yes": "sim", + "sms_configure": "Configurar" }