diff --git a/src/components/Tutorial/TutorialWelcome.tsx b/src/components/Tutorial/TutorialWelcome.tsx index da623e8c90c3b40c8b43676b9ec7d6cdbe5f6385..690955291d782df1c8ca9e381735a2760bc3606c 100644 --- a/src/components/Tutorial/TutorialWelcome.tsx +++ b/src/components/Tutorial/TutorialWelcome.tsx @@ -40,19 +40,18 @@ const TutorialWelcome: React.FC<TutorialWelcomeProps> = ({ username = instanceSettings.public_name } const environementService = new EnvironementService() + const baseUrl = environementService.getPublicURL() const template = welcomeTemplate({ title: 'Bienvenue sur Ecolyo !', username: username, + baseUrl: baseUrl, clientUrl: client.options.uri, - cloudImageUrl: - environementService.getPublicURL() + '/assets/godCloud.svg', - ecolyoPhoneImageUrl: - environementService.getPublicURL() + '/assets/ecolyoPhone.svg', - androidImageUrl: - environementService.getPublicURL() + '/assets/android.png', - menuImageUrl: environementService.getPublicURL() + '/assets/menu.svg', - appleImageUrl: environementService.getPublicURL() + '/assets/apple.svg', - shareImageUrl: environementService.getPublicURL() + '/assets/share.svg', + cloudImageUrl: baseUrl + '/assets/godCloud.png', + ecolyoPhoneImageUrl: baseUrl + '/assets/ecolyoPhone.png', + androidImageUrl: baseUrl + '/assets/android.png', + menuImageUrl: baseUrl + '/assets/menu.png', + appleImageUrl: baseUrl + '/assets/apple.png', + shareImageUrl: baseUrl + '/assets/share.png', }) const mailData = { diff --git a/src/notifications/base/footer.hbs b/src/notifications/base/footer.hbs index 2a947681a6dd5f6053d4ec6e473b7ef2f24e4d77..29a46cfa742ca4a8b8cc2069ae0e061c9d09b4c5 100644 --- a/src/notifications/base/footer.hbs +++ b/src/notifications/base/footer.hbs @@ -1,22 +1,22 @@ <mj-section background-color="black"> <mj-section> <mj-column vertical-align="middle"> - <mj-image src="https://ecolyo.com/assets/logo-grandlyon.svg" alt="logo-grandlyon"> + <mj-image src="{{baseUrl}}/assets/logo-grandlyon.png" alt="logo-grandlyon"> </mj-image> </mj-column> <mj-column vertical-align="middle"> - <mj-image src="https://ecolyo.com/assets/logo-gouv.svg" alt="logo-gouvernement"> + <mj-image src="{{baseUrl}}/assets/logo-gouv.png" alt="logo-gouvernement"> </mj-image> </mj-column> <mj-column vertical-align="middle" > - <mj-image src="https://ecolyo.com/assets/logo-territoire.svg" alt="logo-territoire" height="100px"> + <mj-image src="{{baseUrl}}/assets/logo-territoire.png" alt="logo-territoire" height="100px"> </mj-image> </mj-column> <mj-column vertical-align="middle"> - <mj-image src="https://ecolyo.com/assets/logo-tiga-white.svg" alt="logo-tiga" > + <mj-image src="{{baseUrl}}/assets/logo-tiga-white.png" alt="logo-tiga" > </mj-image> </mj-column> diff --git a/src/notifications/base/header.hbs b/src/notifications/base/header.hbs index 8f66984cbe48f1a0b86139684a9b3e0041e45548..39f04c4f6176f962a334be0118b474747ff0332e 100644 --- a/src/notifications/base/header.hbs +++ b/src/notifications/base/header.hbs @@ -1,6 +1,19 @@ -<mj-hero background-color="radial-gradient(96.2% 96.2% at 50% 3.8%, #343641 0%, #1B1C22 100%)" padding="17px"> - <mj-text align="center" color="white" padding-top="20px" font-size="24px" font-family="Lato" font-weight="normal"> - <img style="vertical-align: middle; margin-right: 12px" src="https://ecolyo.com/assets/ecolyo-icon.svg" alt="Ecolyo"/> - {{title}} - </mj-text> -</mj-hero> +<mj-section css-class="background" padding="17px" align="center"> + <mj-social + css-class="button-with-icon" + icon-size="30px" + mode="horizontal" + font-size="24px" + font-family="Lato" + font-weight="normal" + > + <mj-social-element + color="white" + src="{{baseUrl}}/assets/ecolyo-icon.png" + name="ecolyo" + padding="0 10px 0 0" + > + Du nouveau dans mon espace ecolyo + </mj-social-element> + </mj-social> +</mj-section> \ No newline at end of file diff --git a/src/notifications/consumptionLimit.hbs b/src/notifications/consumptionLimit.hbs index 735602d72b0014a8836d2a0fb32b8f15f2190232..75042861ba17f4952dceff523d50446f47ac59e3 100644 --- a/src/notifications/consumptionLimit.hbs +++ b/src/notifications/consumptionLimit.hbs @@ -13,20 +13,20 @@ Bonjour hugo, </mj-text> <mj-text color="white" font-weight="400" font-size="18px"> - La limite de consommation d'eau journalière que vous avez fixée à {{userLimit}} litres a été dépassée le {{limitDate}}.<br /> + La limite de consommation d'eau journalière que vous avez fixée à {{userLimit}} L a été dépassée le {{limitDate}}.<br /> Pour comprendre ce qu’il s’est passé, rendez-vous dans Ecolyo. </mj-text> </mj-column> <mj-column width="40%" vertical-align="middle"> - <mj-image src="https://ecolyo-agent.self-data.alpha.grandlyon.com/assets/baignoire.svg" width="132px" align="center"></mj-image> + <mj-image src="{{baseUrl}}/assets/baignoire.png" width="132px" align="center"></mj-image> </mj-column> </mj-section> <mj-section background-color="#121212"> <mj-column> <mj-button color="black" background-color="#F1C017" font-size="20px" font-weight="700" font-family="Lato" css-class="button"> - <img style="vertical-align: middle; margin-right: 12px" src="https://ecolyo.com/assets/ecolyo-icon.svg" /> + <img style="vertical-align: middle; margin-right: 12px" src="{{baseUrl}}/assets/ecolyo-icon.png" /> <a href="{{clientUrl}}" style="text-decoration: none; color: black">Voir dans Ecolyo</a> </mj-button> <mj-text color="white" font-weight="400" font-size="18px" align="center"> diff --git a/src/notifications/monthlyReport.hbs b/src/notifications/monthlyReport.hbs index a6760fef300bf494054a9fd37245b21a25731877..ea797e89d02bea40ceab3f09952c569f62507c51 100644 --- a/src/notifications/monthlyReport.hbs +++ b/src/notifications/monthlyReport.hbs @@ -2,6 +2,20 @@ <mj-head> {{#> style}} {{/style}} + <mj-style> + .elec-text { + color: #d87b39 !important; + font-weight: bold !important; + } + .gas-text { + color: #45d1b8 !important; + font-weight: bold !important; + } + .water-text { + color: #3a98ec !important; + font-weight: bold !important; + } + </mj-style> </mj-head> <mj-body background-color="#121212" css-class="main"> {{#> base/header}} @@ -13,7 +27,7 @@ Bonjour {{username}}, </mj-text> {{#if consumptionTextExist }} - <mj-text color="white" font-weight="400" font-size="18px">Ce mois ci vous avez consommé {{consumptionText}} par rapport au mois de {{previousMonth}}. <br /><br /> Retrouvez le détail de vos consommations et plus d'informations dans votre bilan Ecolyo.</mj-text> + <mj-text color="white" font-weight="400" font-size="18px">Ce mois ci vous avez consommé {{{consumptionText}}} par rapport au mois de {{previousMonth}}. <br /><br /> Retrouvez le détail de vos consommations et plus d'informations dans votre bilan Ecolyo.</mj-text> {{/if}} {{#unless consumptionTextExist }} <mj-text color="white" font-weight="400" font-size="18px">Retrouvez le détail de vos consommations et plus d'informations dans votre bilan Ecolyo.</mj-text> @@ -25,10 +39,11 @@ </mj-section> <mj-section background-color="#121212"> <mj-column> - <mj-button color="black" background-color="#F1C017" css-class="button" font-size="20px" font-weight="700" font-family="Lato"> - <img style="vertical-align: middle; margin-right: 12px" src="https://ecolyo.com/assets/ecolyo-icon.svg" /> - <a href="{{clientUrl}}" style="text-decoration: none; color: black">Voir mon bilan</a> - </mj-button> + <mj-social css-class="button-with-icon" icon-size="30px" mode="horizontal" font-size="20px" font-weight="700" font-family="Lato"> + <mj-social-element src="{{baseUrl}}/assets/ecolyo-icon.png" name="ecolyo" padding="0 10px 0 0" href="{{clientUrl}}"> + Voir mon bilan + </mj-social-element> + </mj-social> </mj-column> </mj-section> <mj-section background-color="radial-gradient(96.2% 96.2% at 50% 3.8%, #343641 0%, #1B1C22 100%)"> @@ -38,7 +53,7 @@ </mj-text> <mj-image src="{{infoImage}}" width="82px" alt="nouveauté"></mj-image> <mj-text color="white" font-weight="400" font-size="18px" align="center" css-class="custom-link">{{{infoText}}}</mj-text> - {{#if serviceNews}} + {{#if isServiceNews}} <mj-divider css-class="m-divider"></mj-divider> <mj-text css-class="title custom-link" color="white" font-weight="900" font-size="24px" align="center"> {{newsTitle}} diff --git a/src/notifications/style.hbs b/src/notifications/style.hbs index 90ad5ef0123e8b47a0f3c4c2ec93b126407984e1..a3ecf24a5af5eb1aeca7aba6859d8efbde8cba95 100644 --- a/src/notifications/style.hbs +++ b/src/notifications/style.hbs @@ -1,48 +1,30 @@ <mj-style> - .main div{ - line-height: 23.4px !important; - font-family: "Lato" !important; - } + .main div{ line-height: 23.4px !important; font-family: "Lato" !important; } + .main .background{ background: radial-gradient(96.2% 96.2% at 50% 3.8%, + #343641 0%, #1B1C22 100%) !important; } </mj-style> <mj-style> -.small div{ - font-weight: 400 !important; - font-size: 13px !important; - line-height: 23.4px !important; - } + .small div{ font-weight: 400 !important; font-size: 13px !important; + line-height: 23.4px !important; } </mj-style> <mj-style> -.header-title div{ - font-weight: normal !important; - font-size: 24px !important; - line-height: 29px !important; - } + .header-title div{ font-weight: normal !important; font-size: 24px !important; + line-height: 29px !important; } </mj-style> <mj-style> - .m-divider p { - margin: 60px 0 54px 0 !important; - } + .m-divider p { margin: 60px 0 54px 0 !important; } </mj-style> <mj-style> - .button button{ - background-color: #F1C017 !important; - } - .button table { - margin-bottom: 37px !important; - margin-top: 13px !important; - } -.button-small table { - margin-bottom: 21px !important; - margin-top: 13px !important; - } + .button table { background-color: #F1C017 !important; margin: 10px !important + } .button-with-icon td { padding-right: 10px !important; } .button-with-icon + table { background-color: #F1C017 !important; margin: 10px !important; } </mj-style> <mj-style> - .custom-link a { - color: #F1C017 !important; - text-decoration: none !important; - } - .custom-link a:visited { - color: #F1C017 !important; - text-decoration: none !important; - } + .custom-link a { color: #F1C017 !important; text-decoration: none !important; + } .custom-link a:visited { color: #F1C017 !important; text-decoration: none + !important; } </mj-style> +<mj-style> + .text-and-image img { vertical-align: middle!important; margin-right: + 12px!important } +</mj-style> \ No newline at end of file diff --git a/src/notifications/welcome.hbs b/src/notifications/welcome.hbs index deeb85660693c363af062698c3a1eca14970ee31..6682d4ce88d76750fe421b2fcbbb0d3720164a7f 100644 --- a/src/notifications/welcome.hbs +++ b/src/notifications/welcome.hbs @@ -34,17 +34,16 @@ Accédez au service en cliquant sur le lien situé en fin d’email. Puis une fois la page web du service ouverte dans votre navigateur : </mj-text> - <mj-hero background-color="#1B1C22" padding-top="15px"> - <mj-text color="#F1C017" font-weight="600" font-size="18px"> - <img style="vertical-align: middle; margin-right: 12px" src={{androidImageUrl}} /> + <mj-social align="left" icon-size="30px" mode="horizontal" font-weight="600" font-size="18px" padding-top="15px"> + <mj-social-element color="#F1C017" src="https://ecolyo-agent.self-data.alpha.grandlyon.com/assets/android.png" name="ecolyo" padding="0 10px 0 0"> Ecolyo pour Android - </mj-text> - </mj-hero> + </mj-social-element> + </mj-social> - <mj-hero background-color="#1B1C22" padding-top="15px"> + <mj-hero css-class="text-and-image" background-color="#1B1C22" padding-top="15px"> <mj-text color="white" font-weight="600" font-size="18px"> 1 - Appuyez sur les trois petits points du menu en haut à droite - <img style="vertical-align: middle; margin-left: 12px" src={{menuImageUrl}} /> + <img width="4px" src={{menuImageUrl}} /> </mj-text> </mj-hero> <mj-text color="white" font-weight="600" font-size="18px"> @@ -54,17 +53,16 @@ 3 - Nommez la page et appuyez sur "Ajouter". Un raccourci vers la page web est apparu sur l'écran d'accueil de votre smartphone. </mj-text> - <mj-hero background-color="#1B1C22" padding-top="15px"> - <mj-text color="#F1C017" font-weight="600" font-size="18px"> - <img style="vertical-align: middle; margin-right: 12px" src={{appleImageUrl}} /> + <mj-social align="left" icon-size="30px" mode="horizontal" font-weight="600" font-size="18px" padding-top="15px"> + <mj-social-element color="#F1C017" src={{appleImageUrl}} name="ecolyo" padding="0 10px 0 0"> Ecolyo pour Iphone - </mj-text> - </mj-hero> + </mj-social-element> + </mj-social> - <mj-hero background-color="#1B1C22" padding-top="15px" > + <mj-hero css-class="text-and-image" background-color="#1B1C22" padding-top="15px" > <mj-text color="white" font-weight="600" font-size="18px" vertical-align="middle"> 1 - Cliquez sur partager (carré avec flèche pointant vers le haut) - <img style="margin-left: 12px; height: 24px; width: 14px" src={{shareImageUrl}} /> + <img width="16px" src={{shareImageUrl}} /> </mj-text> </mj-hero> <mj-text color="white" font-weight="600" font-size="18px"> @@ -80,12 +78,13 @@ </mj-column> </mj-section> - <mj-section background-color="#1B1C22"> + <mj-section background-color="#1B1C22"> <mj-column> - <mj-button color="black" background-color="#F1C017" font-size="20px" font-weight="700" font-family="Lato" css-class="button-small"> - <img style="vertical-align: middle; margin-right: 12px" src="https://ecolyo.com/assets/ecolyo-icon.svg" /> - <a href="{{clientUrl}}" style="text-decoration: none; color: black">J'ouvre mon Ecolyo</a> - </mj-button> + <mj-social css-class="button-with-icon" icon-size="30px" mode="horizontal" font-size="20px" font-weight="700" font-family="Lato"> + <mj-social-element src="{{baseUrl}}/assets/ecolyo-icon.png" name="ecolyo" padding="0 10px 0 0" href="{{clientUrl}}"> + J'ouvre mon Ecolyo + </mj-social-element> + </mj-social> <mj-text color="white" font-weight="400" font-size="18px" font-style="italic" align="center"> Si le bouton ne fonctionne pas, copiez le lien dans votre navigateur. </mj-text> diff --git a/src/services/environement.service.ts b/src/services/environement.service.ts index ada633c3a44b3a07d5405e8c68610b3520d13af1..16df3f8b93cb44c46315d308e45d236fb3d26a16 100644 --- a/src/services/environement.service.ts +++ b/src/services/environement.service.ts @@ -13,7 +13,7 @@ export default class EnvironementService { if (this.getEnvironement() === 'production') { return 'https://ecolyo-agent.grandlyon.com' } else { - return 'https://ecolyo-agent-rec.grandlyon.com' + return 'https://ecolyo-agent.self-data.alpha.grandlyon.com' } } } diff --git a/src/targets/services/consumptionAlert.ts b/src/targets/services/consumptionAlert.ts index d3120298aed65aa9513eabf8e16aeab4ede2b175..60e8320b57ad2cc1f2d103ac3d73fbac8751d313 100644 --- a/src/targets/services/consumptionAlert.ts +++ b/src/targets/services/consumptionAlert.ts @@ -10,6 +10,7 @@ import mjml2html from 'mjml' import { FluidType } from 'enum/fluid.enum' import ConsumptionService from 'services/consumption.service' import { getMonthName } from 'utils/utils' +import EnvironementService from 'services/environement.service' const log = logger.namespace('alert') @@ -74,8 +75,10 @@ const consumptionAlert = async ({ client }: ConsumptionAlertProps) => { const mailService = new MailService() const today = DateTime.local().setZone('utc', { keepLocalTime: true }) + const environementService = new EnvironementService() const template = consumptionLimit({ title: 'Ça déborde !', + baseUrl: environementService.getPublicURL(), username: username, clientUrl: appLink, unsubscribeUrl: appLink + '/#/options', diff --git a/src/targets/services/monthlyReportNotification.ts b/src/targets/services/monthlyReportNotification.ts index f57719735ea84cec98f70b2bd21db31be7a12712..12a8340e2297b67a459ac929f095e100bb89b4ec 100644 --- a/src/targets/services/monthlyReportNotification.ts +++ b/src/targets/services/monthlyReportNotification.ts @@ -70,9 +70,15 @@ const buildConsumptionText = async (client: Client) => { : 0 if (value) { if (value > 0) { - text += '+' + (value * 100).toFixed(2) + " % d'électricité" + text += + '<span class="elec-text">+' + + (value * 100).toFixed(2) + + " % d'électricité </span>" } else { - text += (value * 100).toFixed(2) + " % d'électricité" + text += + '<span class="elec-text">' + + (value * 100).toFixed(2) + + " % d'électricité </span>" } } } @@ -87,9 +93,15 @@ const buildConsumptionText = async (client: Client) => { text += ', ' } if (value > 0) { - text += '+' + (value * 100).toFixed(2) + ' % de gaz' + text += + '<span class="gas-text">+' + + (value * 100).toFixed(2) + + ' % de gaz</span>' } else { - text += (value * 100).toFixed(2) + ' % de gaz' + text += + '<span class="gas-text">' + + (value * 100).toFixed(2) + + ' % de gaz</span>' } } } @@ -102,9 +114,15 @@ const buildConsumptionText = async (client: Client) => { text += ', ' } if (value > 0) { - text += '+' + (value * 100).toFixed(2) + " % d'eau" + text += + '<span class="water-text">+' + + (value * 100).toFixed(2) + + " % d'eau</span>" } else { - text += (value * 100).toFixed(2) + " % d'eau" + text += + '<span class="water-text">' + + (value * 100).toFixed(2) + + " % d'eau</span>" } } } @@ -134,7 +152,7 @@ const getMonthlyReport = async ( 'GET', environementService.isProduction() ? `/remote/org.ecolyo.backoffice?year=${year}&month=${month}` - : `/remote/org.ecolyo.backoffice.rec?year=${year}&month=${month}` + : `https://ecolyo-agent.self-data.alpha.grandlyon.com/api/common/monthlyReport?year=${year}&month=${month}` ) return result } catch (error) { @@ -231,17 +249,23 @@ const monthlyReportNotification = async ({ } const consumptionText = await buildConsumptionText(client) - const environementService = new EnvironementService() const isPoll: boolean = monthlyReport.question !== '' && monthlyReport.link !== '' + const isServiceNews: boolean = + monthlyReport.newsTitle !== '' && monthlyReport.newsContent !== '' + const date = DateTime.local() .setZone('utc', { keepLocalTime: true }) .minus({ month: 1 }) + const environementService = new EnvironementService() + const baseUrl = environementService.getPublicURL() + const template = monthlyReportTemplate({ title: 'Du nouveau dans votre espace Ecolyo !', + baseUrl: baseUrl, username: username, clientUrl: url, unsubscribeUrl: unsubscribeUrl, @@ -250,9 +274,9 @@ const monthlyReportNotification = async ({ infoText: monthlyReport.info.replace(/{cozyUrl}/g, appLink + '#/'), infoImage: monthlyReport.image !== '' - ? environementService.getPublicURL() + monthlyReport.image - : environementService.getPublicURL() + '/assets/astuce.svg', - serviceNews: true, + ? baseUrl + monthlyReport.image + : baseUrl + '/assets/astuce.png', + isServiceNews: isServiceNews, isPoll: isPoll, newsTitle: monthlyReport.newsTitle.replace(/{cozyUrl}/g, appLink + '#/'), newsContent: monthlyReport.newsContent.replace( @@ -262,8 +286,7 @@ const monthlyReportNotification = async ({ pollText: monthlyReport.question.replace(/{cozyUrl}/g, appLink + '#/'), pollUrl: monthlyReport.link, previousMonth: getMonthName(date), - consoImageUrl: - environementService.getPublicURL() + '/assets/multifluidConsumption.svg', + consoImageUrl: baseUrl + '/assets/multifluidConsumption.png', }) const mailData = {