|
@@ -1,4 +1,41 @@
|
|
|
-define(["moment", "tablesort", "tablesort.numeric"], function (moment, Tablesort) {
|
|
|
+define(["moment", "numeral", "tablesort", "tablesort.numeric"],
|
|
|
+ function (moment, numeral, Tablesort) {
|
|
|
+ function showGeoURI(d) {
|
|
|
+ function showLatitude(d) {
|
|
|
+ var suffix = Math.sign(d) > -1 ? "' N" : "' S"
|
|
|
+ d = Math.abs(d)
|
|
|
+ var a = Math.floor(d)
|
|
|
+ var min = (d * 60) % 60
|
|
|
+ a = (a < 10 ? "0" : "") + a
|
|
|
+
|
|
|
+ return a + "° " + numeral(min).format("0.000") + suffix
|
|
|
+ }
|
|
|
+
|
|
|
+ function showLongitude(d) {
|
|
|
+ var suffix = Math.sign(d) > -1 ? "' E" : "' W"
|
|
|
+ d = Math.abs(d)
|
|
|
+ var a = Math.floor(d)
|
|
|
+ var min = (d * 60) % 60
|
|
|
+ a = (a < 100 ? "0" + (a < 10 ? "0" : "") : "") + a
|
|
|
+
|
|
|
+ return a + "° " + numeral(min).format("0.000") + suffix
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!has_location(d))
|
|
|
+ return undefined
|
|
|
+
|
|
|
+ return function (el) {
|
|
|
+ var latitude = d.nodeinfo.location.latitude
|
|
|
+ var longitude = d.nodeinfo.location.longitude
|
|
|
+ var a = document.createElement("a")
|
|
|
+ a.textContent = showLatitude(latitude) + " " +
|
|
|
+ showLongitude(longitude)
|
|
|
+
|
|
|
+ a.href = "geo:" + latitude + "," + longitude
|
|
|
+ el.appendChild(a)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
function showFirmware(d) {
|
|
|
var release = dictGet(d.nodeinfo, ["software", "firmware", "release"])
|
|
|
var base = dictGet(d.nodeinfo, ["software", "firmware", "base"])
|
|
@@ -109,7 +146,7 @@ define(["moment", "tablesort", "tablesort.numeric"], function (moment, Tablesort
|
|
|
attributes.classList.add("attributes")
|
|
|
|
|
|
attributeEntry(attributes, "Gateway", d.flags.gateway ? "ja" : null)
|
|
|
- attributeEntry(attributes, "In der Karte", has_location(d) ? "ja" : "nein")
|
|
|
+ attributeEntry(attributes, "Koordinaten", showGeoURI(d))
|
|
|
|
|
|
if (config.showContact)
|
|
|
attributeEntry(attributes, "Kontakt", dictGet(d.nodeinfo, ["owner", "contact"]))
|