[!!!][TASK] Use eslint default
This commit is contained in:
parent
c451775021
commit
173674c2a1
21 changed files with 387 additions and 159 deletions
241
lib/utils/helper.js
Normal file
241
lib/utils/helper.js
Normal file
|
@ -0,0 +1,241 @@
|
|||
define({
|
||||
get: function (url) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", url);
|
||||
|
||||
req.onload = function () {
|
||||
if (req.status == 200) {
|
||||
resolve(req.response);
|
||||
}
|
||||
else {
|
||||
reject(Error(req.statusText));
|
||||
}
|
||||
};
|
||||
|
||||
req.onerror = function () {
|
||||
reject(Error("Network Error"));
|
||||
};
|
||||
|
||||
req.send();
|
||||
});
|
||||
},
|
||||
|
||||
getJSON: function (url) {
|
||||
return require("helper").get(url).then(JSON.parse);
|
||||
},
|
||||
|
||||
sortByKey: function (key, d) {
|
||||
return d.slice().sort(function (a, b) {
|
||||
return a[key] - b[key];
|
||||
}).reverse();
|
||||
},
|
||||
|
||||
limit: function (key, m, d) {
|
||||
return d.filter(function (d) {
|
||||
return d[key].isAfter(m);
|
||||
});
|
||||
},
|
||||
|
||||
sum: function (a) {
|
||||
return a.reduce(function (a, b) {
|
||||
return a + b;
|
||||
}, 0);
|
||||
},
|
||||
|
||||
one: function () {
|
||||
return 1;
|
||||
},
|
||||
|
||||
trueDefault: function (d) {
|
||||
return d === undefined ? true : d;
|
||||
},
|
||||
|
||||
dictGet: function (dict, key) {
|
||||
var k = key.shift();
|
||||
|
||||
if (!(k in dict)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (key.length == 0) {
|
||||
return dict[k];
|
||||
}
|
||||
|
||||
return this.dictGet(dict[k], key);
|
||||
},
|
||||
|
||||
localStorageTest: function () {
|
||||
var test = "test";
|
||||
try {
|
||||
localStorage.setItem(test, test);
|
||||
localStorage.removeItem(test);
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
listReplace: function (s, subst) {
|
||||
for (key in subst) {
|
||||
var re = new RegExp(key, "g");
|
||||
s = s.replace(re, subst[key]);
|
||||
}
|
||||
return s;
|
||||
},
|
||||
|
||||
/* Helpers working with nodes */
|
||||
|
||||
offline: function (d) {
|
||||
return !d.flags.online;
|
||||
},
|
||||
|
||||
online: function (d) {
|
||||
return d.flags.online;
|
||||
},
|
||||
|
||||
hasLocation: function (d) {
|
||||
return "location" in d.nodeinfo &&
|
||||
Math.abs(d.nodeinfo.location.latitude) < 90 &&
|
||||
Math.abs(d.nodeinfo.location.longitude) < 180;
|
||||
},
|
||||
|
||||
subtract: function (a, b) {
|
||||
var ids = {};
|
||||
|
||||
b.forEach(function (d) {
|
||||
ids[d.nodeinfo.node_id] = true;
|
||||
});
|
||||
|
||||
return a.filter(function (d) {
|
||||
return !(d.nodeinfo.node_id in ids);
|
||||
});
|
||||
},
|
||||
|
||||
/* Helpers working with links */
|
||||
|
||||
showDistance: function (d) {
|
||||
if (isNaN(d.distance)) {
|
||||
return;
|
||||
}
|
||||
|
||||
return d.distance.toFixed(0) + " m";
|
||||
},
|
||||
|
||||
showTq: function (d) {
|
||||
return (1 / d.tq * 100).toFixed(0) + "%";
|
||||
},
|
||||
|
||||
attributeEntry: function (el, label, value) {
|
||||
if (value === null || value == undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
var tr = document.createElement("tr");
|
||||
var th = document.createElement("th");
|
||||
|
||||
if (typeof label === "string") {
|
||||
th.textContent = label;
|
||||
} else {
|
||||
th.appendChild(label);
|
||||
tr.classList.add("routerpic");
|
||||
}
|
||||
|
||||
tr.appendChild(th);
|
||||
|
||||
var td = document.createElement("td");
|
||||
|
||||
if (typeof value == "function") {
|
||||
value(td);
|
||||
} else {
|
||||
td.appendChild(document.createTextNode(value));
|
||||
}
|
||||
|
||||
tr.appendChild(td);
|
||||
|
||||
el.appendChild(tr);
|
||||
|
||||
return td;
|
||||
},
|
||||
|
||||
createIframe: function (opt, width, height) {
|
||||
var el = document.createElement("iframe");
|
||||
width = typeof width !== "undefined" ? width : "525px";
|
||||
height = typeof height !== "undefined" ? height : "350px";
|
||||
|
||||
if (opt.src) {
|
||||
el.src = opt.src;
|
||||
} else {
|
||||
el.src = opt;
|
||||
}
|
||||
|
||||
if (opt.frameBorder) {
|
||||
el.frameBorder = opt.frameBorder;
|
||||
} else {
|
||||
el.frameBorder = 1;
|
||||
}
|
||||
|
||||
if (opt.width) {
|
||||
el.width = opt.width;
|
||||
} else {
|
||||
el.width = width;
|
||||
}
|
||||
|
||||
if (opt.height) {
|
||||
el.height = opt.height;
|
||||
} else {
|
||||
el.height = height;
|
||||
}
|
||||
|
||||
el.scrolling = "no";
|
||||
el.seamless = "seamless";
|
||||
|
||||
return el;
|
||||
},
|
||||
|
||||
showStat: function (o, subst) {
|
||||
var content, caption;
|
||||
subst = typeof subst !== "undefined" ? subst : {};
|
||||
|
||||
if (o.thumbnail) {
|
||||
content = document.createElement("img");
|
||||
content.src = require("helper").listReplace(o.thumbnail, subst);
|
||||
}
|
||||
|
||||
if (o.caption) {
|
||||
caption = require("helper").listReplace(o.caption, subst);
|
||||
|
||||
if (!content) {
|
||||
content = document.createTextNode(caption);
|
||||
}
|
||||
}
|
||||
|
||||
if (o.iframe) {
|
||||
content = require("helper").createIframe(o.iframe, o.width, o.height);
|
||||
if (o.iframe.src) {
|
||||
content.src = require("helper").listReplace(o.iframe.src, subst);
|
||||
} else {
|
||||
content.src = require("helper").listReplace(o.iframe, subst);
|
||||
}
|
||||
}
|
||||
|
||||
var p = document.createElement("p");
|
||||
|
||||
if (o.href) {
|
||||
var link = document.createElement("a");
|
||||
link.target = "_blank";
|
||||
link.href = require("helper").listReplace(o.href, subst);
|
||||
link.appendChild(content);
|
||||
|
||||
if (caption && o.thumbnail) {
|
||||
link.title = caption;
|
||||
}
|
||||
|
||||
p.appendChild(link);
|
||||
} else {
|
||||
p.appendChild(content);
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue