Переделка интерфейса с использованием SVG-иконок, добавлен счетчик времени и кнопки...
[mpd-lua.git] / ajax / mpd.js
diff --git a/ajax/mpd.js b/ajax/mpd.js
deleted file mode 100644 (file)
index 9cd2667..0000000
+++ /dev/null
@@ -1,392 +0,0 @@
-urlbase="mpd.lua?"
-
-function GetFilename(url)
-{
-   if (url)
-   return url.split('/').pop().split('#')[0].split('?')[0];
-}
-
-function EscapeStr(str) {
-  res = str.replace(/'/g,"\\'");
-  return res;
-}
-
-function RefreshPageStatus() {
-
-  var req = new XMLHttpRequest();
-
-  req.onreadystatechange = function () {
-    if (this.readyState != 4 || this.status != 200) return;
-    var returnedData = JSON.parse(this.responseText);
-    nowPlaying = GetFilename(returnedData['current_playing'])
-    document.title='MPD Player: '+nowPlaying;
-    nowPlaying = (1+Number(returnedData['song'])) + '/' + returnedData['playlistlength'] + ' '+nowPlaying;
-    if (returnedData['state']=='stop') {
-      nowPlaying = '<font color="gray">' + nowPlaying+ '</font>'
-    }
-    document.getElementById('nowplaying_content').innerHTML=nowPlaying;
-    if (returnedData["state"]=="play") {
-      document.getElementById('playpausebutton').innerHTML="<span onclick=\"Command('pause')\"><img class=\"button\" src=\"images/pause.png\"></span>";
-    } else {
-      document.getElementById('playpausebutton').innerHTML="<span onclick=\"Command('play')\"><img class=\"button\" src=\"images/play.png\"></span>";
-    }
-    if (returnedData["repeat"]=="1") {
-      document.getElementById('repeatstate').innerHTML="<img src=\"images/repeaton.png\"></a>";
-    } else {
-      document.getElementById('repeatstate').innerHTML="<img src=\"images/repeatoff.png\"></a>";
-    }
-    document.getElementById('volume_total').innerHTML="<div id=\"volume_actual\" style=\"width:"+returnedData["volume"]+"%\">";
-  };
-
-  req.open("GET", urlbase+"status", true);
-  req.send();
-
-
-}
-
-function RefreshPlaylist() {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  var returnedData = JSON.parse(this.responseText);
-
-  var text = "<div id=\"playlist_menu\">\
-  <table>\
-  <tr>\
-  <td><span class=\"button\" onclick=\"EditPlayList()\"><img width=\"20\" src=\"images/songs.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"LoadPlayList()\"><img width=\"20\" src=\"images/lists.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"SavePlayList()\"><img width=\"20\" src=\"images/save.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"return confirm('Clear current playlist, are you sure?') ? PlaylistCommand('clear') : false;\" ><img width=\"20\" src=\"images/removeall.png\"></span><td>\
-  </tr>\
-  </table>\
-  </div>\
-  <div id=\"items\">\
-  <table>\
-  <tr id=\"items_heading\">\
-  <td></td><td>Title</td><th colspan=\"4\">Controls</th>\
-  </tr>";
-
-  var even = 0;
-  for (var key in returnedData) {
-       var rec=returnedData[key];
-       var name=GetFilename(rec["name"]);
-       var id=rec["id"];
-
-       if (even) { 
-         evText="itemEven"; 
-       } else { 
-         evText="itemOdd";
-       };
-
-       even = ! even;
-
-       text = text + "<tr id=\""+evText+"\">\
-  <td id=\"track_number\">\
-  <a name=\""+id+"\"></a></td>\
-  </td>\
-  <td id=\"file\">\
-  <span class=\"button\" onclick=\"PlaylistCommand('playitem',"+id+")\">"+name+"</span>\
-  </td>\
-  <td id=\"move\">\
-  <span class=\"button\" onclick=\"PlaylistCommand('moveup',"+id+")\"><img width=\"15\" src=\"images/up.png\"></span>\
-  </td>\
-  <td id=\"move\">\
-  <span class=\"button\" onclick=\"PlaylistCommand('movedown',"+id+")\"><img width=\"15\" src=\"images/down.png\"></span>\
-  </td>\
-  <td id=\"remove\">\
-  <span class=\"button\" onclick=\"PlaylistCommand('remove',"+id+")\"><img width=\"15\" src=\"images/remove.png\"></span>\
-  </td>\
-  </tr>"; 
-  }
-
-  text = text + "</table>\
-  </div>\
-  <div id=\"playlist_menu\">\
-  <table>\
-  <tr>\
-  <td><span class=\"button\" onclick=\"EditPlayList()\"><img width=\"20\" src=\"images/songs.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"LoadPlayList()\"><img width=\"20\" src=\"images/lists.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"SavePlayList()\"><img width=\"20\" src=\"images/save.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"return confirm('Clear current playlist, are you sure?') ? PlaylistCommand('clear') : false;\" ><img width=\"20\" src=\"images/removeall.png\"></span><td>\
-  </tr>\
-  </table>\
-</div>";
-
-  document.getElementById('playlist').innerHTML=text;
-};
-
-req.open("GET", urlbase+"playlist", true);
-req.send();
-
-}
-
-function EditPlayList(dir) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  var returnedData = JSON.parse(this.responseText);
-
-  var text = "<div id=\"playlist_menu\">\
-  <table>\
-  <tr>\
-  <td><span class=\"button\" onclick=\"RefreshPlaylist()\"><img width=\"20\" src=\"images/playlist.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"return confirm('Add all to the list, are you sure?') ? PlaylistEditCommand('add','"+EscapeStr(dir)+"') : false;\" ><img width=\"20\" src=\"images/addall.png\"></span><td>\
-  </tr>\
-  </table>\
-  </div>\
-  <div id=\"items\">\
-  <table>\
-  <tr id=\"items_heading\">\
-  <td></td><td>Title</td><th colspan=\"2\">Controls</th>\
-  </tr>";
-
-  if (dir) {
-    var lastSlash=dir.lastIndexOf("/");
-    if (lastSlash>0) {
-      var upperLevel=dir.slice(0,lastSlash);
-    } else {
-      var upperLevel="";
-    }
-    var text = text + "<tr id=\"home\">\
-  <td></td>\
-  <td><span class=\"button\" onclick=\"EditPlayList('"+upperLevel+"')\"><img width=\"20\" src=\"images/left.png\"></span></td>\
-  <td></td><td></td>";
-  } 
-
-  var even = 0;
-  var i = 0;
-  for (var key in returnedData) {
-       var rec=returnedData[key];
-       var type=rec["type"];
-       var name=rec["name"];
-       var lastSlash=name.lastIndexOf("/");
-       if (lastSlash>0) {
-         var tailName=name.slice(lastSlash+1);
-       } else {
-         var tailName=name
-       };
-
-       if (type == "directory" || type == "file") {
-         if (even) { 
-           evText="itemEven"; 
-         } else { 
-           evText="itemOdd";
-         };
-
-         i = i + 1;
-         even = ! even;
-
-         text = text + "<tr id=\""+evText+"\">\
-           <td id=\"track_number\">\
-           <a name=\""+i+"\"></a></td>\
-           </td>";
-      
-         if (type == "directory") {
-           text = text + "<td id=\"file\">\
-             <span class=\"button\" onclick=\"EditPlayList('"+EscapeStr(name)+"')\">"+tailName+"</span></td><td>\
-             <span class=\"button\" onclick=\"PlaylistEditCommand('add','"+EscapeStr(name)+"')\"><img width=\"15\" src=\"images/plus.png\"></span></td>";
-         }; 
-
-         if (type == "file") {
-           text = text + "<td id=\"file\">\
-             <span class=\"button\" onclick=\"PlaylistEditCommand('add','"+EscapeStr(name)+"')\">"+tailName+"</span></td><td>\
-             <span class=\"button\" onclick=\"PlaylistEditCommand('add','"+EscapeStr(name)+"')\"><img width=\"15\" src=\"images/plus.png\"></span></td>";
-         };
-
-         text = text + "</tr>";
-
-       }       
-       
-  }
-
-  var text = text+"</table></div>\
-  <div id=\"playlist_menu\">\
-  <table>\
-  <tr>\
-  <td><span class=\"button\" onclick=\"RefreshPlaylist()\"><img width=\"20\" src=\"images/playlist.png\"></span><td>\
-  <td><span class=\"button\" onclick=\"return confirm('Add all to the list, are you sure?') ? PlaylistEditCommand('addall','"+EscapeStr(dir)+"') : false;\" ><img width=\"20\" src=\"images/addall.png\"></span><td>\
-  </tr>\
-  </table>\
-  </div>";
-  document.getElementById('playlist').innerHTML=text;
-};
-
-if (!dir) { dir = ''; };
-
-req.open("GET", urlbase+"lists|edit|"+dir, true);
-req.send();
-
-}
-
-function LoadPlayList() {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  var returnedData = JSON.parse(this.responseText);
-  text="<div id=\"playlist_menu\">\
-    <table>\
-    <tr>\
-      <td><span class=\"button\" onclick=\"RefreshPlaylist()\"><img width=\"20\" src=\"images/playlist.png\"></span><td>\
-      <td><span class=\"button\" onclick=\"confirm('Clear current playlist, are you sure?') ? PlaylistCommandRefStatus('clear') : false;\" ><img width=\"20\" src=\"images/removeall.png\"></span><td>\
-    </tr>\
-    </table>\
-    </div>\
-    <div id=\"items\">\
-    <table>\
-    <tr id=\"items_heading\">\
-      <td></td><td>Name</td><td>Controls</td>\
-    </tr>";
-
-  var even = 0;
-  for (var key in returnedData) {
-       var name=returnedData[key];
-
-       if (even) { 
-         evText="itemEven"; 
-       } else { 
-         evText="itemOdd";
-       };
-
-       even = ! even;
-
-       text = text + "<tr id=\""+evText+"\">\
-      <td id=\"track_number\"><a name=\"0\"></a></td>\
-      <td id=\"file\"><span class=\"button\" onclick=\"PlaylistEditCommandRefFull('load','"+EscapeStr(name)+"')\">"+name+"</td>\
-      <td id=\"controls\"><span class=\"button\" onclick=\"confirm('Delete playlist "+name+", are you sure?') ? DelPlayList('"+EscapeStr(name)+"') : false;\"><img width=\"20\" src=\"images/minus.png\"></span></td>\
-    </tr>";
-  }
-
-  text=text+"</table></div><div id=\"playlist_menu\">\
-    <table>\
-    <tr>\
-      <td><span class=\"button\" onclick=\"RefreshPlaylist()\"><img width=\"20\" src=\"images/playlist.png\"></span><td>\
-      <td><span class=\"button\" onclick=\"confirm('Clear current playlist, are you sure?') ? PlaylistCommandRefStatus('clear') : false;\" ><img width=\"20\" src=\"images/removeall.png\"></span><td>\
-    </tr>\
-    </table>\
-    </div>";
-
-  document.getElementById('playlist').innerHTML=text;
-};
-
-req.open("GET", urlbase+"lists|load", true);
-req.send();
-
-}
-
-function SavePlayList() {
-
-var name=window.prompt('List name','');
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  if (this.responseText != 'OK') {
-    window.alert(this.responseText);
-  }
-};
-
-req.open("GET", urlbase+"lists|save|"+name, true);
-req.send();
-
-}
-
-function DelPlayList(item) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageStatus();
-  LoadPlayList();
-};
-
-req.open("GET", urlbase+"lists|delete|"+item, true);
-req.send();
-
-}
-
-function RefreshPageContent() {
-
-  RefreshPageStatus();
-  RefreshPlaylist();
-
-}
-
-function Command(cmd) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageStatus();
-};
-
-req.open("GET", urlbase+cmd, true);
-req.send();
-
-}
-
-function PlaylistCommand(cmd,item) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageContent();
-};
-
-req.open("GET", urlbase+"cpl|"+cmd+"|"+item, true);
-req.send();
-
-}
-
-function PlaylistCommandRefStatus(cmd,item) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageStatus();
-};
-
-req.open("GET", urlbase+"cpl|"+cmd+"|"+item, true);
-req.send();
-
-}
-
-function PlaylistEditCommand(cmd,item) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageStatus();
-};
-
-req.open("GET", urlbase+"lists|"+cmd+"|"+item, true);
-req.send();
-
-}
-
-function PlaylistEditCommandRefFull(cmd,item) {
-
-var req = new XMLHttpRequest();
-
-req.onreadystatechange = function () {
-  if (this.readyState != 4 || this.status != 200) return;
-  RefreshPageContent();
-};
-
-req.open("GET", urlbase+"lists|"+cmd+"|"+item, true);
-req.send();
-
-}
-
-setInterval(RefreshPageStatus, 10000);