From 3ef331db1a87cf2fdefd04c5b77b5cb2e274e0ab Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sat, 16 Apr 2022 08:12:41 +0200 Subject: [PATCH] implemented showing public lists to visitors --- .../widerhall/data/MailingList.java | 16 +++++-- static/templates/js.st | 46 ++++++++++++------- static/templates/listlist.st | 7 +-- 3 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/main/java/de/srsoftware/widerhall/data/MailingList.java b/src/main/java/de/srsoftware/widerhall/data/MailingList.java index 1582701..52a5a6d 100644 --- a/src/main/java/de/srsoftware/widerhall/data/MailingList.java +++ b/src/main/java/de/srsoftware/widerhall/data/MailingList.java @@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory; import java.sql.SQLException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -117,10 +118,17 @@ public class MailingList { } public Map safeMap() { - return Map.of(EMAIL, email, NAME, name, - IMAP_HOST, imapHost, IMAP_PORT, imapPort, IMAP_USER, imapUser, - SMTP_HOST, smtpHost, SMTP_PORT, smtpPort, SMTP_USER, smtpUser, - STATE, stateString(state)); + var map = new HashMap(); + map.put(EMAIL,email); + map.put(NAME, name); + if (imapHost != null) map.put(IMAP_HOST, imapHost); + if (imapPort != 0) map.put(IMAP_PORT, imapPort); + if (imapUser != null) map.put(IMAP_USER, imapUser); + if (smtpHost != null) map.put(SMTP_HOST, smtpHost); + if (smtpPort != 0) map.put(SMTP_PORT, smtpPort); + if (smtpUser != null) map.put(SMTP_USER, smtpUser); + map.put(STATE, stateString(state)); + return map; } private static String stateString(int state) { diff --git a/static/templates/js.st b/static/templates/js.st index e49fb06..c249afb 100644 --- a/static/templates/js.st +++ b/static/templates/js.st @@ -19,7 +19,7 @@ function loadListAdminList(){ } function loadListList(){ - $.getJSON('/api/list/list', showListAdminList); + $.getJSON('/api/list/list', showListList); } function loadUserList(){ @@ -34,22 +34,9 @@ function showList(listEmail){ $.post('/api/list/show',{list:listEmail},showListResult,'json'); } -function showListResult(result){ - console.log(result); - if ('error' in result){ - alert(result.error); - return; - } - if ('success' in result){ - alert(result.success); - reload(); - return; - } - alert("Api call did not return result"); -} -function showListAdminList(data){ -} + + function showListAdminList(data){ for (let i in data.lists){ @@ -85,6 +72,33 @@ function showListAdminList(data){ } } +function showListList(data){ + for (let i in data.lists){ + let list = data.lists[i]; + let row = $(''); + + $('').text(list.name).appendTo(row); + $('').text(list.email).appendTo(row); + $('').text(list.state).appendTo(row); + + row.appendTo('#listlist'); + } +} + +function showListResult(result){ + console.log(result); + if ('error' in result){ + alert(result.error); + return; + } + if ('success' in result){ + alert(result.success); + reload(); + return; + } + alert("Api call did not return result"); +} + function showUserList(data){ for (let i in data.users){ let user = data.users[i]; diff --git a/static/templates/listlist.st b/static/templates/listlist.st index 2b4c6de..669d6c7 100644 --- a/static/templates/listlist.st +++ b/static/templates/listlist.st @@ -2,9 +2,10 @@ List of mailinglists - - - + + + +
List NameList AddressActionsList NameList AddressStateActions