From 17201335e61560d4e14505967a1bc16dc04ccdce Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 10 Apr 2021 13:38:12 +0000
Subject: [PATCH] Titel aus Abspielliste loeschen (in Arbeit)

---
 src/de/uhilger/mediaz/api/ListHandler.java |   17 ++++++++++++++++-
 www/ui/js/app.js                           |   16 ++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/src/de/uhilger/mediaz/api/ListHandler.java b/src/de/uhilger/mediaz/api/ListHandler.java
index fe5c06e..afe41c7 100644
--- a/src/de/uhilger/mediaz/api/ListHandler.java
+++ b/src/de/uhilger/mediaz/api/ListHandler.java
@@ -95,9 +95,24 @@
     throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
   }
 
+  // DELETE /mz/api/alist/[pl-name]/[nr]  den Titel an der Position [nr] aus der Liste [pl-name] entfernen  
   @Override
   protected boolean delete(HttpExchange e) {
-    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+    String path = e.getRequestURI().toString();
+    String[] elems = path.split(Server.SLASH);
+    String plname = elems[elems.length - 2];
+    String listName = elems[elems.length - 3];
+    
+    FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
+    Entity entity = fs.read(Abspielliste.class.getSimpleName(), listName);
+    if(entity instanceof Abspielliste) {
+      Abspielliste liste = (Abspielliste) entity;
+      liste.getTitel().remove(Integer.parseInt(elems[elems.length-1]));
+      fs.write(liste, true);
+      return true;
+    } else {
+      return false;
+    }
   }
   
 }
diff --git a/www/ui/js/app.js b/www/ui/js/app.js
index 87fdf6b..864f20f 100644
--- a/www/ui/js/app.js
+++ b/www/ui/js/app.js
@@ -231,6 +231,20 @@
     });
   };  
   
+  this.removeSelectedTitel = function() {
+    var elem = document.querySelector(".selected");
+    var parentElem = elem.parentNode;
+    console.log("elem: " + elem.nodeName + ", parent: " + parentElem.nodeName + ", len: " + parentElem.childNodes.length);
+    var liElems = parentElem.getElementsByTagName(elem.nodeName); 
+    console.log("liElems.anz: " + liElems.length);
+    for(var i = 0; i < liElems.length; i++) {
+      console.log(liElems.item(i).textContent);
+      if(liElems.item(i).textContent === elem.textContent) {
+        console.log(elem.textContent + ' hat Index ' + i);
+      }
+    }
+  };
+  
   /* Unterer Einblendbereich */
   
   this.dialog_unten_zeigen = function() {
@@ -242,6 +256,8 @@
       self.abspielliste_auswahl_fuellen();
       self.addEvtListener('#dazu-btn', 'click', self.addSelectedTitel);
       self.addEvtListener('#play-btn', 'click', self.play);
+      // /mz/api/alist/[pl-name]/[nr] 
+      self.addEvtListener('#weg-btn', 'click', self.removeSelectedTitel);
       self.media_liste();
     });
   };

--
Gitblit v1.9.3