added new state bits to MailingList, implemented form for editing those
This commit is contained in:
@@ -21,6 +21,7 @@ import java.util.Map;
|
||||
|
||||
import static de.srsoftware.widerhall.Constants.*;
|
||||
import static de.srsoftware.widerhall.Util.t;
|
||||
import static de.srsoftware.widerhall.data.MailingList.*;
|
||||
|
||||
public class Rest extends HttpServlet {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Rest.class);
|
||||
@@ -56,6 +57,19 @@ public class Rest extends HttpServlet {
|
||||
return Map.of(SUCCESS,"Updated user permissions");
|
||||
}
|
||||
|
||||
private List<? extends Object> archive(HttpServletRequest req) {
|
||||
var list = Util.getMailingList(req);
|
||||
if (list != null){
|
||||
try {
|
||||
return Post.find(list).stream().map(Post::safeMap).toList();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
LOG.debug("list: {}",list.email());
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
String error = handleGet(req, resp);
|
||||
@@ -144,18 +158,7 @@ public class Rest extends HttpServlet {
|
||||
}
|
||||
}
|
||||
|
||||
private List<? extends Object> archive(HttpServletRequest req) {
|
||||
var list = Util.getMailingList(req);
|
||||
if (list != null){
|
||||
try {
|
||||
return Post.find(list).stream().map(Post::safeMap).toList();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
LOG.debug("list: {}",list.email());
|
||||
return List.of();
|
||||
}
|
||||
|
||||
|
||||
public String handlePost(HttpServletRequest req, HttpServletResponse resp){
|
||||
|
||||
@@ -232,12 +235,13 @@ public class Rest extends HttpServlet {
|
||||
private Map listDetail(MailingList list, User user) {
|
||||
if (list == null) return Map.of(ERROR,"no list email provided!");
|
||||
var map = new HashMap<>();
|
||||
if (list.hasState(MailingList.STATE_FORWARD_FROM)) map.put("forward_from",true);
|
||||
if (list.hasState(MailingList.STATE_FORWARD_ATTACHED)) map.put("forward_attached",true);
|
||||
if (list.hasState(MailingList.STATE_HIDE_RECEIVERS)) map.put("hide_receivers",true);
|
||||
if (list.hasState(MailingList.STATE_REPLY_TO_LIST)) map.put("reply_to_list",true);
|
||||
if (list.hasState(MailingList.STATE_OPEN_FOR_GUESTS)) map.put("open",true);
|
||||
if (list.hasState(MailingList.STATE_PUBLIC_ARCHIVE)) map.put("archive",true);
|
||||
if (list.hasState(MailingList.STATE_FORWARD_FROM)) map.put(KEY_FORWARD_FROM,true);
|
||||
if (list.hasState(MailingList.STATE_FORWARD_ATTACHED)) map.put(KEY_FORWARD_ATTACHED,true);
|
||||
if (list.hasState(MailingList.STATE_HIDE_RECEIVERS)) map.put(KEY_HIDE_RECEIVERS,true);
|
||||
if (list.hasState(MailingList.STATE_REPLY_TO_LIST)) map.put(KEY_REPLY_TO_LIST,true);
|
||||
if (list.isOpenForGuests()) map.put(KEY_OPEN_FOR_GUESTS,true);
|
||||
if (list.isOpenForSubscribers()) map.put(KEY_OPEN_FOR_SUBSCRIBERS,true);
|
||||
if (list.hasState(MailingList.STATE_PUBLIC_ARCHIVE)) map.put(KEY_ARCHIVE,true);
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.util.Map;
|
||||
|
||||
import static de.srsoftware.widerhall.Constants.*;
|
||||
import static de.srsoftware.widerhall.Util.t;
|
||||
import static de.srsoftware.widerhall.data.MailingList.*;
|
||||
|
||||
public class Web extends TemplateServlet {
|
||||
public static final String WEB_ROOT = "/web";
|
||||
@@ -300,12 +301,13 @@ public class Web extends TemplateServlet {
|
||||
|
||||
if (!error){
|
||||
try {
|
||||
list.forwardFrom(Util.getCheckbox(req, "forward_from"))
|
||||
.forwardAttached(Util.getCheckbox(req, "forward_attached"))
|
||||
.hideReceivers(Util.getCheckbox(req, "hide_receivers"))
|
||||
.replyToList(Util.getCheckbox(req, "reply_to_list"))
|
||||
.open(Util.getCheckbox(req,"open"))
|
||||
.archive(Util.getCheckbox(req,"archive"));
|
||||
list.forwardFrom(Util.getCheckbox(req, KEY_FORWARD_FROM))
|
||||
.forwardAttached(Util.getCheckbox(req, KEY_FORWARD_ATTACHED))
|
||||
.hideReceivers(Util.getCheckbox(req, KEY_HIDE_RECEIVERS))
|
||||
.replyToList(Util.getCheckbox(req, KEY_REPLY_TO_LIST))
|
||||
.openForGuests(Util.getCheckbox(req,KEY_OPEN_FOR_GUESTS))
|
||||
.openForSubscribers(Util.getCheckbox(req,KEY_OPEN_FOR_SUBSCRIBERS))
|
||||
.archive(Util.getCheckbox(req,KEY_ARCHIVE));
|
||||
data.put(NOTES,t("Sucessfully updated MailingList!"));
|
||||
} catch (SQLException e){
|
||||
LOG.warn("Failed to update MailingList:",e);
|
||||
|
||||
Reference in New Issue
Block a user