* Linked statistic graphs to Freifunk module
[project/luci.git] / modules / freifunk / luasrc / controller / freifunk / freifunk.lua
1 module("luci.controller.freifunk.freifunk", package.seeall)
2
3 function index()
4         local i18n = luci.i18n.translate
5
6         local page  = node()
7         page.target = alias("freifunk")
8
9         local page    = node("freifunk")
10         page.title    = "Freifunk"
11         page.target   = alias("freifunk", "index")
12         page.order    = 5
13         page.setuser  = "nobody"
14         page.setgroup = "nogroup"
15         
16         local page  = node("freifunk", "index")
17         page.target = template("freifunk/index")
18         page.title  = "√úbersicht"
19         page.order  = 10
20         
21         local page  = node("freifunk", "index", "contact")
22         page.target = template("freifunk/contact")
23         page.title  = "Kontakt"
24         
25         
26         local page  = node("freifunk", "status")
27         page.target = call("action_status")
28         page.title  = "Status"
29         page.order  = 20
30         page.setuser  = false
31         page.setgroup = false
32         
33         assign({"freifunk", "status", "routes"}, node("admin", "status", "routes"), "Routingtabelle", 10)
34         assign({"freifunk", "status", "iwscan"}, node("admin", "status", "iwscan"), "WLAN-Scan", 20)
35         
36         assign({"freifunk", "olsr"}, node("admin", "status", "olsr"), "OLSR", 30)
37         
38         if luci.fs.isfile("/etc/config/luci_statistics") then
39                 assign({"freifunk", "statistics"}, node("admin", "statistics", "graph"), i18n("stat_statistics", "Statistiken"), 40)
40         end
41         
42         local page  = node("admin", "index", "freifunk")
43         page.target = cbi("freifunk/freifunk")
44         page.title  = "Freifunk"
45         page.order  = 30
46         
47         local page  = node("admin", "index", "contact")
48         page.target = cbi("freifunk/contact")
49         page.title  = "Kontakt"
50         page.order  = 40
51 end
52
53 function action_status()
54         local data = {}
55         
56         data.s, data.m, data.r = luci.sys.sysinfo()
57         
58         data.wifi = luci.sys.wifi.getiwconfig()
59         
60         data.routes = {}
61         for i, r in pairs(luci.sys.net.routes()) do
62                 if r.Destination == "00000000" then
63                         table.insert(data.routes, r)
64                 end
65         end
66
67         
68         luci.template.render("public_status/index", data)
69 end