123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- define([ "chroma-js", "map", "sidebar", "tabs", "container", "meshstats",
- "legend", "linklist", "nodelist", "simplenodelist", "infobox/main",
- "proportions", "forcegraph", "title", "about", "datadistributor",
- "filters/filtergui", "filters/hostname" ],
- function (chroma, Map, Sidebar, Tabs, Container, Meshstats, Legend, Linklist,
- Nodelist, SimpleNodelist, Infobox, Proportions, ForceGraph,
- Title, About, DataDistributor, FilterGUI, HostnameFilter) {
- return function (config, router) {
- var self = this
- var content
- var contentDiv
- var linkScale = chroma.scale(chroma.interpolate.bezier(["#04C714", "#FF5500", "#F02311"])).domain([1, 5])
- var sidebar
- var buttons = document.createElement("div")
- buttons.classList.add("buttons")
- var fanout = new DataDistributor()
- var fanoutUnfiltered = new DataDistributor()
- fanoutUnfiltered.add(fanout)
- function removeContent() {
- if (!content)
- return
- router.removeTarget(content)
- fanout.remove(content)
- content.destroy()
- content = null
- }
- function addContent(K) {
- removeContent()
- content = new K(config, linkScale, sidebar.getWidth, router, buttons)
- content.render(contentDiv)
- fanout.add(content)
- router.addTarget(content)
- }
- function mkView(K) {
- return function () {
- addContent(K)
- }
- }
- contentDiv = document.createElement("div")
- contentDiv.classList.add("content")
- document.body.appendChild(contentDiv)
- sidebar = new Sidebar(document.body)
- contentDiv.appendChild(buttons)
- var buttonToggle = document.createElement("button")
- buttonToggle.textContent = ""
- buttonToggle.onclick = function () {
- if (content.constructor === Map)
- router.view("g")
- else
- router.view("m")
- }
- buttons.appendChild(buttonToggle)
- var title = new Title(config)
- var header = new Container("header")
- var infobox = new Infobox(config, sidebar, router)
- var tabs = new Tabs()
- var overview = new Container()
- var meshstats = new Meshstats(config)
- var legend = new Legend()
- var newnodeslist = new SimpleNodelist("new", "firstseen", router, "Neue Knoten")
- var lostnodeslist = new SimpleNodelist("lost", "lastseen", router, "Verschwundene Knoten")
- var nodelist = new Nodelist(router)
- var linklist = new Linklist(linkScale, router)
- var statistics = new Proportions(config, fanout)
- var about = new About()
- fanoutUnfiltered.add(meshstats)
- fanoutUnfiltered.add(newnodeslist)
- fanoutUnfiltered.add(lostnodeslist)
- fanout.add(nodelist)
- fanout.add(linklist)
- fanout.add(statistics)
- sidebar.add(header)
- header.add(meshstats)
- header.add(legend)
- overview.add(newnodeslist)
- overview.add(lostnodeslist)
- var filterGUI = new FilterGUI(fanout)
- fanout.watchFilters(filterGUI)
- header.add(filterGUI)
- var hostnameFilter = new HostnameFilter()
- fanout.addFilter(hostnameFilter)
- sidebar.add(tabs)
- tabs.add("Aktuelles", overview)
- tabs.add("Knoten", nodelist)
- tabs.add("Verbindungen", linklist)
- tabs.add("Statistiken", statistics)
- tabs.add("Über", about)
- router.addTarget(title)
- router.addTarget(infobox)
- router.addView("m", mkView(Map))
- router.addView("g", mkView(ForceGraph))
- router.view("m")
- self.setData = fanoutUnfiltered.setData
- return self
- }
- })
|