diff --git a/pom.xml b/pom.xml
index 875c21e..ae00a28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.exampleWiderhall
- 0.2.16
+ 0.2.18
diff --git a/src/main/java/de/srsoftware/widerhall/web/Web.java b/src/main/java/de/srsoftware/widerhall/web/Web.java
index e574ce0..5aed760 100644
--- a/src/main/java/de/srsoftware/widerhall/web/Web.java
+++ b/src/main/java/de/srsoftware/widerhall/web/Web.java
@@ -26,6 +26,7 @@ public class Web extends TemplateServlet {
public static final String WEB_ROOT = "/web";
private static final String ADD_LIST = "add_list";
private static final String CONFIRM = "confirm";
+ private static final String CSS = "css";
private static final Logger LOG = LoggerFactory.getLogger(Web.class);
private static final String ADMIN = "admin";
private static final String INSPECT = "inspect";
@@ -178,17 +179,14 @@ public class Web extends TemplateServlet {
}
private String handleGet(HttpServletRequest req, HttpServletResponse resp) {
- var path = req.getPathInfo();
- if (path == null) return redirectTo(INDEX,resp);
- var o = req.getSession().getAttribute("user");
- User user = o instanceof User ? (User) o : null;
+ var path = Util.getPath(req);
+ var user = Util.getUser(req);
var data = new HashMap();
+ var list = Util.getMailingList(req);
+
if (user != null) data.put(USER,user.safeMap());
- path = path.equals("/") ? INDEX : path.substring(1);
- String notes = null;
- var listEmail = req.getParameter(LIST);
- var list = MailingList.load(listEmail);
if (list != null) data.put(LIST,list.minimalMap());
+ String notes = null;
switch (path){
case ARCHIVE:
return archive(req,resp);
@@ -200,13 +198,14 @@ public class Web extends TemplateServlet {
loadTemplates();
data.put(NOTES,t("Vorlagen wurden neu geladen"));
path = INDEX;
- case "css":
- case INDEX:
case UNSUBSCRIBE:
+ data.put(LIST,list.email());
+ case CSS:
+ case INDEX:
return loadTemplate(path,data,resp);
case SUBSCRIBE:
if (list.isOpenFor(user)) {
- data.put(LIST,listEmail);
+ data.put(LIST,list.email());
return loadTemplate(path, data, resp);
}
return t("Es ist ihnen nicht gestattet, '{}' zu abonnieren!",list.email());
@@ -258,9 +257,7 @@ public class Web extends TemplateServlet {
}
private String handlePost(HttpServletRequest req, HttpServletResponse resp) {
- final var user = Util.getUser(req);
final var path = Util.getPath(req);
- final var list = Util.getMailingList(req);
switch (path){
case ADD_LIST:
@@ -382,14 +379,13 @@ public class Web extends TemplateServlet {
var name = req.getParameter(NAME);
var email = req.getParameter(EMAIL);
var pass = req.getParameter(PASSWORD);
- var listEmail = req.getParameter(LIST);
+ var list = Util.getMailingList(req);
var data = new HashMap();
data.put(NAME,name);
data.put(EMAIL,email);
- data.put(LIST,listEmail);
+ if (list != null) data.put(LIST,list.email());
var skipConfirmation = false;
- var list = MailingList.load(listEmail);
if (list == null){
data.put(ERROR,"Formular-Daten enthalten keine Liste!");
@@ -454,24 +450,19 @@ public class Web extends TemplateServlet {
var data = new HashMap();
var user = getSessionUser(req);
var email = req.getParameter(EMAIL);
- var pass = req.getParameter(PASSWORD);
- var listEmail = req.getParameter(LIST);
+ var list = Util.getMailingList(req);
data.put(EMAIL,email);
- data.put(LIST,listEmail);
-
- var list = MailingList.load(listEmail);
-
if (user != null) data.put(USER,user.safeMap());
if (list == null){
data.put(ERROR,"Keine Mailin-Liste in den Formular-Daten übermittelt!!");
return loadTemplate(UNSUBSCRIBE,data,resp);
-
- }
+ } else data.put(LIST,list.email());
if (user == null) {
if (email == null || email.isBlank()) {
data.put(ERROR, "Für das Abbestellen ist eine E-Mail-Adresse erforderlich!");
return loadTemplate(UNSUBSCRIBE, data, resp);
}
+ var pass = req.getParameter(PASSWORD);
if (pass != null && pass.isBlank()) pass = null;
try {
diff --git a/static/templates/css.st b/static/templates/css.st
index 606bcdb..d44e55a 100644
--- a/static/templates/css.st
+++ b/static/templates/css.st
@@ -4,7 +4,8 @@ label {
}
#login form,
-#register form{
+#register form,
+#subscribe form{
width: 450px;
margin: 0 auto;
}
diff --git a/static/templates/js.st b/static/templates/js.st
index 958b87f..83589c0 100644
--- a/static/templates/js.st
+++ b/static/templates/js.st
@@ -142,18 +142,17 @@ function showListList(data){
for (let i in data.lists){
let list = data.lists[i];
let row = $('