X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fpage%2Fadmin%2FEditArtistPage.java;h=e737e607a4270563ddf015acbac0664aba056320;hb=9d70913276805a0d7e0508a2aac9f2684d4d0d69;hp=ba36ff7b0e56594ad6e5b2c1167f8a458ba8b1bb;hpb=91a2433077a003c09e41990428c9b2886320f364;p=demoscenemusic.git 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 ba36ff7..e737e60 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/page/admin/EditArtistPage.java @@ -17,12 +17,11 @@ package net.pterodactylus.demoscenemusic.page.admin; -import java.util.ArrayList; -import java.util.List; -import java.util.Map.Entry; +import java.util.Collection; import net.pterodactylus.demoscenemusic.core.Core; import net.pterodactylus.demoscenemusic.data.Artist; +import net.pterodactylus.demoscenemusic.data.Group; import net.pterodactylus.demoscenemusic.page.ServletRequest; import net.pterodactylus.util.database.DatabaseException; import net.pterodactylus.util.template.Template; @@ -63,45 +62,39 @@ public class EditArtistPage extends AdminBasePage { protected void processTemplate(TemplateContext templateContext, ServletRequest request) throws RedirectException { super.processTemplate(templateContext, request); String id = request.getServletRequest().getParameter("id"); - /* TODO - check for null. */ - Artist artist; try { - artist = getCore().getDataManager().getArtistById(id); + Artist artist = getCore().getDataManager().getArtistById(id); /* TODO - check for null. */ templateContext.set("artist", artist); 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); + if ((name != null) && (name.trim().length() > 0)) { + artist.setName(name); } - /* check if properties are deleted. */ - if (!propertiesToDelete.isEmpty()) { - for (String propertyToDelete : propertiesToDelete) { - artist.getProperties().remove(propertyToDelete); - } + /* process property changes. */ + processProperties(request, artist); + + /* check for new group. */ + if ("true".equals(request.getServletRequest().getParameter("add-group"))) { + String groupId = request.getServletRequest().getParameter("group"); + Group group = getCore().getDataManager().getGroupById(groupId); + Collection groups = artist.getGroups(); + groups.add(group); + artist.setGroups(groups); } - /* 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); - } + /* check for deleted groups. */ + if ("true".equals(request.getServletRequest().getParameter("delete-group"))) { + String groupId = request.getServletRequest().getParameter("group"); + Group group = getCore().getDataManager().getGroupById(groupId); + Collection groups = artist.getGroups(); + groups.remove(group); + artist.setGroups(groups); } getCore().getDataManager().saveArtist(artist); - throw new RedirectException("admin.artists"); + throw new RedirectException("admin.edit-artist?id=" + artist.getId()); } } catch (DatabaseException de1) { throw new RuntimeException("Could not load artist.", de1);