X-Git-Url: https://git-public.kairo.at/?a=blobdiff_plain;ds=sidebyside;f=js%2Flibrary.js;h=5e08793b63ffed454237d5612b3ed9edbaf2731b;hb=4565aed86972b40bcd65e55453bb16afc628db55;hp=2130f022d5c56ecd83c286c4217ef126defe277d;hpb=846a4dacf7230152237b1d42944196694695b5da;p=lantea.git diff --git a/js/library.js b/js/library.js index 2130f02..5e08793 100644 --- a/js/library.js +++ b/js/library.js @@ -21,17 +21,37 @@ function showLibrary() { litem.textContent = "Error: " + aResult; tlist.appendChild(litem); } + else if (!aResult.length) { + var litem = document.createElement("li"); + litem.textContent = "No tracks uploaded yet."; + tlist.appendChild(litem); + } else { for (var i = 0; i < aResult.length; i++) { var litem = document.createElement("li"); - litem.textContent = aResult[i]["time_created"] + " - "; + 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); } } @@ -39,7 +59,26 @@ 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"); } +function dtformat(aUnixTimestamp) { + // Library display time format: YYYY-MM-DD HH:mm + // Note that JS has millisecond timestamps while standard/unix has seconds. + var tsDate = new Date(aUnixTimestamp * 1000); + // Note that .getUTCMonth() returns a number between 0 and 11 (0 for January)! + return tsDate.getUTCFullYear() + "-" + + (tsDate.getUTCMonth() < 9 ? "0" : "") + (tsDate.getUTCMonth() + 1 ) + "-" + + (tsDate.getUTCDate() < 10 ? "0" : "") + tsDate.getUTCDate() + " " + + (tsDate.getUTCHours() < 10 ? "0" : "") + tsDate.getUTCHours() + ":" + + (tsDate.getUTCMinutes() < 10 ? "0" : "") + tsDate.getUTCMinutes(); +} +