| | |
| | | } |
| | | }; |
| | | |
| | | this.ablageort_liste = function() { |
| | | self.entitaet_liste('../api/store/Ablageort/liste/', |
| | | "data/tpl/ablageort_liste.tpl", '../api/store/Ablageort/', |
| | | "self.ablageort_form", function(responseText) { |
| | | var ablageort = JSON.parse(responseText); |
| | | self.ablageort_form(ablageort); |
| | | }); |
| | | }; |
| | | |
| | | this.prefs_liste = function() { |
| | | self.entitaet_liste('../api/store/Einstellung/liste/', |
| | | "data/tpl/einstellung_liste.tpl", '../api/store/Einstellung/', |
| | | "self.prefs_form", function(responseText) { |
| | | var einstellung = JSON.parse(responseText); |
| | | self.prefs_form(einstellung); |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_liste = function() { |
| | | self.entitaet_liste('../api/store/Abspieler/liste/', |
| | | "data/tpl/abspieler_liste.tpl", '../api/store/Abspieler/', |
| | | "self.abspieler_form", function(responseText) { |
| | | var abspieler = JSON.parse(responseText); |
| | | self.abspieler_form(abspieler); |
| | | }); |
| | | }; |
| | | |
| | | this.abspielliste_liste = function() { |
| | | self.entitaet_liste('../api/store/Abspielliste/liste/', |
| | | "data/tpl/abspielliste_liste.tpl", '../api/store/Abspielliste/', |
| | | "self.abspielliste_form", function(responseText) { |
| | | var abspielliste = JSON.parse(responseText); |
| | | self.abspielliste_form(abspielliste); |
| | | }); |
| | | }; |
| | | |
| | | /* -------------------- Entitaets-Formulare ------------------ */ |
| | | |
| | | this.abspielliste_form = function(al) { |
| | | self.entitaet_form(al, al.name, |
| | | "data/tpl/form_abspielliste.tpl", '../api/store/Abspielliste/', |
| | | '#abspielliste-name', function() { |
| | | self.abspielliste_auswahl_fuellen(); |
| | | self.abspielliste_liste(); |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_form = function(pl) { |
| | | self.entitaet_form(pl, pl.key, |
| | | "data/tpl/form_abspieler.tpl", '../api/store/Abspieler/', |
| | | '#abspieler-name', function() { |
| | | self.abspieler_auswahl_fuellen(); |
| | | self.abspieler_liste(); |
| | | }); |
| | | }; |
| | | |
| | | this.prefs_form = function(k) { |
| | | self.entitaet_form(k, k.key, |
| | | "data/tpl/form_einstellung.tpl", '../api/store/Einstellung/', |
| | | '#einstellung-key', function() { |
| | | self.prefs_liste(); |
| | | }); |
| | | }; |
| | | |
| | | /* |
| | | * Ablageort-Formular anzeigen |
| | | * |
| | | * {"name":"Katalog 2","ort":"/home/ulrich/Videos","url":"/media/kat2"}: |
| | | * |
| | | * @param {type} ablageort der Ablageort, der bearbeitet werden soll, leer fuer neuen Ort |
| | | * @returns {undefined} kein Rueckgabewert |
| | | */ |
| | | this.ablageort_form = function(ort) { |
| | | self.entitaet_form(ort, ort.name, |
| | | "data/tpl/form_ablageort.tpl", '../api/store/Ablageort/', |
| | | '#ablageort-name', function() { |
| | | self.ablageort_liste(); |
| | | }); |
| | | }; |
| | | |
| | | /* ------------------------------- UI-Dynamik ----------------------- */ |
| | | |
| | | self.reset_top_buttons = function() { |
| | | self.vorlage_laden_und_fuellen("data/tpl/top_btns.tpl", '', function (html) { |
| | | document.querySelector(".top-btns").innerHTML = html; |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_auswahl_fuellen = function() { |
| | | self.http_get('../api/store/Abspieler/liste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/abs_sel.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".abs-sel").innerHTML = html; |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.abspielliste_auswahl_fuellen = function() { |
| | | self.http_get('../api/store/Abspielliste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/pl_sel.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".pl-sel").innerHTML = html; |
| | | self.addEvtListener('#playlist', 'change', function() { |
| | | self.titel_liste(); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.addSelectedTitel = function() { |
| | | var elem = document.querySelector(".selected"); |
| | | var titelName = elem.textContent; |
| | | //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; |
| | |
| | | self.http_put('../api/alist/' + plname, JSON.stringify(titel), function(responseText) { |
| | | self.meldung_mit_timeout(responseText, 1500); |
| | | }); |
| | | }; |
| | | |
| | | this.ablageort_liste = function() { |
| | | self.reset_top_buttons(); |
| | | self.http_get('../api/store/Ablageort/liste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/ablageort_liste.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.http_get('../api/store/Ablageort/' + t.textContent, function(responseText){ |
| | | var ablageort = JSON.parse(responseText); |
| | | self.ablageort_form(ablageort); |
| | | }); |
| | | }); |
| | | //self.addEvtListener('#neu-btn', 'click', function (event) { |
| | | self.addEvtListener('#top-neu-btn', 'click', function(event) { |
| | | eval("self.ablageort_form" + "(this)"); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.prefs_liste = function() { |
| | | self.reset_top_buttons(); |
| | | self.http_get('../api/store/Einstellung/liste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/einstellung_liste.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.http_get('../api/store/Einstellung/' + t.textContent, function(responseText){ |
| | | var einstellung = JSON.parse(responseText); |
| | | self.prefs_form(einstellung); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#top-neu-btn', 'click', function(event) { |
| | | eval("self.prefs_form" + "(this)"); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_liste = function() { |
| | | self.http_get('../api/store/Abspieler/liste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/abspieler_liste.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.http_get('../api/store/Abspieler/' + t.textContent, function(responseText){ |
| | | var abspieler = JSON.parse(responseText); |
| | | self.abspieler_form(abspieler); |
| | | }); |
| | | }); |
| | | //self.addEvtListener('#neu-btn', 'click', function(event) { |
| | | self.addEvtListener('#top-neu-btn', 'click', function(event) { |
| | | eval("self.abspieler_form" + "(this)"); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | }; |
| | | |
| | | this.abspielliste_liste = function() { |
| | | self.http_get('../api/store/Abspielliste/liste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/abspielliste_liste.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.http_get('../api/store/Abspielliste/' + t.textContent, function(responseText){ |
| | | var abspielliste = JSON.parse(responseText); |
| | | self.abspielliste_form(abspielliste); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#top-neu-btn', 'click', function(event) { |
| | | eval("self.abspielliste_form" + "(this)"); |
| | | }); |
| | | }); |
| | | 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(); |
| | | }); |
| | | }; |
| | | |
| | | /* -------------------- Entitaets-Formulare ------------------ */ |
| | | |
| | | this.abspielliste_form = function(al) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/form_abspielliste.tpl", al, function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | const form = document.querySelector('form'); |
| | | form.addEventListener('submit', function(event) { |
| | | self.handle_submit(event, al.name, '../api/store/Abspielliste/', '#abspielliste-name', function() { |
| | | self.abspielliste_liste(); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#cancel-btn', 'click', function () { |
| | | //document.querySelector(".zentraler-inhalt").innerHTML = ''; |
| | | self.abspielliste_liste(); |
| | | }); |
| | | self.addEvtListener('#loeschen-btn', 'click', function(event) { |
| | | event.preventDefault(); |
| | | self.handle_del_btn('#abspielliste-name', '../api/store/Abspielliste/', function() { |
| | | self.abspielliste_auswahl_fuellen(); |
| | | self.abspielliste_liste(); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_form = function(pl) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/form_abspieler.tpl", pl, function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | const form = document.querySelector('form'); |
| | | form.addEventListener('submit', function(event) { |
| | | self.handle_submit(event, pl.key, '../api/store/Abspieler/', '#abspieler-name', function() { |
| | | self.abspieler_liste(); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#cancel-btn', 'click', function () { |
| | | //document.querySelector(".zentraler-inhalt").innerHTML = ''; |
| | | self.abspieler_liste(); |
| | | }); |
| | | self.addEvtListener('#loeschen-btn', 'click', function(event) { |
| | | event.preventDefault(); |
| | | self.handle_del_btn('#abspieler-name', '../api/store/Abspieler/', function() { |
| | | self.abspieler_auswahl_fuellen(); |
| | | self.abspieler_liste(); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.prefs_form = function(k) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/form_einstellung.tpl", k, function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | const form = document.querySelector('form'); |
| | | form.addEventListener('submit', function(event) { |
| | | self.handle_submit(event, k.key, '../api/store/Einstellung/', '#einstellung-key', function() { |
| | | self.prefs_liste(); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#cancel-btn', 'click', function (event) { |
| | | //document.querySelector(".zentraler-inhalt").innerHTML = ''; |
| | | event.preventDefault(); |
| | | self.prefs_liste(); |
| | | }); |
| | | self.addEvtListener('#loeschen-btn', 'click', function(event) { |
| | | event.preventDefault(); |
| | | self.handle_del_btn('#einstellung-key', '../api/store/Einstellung/', function() { |
| | | self.prefs_liste(); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | /* |
| | | * Ablageort-Formular anzeigen |
| | | * |
| | | * {"name":"Katalog 2","ort":"/home/ulrich/Videos","url":"/media/kat2"}: |
| | | * |
| | | * @param {type} ablageort der Ablageort, der bearbeitet werden soll, leer fuer neuen Ort |
| | | * @returns {undefined} kein Rueckgabewert |
| | | */ |
| | | this.ablageort_form = function(ort) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/form_ablageort.tpl", ort, function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | const form = document.querySelector('form'); |
| | | form.addEventListener('submit', function(event) { |
| | | self.handle_submit(event, ort.name, '../api/store/Ablageort/', '#ablageort-name', function() { |
| | | self.ablageort_liste(); |
| | | }); |
| | | }); |
| | | self.addEvtListener('#cancel-btn', 'click', function () { |
| | | //document.querySelector(".zentraler-inhalt").innerHTML = ''; |
| | | self.ablageort_liste(); |
| | | }); |
| | | self.addEvtListener('#loeschen-btn', 'click', function(event) { |
| | | event.preventDefault(); |
| | | self.handle_del_btn('#ablageort-name', '../api/store/Ablageort/', function() { |
| | | self.ablageort_liste(); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | /* ------------------------------- UI-Dynamik ----------------------- */ |
| | | |
| | | self.reset_top_buttons = function() { |
| | | self.vorlage_laden_und_fuellen("data/tpl/top_btns.tpl", '', function (html) { |
| | | document.querySelector(".top-btns").innerHTML = html; |
| | | }); |
| | | }; |
| | | |
| | | this.abspieler_auswahl_fuellen = function() { |
| | | self.http_get('../api/store/Abspieler/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/abs_sel.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".abs-sel").innerHTML = html; |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | this.abspielliste_auswahl_fuellen = function() { |
| | | self.http_get('../api/store/Abspielliste/', function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/pl_sel.tpl", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".pl-sel").innerHTML = html; |
| | | }); |
| | | }); |
| | | |
| | | }; |
| | | |
| | | /* Unterer Einblendbereich */ |
| | |
| | | self.abspieler_auswahl_fuellen(); |
| | | self.abspielliste_auswahl_fuellen(); |
| | | self.addEvtListener('#dazu-btn', 'click', self.addSelectedTitel); |
| | | self.addEvtListener('#play-btn', 'click', self.play); |
| | | self.addEvtListener('#weg-btn', 'click', self.removeSelectedTitel); |
| | | self.media_liste(); |
| | | }); |
| | | }; |
| | |
| | | }); |
| | | }; |
| | | |
| | | /* ------------- Media-Steuerung ------------------------- */ |
| | | |
| | | this.play = function() { |
| | | var abs = document.querySelector('#abspieler').value; |
| | | var lst = document.querySelector('#playlist').value; |
| | | console.log( |
| | | "play playlist.value: " + document.querySelector('#playlist').value + |
| | | ", abspieler.value: " + document.querySelector('#abspieler').value); |
| | | self.http_get('../api/strg/' + abs + '/play/liste/' + lst, function(responseText) { |
| | | self.meldung_mit_timeout(responseText, 1500); |
| | | }); |
| | | }; |
| | | |
| | | /* ------------- Helfer fuer Entitaets-Formulare ----------------------- */ |
| | | |
| | | /* |
| | | * url: '../api/store/Ablageort/liste/' |
| | | * tpl: "data/tpl/ablageort_liste.tpl" |
| | | * storeUrl: '../api/store/Ablageort/' |
| | | * formFunc: "self.ablageort_form" |
| | | * cb: etwas wie |
| | | * function(responseText){ |
| | | * var ablageort = JSON.parse(responseText); |
| | | * self.ablageort_form(ablageort); |
| | | * }); |
| | | */ |
| | | this.entitaet_liste = function(listUrl, tpl, storeUrl, formFunc, cb) { |
| | | self.reset_top_buttons(); |
| | | self.http_get(listUrl, function (responseText) { |
| | | self.vorlage_laden_und_fuellen(tpl, JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.http_get(storeUrl + t.textContent, cb); |
| | | }); |
| | | //self.addEvtListener('#neu-btn', 'click', function (event) { |
| | | self.addEvtListener('#top-neu-btn', 'click', function(event) { |
| | | eval(formFunc + "(this)"); |
| | | }); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | /* |
| | | * dat: gefuelltes Datenobjekt bei Aenderung |
| | | * key: der alte schluesselbegriff bei Aenderung (z.B. al.name) |
| | | * tpl: "data/tpl/form_abspielliste.tpl" |
| | | * url: '../api/store/Abspielliste/' |
| | | * selector: '#abspielliste-name' |
| | | * cbOk: etwas wie |
| | | * function() { |
| | | * self.abspielliste_auswahl_fuellen(); |
| | | * self.abspielliste_liste(); |
| | | * }); |
| | | * delSelector: '#abspielliste-name' |
| | | * cbDel: etwas wie |
| | | * function() { |
| | | * self.abspielliste_auswahl_fuellen(); |
| | | * self.abspielliste_liste(); |
| | | * }); |
| | | */ |
| | | |
| | | this.entitaet_form = function(dat, key, tpl, url, selector, cb) { |
| | | self.vorlage_laden_und_fuellen(tpl, dat, function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | const form = document.querySelector('form'); |
| | | form.addEventListener('submit', function(event) { |
| | | self.handle_submit(event, key, url, selector, cb); |
| | | }); |
| | | self.addEvtListener('#cancel-btn', 'click', cb); |
| | | self.addEvtListener('#loeschen-btn', 'click', function(event) { |
| | | event.preventDefault(); |
| | | self.handle_del_btn(selector, url, cb); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | /* |
| | | * existingKey: wenn die Entitaet existiert und geandert werden soll |
| | | * leer, wenn neue Entitaet |
| | |
| | | }; |
| | | |
| | | this.http_delete = function (u, data, cb) { |
| | | console.log("delete " + u); |
| | | // console.log("delete " + u); |
| | | self.http_call('DELETE', u, data, cb); |
| | | }; |
| | | |