1 -- Copyright 2008 Steven Barth <steven@midlink.org>
2 -- Copyright 2011 Manuel Munz <freifunk at somakoma de>
3 -- Licensed to the public under the Apache License 2.0.
5 local fs = require "nixio.fs"
6 local util = require "luci.util"
7 local uci = require "luci.model.uci".cursor()
8 local profiles = "/etc/config/profile_*"
10 m = Map("freifunk", translate ("Community"))
11 c = m:section(NamedSection, "community", "public", nil, translate("These are the basic settings for your local wireless community. These settings define the default values for the wizard and DO NOT affect the actual configuration of the router."))
13 community = c:option(ListValue, "name", translate ("Community"))
14 community.rmempty = false
17 for profile in fs.glob(profiles) do
18 local name = uci:get_first(profile, "community", "name") or "?"
19 community:value(profile, name)
23 n = Map("system", translate("Basic system settings"))
24 function n.on_after_commit(self)
25 luci.http.redirect(luci.dispatcher.build_url("admin", "freifunk", "basics"))
28 b = n:section(TypedSection, "system")
31 hn = b:option(Value, "hostname", translate("Hostname"))
33 hn.datatype = "hostname"
35 loc = b:option(Value, "location", translate("Location"))
37 loc.datatype = "minlength(1)"
39 lat = b:option(Value, "latitude", translate("Latitude"), translate("e.g.") .. " 48.12345")
40 lat.datatype = "float"
43 lon = b:option(Value, "longitude", translate("Longitude"), translate("e.g.") .. " 10.12345")
44 lon.datatype = "float"
48 Opens an OpenStreetMap iframe or popup
49 Makes use of resources/OSMLatLon.htm and htdocs/resources/osm.js
52 local class = util.class
53 local ff = uci:get("freifunk", "community", "name") or ""
54 local co = "profile_" .. ff
56 local deflat = uci:get_first("system", "system", "latitude") or uci:get_first(co, "community", "latitude") or 52
57 local deflon = uci:get_first("system", "system", "longitude") or uci:get_first(co, "community", "longitude") or 10
59 if ( deflat == 52 and deflon == 10 ) then
63 OpenStreetMapLonLat = luci.util.class(AbstractValue)
65 function OpenStreetMapLonLat.__init__(self, ...)
66 AbstractValue.__init__(self, ...)
67 self.template = "cbi/osmll_value"
73 self.width = "100%" --popups will ignore the %-symbol, "100%" is interpreted as "100"
76 self.displaytext="OpenStreetMap" --text on button, that loads and displays the OSMap
77 self.hidetext="X" -- text on button, that hides OSMap
80 osm = b:option(OpenStreetMapLonLat, "latlon", translate("Find your coordinates with OpenStreetMap"), translate("Select your location with a mouse click on the map. The map will only show up if you are connected to the Internet."))
81 osm.latfield = "latitude"
82 osm.lonfield = "longitude"
83 osm.centerlat = uci:get_first("system", "system", "latitude") or deflat
84 osm.centerlon = uci:get_first("system", "system", "longitude") or deflon
89 osm.displaytext=translate("Show OpenStreetMap")
90 osm.hidetext=translate("Hide OpenStreetMap")