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;
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);
+ }
+
+ /* 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");
}
<form method="post" accept-charset="utf-8">
- <label>Name: <input type="text" name="name" value="<% artist.name|html>"/></label>
+ <label>Name: <input type="text" name="name" value="<% artist.name|html>"></label>
<button type="submit">Edit Artist</button>
<%foreach artist.properties property>
- <label>Property: <input type="text" name="property.<%loop.count>" value="<%property.key|html>"/> <input type="text" name="value.<%loop.count>" value="<%property.value|html>"/>
+ <label>
+ Property: <%property.key|html>
+ <input type="text" name="value.<%property.key|html>" value="<%property.value|html>">
+ <input type="checkbox" name="delete.<%property.key|html>">Delete
+ </label>
<%/foreach>
+ <label>
+ New Property:
+ <input type="text" name="property" value="">
+ <input type="text" name="value" value="">
+ <button type="submit" name="new-property" value="true">Add Property</button>
+ </label>
+
</form>
<%include include/footer>
\ No newline at end of file