|  |  | 
 |  |  |   // darunter der Inhalt des aktuellen Pfades | 
 |  |  |   this.media_liste = function() { | 
 |  |  |     self.reset_top_buttons();  | 
 |  |  |     console.log("ortPfad: " + self.ortPfad + ", mediaPfad: " + self.mediaPfad); | 
 |  |  |     //console.log("ortPfad: " + self.ortPfad + ", mediaPfad: " + self.mediaPfad); | 
 |  |  |     document.querySelector('.bereich-name').textContent = '';     | 
 |  |  |     if(self.ortPfad === '/') { | 
 |  |  |       var bb = document.querySelector('.breadcrumb-behaelter'); | 
 |  |  | 
 |  |  |       } | 
 |  |  |       bb.innerHTML = brLinks; | 
 |  |  |       self.addEvtListener('.breadcrumb-link', 'click', function(event) { | 
 |  |  |         console.log(event.target.attributes.brlink.nodeValue); | 
 |  |  |         //console.log(event.target.attributes.brlink.nodeValue); | 
 |  |  |         var neuerPfad = event.target.attributes.brlink.nodeValue; | 
 |  |  |         self.mediaPfad = neuerPfad; | 
 |  |  |         self.media_liste(); | 
 |  |  | 
 |  |  |             } else { | 
 |  |  |               if(t.classList.contains('selected')) { | 
 |  |  |                 t.classList.add('added-to-playlist'); | 
 |  |  |                 self.addSelectedTitel(); | 
 |  |  |                 self.titelDazu(); | 
 |  |  |               } else { | 
 |  |  |                 self.removeClassMulti('selected'); | 
 |  |  |                 t.classList.add('selected'); | 
 |  |  | 
 |  |  |     self.entitaet_liste('Abspielliste','../api/store/Abspielliste/liste/',  | 
 |  |  |       "data/tpl/abspielliste_liste.txt", '../api/store/Abspielliste/',  | 
 |  |  |       "self.abspielliste_form", function(responseText) { | 
 |  |  |         //console.log("responseTest: '" + responseText + "'"); | 
 |  |  |         var abspielliste = JSON.parse(responseText); | 
 |  |  |         self.abspielliste_form(abspielliste); | 
 |  |  |       }); | 
 |  |  | 
 |  |  |     self.entitaet_form('Abspielliste', al, al.name, | 
 |  |  |       "data/tpl/form_abspielliste.txt", '../api/store/Abspielliste/', | 
 |  |  |       '#abspielliste-name', function(event) { | 
 |  |  |           if(event !== undefined) { | 
 |  |  |           event.preventDefault(); | 
 |  |  |           } | 
 |  |  |           self.abspielliste_auswahl_fuellen(); | 
 |  |  |           self.abspielliste_liste(); | 
 |  |  |     }); | 
 |  |  | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  |    | 
 |  |  |   this.addSelectedTitel = function() { | 
 |  |  |     var elem = document.querySelector(".selected"); | 
 |  |  |     //var titelName = elem.textContent; | 
 |  |  |     var titelName = elem.attributes.dateiName.nodeValue; | 
 |  |  |     var album = elem.attributes.album.nodeValue; | 
 |  |  |     var interpret = elem.attributes.interpret.nodeValue; | 
 |  |  |     var anzName = elem.attributes.titelAnzName.nodeValue; | 
 |  |  |     var titel; | 
 |  |  |     if(self.mediaPfad.endsWith('/')) { | 
 |  |  |       titel = new Titel(titelName, self.mediaPfad, self.ortPfad, interpret, anzName, album); | 
 |  |  |     } else { | 
 |  |  |       titel = new Titel(titelName, self.mediaPfad + '/', self.ortPfad, interpret, anzName, album); | 
 |  |  |     } | 
 |  |  |     var plname = document.querySelector('#playlist').value; | 
 |  |  |     self.http_put('../api/alist/' + plname, JSON.stringify(titel), function(responseText) { | 
 |  |  |       //self.meldung_mit_timeout(responseText, 1500); | 
 |  |  |     }); | 
 |  |  |   };   | 
 |  |  |    | 
 |  |  |   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); // 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 */ | 
 |  |  |    | 
 |  |  |   this.dialog_unten_zeigen = function() { | 
 |  |  | 
 |  |  |       dlg.innerHTML = html; | 
 |  |  |       self.abspieler_auswahl_fuellen(); | 
 |  |  |       self.abspielliste_auswahl_fuellen(); | 
 |  |  |       self.addEvtListener('#dazu-btn', 'click', self.addSelectedTitel); | 
 |  |  |       self.addEvtListener('#dazu-btn', 'click', self.titelDazu); | 
 |  |  |       self.addEvtListener('#play-btn', 'click', self.play); | 
 |  |  |       self.addEvtListener('#weg-btn', 'click', self.removeSelectedTitel); | 
 |  |  |       self.addEvtListener('#weg-btn', 'click', self.titelWeg); | 
 |  |  |       self.addEvtListener('#leeren-btn', 'click', self.alleTitelEntfernen); | 
 |  |  |       self.media_liste(); | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  | 
 |  |  |     self.http_get('../api/strg/' + abs + '/play/liste/' + lst, function(responseText) { | 
 |  |  |       self.meldung_mit_timeout(responseText, 1500); | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  |    | 
 |  |  |   /* ------------- Verwaltungsfunktionen Abspielliste -------------------- */ | 
 |  |  |    | 
 |  |  |   self.alleTitelEntfernen = function() { | 
 |  |  |     var plname = document.querySelector('#playlist').value; | 
 |  |  |     self.http_delete('../api/alist/' + plname + '/alle', '', function(responseText) { | 
 |  |  |       // DELETE    http://localhost:9090/mz/api/alist/liste1/0 | 
 |  |  |       //self.meldung_mit_timeout(responseText, 1500); | 
 |  |  |       self.titel_liste(); | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  |    | 
 |  |  |   this.titelDazu = function() { | 
 |  |  |     var elem = document.querySelector(".selected"); | 
 |  |  |     //var titelName = elem.textContent; | 
 |  |  |     var titelName = elem.attributes.dateiName.nodeValue; | 
 |  |  |     var album = elem.attributes.album.nodeValue; | 
 |  |  |     var interpret = elem.attributes.interpret.nodeValue; | 
 |  |  |     var anzName = elem.attributes.titelAnzName.nodeValue; | 
 |  |  |     var titel; | 
 |  |  |     if(self.mediaPfad.endsWith('/')) { | 
 |  |  |       titel = new Titel(titelName, self.mediaPfad, self.ortPfad, interpret, anzName, album); | 
 |  |  |     } else { | 
 |  |  |       titel = new Titel(titelName, self.mediaPfad + '/', self.ortPfad, interpret, anzName, album); | 
 |  |  |     } | 
 |  |  |     var plname = document.querySelector('#playlist').value; | 
 |  |  |     self.http_put('../api/alist/' + plname, JSON.stringify(titel), function(responseText) { | 
 |  |  |       //self.meldung_mit_timeout(responseText, 1500); | 
 |  |  |     }); | 
 |  |  |   };   | 
 |  |  |    | 
 |  |  |   this.titelWeg = 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); // 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(); | 
 |  |  |     }); | 
 |  |  |      | 
 |  |  |   }; | 
 |  |  |    | 
 |  |  |   /* ------------- Helfer fuer Entitaets-Formulare ----------------------- */ | 
 |  |  | 
 |  |  |     event.preventDefault(); | 
 |  |  |     const data = new FormData(event.target); | 
 |  |  |     const value = Object.fromEntries(data.entries()); | 
 |  |  |     console.log({ value }); | 
 |  |  |     console.log(JSON.stringify(value)); | 
 |  |  |     //console.log({ value }); | 
 |  |  |     //console.log(JSON.stringify(value)); | 
 |  |  |     var daten = JSON.stringify(value); | 
 |  |  |     var formkey = document.querySelector(keySelector).value; | 
 |  |  |     formkey = formkey.replace(' ', '').replace(/[\W]+/g, ''); | 
 |  |  | 
 |  |  |     self.dialog_laden_und_zeigen('data/tpl/dlg-loeschen.txt', dlgdata, function() { | 
 |  |  |       self.addEvtListener('#nein-btn', 'click', self.dialog_schliessen); | 
 |  |  |       self.addEvtListener('#ja-btn', 'click', function(event) { | 
 |  |  |         console.log("loeschen geklickt."); | 
 |  |  |         //console.log("loeschen geklickt."); | 
 |  |  |         self.http_delete(delUrl + pkey, '', function (responseText) { | 
 |  |  |           self.dialog_schliessen(); | 
 |  |  |           if(typeof(cb) !== 'function') { |