This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 365dba8dbef728c2f3f0e180a6f7db722e5911a9 Author: Jean Couteau <jean.couteau@gmail.com> Date: Mon Apr 9 15:27:53 2018 +0200 Fixes #170 : Ajouter le mail dans le feedback --- .../chorem/pollen/services/bean/FeedbackBean.java | 10 +++++++++ .../pollen/services/service/mail/EmailService.java | 1 + .../services/service/mail/FeedbackEmail.java | 10 +++++++++ .../main/resources/email/FeedbackEmail.mustache | 1 + .../main/resources/email/FeedbackEmail_fr.mustache | 1 + pollen-ui-riot-js/src/main/web/i18n/en.json | 1 + pollen-ui-riot-js/src/main/web/i18n/fr.json | 1 + .../src/main/web/tag/popup/FeedbackModal.tag.html | 26 ++++++++++++++++++++-- 8 files changed, 49 insertions(+), 2 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FeedbackBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FeedbackBean.java index 94811352..2d680939 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/FeedbackBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/FeedbackBean.java @@ -56,6 +56,8 @@ public class FeedbackBean { protected String consoleHistory; + protected String userEmail; + public String getDescription() { return description; } @@ -151,4 +153,12 @@ public class FeedbackBean { public void setConsoleHistory(String consoleHistory) { this.consoleHistory = consoleHistory; } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index 8544c523..1b9f71d0 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@ -694,6 +694,7 @@ public class EmailService extends PollenServiceSupport { email.setFeedback(feedbackBean); email.setSessionId(sessionId); email.setFeedbackDate(getNow()); + email.setUserEmail(feedbackBean.getUserEmail()); if (feedbackBean.getScreenShotId() != null) { String screenShotUrl = getPollenUIUrlRenderService().getResourceUrl( getUIContext().getResourceUrl(), diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java index a26b3e74..e75e1494 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java @@ -49,6 +49,8 @@ public class FeedbackEmail extends PollenMail { protected String sessionId; + protected String userEmail; + public FeedbackEmail(Locale locale, TimeZone timeZone) { super(locale, timeZone); } @@ -110,4 +112,12 @@ public class FeedbackEmail extends PollenMail { public String getSessionId() { return sessionId; } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } } diff --git a/pollen-services/src/main/resources/email/FeedbackEmail.mustache b/pollen-services/src/main/resources/email/FeedbackEmail.mustache index 89efeb53..f0908285 100644 --- a/pollen-services/src/main/resources/email/FeedbackEmail.mustache +++ b/pollen-services/src/main/resources/email/FeedbackEmail.mustache @@ -19,6 +19,7 @@ Screen resolution : {{feedback.screenResolution.width}} x {{feedback.screenRes window resolution : {{feedback.windowDimension.width}} x {{feedback.windowDimension.height}} (L x H) Session : {{sessionId}} User : {{#user}}{{user.name}} ({{user.email}}){{/user}}{{^user}}Anonymous{{/user}} +Email : {{feedback.userEmail}} Locale : {{feedback.locale}} Services version : {{applicationVersion}} diff --git a/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache b/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache index 315d4b87..0fc2a2b5 100644 --- a/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache +++ b/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache @@ -20,6 +20,7 @@ Taille d'affichage : {{feedback.windowDimension.width}} x {{feedback.windowD Langue : {{feedback.locale}} Session : {{sessionId}} Utilisateur : {{#user}}{{user.name}} ({{user.email}}){{/user}}{{^user}}Anonyme{{/user}} +Email : {{feedback.userEmail}} Version services : {{applicationVersion}} {{#screenShotUrl}} diff --git a/pollen-ui-riot-js/src/main/web/i18n/en.json b/pollen-ui-riot-js/src/main/web/i18n/en.json index b8768e68..9440c900 100644 --- a/pollen-ui-riot-js/src/main/web/i18n/en.json +++ b/pollen-ui-riot-js/src/main/web/i18n/en.json @@ -590,6 +590,7 @@ "feedback_descriptionNotBlank": "Observation must be not blank", "feedback_uploadScreenShot": "Screenshot", "feedback_create_success": "Thank you for your observation. It will help to improve Pollen.", + "feedback_email": "Email so we can send feedback (not mandatory)", "loginProviders_title": "Login provider", "loginProviders_name": "Name", "loginProviders_key": "Client key", diff --git a/pollen-ui-riot-js/src/main/web/i18n/fr.json b/pollen-ui-riot-js/src/main/web/i18n/fr.json index 841d4e67..72288b4b 100644 --- a/pollen-ui-riot-js/src/main/web/i18n/fr.json +++ b/pollen-ui-riot-js/src/main/web/i18n/fr.json @@ -592,6 +592,7 @@ "feedback_descriptionNotBlank": "La description ne doit pas être blanc", "feedback_uploadScreenShot": "Copie d'écran", "feedback_create_success": "Merci pour votre retour. Il contribuera à améliorer Pollen.", + "feedback_email": "Email pour un éventuel retour de notre part (non obligatoire)", "loginProviders_title": "Tiers pour la connexion", "loginProviders_name": "Nom", "loginProviders_key": "Clé client", diff --git a/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html b/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html index 1378085a..f82ba16a 100644 --- a/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html +++ b/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html @@ -53,6 +53,24 @@ require("./Modal.tag.html"); {parent.__.category_other} </label> </div> + + + <div class="o-form-element"> + <label class="c-label" for="email">{parent.__.email}</label> + <input ref="email" + tabindex="1" + type="email" + class="c-field c-field--label" + name="email" + value="{(session && session.isConnected()) ? session.getUser().defaultEmailAddress : ''}" + placeholder="{__.emailPlaceHolder}" + list="userEmailAddresses" + autocomplete="off"/> + <datalist id="userEmailAddresses"> + <option each={emailAddress in userEmailAddresses} value={emailAddress}> + </datalist> + </div> + <div class="o-form-element"> <label class="c-label" for="description">{parent.__.description}</label> <textarea class="c-field" @@ -79,17 +97,20 @@ require("./Modal.tag.html"); </modal> <script type="es6"> - let session = require("../../js/Session"); + this.session = require("../../js/Session"); let Message = require("../../js/Message"); - this.installBundle(session, "feedback"); + this.installBundle(this.session, "feedback"); let resourceService = require("../../js/ResourceService"); let feedbackService = require("../../js/FeedbackService"); let html2canvas = require("html2canvas"); + this.userEmailAddresses = []; this.open = () => { this.refs.modal.refs.category.forEach(input => {input.checked = false;}); this.refs.modal.refs.description.value = ""; this.refs.modal.refs.uploadScreenShot.checked = true; + this.refs.modal.refs.email.value = this.session.getUser().defaultEmailAddress.emailAddress; + this.refs.modal.userEmailAddresses = this.session.getUser() ? this.session.getUser().emailAddresses.map(email => email.emailAddress) : []; return this.refs.modal.open(); }; @@ -147,6 +168,7 @@ require("./Modal.tag.html"); let feedback = { description: this.refs.modal.refs.description.value, category: this.refs.modal.refs.category.find(radio => radio.checked).value, + userEmail: this.refs.modal.refs.email.value, browser: this.getBrowserNameAndVersion(), operatingSystem: this.getOperatingSystemNameAndVersion(), platform: navigator.platform, -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.