2 LuCI - Lua Configuration Interface
4 Copyright 2008 Steven Barth <steven@midlink.org>
5 Copyright 2011 Manuel Munz <freifunk at somakoma de>
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
14 local fs = require "luci.fs"
15 local util = require "luci.util"
16 local uci = require "luci.model.uci".cursor()
17 local profiles = "/etc/config/profile_"
20 m = Map("freifunk", translate ("Community"))
21 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."))
23 community = c:option(ListValue, "name", translate ("Community"))
24 community.rmempty = false
27 local list = fs.glob(profiles .. "*")
29 for k,v in ipairs(list) do
30 local name = uci:get_first(v, "community", "name") or "?"
31 local n = string.gsub(v, profiles, "")
32 community:value(n, name)
36 n = Map("system", translate("Basic system settings"))
37 function n.on_after_commit(self)
38 luci.http.redirect(luci.dispatcher.build_url("admin", "freifunk", "basics"))
41 b = n:section(TypedSection, "system")
44 hn = b:option(Value, "hostname", translate("Hostname"))
46 hn.datatype = "hostname"
48 loc = b:option(Value, "location", translate("Location"))
51 lat = b:option(Value, "latitude", translate("Latitude"), translate("e.g.") .. " 48.12345")
52 lat.datatype = "float"
55 lon = b:option(Value, "longitude", translate("Longitude"), translate("e.g.") .. " 10.12345")
56 lon.datatype = "float"
60 Opens an OpenStreetMap iframe or popup
61 Makes use of resources/OSMLatLon.htm and htdocs/resources/osm.js
64 local class = util.class
65 local ff = uci:get("freifunk", "community", "name") or ""
66 local co = "profile_" .. ff
68 local deflat = uci:get_first("system", "system", "latitude") or uci:get_first(co, "community", "latitude") or 52
69 local deflon = uci:get_first("system", "system", "longitude") or uci:get_first(co, "community", "longitude") or 10
71 if ( deflat == 52 and deflon == 10 ) then
75 OpenStreetMapLonLat = luci.util.class(AbstractValue)
77 function OpenStreetMapLonLat.__init__(self, ...)
78 AbstractValue.__init__(self, ...)
79 self.template = "cbi/osmll_value"
85 self.width = "100%" --popups will ignore the %-symbol, "100%" is interpreted as "100"
88 self.displaytext="OpenStreetMap" --text on button, that loads and displays the OSMap
89 self.hidetext="X" -- text on button, that hides OSMap
92 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."))
93 osm.latfield = "latitude"
94 osm.lonfield = "longitude"
95 osm.centerlat = uci:get_first("system", "system", "latitude") or deflat
96 osm.centerlon = uci:get_first("system", "system", "longitude") or deflon
101 osm.displaytext=translate("Show OpenStreetMap")
102 osm.hidetext=translate("Hide OpenStreetMap")