X-Git-Url: https://git-public.kairo.at/?p=lantea.git;a=blobdiff_plain;f=js%2Flibrary.js;h=5e08793b63ffed454237d5612b3ed9edbaf2731b;hp=3d0c521849c47aff71ee6b551f13be848c1f066b;hb=aa45a91bb8d9f490e5577c4c408f31b9f8fdf324;hpb=867ee0afc0f4af36dc5ec5ca769ee088042c4ebc diff --git a/js/library.js b/js/library.js index 3d0c521..5e08793 100644 --- a/js/library.js +++ b/js/library.js @@ -21,11 +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"] + " - " + aResult[i]["comment"] + - (aResult[i]["devicename"] ? " (" + aResult[i]["devicename"] + ")" : ""); + litem.textContent = dtformat(aResult[i]["time_created"]) + " - "; + var llink = document.createElement("a"); + 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); } } @@ -33,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(); +} +