From 7ac51badd7440a3ad94ea14b08292647c9dabe5b Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Mon, 8 Jul 2019 15:54:06 +0200 Subject: [PATCH] Update feedback email with user feeling and optional email --- src/email-templates/feedback/feedback.html | 2 +- src/email-templates/feedback/feedback.mjml | 18 +++++++++++++++++- src/email-templates/feedback/index.ts | 5 +++-- src/email/email.service.ts | 17 +++++++++++++++++ src/email/email.ts | 8 +++++++- 5 files changed, 45 insertions(+), 5 deletions(-) diff --git a/src/email-templates/feedback/feedback.html b/src/email-templates/feedback/feedback.html index c3a6d48..6dbd9be 100644 --- a/src/email-templates/feedback/feedback.html +++ b/src/email-templates/feedback/feedback.html @@ -42,4 +42,4 @@ .title { padding: 7% 10% !important; } - }</style></head><body><div class="body"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:0;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:0;line-height:0;text-align:left;display:inline-block;width:100%;direction:ltr;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="left" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:130px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data_neg.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="130"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="right" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:80px;"><img alt="Logo Grand Lyon" height="auto" src="${options.imageHost}/logo_gl_négatif.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="80"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#f2f2f2;background-color:#f2f2f2;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f2;background-color:#f2f2f2;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tbody><tr><td style="background-color:white;vertical-align:top;padding:3% 6%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tr><td align="center" class="title" style="font-size:0px;padding:3% 10%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:18px;font-weight:bold;line-height:18px;text-align:center;color:#333744;">Feedback</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Un nouveau feedback a été déposée le ${options.datetime}.</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Voici un résumé de la demande :</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Url:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.url}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Version:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.version}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">User-Agent:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.userAgent}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Message:</div></td></tr><tr><td align="left" class="pre" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.message}</div></td></tr><tr><td align="right" style="font-size:0px;padding:3% 0 0 0;padding-top:3%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:right;color:#333744;">L'équipe data.grandlyon.com</div></td></tr><tr><td align="right" style="font-size:0px;padding:10px 25px;padding-top:1%;padding-right:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:105px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="105"></td></tr></tbody></table></td></tr></table></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="center" style="font-size:0px;padding:0;word-break:break-word;"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" ><tr><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://download.data.grandlyon.com/catalogue/srv/fre/rss.search?sortBy=publicationDate&georss=simplepoint&data" target="_blank"><img alt="Logo rss" height="16" src="${options.imageHost}/logo_rss.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="http://www.facebook.com/legrandlyon" target="_blank"><img alt="Logo Facebook" height="16" src="${options.imageHost}/logo_fb.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://twitter.com/grandlyon" target="_blank"><img alt="Logo Twitter" height="16" src="${options.imageHost}/logo_twi.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div></body></html> \ No newline at end of file + }</style></head><body><div class="body"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:0;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:0;line-height:0;text-align:left;display:inline-block;width:100%;direction:ltr;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="left" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:130px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data_neg.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="130"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="right" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:80px;"><img alt="Logo Grand Lyon" height="auto" src="${options.imageHost}/logo_gl_négatif.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="80"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#f2f2f2;background-color:#f2f2f2;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f2;background-color:#f2f2f2;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tbody><tr><td style="background-color:white;vertical-align:top;padding:3% 6%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tr><td align="center" class="title" style="font-size:0px;padding:3% 10%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:18px;font-weight:bold;line-height:18px;text-align:center;color:#333744;">Feedback</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Un nouveau feedback a été déposée le ${options.datetime}.</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Voici un résumé de la demande :</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Email de l\'utilisateur:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.email}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Avis de l\'utilisateur:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.feeling}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Url:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.url}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Version:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.version}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">User-Agent:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.userAgent}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Message:</div></td></tr><tr><td align="left" class="pre" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.message}</div></td></tr><tr><td align="right" style="font-size:0px;padding:3% 0 0 0;padding-top:3%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:right;color:#333744;">L'équipe data.grandlyon.com</div></td></tr><tr><td align="right" style="font-size:0px;padding:10px 25px;padding-top:1%;padding-right:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:105px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="105"></td></tr></tbody></table></td></tr></table></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="center" style="font-size:0px;padding:0;word-break:break-word;"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" ><tr><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://download.data.grandlyon.com/catalogue/srv/fre/rss.search?sortBy=publicationDate&georss=simplepoint&data" target="_blank"><img alt="Logo rss" height="16" src="${options.imageHost}/logo_rss.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="http://www.facebook.com/legrandlyon" target="_blank"><img alt="Logo Facebook" height="16" src="${options.imageHost}/logo_fb.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://twitter.com/grandlyon" target="_blank"><img alt="Logo Twitter" height="16" src="${options.imageHost}/logo_twi.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div></body></html> \ No newline at end of file diff --git a/src/email-templates/feedback/feedback.mjml b/src/email-templates/feedback/feedback.mjml index f008514..3a8fb16 100644 --- a/src/email-templates/feedback/feedback.mjml +++ b/src/email-templates/feedback/feedback.mjml @@ -48,10 +48,26 @@ <mj-text> Un nouveau feedback a été déposée le ${options.datetime}. </mj-text> - <mj-text> Voici un résumé de la demande : </mj-text> + + <mj-text font-weight="bold"> + Email de l\'utilisateur: + </mj-text> + + <mj-text font-style="italic"> + ${options.email} + </mj-text> + + <mj-text font-weight="bold"> + Avis de l\'utilisateur: + </mj-text> + + <mj-text font-style="italic"> + ${options.feeling} + </mj-text> + <mj-text font-weight="bold"> Url: </mj-text> diff --git a/src/email-templates/feedback/index.ts b/src/email-templates/feedback/index.ts index 1135ae0..09decdc 100644 --- a/src/email-templates/feedback/index.ts +++ b/src/email-templates/feedback/index.ts @@ -43,8 +43,7 @@ white-space: pre; .title { padding: 7% 10% !important; } -}</style></head><body><div class="body"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:0;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:0;line-height:0;text-align:left;display:inline-block;width:100%;direction:ltr;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="left" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:130px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data_neg.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="130"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="right" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:80px;"><img alt="Logo Grand Lyon" height="auto" src="${options.imageHost}/logo_gl_négatif.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="80"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#f2f2f2;background-color:#f2f2f2;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f2;background-color:#f2f2f2;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tbody><tr><td style="background-color:white;vertical-align:top;padding:3% 6%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tr><td align="center" class="title" style="font-size:0px;padding:3% 10%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:18px;font-weight:bold;line-height:18px;text-align:center;color:#333744;">Feedback</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Un nouveau feedback a été déposée le ${options.datetime}.</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Voici un résumé de la demande :</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Url:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.url}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Version:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.version}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">User-Agent:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.userAgent}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Message:</div></td></tr><tr><td align="left" class="pre" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.message}</div></td></tr><tr><td align="right" style="font-size:0px;padding:3% 0 0 0;padding-top:3%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:right;color:#333744;">L'équipe data.grandlyon.com</div></td></tr><tr><td align="right" style="font-size:0px;padding:10px 25px;padding-top:1%;padding-right:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:105px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="105"></td></tr></tbody></table></td></tr></table></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="center" style="font-size:0px;padding:0;word-break:break-word;"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" ><tr><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://download.data.grandlyon.com/catalogue/srv/fre/rss.search?sortBy=publicationDate&georss=simplepoint&data" target="_blank"><img alt="Logo rss" height="16" src="${options.imageHost}/logo_rss.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="http://www.facebook.com/legrandlyon" target="_blank"><img alt="Logo Facebook" height="16" src="${options.imageHost}/logo_fb.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://twitter.com/grandlyon" target="_blank"><img alt="Logo Twitter" height="16" src="${options.imageHost}/logo_twi.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div></body></html>`; - +}</style></head><body><div class="body"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:0;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:0;line-height:0;text-align:left;display:inline-block;width:100%;direction:ltr;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="left" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:130px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data_neg.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="130"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td><td style="vertical-align:top;width:394px;" ><![endif]--><div class="mj-column-per-50 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:50%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="right" style="font-size:0px;padding:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:80px;"><img alt="Logo Grand Lyon" height="auto" src="${options.imageHost}/logo_gl_négatif.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="80"></td></tr></tbody></table></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#f2f2f2;background-color:#f2f2f2;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f2;background-color:#f2f2f2;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tbody><tr><td style="background-color:white;vertical-align:top;padding:3% 6%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" width="100%"><tr><td align="center" class="title" style="font-size:0px;padding:3% 10%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:18px;font-weight:bold;line-height:18px;text-align:center;color:#333744;">Feedback</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Un nouveau feedback a été déposée le ${options.datetime}.</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:left;color:#333744;">Voici un résumé de la demande :</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Email de l\'utilisateur:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.email}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Avis de l\'utilisateur:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.feeling}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Url:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.url}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Version:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.version}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">User-Agent:</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.userAgent}</div></td></tr><tr><td align="left" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-weight:bold;line-height:18px;text-align:left;color:#333744;">Message:</div></td></tr><tr><td align="left" class="pre" style="font-size:0px;padding:3% 0 0 0;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;font-style:italic;line-height:18px;text-align:left;color:#333744;">${options.message}</div></td></tr><tr><td align="right" style="font-size:0px;padding:3% 0 0 0;padding-top:3%;word-break:break-word;"><div style="font-family:Lato, sans-serif;font-size:14px;line-height:18px;text-align:right;color:#333744;">L'équipe data.grandlyon.com</div></td></tr><tr><td align="right" style="font-size:0px;padding:10px 25px;padding-top:1%;padding-right:0;word-break:break-word;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px;"><tbody><tr><td style="width:105px;"><img alt="Logo data.grandlyon.com" height="auto" src="${options.imageHost}/logo_data.png" style="border:0;display:block;outline:none;text-decoration:none;height:auto;width:100%;" width="105"></td></tr></tbody></table></td></tr></table></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr><tr><td class="" width="800px" ><table align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:800px;" width="800" ><tr><td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;"><![endif]--><div style="background:#333744;background-color:#333744;Margin:0px auto;max-width:800px;"><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="background:#333744;background-color:#333744;width:100%;"><tbody><tr><td style="direction:ltr;font-size:0px;padding:3% 6%;text-align:center;vertical-align:top;"><!--[if mso | IE]><table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td class="" style="vertical-align:top;width:788px;" ><![endif]--><div class="mj-column-per-100 outlook-group-fix" style="font-size:13px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%"><tr><td align="center" style="font-size:0px;padding:0;word-break:break-word;"><!--[if mso | IE]><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" ><tr><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://download.data.grandlyon.com/catalogue/srv/fre/rss.search?sortBy=publicationDate&georss=simplepoint&data" target="_blank"><img alt="Logo rss" height="16" src="${options.imageHost}/logo_rss.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="http://www.facebook.com/legrandlyon" target="_blank"><img alt="Logo Facebook" height="16" src="${options.imageHost}/logo_fb.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td><td><![endif]--><table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="float:none;display:inline-table;"><tr><td style="padding:0 5px 0 5px;"><table border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-radius:3px;width:16px;"><tr><td style="font-size:0;height:16px;vertical-align:middle;width:16px;"><a href="https://twitter.com/grandlyon" target="_blank"><img alt="Logo Twitter" height="16" src="${options.imageHost}/logo_twi.png" style="border-radius:3px;" width="16"></a></td></tr></table></td></tr></table><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></table></div><!--[if mso | IE]></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table></td></tr></table><![endif]--></td></tr></tbody></table></div><!--[if mso | IE]></td></tr></table><![endif]--></div></body></html>`; return html; }; @@ -55,4 +54,6 @@ class FeedbackEmailBodyOptions { userAgent: string; datetime: string; imageHost: string; + feeling: string; + email: string; } \ No newline at end of file diff --git a/src/email/email.service.ts b/src/email/email.service.ts index a703ec2..0d86ede 100644 --- a/src/email/email.service.ts +++ b/src/email/email.service.ts @@ -69,7 +69,19 @@ export class EmailService { userAgentString += `Source: ${userAgentParsed.source}`; } + const feelings = [ + 'Pas d\'avis', + 'Bof...', + 'Pas mal', + 'Top!' + ] + + const feeling = feedbackForm.feeling ? feelings[feedbackForm.feeling] : '-'; + const email = feedbackForm.email ? feedbackForm.email : '-'; + const feedbackEmailBody = buildFeedbackEmail({ + feeling, + email, url: feedbackForm.url, userAgent: userAgentString, version: feedbackForm.version, @@ -77,6 +89,7 @@ export class EmailService { datetime: moment().format('DD/MM/YYYY à HH:mm'), imageHost: this.config.imageHost, }); + const feedbackEmail = new EmailWithoutFrom(); feedbackEmail.to = [this.config.userSupportMailbox]; @@ -84,6 +97,10 @@ export class EmailService { feedbackEmail.to = feedbackEmail.to.concat(this.config.additionalFeedbackEmails.split(',')); } + if (feedbackForm.email) { + feedbackEmail.replyTo = feedbackForm.email; + } + feedbackEmail.subject = 'Feedback'; feedbackEmail.html = feedbackEmailBody; diff --git a/src/email/email.ts b/src/email/email.ts index 48387ec..31fc220 100644 --- a/src/email/email.ts +++ b/src/email/email.ts @@ -1,4 +1,4 @@ -import { IsDefined, Length, IsEmail } from 'class-validator'; +import { IsDefined, Length, IsEmail, IsString, IsNumber } from 'class-validator'; import { ApiModelProperty, ApiModelPropertyOptional } from '@nestjs/swagger'; export class ContactForm { @@ -93,4 +93,10 @@ export class FeedbackForm { @ApiModelProperty() @IsDefined() message: string; + + @ApiModelPropertyOptional() + email?: string; + + @ApiModelPropertyOptional() + feeling?: number; } \ No newline at end of file -- GitLab