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;
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<String> propertiesToDelete = new ArrayList<String>();
- for (Entry<String, String> 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<Group> 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<Group> groups = artist.getGroups();
+ groups.remove(group);
+ artist.setGroups(groups);
}
getCore().getDataManager().saveArtist(artist);