refactor router

This commit is contained in:
Nils Schneider 2015-03-27 22:25:28 +01:00
parent 40ecf2641e
commit f5dbd56a70
3 changed files with 21 additions and 14 deletions

View file

@ -43,28 +43,41 @@ define(function () {
function loadState(s) {
if (!s)
return
return false
if (!s.startsWith("#!"))
return
return false
var args = s.slice(2).split(":")
if (args.length == 1 && args[0] == "")
resetView(false)
if (args[0] === "n") {
var id = args[1]
if (id in objects.nodes)
if (id in objects.nodes) {
gotoNode(objects.nodes[id])
return true
}
}
if (args[0] === "l") {
var id = args[1]
if (id in objects.links)
if (id in objects.links) {
gotoLink(objects.links[id])
return true
}
}
return false
}
self.start = function () {
if (!loadState(window.location.hash))
resetView(false)
window.onpopstate = function (d) {
if (!loadState(d.state))
resetView(false)
}
}
@ -94,8 +107,6 @@ define(function () {
}
self.addTarget = function (d) { targets.push(d) }
self.loadState = loadState
self.setData = function (nodes, links) {
objects.nodes = {}
objects.links = {}
@ -109,8 +120,6 @@ define(function () {
})
}
window.onpopstate = function (d) { loadState(d.state) }
return self
}
})