Add artist management to track.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / page / admin / EditTrackPage.java
index af02681..05bf3d0 100644 (file)
 
 package net.pterodactylus.demoscenemusic.page.admin;
 
+import java.util.Collection;
+import java.util.List;
+
 import net.pterodactylus.demoscenemusic.core.Core;
+import net.pterodactylus.demoscenemusic.data.Artist;
+import net.pterodactylus.demoscenemusic.data.Party;
 import net.pterodactylus.demoscenemusic.data.Track;
 import net.pterodactylus.demoscenemusic.page.ServletRequest;
 import net.pterodactylus.util.database.DatabaseException;
@@ -68,12 +73,65 @@ public class EditTrackPage extends AdminBasePage {
 
                        templateContext.set("track", track);
                        if (request.getMethod() == Method.POST) {
-                               String name = request.getServletRequest().getParameter("name").trim();
-                               if (name.length() > 0) {
+
+                               String partyId = request.getServletRequest().getParameter("party");
+                               Party party = getCore().getDataManager().getPartyById(partyId);
+
+                               String artistId = request.getServletRequest().getParameter("artist");
+                               Artist artist = getCore().getDataManager().getArtistById(artistId);
+
+                               /* check if a party should be removed. */
+                               if ("true".equals(request.getServletRequest().getParameter("delete-party"))) {
+                                       Collection<Party> parties = track.getParties();
+                                       parties.remove(party);
+                                       track.setParties(parties);
+                               }
+
+                               /* check if a party should be added. */
+                               if ("true".equals(request.getServletRequest().getParameter("add-party"))) {
+                                       Collection<Party> parties = track.getParties();
+                                       parties.add(party);
+                                       track.setParties(parties);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("delete-artist"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       artists.remove(artist);
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("move-up"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       int index = artists.indexOf(artist);
+                                       if (index > 0) {
+                                               artists.remove(artist);
+                                               artists.add(index - 1, artist);
+                                       }
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("move-down"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       int index = artists.indexOf(artist);
+                                       if (index < (artists.size() - 1)) {
+                                               artists.remove(artist);
+                                               artists.add(index + 1, artist);
+                                       }
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("add-artist"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       artists.add(artist);
+                                       track.setArtists(artists);
+                               }
+
+                               String name = request.getServletRequest().getParameter("name");
+                               if ((name != null) && (name.trim().length() > 0)) {
                                        track.setName(name);
                                }
-                               String remix = request.getServletRequest().getParameter("remix").trim();
-                               if (remix.length() > 0) {
+                               String remix = request.getServletRequest().getParameter("remix");
+                               if ((remix != null) && (remix.trim().length() > 0)) {
                                        track.setRemix(remix);
                                }