2017-05-08 19:13:29 +02:00
|
|
|
var gui = {};
|
2017-05-09 20:40:18 +02:00
|
|
|
var router = new Navigo(null, true, '#');
|
2017-05-08 19:13:29 +02:00
|
|
|
|
|
|
|
(function(){
|
2017-05-15 21:59:48 +02:00
|
|
|
var currentView = {bind:function(){},render:function(){}};
|
|
|
|
|
|
|
|
function render() {
|
|
|
|
var status = document.getElementsByClassName('status')[0];
|
|
|
|
if (status === undefined){
|
|
|
|
console.log("unable to render, render later");
|
|
|
|
setTimeout(render,100);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
status.classList.remove('connecting','offline');
|
|
|
|
if(socket.readyState !== 1){
|
|
|
|
status.classList.add(((socket.readyState===0 || socket.readyState===2)?'connecting':(socket.readyState===1)?'':'offline'));
|
|
|
|
}
|
|
|
|
|
|
|
|
notify.bind(document.getElementsByClassName('notifications')[0]);
|
|
|
|
|
|
|
|
currentView.render();
|
|
|
|
router.resolve();
|
|
|
|
}
|
|
|
|
|
|
|
|
function setView(c){
|
|
|
|
currentView = c;
|
|
|
|
var main = document.querySelector('main')
|
|
|
|
domlib.removeChildren(main);
|
|
|
|
currentView.bind(main);
|
|
|
|
currentView.render();
|
2017-05-09 20:40:18 +02:00
|
|
|
}
|
2017-05-15 21:59:48 +02:00
|
|
|
|
2017-05-09 20:40:18 +02:00
|
|
|
router.on({
|
|
|
|
'/list': function () {
|
2017-05-15 21:59:48 +02:00
|
|
|
setView(guiList);
|
2017-05-09 20:40:18 +02:00
|
|
|
},
|
|
|
|
'/map':function(){
|
2017-05-15 21:59:48 +02:00
|
|
|
setView(guiMap);
|
2017-05-09 20:40:18 +02:00
|
|
|
},
|
|
|
|
'/statistics':function(){
|
2017-05-15 21:59:48 +02:00
|
|
|
setView(guiStats);
|
2017-05-09 20:40:18 +02:00
|
|
|
},
|
|
|
|
'/n/:nodeID': {
|
|
|
|
as: 'node',
|
|
|
|
uses: function (params) {
|
2017-05-15 21:59:48 +02:00
|
|
|
guiNode.current_node_id = params['nodeID'].toLowerCase();
|
|
|
|
setView(guiNode);
|
2017-05-09 20:40:18 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
});
|
|
|
|
router.on(function () {
|
|
|
|
router.navigate('/list');
|
|
|
|
});
|
|
|
|
|
2017-05-15 21:59:48 +02:00
|
|
|
gui.render = function () {
|
|
|
|
var timeout;
|
2017-05-08 19:13:29 +02:00
|
|
|
|
2017-05-15 21:59:48 +02:00
|
|
|
function reset () {
|
|
|
|
timeout = null;
|
|
|
|
}
|
2017-05-09 20:40:18 +02:00
|
|
|
|
2017-05-15 21:59:48 +02:00
|
|
|
if (timeout){
|
|
|
|
console("skip rendering, because to often");
|
|
|
|
clearTimeout(timeout);
|
|
|
|
} else {
|
|
|
|
render();
|
|
|
|
}
|
|
|
|
timeout = setTimeout(reset, 100);
|
|
|
|
}
|
2017-05-09 18:05:55 +02:00
|
|
|
|
2017-05-09 17:45:16 +02:00
|
|
|
gui.render();
|
2017-05-08 19:13:29 +02:00
|
|
|
})();
|