106 lines
3.1 KiB
JavaScript
106 lines
3.1 KiB
JavaScript
|
var req;
|
||
|
var playlist_info={};
|
||
|
|
||
|
function selectPlaylist(e) {
|
||
|
var targ;
|
||
|
|
||
|
if(!e) var e=window.event;
|
||
|
if(e.target) targ=e.target;
|
||
|
else if (e.srcElement) targ=e.srcElement;
|
||
|
if(targ.nodeType == 3)
|
||
|
targ = targ.parentNode;
|
||
|
|
||
|
while(targ.previousSibling)
|
||
|
targ=targ.previousSibling;
|
||
|
|
||
|
|
||
|
pl_id = targ.firstChild.nodeValue;
|
||
|
|
||
|
|
||
|
alert(playlist_info[pl_id]['name']);
|
||
|
}
|
||
|
|
||
|
function processPlaylists() {
|
||
|
var xmldoc = req.responseXML;
|
||
|
var playlists = xmldoc.getElementsByTagName("dmap.listingitem");
|
||
|
var pl_table = document.getElementById("playlists");
|
||
|
playlist_info = {};
|
||
|
|
||
|
while(pl_table.childNodes.length > 0) {
|
||
|
pl_table.removeChild(pl_table.lastChild);
|
||
|
}
|
||
|
|
||
|
for(var x=0; x < playlists.length; x++) {
|
||
|
var pl_id=playlists[x].getElementsByTagName("dmap.itemid")[0].firstChild.nodeValue;
|
||
|
var pl_name=playlists[x].getElementsByTagName("dmap.itemname")[0].firstChild.nodeValue;
|
||
|
var pl_type=playlists[x].getElementsByTagName("org.mt-daapd.playlist-type")[0].firstChild.nodeValue;
|
||
|
|
||
|
|
||
|
playlist_info[String(pl_id)] = { 'name': pl_name, 'type': pl_type };
|
||
|
if(pl_type == 1) {
|
||
|
var pl_spec=playlists[x].getElementsByTagName("org.mt-daapd.smart-playlist-spec")[0].firstChild.nodeValue;
|
||
|
playlist_info[String(pl_id)]['spec'] = pl_spec;
|
||
|
}
|
||
|
|
||
|
switch(pl_type) {
|
||
|
case "0":
|
||
|
pl_type = "Static (Web Edited)";
|
||
|
break;
|
||
|
case "1":
|
||
|
pl_type = "Smart";
|
||
|
break;
|
||
|
case "2":
|
||
|
pl_type = "Static (File)";
|
||
|
break;
|
||
|
case "3":
|
||
|
pl_type = "Static (iTunes)";
|
||
|
break;
|
||
|
}
|
||
|
var row = document.createElement("tr");
|
||
|
row.onclick=selectPlaylist;
|
||
|
if(row.captureEvents) row.captureEvents(Event.CLICK);
|
||
|
var td1 = document.createElement("td");
|
||
|
var td2 = document.createElement("td");
|
||
|
var td3 = document.createElement("td");
|
||
|
td1.innerHTML=pl_id;
|
||
|
td2.innerHTML=pl_name + "\n";
|
||
|
td3.innerHTML=pl_type + "\n";
|
||
|
row.appendChild(td1);
|
||
|
row.appendChild(td2);
|
||
|
row.appendChild(td3);
|
||
|
pl_table.appendChild(row);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function processReqChange() {
|
||
|
if(req.readyState == 4) {
|
||
|
if(req.status == 200) {
|
||
|
processPlaylists();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function init() {
|
||
|
loadXMLDoc("/databases/1/containers?output=xml&meta=dmap.itemid,dmap.itemname,org.mt-daapd.playlist-type,org.mt-daapd.smart-playlist-spec","playlists");
|
||
|
}
|
||
|
|
||
|
|
||
|
function loadXMLDoc(url) {
|
||
|
// branch for native XMLHttpRequest object
|
||
|
if (window.XMLHttpRequest) {
|
||
|
req = new XMLHttpRequest();
|
||
|
req.onreadystatechange = processReqChange;
|
||
|
req.open("GET", url, true);
|
||
|
req.send(null);
|
||
|
// branch for IE/Windows ActiveX version
|
||
|
} else if (window.ActiveXObject) {
|
||
|
req = new ActiveXObject("Microsoft.XMLHTTP");
|
||
|
if (req) {
|
||
|
req.onreadystatechange = processReqChange;
|
||
|
req.open("GET", url, true);
|
||
|
req.send();
|
||
|
}
|
||
|
}
|
||
|
}
|