From 78fd9172a91ec39a09ced550cb2b166be0668e00 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 29 Apr 2018 21:42:13 +0200 Subject: [PATCH] #264 - added feedback messages for wrong password and successful logout --- .../controller/LoginController.java | 13 +++++++- src/main/resources/languages/_de.properties | 1 + src/main/resources/languages/_en.properties | 1 + src/main/resources/static/css/style.css | 13 ++++++++ src/main/resources/templates/login.ftl | 30 +++++++++++++++++-- 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java index b889c19e2..015293630 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/LoginController.java @@ -1,16 +1,27 @@ package de.deadlocker8.budgetmaster.controller; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; +import java.util.Map; @Controller public class LoginController extends BaseController { @RequestMapping("/login") - public String login(HttpServletRequest request) + public String login(HttpServletRequest request, Model model) { + Map<String, String[]> paramMap = request.getParameterMap(); + + if(paramMap.containsKey("error")) + model.addAttribute("isError", true); + + if(paramMap.containsKey("logout")) + model.addAttribute("isLogout", true); + request.getSession().setAttribute("preLoginURL", request.getHeader("Referer")); return "login"; } diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties index dce78b746..03be375e8 100644 --- a/src/main/resources/languages/_de.properties +++ b/src/main/resources/languages/_de.properties @@ -362,6 +362,7 @@ settingstab.button.server.local=Lokaler Server login.password=Passwort login.button=Login +logout.success=Erfolgreich abgemeldet. datepicker.label.month=Monat: datepicker.label.year=Jahr: diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties index fc247d5db..5505dfe66 100644 --- a/src/main/resources/languages/_en.properties +++ b/src/main/resources/languages/_en.properties @@ -361,6 +361,7 @@ settingstab.button.server.local=Local Server login.password=Password login.button=Login +logout.success=Successfully logged out. datepicker.label.month=Month: datepicker.label.year=Year: diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index 71294588f..66f3bdc4f 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -309,6 +309,19 @@ ul.dropdown-content.select-dropdown li.selected { padding: 5px 32px 12px 32px; } +.login-button { + text-transform: none; +} + +.login-margin-top { + margin-top: 20px; +} + +.login-message { + width: auto; + margin: auto +} + .hidden { display: none; } diff --git a/src/main/resources/templates/login.ftl b/src/main/resources/templates/login.ftl index e8e8a45ff..0c853bc89 100644 --- a/src/main/resources/templates/login.ftl +++ b/src/main/resources/templates/login.ftl @@ -20,14 +20,40 @@ <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <input type="hidden" name="username" value="Default"> - <div class="row"> + <div class="row no-margin-bottom"> <div class="input-field col s12"> <input id="password" type="password" name="password"> <label for="password">${locale.getString("login.password")}</label> </div> </div> - <div class="row"> + <#if isError??> + <div class="row no-margin-bottom"> + <div class="col s12 center-align"> + <table class="text-red login-message"> + <tr> + <td><i class="material-icons">warning</i></td> + <td>${locale.getString("warning.wrong.password")}</td> + </tr> + </table> + </div> + </div> + </#if> + + <#if isLogout??> + <div class="row no-margin-bottom"> + <div class="col s12 center-align"> + <table class="text-dark-green login-message"> + <tr> + <td><i class="material-icons">info_outline</i></td> + <td>${locale.getString("logout.success")}</td> + </tr> + </table> + </div> + </div> + </#if> + + <div class="row login-margin-top"> <div class="col s12 right-align"> <button class="btn waves-effect waves-light budgetmaster-blue" type="submit" name="action"> <i class="material-icons left">send</i>${locale.getString("login.button")} -- GitLab