| | |
| | | var mediaPfad; |
| | | var katUrl; |
| | | var selTitel; |
| | | var katName; |
| | | |
| | | this.init = function () { |
| | | self.mediaPfad = '/'; |
| | |
| | | self.appMenu.init( |
| | | "data/menu/", |
| | | "hauptmenue.json", |
| | | "data/tpl/app-menu.tpl", |
| | | "data/tpl/app-menu.txt", |
| | | ".west", |
| | | "8em"); |
| | | |
| | |
| | | // auf der obersten Ebene werden die Kataloge angezeigt, |
| | | // darunter der Inhalt des aktuellen Pfades |
| | | this.media_liste = function() { |
| | | self.reset_top_buttons(); |
| | | document.querySelector('.bereich-name').textContent = 'Medien-Inhalte'; |
| | | self.reset_top_buttons(); |
| | | console.log("ortPfad: " + self.ortPfad + ", mediaPfad: " + self.mediaPfad); |
| | | document.querySelector('.bereich-name').textContent = ''; |
| | | if(self.ortPfad === '/') { |
| | | var bb = document.querySelector('.breadcrumb-behaelter'); |
| | | bb.textContent = "Kataloge"; |
| | | // Kataloge listen |
| | | self.http_get('../api/store/Ablageort/liste/', function (responseText) { |
| | | //document.querySelector('#top-up-btn').removeEventListener('click', self.media_liste_herauf); |
| | | self.vorlage_laden_und_fuellen("data/tpl/katalog_root_liste.tpl", JSON.parse(responseText), function (html) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/katalog_root_liste.txt", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | | self.katName = t.textContent; |
| | | self.http_get('../api/store/Ablageort/' + t.textContent, function(responseText) { |
| | | var ablageort = JSON.parse(responseText); |
| | | self.ortPfad = ablageort.url; |
| | |
| | | }); |
| | | }); |
| | | } else { |
| | | var bb = document.querySelector('.breadcrumb-behaelter'); |
| | | var brPfad = self.katName + self.mediaPfad; |
| | | var breadcrumbs = brPfad.split('/'); |
| | | var brLinks = ""; |
| | | var brLinkPfad = ""; |
| | | for(var index = 0; index < breadcrumbs.length; index++) { |
| | | // <a class="breadcrumb-link" href="#">breadcrumbs[index]</a> |
| | | if(index === 0) { |
| | | brLinkPfad = '/'; |
| | | } else { |
| | | brLinkPfad = brLinkPfad + '/' + breadcrumbs[index]; |
| | | } |
| | | brLinks = brLinks + "<a brlink='" + brLinkPfad + "' class='breadcrumb-link' href='#'>" + breadcrumbs[index] + "</a>"; |
| | | //console.log(' breadcrumbs[' + index + ']: ' + breadcrumbs[index]); |
| | | } |
| | | bb.innerHTML = brLinks; |
| | | self.addEvtListener('.breadcrumb-link', 'click', function(event) { |
| | | console.log(event.target.attributes.brlink.nodeValue); |
| | | var neuerPfad = event.target.attributes.brlink.nodeValue; |
| | | self.mediaPfad = neuerPfad; |
| | | self.media_liste(); |
| | | }); |
| | | var url = '..' + self.ortPfad + self.mediaPfad; |
| | | if(!url.endsWith('/')) { |
| | | url = url + '/'; |
| | | } |
| | | self.http_get(url, function(responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/katalog_inhalt_liste.tpl", JSON.parse(responseText), function (html) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/katalog_inhalt_liste.txt", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | |
| | | self.media_liste(); |
| | | } else { |
| | | if(t.classList.contains('selected')) { |
| | | t.classList.add('added-to-playlist'); |
| | | self.addSelectedTitel(); |
| | | } else { |
| | | self.removeClassMulti('selected'); |
| | |
| | | }; |
| | | |
| | | this.ablageort_liste = function() { |
| | | self.entitaet_liste('Ablageort','../api/store/Ablageort/liste/', |
| | | "data/tpl/ablageort_liste.tpl", '../api/store/Ablageort/', |
| | | self.entitaet_liste('Kataloge','../api/store/Ablageort/liste/', |
| | | "data/tpl/ablageort_liste.txt", '../api/store/Ablageort/', |
| | | "self.ablageort_form", function(responseText) { |
| | | var ablageort = JSON.parse(responseText); |
| | | self.ablageort_form(ablageort); |
| | |
| | | |
| | | this.prefs_liste = function() { |
| | | self.entitaet_liste('Einstellungen','../api/store/Einstellung/liste/', |
| | | "data/tpl/einstellung_liste.tpl", '../api/store/Einstellung/', |
| | | "data/tpl/einstellung_liste.txt", '../api/store/Einstellung/', |
| | | "self.prefs_form", function(responseText) { |
| | | var einstellung = JSON.parse(responseText); |
| | | self.prefs_form(einstellung); |
| | |
| | | |
| | | this.abspieler_liste = function() { |
| | | self.entitaet_liste('Abspieler','../api/store/Abspieler/liste/', |
| | | "data/tpl/abspieler_liste.tpl", '../api/store/Abspieler/', |
| | | "data/tpl/abspieler_liste.txt", '../api/store/Abspieler/', |
| | | "self.abspieler_form", function(responseText) { |
| | | var abspieler = JSON.parse(responseText); |
| | | self.abspieler_form(abspieler); |
| | |
| | | |
| | | this.abspielliste_liste = function() { |
| | | self.entitaet_liste('Abspielliste','../api/store/Abspielliste/liste/', |
| | | "data/tpl/abspielliste_liste.tpl", '../api/store/Abspielliste/', |
| | | "data/tpl/abspielliste_liste.txt", '../api/store/Abspielliste/', |
| | | "self.abspielliste_form", function(responseText) { |
| | | var abspielliste = JSON.parse(responseText); |
| | | self.abspielliste_form(abspielliste); |
| | |
| | | |
| | | this.abspielliste_form = function(al) { |
| | | self.entitaet_form('Abspielliste', al, al.name, |
| | | "data/tpl/form_abspielliste.tpl", '../api/store/Abspielliste/', |
| | | "data/tpl/form_abspielliste.txt", '../api/store/Abspielliste/', |
| | | '#abspielliste-name', function(event) { |
| | | event.preventDefault(); |
| | | self.abspielliste_auswahl_fuellen(); |
| | |
| | | |
| | | this.abspieler_form = function(pl) { |
| | | self.entitaet_form('Abspieler', pl, pl.key, |
| | | "data/tpl/form_abspieler.tpl", '../api/store/Abspieler/', |
| | | "data/tpl/form_abspieler.txt", '../api/store/Abspieler/', |
| | | '#abspieler-name', function() { |
| | | self.abspieler_auswahl_fuellen(); |
| | | self.abspieler_liste(); |
| | |
| | | }; |
| | | |
| | | this.prefs_form = function(k) { |
| | | self.entitaet_form('Einstellungen', k, k.key, |
| | | "data/tpl/form_einstellung.tpl", '../api/store/Einstellung/', |
| | | self.entitaet_form('Einstellung', k, k.key, |
| | | "data/tpl/form_einstellung.txt", '../api/store/Einstellung/', |
| | | '#einstellung-key', function() { |
| | | self.prefs_liste(); |
| | | }); |
| | |
| | | * @returns {undefined} kein Rueckgabewert |
| | | */ |
| | | this.ablageort_form = function(ort) { |
| | | self.entitaet_form('Ablageort', ort, ort.name, |
| | | "data/tpl/form_ablageort.tpl", '../api/store/Ablageort/', |
| | | self.entitaet_form('Katalog', ort, ort.name, |
| | | "data/tpl/form_ablageort.txt", '../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) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/top_btns.txt", '', 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) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/abs_sel.txt", 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) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/pl_sel.txt", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".pl-sel").innerHTML = html; |
| | | self.addEvtListener('#playlist', 'change', function() { |
| | | self.titel_liste(); |
| | |
| | | /* Unterer Einblendbereich */ |
| | | |
| | | this.dialog_unten_zeigen = function() { |
| | | self.vorlage_laden_und_fuellen("data/tpl/ctrl.tpl", "", function (html) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/ctrl.txt", "", function (html) { |
| | | var dlg = document.querySelector(".dialog-unten"); |
| | | dlg.style.height = '4.5em'; |
| | | dlg.innerHTML = html; |
| | |
| | | |
| | | this.titel_liste = function() { |
| | | self.reset_top_buttons(); |
| | | document.querySelector('.bereich-name').textContent = 'Abspielliste'; |
| | | var plname = document.querySelector('#playlist').value; |
| | | document.querySelector('.bereich-name').textContent = 'Abspielliste ' + plname; |
| | | var bb = document.querySelector('.breadcrumb-behaelter'); |
| | | bb.textContent = ""; |
| | | self.http_get('../api/alist/' + plname, function (responseText) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/titel_liste.tpl", JSON.parse(responseText), function (html) { |
| | | self.vorlage_laden_und_fuellen("data/tpl/titel_liste.txt", JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | | self.addEvtListener('.entity-eintrag', 'click', function (event) { |
| | | var t = event.target; |
| | |
| | | |
| | | /* |
| | | * url: '../api/store/Ablageort/liste/' |
| | | * tpl: "data/tpl/ablageort_liste.tpl" |
| | | * tpl: "data/tpl/ablageort_liste.txt" |
| | | * storeUrl: '../api/store/Ablageort/' |
| | | * formFunc: "self.ablageort_form" |
| | | * cb: etwas wie |
| | |
| | | this.entitaet_liste = function(bname, listUrl, tpl, storeUrl, formFunc, cb) { |
| | | self.reset_top_buttons(); |
| | | document.querySelector('.bereich-name').textContent = bname; |
| | | var bb = document.querySelector('.breadcrumb-behaelter'); |
| | | bb.textContent = ""; |
| | | self.http_get(listUrl, function (responseText) { |
| | | self.vorlage_laden_und_fuellen(tpl, JSON.parse(responseText), function (html) { |
| | | document.querySelector(".zentraler-inhalt").innerHTML = html; |
| | |
| | | /* |
| | | * dat: gefuelltes Datenobjekt bei Aenderung |
| | | * key: der alte schluesselbegriff bei Aenderung (z.B. al.name) |
| | | * tpl: "data/tpl/form_abspielliste.tpl" |
| | | * tpl: "data/tpl/form_abspielliste.txt" |
| | | * url: '../api/store/Abspielliste/' |
| | | * selector: '#abspielliste-name' |
| | | * cbOk: etwas wie |
| | |
| | | this.handle_del_btn = function(selectorKey, delUrl, cb) { |
| | | var pkey = document.querySelector(selectorKey).value; |
| | | var dlgdata = {"del-elem": pkey}; |
| | | self.dialog_laden_und_zeigen('data/tpl/dlg-loeschen.tpl', dlgdata, function() { |
| | | 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."); |
| | |
| | | }; |
| | | |
| | | this.info_dialog_zeigen = function () { |
| | | self.dialog_laden_und_zeigen('data/tpl/dlg-info.tpl', ''); |
| | | self.dialog_laden_und_zeigen('data/tpl/dlg-info.txt', ''); |
| | | self.menue_umschalten(); |
| | | }; |
| | | |