diff --git a/src/components/Content/Content.tsx b/src/components/Content/Content.tsx index 093d783dd7db279b60f86060c5f71a9d839f872f..0e6c6cb7b1187f8d4a16e1b68486dee66d2d0a43 100644 --- a/src/components/Content/Content.tsx +++ b/src/components/Content/Content.tsx @@ -2,13 +2,17 @@ import React, { useCallback, useEffect } from 'react' import { useClient } from 'cozy-client' import { useRecoilState } from 'recoil' import { history } from 'components/App' - +import MailService from 'services/mail.service' import { ScreenType } from 'enum/screen.enum' import { ModalState, UserProfile } from 'models' import { userProfileState } from 'atoms/userProfile.state' import { screenTypeState } from 'atoms/screenType.state' import { modalState } from 'atoms/modal.state' import UserProfileService from 'services/userProfile.service' +import userInstanceSettings from 'components/Hooks/userInstanceSettings' +import CozyClient from 'cozy-client' +import schema from 'doctypes' +import get from 'lodash/get' import WelcomeModal from 'components/Welcome/WelcomeModal' import FeedbackModal from 'components/Feedback/FeedbackModal' @@ -37,6 +41,31 @@ const Content: React.FC<ContentProps> = ({ const [modal, setModalState] = useRecoilState<ModalState>(modalState) const setWelcomeModalViewed = useCallback(async () => { + let username = '' + const mailService = new MailService() + // Retrieve public name from the stack + const settings = await client + .getStackClient() + .fetchJSON('GET', '/settings/instance') + const publicName = get(settings, 'data.attributes.public_name') + if (publicName) { + username = publicName + } + const bodyBienvenu = mailService.CreateBodyWelcome( + username, + window.location.href + ) + const mailData = { + mode: 'noreply', + subject: '[Ecolyo] - Bienvenu', + parts: [ + { + type: 'text/html', + body: bodyBienvenu, + }, + ], + } + mailService.SendMail(client, mailData) const userProfileService = new UserProfileService(client) await userProfileService .updateUserProfile({ haveSeenWelcomeModal: true }) diff --git a/src/models/index.ts b/src/models/index.ts index 88c73990f4f8351e79fc372dbd9774464e174413..d86d4ffa93254bc9f43e6a3a304daf860760a895 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -7,6 +7,7 @@ export * from './ecogesture.model' export * from './fluid.model' export * from './indicator.model' export * from './konnector.model' +export * from './mail.model' export * from './modal.model' export * from './timePeriod.model' export * from './trigger.model' diff --git a/src/models/mail.model.ts b/src/models/mail.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..208f77ad5a7bda4283cbcf9df4ed41b62384ba29 --- /dev/null +++ b/src/models/mail.model.ts @@ -0,0 +1,10 @@ +export interface MailInfo { + mode: string + subject: string + parts: MailPart +} + +export interface MailPart { + type: string + body: string +} diff --git a/src/services/mail.service.ts b/src/services/mail.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..837f71052fd6e2b6f21b9dd98a3b1523b1ccdd80 --- /dev/null +++ b/src/services/mail.service.ts @@ -0,0 +1,294 @@ +import { Client } from 'cozy-client' +import { MailInfo } from 'models' + +export default class MailService { + public async SendMail( + client: Client, + mailInfo: Record<string, any> + ): Promise<string> { + try { + const jobCollection = client.collection('io.cozy.jobs') + await jobCollection.create('sendmail', mailInfo) + log('Info', 'Welcome Mail Sent') + } catch (e) { + // eslint-disable-next-line no-console + console.error(e) + } + return 'ok' + } + + public CreateBodyWelcome(username: string, clientUrl: string) { + return ` +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Votre bilan hebdomadaire</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <style type="text/css"> + @font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), url(https://fonts.gstatic.com/s/lato/v11/qIIYRU-oROkIk8vfvxw6QvesZW2xOQ-xsNqO47m55DA.woff) format('woff'); + } + /* Fonts and Content */ + body, + td { + font-family: "Lato", sans-serif; + font-size: 14px; + } + body { + background-color: #FFFFFF; + margin: 0; + padding: 0; + -webkit-text-size-adjust: none; + -ms-text-size-adjust: none; + } + h2 { + padding-top: 12px; /* ne fonctionnera pas sous Outlook 2007+ */ + color: #ffffff; + font-size: 22px; + } + </style> + </head> + <body style="margin:0px; padding:0px; -webkit-text-size-adjust:none;"> + <table + width="100%" + cellpadding="0" + cellspacing="0" + border="0" + style="background-color:#000000" + > + <tbody> + <tr> + <td align="center" bgcolor="#FFFFFF"> + <table cellpadding="0" cellspacing="0" border="0"> + <tbody> + <tr> + <td class="w640" width="640" height="40"></td> + </tr> + <!-- entete --> + <tr class="pagetoplogo"> + <td class="w640" width="640"> + <table + class="w640" + width="640" + cellpadding="0" + cellspacing="0" + border="0" + bgcolor="#000000" + > + <tbody> + <tr> + <td class="w30" width="30"></td> + <td + class="w580" + width="580" + valign="middle" + align="center" + > + <div class="pagetoplogo-content" style="color:#FFFFFF; font-size: 30px; font-weight: bold; margin-top: 15px; margin-bottom: 15px;"> + <img + class="w580" + style="text-decoration: none; display: block; margin-bottom: 10px;" + src="data:image/png;base64,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" + alt="Ecolyo" + width="96" + height="96" + /> + <span>Ecolyo</span> + </div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + <!-- separateur horizontal --> + <tr> + <td + class="w640" + width="640" + height="2" + bgcolor="#e3b82a" + ></td> + </tr> + <!-- contenu --> + <tr class="content"> + <td class="w640" width="640" bgcolor="#000000"> + <table + class="w640" + width="640" + cellpadding="0" + cellspacing="0" + border="0" + > + <tbody> + <tr> + <td class="w30" width="30"></td> + <td class="w580" width="580"> + <!-- content area --> + <table + class="w580" + width="580" + cellpadding="0" + cellspacing="0" + border="0" + > + <tbody> + <tr> + <td class="w580" width="580" align="center"> + <h2 + style="color:#FFFFFF; font-size:22px; padding-top:12px;" + > + Bienvenue chez Ecolyo + </h2> + <div + class="article-content" + style="color:#FFFFFF; font-size:16px; padding-top:12px;" + > + + </div> + </td> + </tr> + <tr> + <td class="w30" width="580" height="20"></td> + </tr> + <tr> + <td + class="w580" + width="580" + height="1" + bgcolor="#FFFFFF" + ></td> + </tr> + </tbody> + </table> + <!-- content area --> + <table + class="w580" + width="580" + cellspacing="0" + cellpadding="0" + border="0" + > + <tbody> + <tr> + <td class="w580" width="580" align="left"> + <h2 + style="color:#FFFFFF; font-size:22px; padding-top:12px;" + > + Bonjour ${username}, + </h2 + </td> + </tr> + <tr> + </table> + <!-- content area --> + <table + class="w580" + width="580" + cellspacing="0" + cellpadding="0" + border="0" + > + <tbody> + <tr> + <td class="w580" width="580" align="left"> + <div + class="article-content" + style="color:#FFFFFF; font-size:16px; padding-top:12px;" + > + <p> + Retrouvez l'analyse complète de vos + consommations dans votre application + Ecolyo à l'adresse : + </p> + <a href="${clientUrl}"> + ${clientUrl} + </a> + </div> + </td> + </tr> + <tr> + <td class="w30" width="580" height="20"></td> + </tr> + </tbody> + </table> + </tr> + </tbody> + </table> + </td> + </tr> + <!-- separateur horizontal --> + <tr> + <td + class="w640" + width="640" + height="2" + bgcolor="#e3b82a" + ></td> + </tr> + <!-- pied de page --> + <tr class="pagebottom"> + <td class="w640" width="640"> + <table + class="w640" + width="640" + cellpadding="0" + cellspacing="0" + border="0" + bgcolor="#000000" + > + <tbody> + <tr> + <td colspan="5" height="10"></td> + </tr> + <tr> + <td class="w30" width="30"></td> + <td class="w580" width="580" valign="top"> + <p + align="right" + class="pagebottom-content-left" + style="color:#FFFFFF; font-size:16px; padding-top:12px;" + > + Créé par votre application Ecolyo + </p> + </td> + <td class="w30" width="30"></td> + </tr> + <tr> + <td + colspan="5" + height="10" + style="color:#FFFFFF; font-size:11px; padding-top:12px;" + align="center" + > + </td> + </tr> + <tr> + <td colspan="5" height="10"></td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <td class="w640" width="640" height="60"></td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </body> + </html> + ` + } +} diff --git a/yarn.lock b/yarn.lock index 545ed92b970e09d4bd23ff7f735f165880493c84..cdf1e09371455206900abea31a709a53f42b7cc4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9472,13 +9472,6 @@ minilog@3.1.0, "minilog@https://github.com/cozy/minilog.git#master": dependencies: microee "0.0.6" -"minilog@git+https://github.com/cozy/minilog.git#master": - version "3.1.0" - uid f01f7d9dfe20981177dd34b9662c2f077d818f82 - resolved "git+https://github.com/cozy/minilog.git#f01f7d9dfe20981177dd34b9662c2f077d818f82" - dependencies: - microee "0.0.6" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"