add admin UI for loading tracks
[lantea.git] / js / library.js
index 9cb6d24a2ba9c4914ec3d9fc7f9b480f71f2b349..5e08793b63ffed454237d5612b3ed9edbaf2731b 100644 (file)
@@ -31,12 +31,27 @@ function showLibrary() {
           var litem = document.createElement("li");
           litem.textContent = dtformat(aResult[i]["time_created"]) + " - ";
           var llink = document.createElement("a");
-          llink.setAttribute("href", gBackendURL + "/track_gpx?id=" + aResult[i]["id"]);
+          var dlurl = gBackendURL + "/track_gpx?id=" + aResult[i]["id"];
+          llink.setAttribute("href", dlurl);
           llink.textContent = aResult[i]["comment"];
           litem.appendChild(llink);
           if (aResult[i]["devicename"]) {
             litem.appendChild(document.createTextNode(" (" + aResult[i]["devicename"] +  ")"));
           }
+          if (userData && userData["permissions"].includes("admin")) {
+            // Show load entry for debugging purposes
+            litem.appendChild(document.createTextNode(" "));
+            var ldbtn = document.createElement("button");
+            ldbtn.onclick = loadButtonClicked;
+            ldbtn.textContent = "load";
+            ldbtn.classList.add("minorbutton");
+            ldbtn.dataset.id = aResult[i]["id"];
+            litem.appendChild(ldbtn);
+            litem.appendChild(document.createTextNode(" "));
+            var lderror = document.createElement("span");
+            lderror.classList.add("statusmsg");
+            litem.appendChild(lderror);
+          }
           tlist.appendChild(litem);
         }
       }
@@ -44,6 +59,13 @@ function showLibrary() {
   );
 }
 
+function loadButtonClicked(aEvent) {
+  var feedbackspan = aEvent.target.nextElementSibling;
+  feedbackspan.textContent = "";
+  feedbackspan.classList.remove("error");
+  loadTrackFromBackend(aEvent.target.dataset.id, feedbackspan, hideLibrary);
+}
+
 function hideLibrary() {
   document.getElementById("libraryArea").classList.add("hidden");
 }