From 5f7e0b47ee8d31a87bef7d6fa7268fc8ce839126 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed@undiclosed> Date: Sat, 10 Apr 2021 15:20:30 +0000 Subject: [PATCH] Titel aus Abspielliste loeschen fertig, Abspielliste abspielen Entwurf fertig zum Test --- src/de/uhilger/mediaz/api/ListHandler.java | 3 - src/de/uhilger/mediaz/api/MediaSteuerung.java | 36 ++++++++--------- www/ui/js/app.js | 28 +++++++++---- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/src/de/uhilger/mediaz/api/ListHandler.java b/src/de/uhilger/mediaz/api/ListHandler.java index afe41c7..781145e 100644 --- a/src/de/uhilger/mediaz/api/ListHandler.java +++ b/src/de/uhilger/mediaz/api/ListHandler.java @@ -100,8 +100,7 @@ protected boolean delete(HttpExchange e) { String path = e.getRequestURI().toString(); String[] elems = path.split(Server.SLASH); - String plname = elems[elems.length - 2]; - String listName = elems[elems.length - 3]; + String listName = elems[elems.length - 2]; FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); Entity entity = fs.read(Abspielliste.class.getSimpleName(), listName); diff --git a/src/de/uhilger/mediaz/api/MediaSteuerung.java b/src/de/uhilger/mediaz/api/MediaSteuerung.java index 4cbc7b9..2384012 100644 --- a/src/de/uhilger/mediaz/api/MediaSteuerung.java +++ b/src/de/uhilger/mediaz/api/MediaSteuerung.java @@ -30,7 +30,6 @@ import de.uhilger.mediaz.store.Storage; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -88,7 +87,7 @@ } break; case 8: - response = erstenListentitelSpielen(fs, elems[4], elems[7]); + response = ersterTitel(fs, elems[4], elems[7]); break; default: response = "Ungueltiger URL"; @@ -97,9 +96,16 @@ return response; } - private String meldung(String text, int code) { - setReturnCode(code); - return text; + private String ersterTitel(Storage s, String aName, String lName) { + String response; + Entity entity = s.read(FileStorage.ST_ABSPIELLISTE, lName); + if (entity instanceof Abspielliste) { + Abspielliste liste = (Abspielliste) entity; + response = listentitelSpielen(s, aName, liste, 0); + } else { + response = meldung("Abspielliste nicht gefunden.", AbstractHandler.RTC_NOT_FOUND); + } + return response; } private String naechsterTitel(Storage s, String abspielerName) { @@ -126,18 +132,6 @@ return response; } - private String erstenListentitelSpielen(Storage s, String aName, String lName) { - String response; - Entity entity = s.read(FileStorage.ST_ABSPIELLISTE, lName); - if (entity instanceof Abspielliste) { - Abspielliste liste = (Abspielliste) entity; - response = listentitelSpielen(s, aName, liste, 0); - } else { - response = meldung("Abspielliste nicht gefunden.", AbstractHandler.RTC_NOT_FOUND); - } - return response; - } - private String listentitelSpielen(Storage s, String aName, Abspielliste liste, int titelNr) { String response; Entity entity = s.read(FileStorage.ST_ABSPIELER, aName); @@ -146,7 +140,7 @@ String kommando = kommandoFuerTitel(s, liste, abspieler, titelNr); //String kommando = kmd.toString(); logger.info(kommando); - //abspielerKommandoSenden(kommando); + abspielerKommandoSenden(kommando); response = "Abspielen der Liste " + liste.getName() + " auf Abspieler " + aName + " gestartet."; } else { response = meldung("Abspieler nicht gefunden.", AbstractHandler.RTC_NOT_FOUND); @@ -231,7 +225,11 @@ } } - + private String meldung(String text, int code) { + setReturnCode(code); + return text; + } + // rpi4-az:9090/avd/play?titel=/Filme/S/sound_city.m4v&th=60&ti=60&o=local // aUrl http://rpi4-wz:9090/ // titelUrl /media/test/A/The-Alan-Parsons-Project/I-Robot/02-I-Wouldnt-Want-to-Be-Like-You.mp3 diff --git a/www/ui/js/app.js b/www/ui/js/app.js index 864f20f..15e1e64 100644 --- a/www/ui/js/app.js +++ b/www/ui/js/app.js @@ -234,15 +234,26 @@ 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); + //console.log("elem: " + elem.nodeName + ", parent: " + parentElem.nodeName + ", len: " + parentElem.childNodes.length); + var liElems = parentElem.getElementsByTagName(elem.nodeName); // nur die LI Elemente + //console.log("liElems.anz: " + liElems.length); + var gefunden = false; + for(var i = 0; i < liElems.length && !gefunden; i++) { + //console.log(liElems.item(i).textContent); + if(liElems.item(i).classList.contains("selected")) { + gefunden = true; + var index = i; + //console.log(elem.textContent + ' hat Index ' + i); } } + // /mz/api/alist/[pl-name]/[nr] + var plname = document.querySelector('#playlist').value; + self.http_delete('../api/alist/' + plname + '/' + index,'', function(responseText) { + // DELETE http://localhost:9090/mz/api/alist/liste1/0 + self.meldung_mit_timeout(responseText, 1500); + self.titel_liste(); + }); + }; /* Unterer Einblendbereich */ @@ -256,7 +267,6 @@ 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(); }); @@ -434,7 +444,7 @@ }; this.http_delete = function (u, data, cb) { - console.log("delete " + u); + // console.log("delete " + u); self.http_call('DELETE', u, data, cb); }; -- Gitblit v1.9.3