From 1dacfe939e7478af433e98eb5c57fa9ae50efe02 Mon Sep 17 00:00:00 2001
From: Olivier Maury <Olivier.Maury@inrae.fr>
Date: Thu, 7 Mar 2024 08:17:22 +0100
Subject: [PATCH] =?UTF-8?q?Pr=C3=A9cisions=20dans=20le=20document=20d'inst?=
 =?UTF-8?q?allation,=20ajout=20de=20l'autocompl=C3=A9tion=20sur=20le=20cha?=
 =?UTF-8?q?mp=20d'adresse=20courriel,=20correction=20de=20largeur=20du=20b?=
 =?UTF-8?q?outon=20=C3=A0=20bascule,=20mise=20en=20forme=20du=20courriel?=
 =?UTF-8?q?=20de=20contact?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/site/markdown/installation.md             |  5 +-
 .../www/client/view/ContactView.java          |  2 +
 .../agrometinfo/www/client/public/style.css   |  4 +-
 .../www/server/rs/ApplicationResource.java    | 51 +++++++++++--------
 .../fr/agrometinfo/www/server/util/ST.java    |  6 ++-
 5 files changed, 41 insertions(+), 27 deletions(-)

diff --git a/src/site/markdown/installation.md b/src/site/markdown/installation.md
index 2f772c7..a2c2667 100644
--- a/src/site/markdown/installation.md
+++ b/src/site/markdown/installation.md
@@ -39,10 +39,11 @@ Otherwise, some example data are provided in initialization data for AgroMetInfo
    GRANT USAGE ON SCHEMA agrometinfo TO season;
    GRANT SELECT ON TABLE indicator TO season;
    GRANT ALL ON TABLE dailyvalue TO season;
+   GRANT ALL ON TABLE simulation TO season;
    GRANT SELECT ON TABLE period TO season;
    GRANT SELECT ON TABLE normalvalue TO season;
-   GRANT SELECT ON SEQUENCE dailyvalue_id_seq TO season;
    GRANT ALL ON SEQUENCE dailyvalue_id_seq TO season;
+   GRANT ALL ON SEQUENCE simulation_id_seq TO season;
    ```
 
 ## Install Tomcat
@@ -75,4 +76,4 @@ Ensure JVM args contains in the server launch configuration (in variable `JAVA_O
 --add-opens=java.base/java.util=ALL-UNNAMED
 --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
 --add-opens=java.sql/java.sql=ALL-UNNAMED
-```
\ No newline at end of file
+```
diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/view/ContactView.java b/www-client/src/main/java/fr/agrometinfo/www/client/view/ContactView.java
index d406b65..3f3eafc 100644
--- a/www-client/src/main/java/fr/agrometinfo/www/client/view/ContactView.java
+++ b/www-client/src/main/java/fr/agrometinfo/www/client/view/ContactView.java
@@ -65,6 +65,8 @@ public final class ContactView extends AbstractBaseView<ContactPresenter> implem
                 .setFixErrorsPosition(true)
                 .addLeftAddOn(Icons.ALL.label());
         emailBox = EmailBox.create(CSTS.contactEmailField())
+                .setAttribute("autocomplete", "on") //
+                .setName("email")
                 .setRequired(true)
                 .setRequiredErrorMessage(CSTS.requiredErrorMessage())
                 .setTypeMismatchErrorMessage(CSTS.invalidEmailAddress())
diff --git a/www-client/src/main/resources/fr/agrometinfo/www/client/public/style.css b/www-client/src/main/resources/fr/agrometinfo/www/client/public/style.css
index 5d83a5e..ade2d54 100644
--- a/www-client/src/main/resources/fr/agrometinfo/www/client/public/style.css
+++ b/www-client/src/main/resources/fr/agrometinfo/www/client/public/style.css
@@ -95,7 +95,7 @@ select {
 .agrometinfo-leftsidebar.sidebar,
 .agrometinfo-rightsidebar.right-sidebar {
     height: calc(100vh - var(--logo-height));
-    top: var(--logo-height);
+    top: calc(2px + var(--logo-height));
 }
 .agrometinfo-rightsidebar.right-sidebar {
     width: var(--rightsidebar-width);
@@ -116,7 +116,7 @@ select {
     z-index: 0;
     visibility: hidden;
 }
-.comparison-btn {
+.comparison-btn .switch-label {
     min-width: 10em;
 }
 
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/rs/ApplicationResource.java b/www-server/src/main/java/fr/agrometinfo/www/server/rs/ApplicationResource.java
index 7fdbada..1335edf 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/rs/ApplicationResource.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/rs/ApplicationResource.java
@@ -1,5 +1,9 @@
 package fr.agrometinfo.www.server.rs;
 
+import java.util.List;
+
+import fr.agrometinfo.www.server.AgroMetInfoConfiguration;
+import fr.agrometinfo.www.server.AgroMetInfoConfiguration.ConfigurationKey;
 import fr.agrometinfo.www.server.exception.AgroMetInfoException;
 import fr.agrometinfo.www.server.service.MailService;
 import fr.agrometinfo.www.server.service.MailService.Mail;
@@ -26,34 +30,18 @@ public class ApplicationResource implements ApplicationService {
      * E-mail template.
      */
     private static final String TEMPLATE = """
-            nom :
-            =====
-            <NAME>
+            Bonjour <SUPPORT_EMAIL>,
 
-            adresse courriel :
-            ==================
-            <EMAIL>
+            Voici un message de <NAME> <<EMAIL>> :
 
-            message :
-            =========
             <MESSAGE>
             """;
+
     /**
-     * Convert DTO from "Contact Us" form to Mail for MailService.
-     *
-     * @param message dto to convert
-     * @return Mail for MailService
+     * Application configuration.
      */
-    private static Mail toMail(final MessageDTO message) {
-        final ST st = new ST(TEMPLATE);
-        st.add(Key.EMAIL, message.getEmailAddress());
-        st.add(Key.MESSAGE, message.getMessage());
-        st.add(Key.NAME, message.getName());
-        final Mail mail = new Mail();
-        mail.setContent(st.render());
-        mail.setSubject("Formulaire de contact");
-        return mail;
-    }
+    @Inject
+    private AgroMetInfoConfiguration configuration;
 
     /**
      * Mail service.
@@ -74,4 +62,23 @@ public class ApplicationResource implements ApplicationService {
         }
     }
 
+    /**
+     * Convert DTO from "Contact Us" form to Mail for MailService.
+     *
+     * @param message dto to convert
+     * @return Mail for MailService
+     */
+    private Mail toMail(final MessageDTO message) {
+        final Mail mail = new Mail();
+        mail.setSubject("Formulaire de contact");
+        mail.setToAddresses(List.of(configuration.get(ConfigurationKey.SUPPORT_EMAIL)));
+        final ST st = new ST(TEMPLATE);
+        st.add(Key.EMAIL, message.getEmailAddress());
+        st.add(Key.MESSAGE, message.getMessage());
+        st.add(Key.NAME, message.getName());
+        st.add(Key.SUPPORT_EMAIL, String.join(", ", mail.getToAddresses()));
+        mail.setContent(st.render());
+        return mail;
+    }
+
 }
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/util/ST.java b/www-server/src/main/java/fr/agrometinfo/www/server/util/ST.java
index fb7715b..a0f46cd 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/util/ST.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/util/ST.java
@@ -28,7 +28,11 @@ public class ST {
         /**
          * User's message.
          */
-        MESSAGE;
+        MESSAGE,
+        /**
+         * E-mail address for support team.
+         */
+        SUPPORT_EMAIL;
     }
 
     /**
-- 
GitLab