From 91a2433077a003c09e41990428c9b2886320f364 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 26 Jul 2012 13:54:28 +0200 Subject: [PATCH] Manage properties on artist. --- .../demoscenemusic/page/admin/EditArtistPage.java | 32 ++++++++++++++++++++++ src/main/resources/templates/admin.edit-artist | 15 ++++++++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java b/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java index c51e584..ba36ff7 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java @@ -17,6 +17,10 @@ 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.Artist; import net.pterodactylus.demoscenemusic.page.ServletRequest; @@ -68,6 +72,34 @@ public class EditArtistPage extends AdminBasePage { if (request.getMethod() == Method.POST) { String name = request.getServletRequest().getParameter("name"); artist.setName(name); + + /* check if properties were changed. */ + List propertiesToDelete = new ArrayList(); + for (Entry property : artist.getProperties()) { + if (request.getServletRequest().getParameter("delete." + property.getKey()) != null) { + propertiesToDelete.add(property.getKey()); + continue; + } + String value = request.getServletRequest().getParameter("value." + property.getKey()).trim(); + artist.getProperties().set(property.getKey(), value); + } + + /* check if properties are deleted. */ + if (!propertiesToDelete.isEmpty()) { + for (String propertyToDelete : propertiesToDelete) { + artist.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)) { + artist.getProperties().set(property, value); + } + } + getCore().getDataManager().saveArtist(artist); throw new RedirectException("admin.artists"); } diff --git a/src/main/resources/templates/admin.edit-artist b/src/main/resources/templates/admin.edit-artist index 23d945e..3734264 100644 --- a/src/main/resources/templates/admin.edit-artist +++ b/src/main/resources/templates/admin.edit-artist @@ -4,15 +4,26 @@
- + <%foreach artist.properties property> -