X-Git-Url: https://git.pterodactylus.net/?p=demoscenemusic.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fpage%2Fadmin%2FAdminBasePage.java;h=2f4d526a682d88d68f22d7f0b352ef75b3deae59;hp=040e6418bc48213eac07ffbdbd1a88c415ca6878;hb=65ad61b0d8c8dcf3e5ed24aed8f2a4423077432c;hpb=6f3371253d6a4398abea9fcd9c78a042b80c5af2 diff --git a/src/main/java/net/pterodactylus/demoscenemusic/page/admin/AdminBasePage.java b/src/main/java/net/pterodactylus/demoscenemusic/page/admin/AdminBasePage.java index 040e641..2f4d526 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/page/admin/AdminBasePage.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/page/admin/AdminBasePage.java @@ -17,9 +17,15 @@ package net.pterodactylus.demoscenemusic.page.admin; +import java.util.ArrayList; +import java.util.List; +import java.util.Map.Entry; + import net.pterodactylus.demoscenemusic.core.Core; +import net.pterodactylus.demoscenemusic.data.Base; import net.pterodactylus.demoscenemusic.data.User; import net.pterodactylus.demoscenemusic.page.BasePage; +import net.pterodactylus.demoscenemusic.page.ServletRequest; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContextFactory; @@ -47,6 +53,48 @@ public class AdminBasePage extends BasePage { } // + // PROTECTED METHODS + // + + /** + * Processes properties from the given requests and adjusts the properties + * of the given object. + * + * @param request + * The request to process + * @param object + * The object whose properties to modify + */ + protected void processProperties(ServletRequest request, Base object) { + /* check if properties were changed. */ + List propertiesToDelete = new ArrayList(); + for (Entry property : object.getProperties()) { + if (request.getServletRequest().getParameter("delete." + property.getKey()) != null) { + propertiesToDelete.add(property.getKey()); + continue; + } + String value = request.getServletRequest().getParameter("value." + property.getKey()).trim(); + object.getProperties().set(property.getKey(), value); + } + + /* check if properties are deleted. */ + if (!propertiesToDelete.isEmpty()) { + for (String propertyToDelete : propertiesToDelete) { + object.getProperties().remove(propertyToDelete); + } + } + + /* check for a new property. */ + if ("true".equals(request.getServletRequest().getParameter("new-property"))) { + String property = request.getServletRequest().getParameter("property").trim(); + String value = request.getServletRequest().getParameter("value").trim(); + if ((property.length() > 0) && (value.length() > 0)) { + object.getProperties().set(property, value); + } + } + } + + // // BASEPAGE METHODS //