From 8b252e7038d20f99cca233ce3d9de15d7e048815 Mon Sep 17 00:00:00 2001 From: mepiphana2023 Date: Thu, 25 Apr 2024 15:40:41 +0200 Subject: [PATCH] front --- .../java/fr/eni/enchere/config/WebConfig.java | 12 ++ .../controllers/AccueilController.java | 7 +- .../controllers/ArticleController.java | 4 +- .../controllers/LanguageController.java | 10 +- .../resources/i18n/messages_en.properties | 1 + .../resources/i18n/messages_fr.properties | 28 ++-- src/main/resources/static/css/style.css | 30 +++- .../static/{img => images}/flags/france.png | Bin .../static/{img => images}/flags/uk.png | Bin src/main/resources/templates/accueil.html | 51 ++++-- src/main/resources/templates/inscription.html | 157 ++++++++---------- src/main/resources/templates/modele-page.html | 46 +++-- 12 files changed, 202 insertions(+), 144 deletions(-) rename src/main/resources/static/{img => images}/flags/france.png (100%) rename src/main/resources/static/{img => images}/flags/uk.png (100%) diff --git a/src/main/java/fr/eni/enchere/config/WebConfig.java b/src/main/java/fr/eni/enchere/config/WebConfig.java index 638e62d..e2cf93d 100644 --- a/src/main/java/fr/eni/enchere/config/WebConfig.java +++ b/src/main/java/fr/eni/enchere/config/WebConfig.java @@ -4,6 +4,8 @@ import com.google.i18n.phonenumbers.PhoneNumberUtil; import org.apache.commons.validator.routines.EmailValidator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.web.context.request.RequestContextListener; +import org.springframework.web.filter.RequestContextFilter; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; import org.springframework.context.annotation.Bean; @@ -41,4 +43,14 @@ public class WebConfig { return PhoneNumberUtil.getInstance(); } + + @Bean + public RequestContextListener requestContextListener() { + return new RequestContextListener(); + } + + @Bean + public RequestContextFilter requestContextFilter() { + return new RequestContextFilter(); + } } \ No newline at end of file diff --git a/src/main/java/fr/eni/enchere/controllers/AccueilController.java b/src/main/java/fr/eni/enchere/controllers/AccueilController.java index a7a8f94..21fb32c 100644 --- a/src/main/java/fr/eni/enchere/controllers/AccueilController.java +++ b/src/main/java/fr/eni/enchere/controllers/AccueilController.java @@ -44,8 +44,9 @@ public class AccueilController { } @GetMapping({"/", "/accueil"}) - public String viewAccueil(@AuthenticationPrincipal UserDetails userDetails, @RequestParam(required = false) String searchTitle, @RequestParam(required = false) Integer searchCategory, Model model, @RequestParam(value = "venteOption", required = false) String[] venteOptions, @RequestParam(value = "achatOption", required = false) String[] achatOptions) { + public String viewAccueil(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails, @RequestParam(required = false) String searchTitle, @RequestParam(required = false) Integer searchCategory, Model model, @RequestParam(value = "venteOption", required = false) String[] venteOptions, @RequestParam(value = "achatOption", required = false) String[] achatOptions) { model.addAttribute("categories", categorieService.findAllCategories()); + model.addAttribute("requestURI", request.getRequestURI()); SearchArticleCritere critere = new SearchArticleCritere(); critere.setNoCategorie(searchCategory); critere.setTitle(searchTitle); @@ -59,10 +60,10 @@ public class AccueilController { } @PostMapping("/accueil") - public String handleSearch(@AuthenticationPrincipal UserDetails userDetails, @RequestParam("searchTitle") String searchTitle, @RequestParam(value = "searchCategory", required = false) Integer searchCategory, Model model, @RequestParam(value = "venteOption", required = false) String[] venteOptions, @RequestParam(value = "achatOption", required = false) String[] achatOptions ) { + public String handleSearch(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails, @RequestParam("searchTitle") String searchTitle, @RequestParam(value = "searchCategory", required = false) Integer searchCategory, Model model, @RequestParam(value = "venteOption", required = false) String[] venteOptions, @RequestParam(value = "achatOption", required = false) String[] achatOptions ) { - return viewAccueil(userDetails, searchTitle, searchCategory, model, venteOptions, achatOptions); + return viewAccueil(request, userDetails, searchTitle, searchCategory, model, venteOptions, achatOptions); } diff --git a/src/main/java/fr/eni/enchere/controllers/ArticleController.java b/src/main/java/fr/eni/enchere/controllers/ArticleController.java index 491a289..9ebf190 100644 --- a/src/main/java/fr/eni/enchere/controllers/ArticleController.java +++ b/src/main/java/fr/eni/enchere/controllers/ArticleController.java @@ -8,6 +8,7 @@ import fr.eni.enchere.bo.Article; import fr.eni.enchere.bo.Categorie; import fr.eni.enchere.bo.Retrait; import fr.eni.enchere.bo.UserProfil; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -70,10 +71,11 @@ public class ArticleController { //Création d'un article @GetMapping("/new") - public String newArticleForm(Model model) { + public String newArticleForm(HttpServletRequest request, Model model) { model.addAttribute("categories", categorieService.findAllCategories()); model.addAttribute("article", new Article()); model.addAttribute("retrait", new Retrait()); + model.addAttribute("requestURI", request.getRequestURI()); //Récupérer l'utilisateur pour set le retrait à son adresse par defaut Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String username = authentication.getName(); diff --git a/src/main/java/fr/eni/enchere/controllers/LanguageController.java b/src/main/java/fr/eni/enchere/controllers/LanguageController.java index eca5ac3..71f4eb3 100644 --- a/src/main/java/fr/eni/enchere/controllers/LanguageController.java +++ b/src/main/java/fr/eni/enchere/controllers/LanguageController.java @@ -21,11 +21,17 @@ public class LanguageController { } @GetMapping("/change-language") - public String changeLanguage(HttpServletRequest request, HttpServletResponse response, @RequestParam("lang") String lang) { + public String changeLanguage(HttpServletRequest request, HttpServletResponse response, Locale locale) { LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); + System.out.println(locale.getLanguage()); if (localeResolver != null) { - localeResolver.setLocale(request, response, Locale.forLanguageTag(lang)); + if (locale.getLanguage().equals("en")) { + localeResolver.setLocale(request, response, Locale.FRENCH); // Changer la langue en français + } else { + localeResolver.setLocale(request, response, Locale.ENGLISH); // Changer la langue en anglais + } } return "redirect:/"; } + } diff --git a/src/main/resources/i18n/messages_en.properties b/src/main/resources/i18n/messages_en.properties index a178a97..cbbe94f 100644 --- a/src/main/resources/i18n/messages_en.properties +++ b/src/main/resources/i18n/messages_en.properties @@ -1,6 +1,7 @@ home.search.title = Search for an item by name... home.search.cat = All categories home.search.button = Search +home.button.lang = Changer en Fran\u00E7ais profil.title = My Profile profil.button = Edit diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties index 599a2d4..365f49c 100644 --- a/src/main/resources/i18n/messages_fr.properties +++ b/src/main/resources/i18n/messages_fr.properties @@ -1,6 +1,7 @@ home.search.title = Rechercher un article par nom... home.search.cat = Toutes les cat\u00e9gories home.search.button = Recherche +home.button.lang = Switch to English profil.title = Mon profile profil.button = Modifier @@ -30,16 +31,17 @@ login.forgotpassword = Mot de passe oubli\u00e9 login.connection = Connexion login.makecompte = Cr\u00e9er un compte -register.title = Mon profile -register.button = Modifier -register.pseudo = Pseudo: -register.surname = Pr\u00e9nom: -register.name = Nom: -register.email = Email: -register.phone = T\u00e9l\u00e9phone: -register.street = Rue: -register.postal = Code postal: -register.city = Ville: -register.credit = Cr\u00e9dits: -register.make = cr\u00e9er -register.cancel = annuler \ No newline at end of file + +register.title = Inscription +register.pseudo.label = Pseudo: +register.prenom.label = Prénom: +register.nom.label = Nom: +register.email.label = Email: +register.telephone.label = Téléphone: +register.rue.label = Rue: +register.code_postal.label = Code postal: +register.ville.label = Ville: +register.password.label = Mot de passe: +register.confirm_password.label = Confirmation du mot de passe: +register.submit_button = Créer +register.cancel_button = Annuler \ No newline at end of file diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index d381d1d..d57bd51 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -2,4 +2,32 @@ display: flex; align-items: center; height: 100%; -} \ No newline at end of file +} +.text-decoration-none { + text-decoration: none !important; +} +.text-dark { + color: black !important; +} + + +.card-article { + transition: transform 0.3s ease; +} + +.card-article:hover { + transform: scale(1.05); +} + +/* Positionne le bouton de langue en haut à droite */ +#languageButton { + margin-right: 20px; /* Espacement du bouton par rapport à la droite */ +} + +/* Réduit l'espace entre le bouton de langue et les autres éléments de la barre de navigation */ +.navbar-nav { + margin-right: 10px; /* Espacement entre le bouton de langue et les autres éléments de la barre de navigation */ +} +.navbar-nav .nav-item.active .nav-link { + color: white; /* Couleur du texte pour le lien actif */ +} diff --git a/src/main/resources/static/img/flags/france.png b/src/main/resources/static/images/flags/france.png similarity index 100% rename from src/main/resources/static/img/flags/france.png rename to src/main/resources/static/images/flags/france.png diff --git a/src/main/resources/static/img/flags/uk.png b/src/main/resources/static/images/flags/uk.png similarity index 100% rename from src/main/resources/static/img/flags/uk.png rename to src/main/resources/static/images/flags/uk.png diff --git a/src/main/resources/templates/accueil.html b/src/main/resources/templates/accueil.html index bc94a0a..ba83e86 100644 --- a/src/main/resources/templates/accueil.html +++ b/src/main/resources/templates/accueil.html @@ -15,7 +15,7 @@
-
+
@@ -27,11 +27,28 @@
+ +
+
+ +
+ +
+
+ +
+ + +
+ +
-
Achats
@@ -55,12 +72,11 @@
-
Ventes
- +
@@ -80,12 +96,19 @@
+
+
- -
- + +
+
+
+
+
+
+
@@ -94,18 +117,18 @@
-
- -
+
+ +
Image de l'article
-
-
Nom de l'article
-

Description

-
+
+
Nom de l'article
+

Description

+