add a message when there's no tracks yet
[lantea.git] / js / library.js
CommitLineData
867ee0af
RK
1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5function showLibrary() {
6 document.getElementById("libraryArea").classList.remove("hidden");
7 var tlist = document.getElementById("libTrackList");
8 while (tlist.firstChild) { tlist.removeChild(tlist.firstChild); }
9 var litem = document.createElement("li");
10 var load_img = document.createElement("img");
11 load_img.setAttribute("src", "style/loading_action.png");
12 litem.appendChild(load_img);
13 litem.textContent = "Loading list...";
14 litem.id = "libLoadingItem";
15 tlist.appendChild(litem);
16 fetchBackend("tracks", "GET", null,
17 function(aResult, aStatusCode) {
18 document.getElementById("libLoadingItem").classList.add("hidden");
19 if (aStatusCode >= 400) {
20 var litem = document.createElement("li");
21 litem.textContent = "Error: " + aResult;
22 tlist.appendChild(litem);
23 }
d08d3308
RK
24 else if (!aResult.length) {
25 var litem = document.createElement("li");
26 litem.textContent = "No tracks uploaded yet.";
27 tlist.appendChild(litem);
28 }
867ee0af
RK
29 else {
30 for (var i = 0; i < aResult.length; i++) {
31 var litem = document.createElement("li");
ba819f24 32 litem.textContent = dtformat(aResult[i]["time_created"]) + " - ";
846a4dac
RK
33 var llink = document.createElement("a");
34 llink.setAttribute("href", gBackendURL + "/track_gpx?id=" + aResult[i]["id"]);
35 llink.textContent = aResult[i]["comment"];
36 litem.appendChild(llink);
37 if (aResult[i]["devicename"]) {
38 litem.appendChild(document.createTextNode(" (" + aResult[i]["devicename"] + ")"));
39 }
867ee0af
RK
40 tlist.appendChild(litem);
41 }
42 }
43 }
44 );
45}
46
47function hideLibrary() {
48 document.getElementById("libraryArea").classList.add("hidden");
49}
50
ba819f24
RK
51function dtformat(aUnixTimestamp) {
52 // Library display time format: YYYY-MM-DD HH:mm
53 // Note that JS has millisecond timestamps while standard/unix has seconds.
54 var tsDate = new Date(aUnixTimestamp * 1000);
55 // Note that .getUTCMonth() returns a number between 0 and 11 (0 for January)!
56 return tsDate.getUTCFullYear() + "-" +
57 (tsDate.getUTCMonth() < 9 ? "0" : "") + (tsDate.getUTCMonth() + 1 ) + "-" +
58 (tsDate.getUTCDate() < 10 ? "0" : "") + tsDate.getUTCDate() + " " +
59 (tsDate.getUTCHours() < 10 ? "0" : "") + tsDate.getUTCHours() + ":" +
60 (tsDate.getUTCMinutes() < 10 ? "0" : "") + tsDate.getUTCMinutes();
61}
62