diff options
65 files changed, 451 insertions, 1263 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c4291318..a392ade0c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,16 @@ # Contributing Guidelines -Patches and pull-requests: +## Patches and Pull requests: If you want to contribute a change to LuCI, please either send a patch using git send-email -or open a pull request against the openwrt/luci repository. +or open a "pull request" against the openwrt/luci repository. Regardless of whether you send a patch or open a pull request, please try to follow these rules: -* Have a useful subject prefixed with the component name - (E.g.: "modules/admin-full: fix wifi channel selection on multiple STA networks") +* Have a useful subject prefixed with the component name + (E.g.: "luci-mod-admin-full: fix wifi channel selection on multiple STA networks") * Shortly explain the changes made and - if applicable - the reasoning behind them -* Include Signed-off-by in the comment +* Include Signed-off-by in the comment (See <https://dev.openwrt.org/wiki/SubmittingPatches#a10.Signyourwork>) In case you like to send patches by mail, please use the [LuCI mailinglist](https://lists.subsignal.org/mailman/listinfo/luci) @@ -19,22 +19,41 @@ or the [OpenWrt Development List](https://lists.openwrt.org/cgi-bin/mailman/list If you send via the OpenWrt list, include a "[luci]" tag in your subject line. For general information on patch submission, follow the [OpenWrt patch submission guideline](https://dev.openwrt.org/wiki/SubmittingPatches). +## Advice on pull requests: -If you have commit access: +Pull requests are the easiest way to contribute changes to git repos at Github. They are the preferred contribution method, as they offer a nice way for commenting and amending the proposed changes. + +* You need a local "fork" of the Github repo. +* Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request. Workflow using "feature_x" as the example: + - Update your local git fork to the tip (of the master, usually) + - Create the feature branch with `git checkout -b feature_x` + - Edit changes and commit them locally + - Push them to your Github fork by `git push -u origin feature_x`. That creates the "feature_x" branch at your Github fork and sets it as the remote of this branch + - When you now visit Github, you should see a proposal to create a pull request + +* If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then use `git push` to automatically update the pull request. + +* If you need to change something in the existing pull request (e.g. to add a missing signed-off-by line to the commit message), you can use `git push -f` to overwrite the original commits. That is easy and safe when using a feature branch. Example workflow: + - Checkout the feature branch by `git checkout feature_x` + - Edit changes and commit them locally. If you are just updating the commit message in the last commit, you can use `git commit --amend` to do that + - If you added several new commits or made other changes that require cleaning up, you can use `git rebase -i HEAD~X` (X = number of commits to edit) to possibly squash some commits + - Push the changed commits to Github with `git push -f` to overwrite the original commits in the "feature_x" branch with the new ones. The pull request gets automatically updated + +## If you have commit access: * Do NOT use git push --force. * Use Pull Requests if you are unsure and to suggest changes to other developers. -Gaining commit access: +## Gaining commit access: * Commit access will be granted to responsible contributors who have made useful pull requests and / or feedback or patches to this repository or OpenWrt in general. Please include your request for commit access in your next pull request or ticket. -Release Branches: +## Release Branches: -* Branches named "luci-X.Y" (e.g. luci-0.12) are release branches. +* Branches named "for-XX.YY" or "luci-X.Y" (e.g. "for-15.05") are release branches. * These branches are built with the respective OpenWrt release and are created during the release stabilisation phase. * Please ONLY cherry-pick or commit security and bug-fixes to these branches. diff --git a/applications/luci-app-asterisk/Makefile b/applications/luci-app-asterisk/Makefile index f2f3cd1e7..3434e167f 100644 --- a/applications/luci-app-asterisk/Makefile +++ b/applications/luci-app-asterisk/Makefile @@ -7,7 +7,6 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI Support for Asterisk -LUCI_DEPENDS:=+ahcpd include ../../luci.mk diff --git a/applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua b/applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua index 6015ffe1f..8559c52b8 100644 --- a/applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua +++ b/applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua @@ -1,4 +1,4 @@ --- Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com> +-- Copyright 2014-2015 Álvaro Fernández Rojas <noltari@gmail.com> -- Licensed to the public under the Apache License 2.0. m = Map("dump1090", "dump1090", translate("dump1090 is a Mode S decoder specifically designed for RTLSDR devices, here you can configure the settings.")) @@ -12,6 +12,7 @@ enable.enabled="0" enable.disabled="1" enable.default = "1" enable.rmempty = false + respawn=s:option(Flag, "respawn", translate("Respawn")) respawn.default = false @@ -34,6 +35,15 @@ ifile=s:option(Value, "ifile", translate("Data file")) ifile.rmempty = true ifile.datatype = "file" +iformat=s:option(ListValue, "iformat", translate("Sample format for data file")) +iformat:value("", translate("Default")) +iformat:value("UC8") +iformat:value("SC16") +iformat:value("SC16Q11") + +throttle=s:option(Flag, "throttle", translate("When reading from a file play back in realtime, not at max speed")) +throttle.default = false + raw=s:option(Flag, "raw", translate("Show only messages hex values")) raw.default = false @@ -76,13 +86,17 @@ net_bo_port=s:option(Value, "net_bo_port", translate("TCP Beast output listen po net_bo_port.rmempty = true net_bo_port.datatype = "port" +net_fatsv_port=s:option(Value, "net_fatsv_port", translate("FlightAware TSV output port")) +net_fatsv_port.rmempty = true +net_fatsv_port.datatype = "port" + net_ro_size=s:option(Value, "net_ro_size", translate("TCP raw output minimum size")) net_ro_size.rmempty = true net_ro_size.datatype = "uinteger" -net_ro_rate=s:option(Value, "net_ro_rate", translate("TCP raw output memory flush rate")) -net_ro_rate.rmempty = true -net_ro_rate.datatype = "uinteger" +net_ro_interval=s:option(Value, "net_ro_interval", translate("TCP raw output memory flush rate in seconds")) +net_ro_interval.rmempty = true +net_ro_interval.datatype = "uinteger" net_heartbeat=s:option(Value, "net_heartbeat", translate("TCP heartbeat rate in seconds")) net_heartbeat.rmempty = true @@ -92,6 +106,12 @@ net_buffer=s:option(Value, "net_buffer", translate("TCP buffer size 64Kb * (2^n) net_buffer.rmempty = true net_buffer.datatype = "uinteger" +net_verbatim=s:option(Flag, "net_verbatim", translate("Do not apply CRC corrections to messages we forward")) +net_verbatim.default = false + +forward_mlat=s:option(Flag, "forward_mlat", translate("Allow forwarding of received mlat results to output ports")) +forward_mlat.default = false + lat=s:option(Value, "lat", translate("Reference/receiver latitude for surface posn")) lat.rmempty = true lat.datatype = "integer" @@ -100,6 +120,10 @@ lon=s:option(Value, "lon", translate("Reference/receiver longitude for surface p lon.rmempty = true lon.datatype = "integer" +max_range=s:option(Value, "max_range", translate("Absolute maximum range for position decoding")) +max_range.rmempty = true +max_range.datatype = "uinteger" + fix=s:option(Flag, "fix", translate("Enable single-bits error correction using CRC")) fix.default = false @@ -121,6 +145,9 @@ mlat.default = false stats=s:option(Flag, "stats", translate("Print stats at exit")) stats.default = false +stats_range=s:option(Flag, "stats_range", translate("Collect/show range histogram")) +stats_range.default = false + stats_every=s:option(Value, "stats_every", translate("Show and reset stats every seconds")) stats_every.rmempty = true stats_every.datatype = "uinteger" @@ -131,15 +158,42 @@ onlyaddr.default = false metric=s:option(Flag, "metric", translate("Use metric units")) metric.default = false -snip=s:option(Flag, "snip", translate("Strip IQ file removing samples")) +snip=s:option(Value, "snip", translate("Strip IQ file removing samples")) snip.rmempty = true snip.datatype = "uinteger" -debug_mode=s:option(Flag, "debug", translate("Debug mode flags")) +debug_mode=s:option(Value, "debug", translate("Debug mode flags")) debug_mode.rmempty = true -ppm=s:option(Flag, "ppm", translate("Set receiver error in parts per million")) +ppm=s:option(Value, "ppm", translate("Set receiver error in parts per million")) ppm.rmempty = true ppm.datatype = "uinteger" +html_dir=s:option(Value, "html_dir", translate("Base directory for the internal HTTP server")) +html_dir.rmempty = true +html_dir.datatype = "directory" + +write_json=s:option(Value, "write_json", translate("Periodically write json output to a directory")) +write_json.rmempty = true +write_json.datatype = "directory" + +write_json_every=s:option(Flag, "write_json_every", translate("Write json output every t seconds")) +write_json_every.rmempty = true +write_json_every.datatype = "uinteger" + +json_location_accuracy=s:option(ListValue, "json_location_accuracy", translate("Accuracy of receiver location in json metadata")) +json_location_accuracy:value("", translate("Default")) +json_location_accuracy:value("0", "No location") +json_location_accuracy:value("1", "Approximate") +json_location_accuracy:value("2", "Exact") + +oversample=s:option(Flag, "oversample", translate("Use the 2.4MHz demodulator")) +oversample.default = false + +dcfilter=s:option(Flag, "dcfilter", translate("Apply a 1Hz DC filter to input data")) +dcfilter.default = false + +measure_noise=s:option(Flag, "measure_noise", translate("Measure noise power")) +measure_noise.default = false + return m diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua index 46b374440..6c90476f8 100644 --- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua +++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua @@ -60,7 +60,7 @@ s:tab("advanced", translate("Advanced Settings")) name = s:taboption("general", Value, "name", translate("Name")) name.optional = false name.forcewrite = true -name.datatype = "uciname" +name.datatype = "and(uciname,maxlength(14))" function name.write(self, section, value) if zone:name() ~= value then @@ -76,15 +76,6 @@ function name.write(self, section, value) } end -function name.validate(self, value) - -- fw3 defines 14 as the maximum length of zone name - if #value > 14 then - return nil, translate("Zone name is too long") - else - return value - end -end - p = { s:taboption("general", ListValue, "input", translate("Input")), s:taboption("general", ListValue, "output", translate("Output")), diff --git a/applications/luci-app-firewall/po/pl/firewall.po b/applications/luci-app-firewall/po/pl/firewall.po index 18be74d23..2ccd25ccc 100644 --- a/applications/luci-app-firewall/po/pl/firewall.po +++ b/applications/luci-app-firewall/po/pl/firewall.po @@ -301,7 +301,7 @@ msgid "Restrict Masquerading to given destination subnets" msgstr "Ogranicz maskaradę do wskazanych sieci docelowych" msgid "Restrict Masquerading to given source subnets" -msgstr "Ogranicz maskaradę do wskazanych sieci żródłowych" +msgstr "Ogranicz maskaradę do wskazanych sieci źródłowych" # Wstawiłem rodzinę gdyż gdzieś wcześniej było tak opisane ale klasa pasuje mi tu bardziej. # Obsy - niestety ale "rodzina". W gui dotyczy to wyboru IPv4/IPv6, więc "rodzina" a nie klasa. @@ -317,7 +317,7 @@ msgid "" "Rewrite matched traffic to the given source port. May be left empty to only " "rewrite the IP address." msgstr "" -"Przepisz dopasowany ruch do danego portu żródłowego. Można zostawić puste " +"Przepisz dopasowany ruch do danego portu źródłowego. Można zostawić puste " "aby przepisać tylko adres IP" msgid "Rewrite to source %s" @@ -339,7 +339,7 @@ msgid "Source MAC address" msgstr "Źródłowy adres MAC" msgid "Source NAT" -msgstr "NAT żródłowy" +msgstr "NAT źródłowy" # http://www.digipedia.pl/def/doc/id/677604507/name/SNAT/ msgid "" @@ -348,7 +348,7 @@ msgid "" "multiple WAN addresses to internal subnets." msgstr "" "SNAT używany jest wtedy, gdy zmieniane są adresy pakietów połączenia " -"wychodzącego, czyli pakiety żródłowe. Wykonywany jest zawsze po routowaniu " +"wychodzącego, czyli pakiety źródłowe. Wykonywany jest zawsze po routowaniu " "(POSTROUTING), a więc w chwili, gdy pakiety są gotowe opuścić host. " "IPmasquerading jest formą SNAT." diff --git a/applications/luci-app-multiwan/po/es/multiwan.po b/applications/luci-app-multiwan/po/es/multiwan.po index 1a54f7557..4d2447eec 100644 --- a/applications/luci-app-multiwan/po/es/multiwan.po +++ b/applications/luci-app-multiwan/po/es/multiwan.po @@ -118,7 +118,7 @@ msgid "WAN Interfaces" msgstr "Interfaces WAN" msgid "WAN Uplink" -msgstr "Enalce saliente WAN" +msgstr "Enlace saliente WAN" msgid "all" msgstr "todos" diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua index 49eab5acd..3f26aeed6 100644 --- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua +++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua @@ -20,7 +20,7 @@ function index() local labels = { s_output = _("Output plugins"), - s_system = _("System plugins"), + s_general = _("General plugins"), s_network = _("Network plugins"), conntrack = _("Conntrack"), @@ -42,9 +42,11 @@ function index() network = _("Network"), nut = _("UPS"), olsrd = _("OLSRd"), + openvpn = _("OpenVPN"), ping = _("Ping"), processes = _("Processes"), rrdtool = _("RRDTool"), + sensors = _("Sensors"), splash_leases = _("Splash Leases"), tcpconns = _("TCP Connections"), unixsock = _("UnixSock"), @@ -54,15 +56,15 @@ function index() -- our collectd menu local collectd_menu = { output = { "csv", "network", "rrdtool", "unixsock" }, - system = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "uptime" }, - network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "ping", "splash_leases", "tcpconns", "iwinfo" } + general = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" }, + network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" } } -- create toplevel menu nodes local st = entry({"admin", "statistics"}, template("admin_statistics/index"), _("Statistics"), 80) st.index = true - entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), _("Collectd"), 10).subindex = true + entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), _("Setup"), 20).subindex = true -- populate collectd plugin menu @@ -87,7 +89,7 @@ function index() end -- output views - local page = entry( { "admin", "statistics", "graph" }, template("admin_statistics/index"), _("Graphs"), 80) + local page = entry( { "admin", "statistics", "graph" }, template("admin_statistics/index"), _("Graphs"), 10) page.setuser = "nobody" page.setgroup = "nogroup" @@ -170,7 +172,7 @@ function statistics_render() if #instances == 0 then --instances = { graph.tree:plugin_instances( plugin )[1] } instances = graph.tree:plugin_instances( plugin ) - is_index = true + is_index = (#instances > 1) -- index instance requested elseif instances[1] == "-" then diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/openvpn.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/openvpn.lua new file mode 100644 index 000000000..193f0448a --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/openvpn.lua @@ -0,0 +1,56 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +require "luci.sys" + +local m, s, o + + +m = Map("luci_statistics", + translate("OpenVPN Plugin Configuration"), + translate("The OpenVPN plugin gathers information about the current vpn connection status.")) + +s = m:section( NamedSection, "collectd_openvpn", "luci_statistics" ) + + +o = s:option( Flag, "enable", translate("Enable this plugin") ) +o.default = "0" + + +o = s:option(Flag, "CollectIndividualUsers", translate("Generate a separate graph for each logged user")) +o.default = "0" +o.rmempty = true +o:depends("enable", 1) + + +o = s:option(Flag, "CollectUserCount", translate("Aggregate number of connected users")) +o.default = "0" +o.rmempty = true +o:depends("enable", 1) + + +o = s:option(Flag, "CollectCompression", translate("Gather compression statistics")) +o.default = "0" +o.rmempty = true +o:depends("enable", 1) + + +o = s:option(Flag, "ImprovedNamingSchema", translate("Use improved naming schema")) +o.default = "0" +o.rmempty = true +o:depends("enable", 1) + + +o = s:option(DynamicList, "StatusFile", translate("OpenVPN status files")) +o.rmempty = true +o:depends("enable", 1) + +local status_files = nixio.fs.glob("/var/run/openvpn.*.status") +if status_files then + local status_file + for status_file in status_files do + o:value(status_file) + end +end + +return m diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/sensors.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/sensors.lua new file mode 100644 index 000000000..77e36bfaf --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/sensors.lua @@ -0,0 +1,125 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +require "luci.sys" + +local m, s, o +local sensor_types = { + ["12v"] = "voltage", + ["2.0v"] = "voltage", + ["2.5v"] = "voltage", + ["3.3v"] = "voltage", + ["5.0v"] = "voltage", + ["5v"] = "voltage", + ["ain1"] = "voltage", + ["ain2"] = "voltage", + ["cpu_temp"] = "temperature", + ["fan1"] = "fanspeed", + ["fan2"] = "fanspeed", + ["fan3"] = "fanspeed", + ["fan4"] = "fanspeed", + ["fan5"] = "fanspeed", + ["fan6"] = "fanspeed", + ["fan7"] = "fanspeed", + ["in0"] = "voltage", + ["in10"] = "voltage", + ["in2"] = "voltage", + ["in3"] = "voltage", + ["in4"] = "voltage", + ["in5"] = "voltage", + ["in6"] = "voltage", + ["in7"] = "voltage", + ["in8"] = "voltage", + ["in9"] = "voltage", + ["power1"] = "power", + ["remote_temp"] = "temperature", + ["temp1"] = "temperature", + ["temp2"] = "temperature", + ["temp3"] = "temperature", + ["temp4"] = "temperature", + ["temp5"] = "temperature", + ["temp6"] = "temperature", + ["temp7"] = "temperature", + ["temp"] = "temperature", + ["vccp1"] = "voltage", + ["vccp2"] = "voltage", + ["vdd"] = "voltage", + ["vid1"] = "voltage", + ["vid2"] = "voltage", + ["vid3"] = "voltage", + ["vid4"] = "voltage", + ["vid5"] = "voltage", + ["vid"] = "voltage", + ["vin1"] = "voltage", + ["vin2"] = "voltage", + ["vin3"] = "voltage", + ["vin4"] = "voltage", + ["volt12"] = "voltage", + ["volt5"] = "voltage", + ["voltbatt"] = "voltage", + ["vrm"] = "voltage" + +} + + +m = Map("luci_statistics", + translate("Sensors Plugin Configuration"), + translate("The sensors plugin uses the Linux Sensors framework to gather environmental statistics.")) + +s = m:section( NamedSection, "collectd_sensors", "luci_statistics" ) + + +o = s:option( Flag, "enable", translate("Enable this plugin") ) +o.default = 0 + + +o = s:option(Flag, "__all", translate("Monitor all sensors")) +o:depends("enable", 1) +o.default = 1 +o.write = function() end +o.cfgvalue = function(self, sid) + local v = self.map:get(sid, "Sensor") + if v == nil or (type(v) == "table" and #v == 0) or (type(v) == "string" and #v == 0) then + return "1" + end +end + + +o = s:option(MultiValue, "Sensor", translate("Sensor list"), translate("Hold Ctrl to select multiple items or to deselect entries.")) +o:depends({enable = 1, __all = "" }) +o.widget = "select" +o.rmempty = true +o.size = 0 + +local sensorcli = io.popen("/usr/sbin/sensors -u -A") +if sensorcli then + local bus, sensor + + while true do + local ln = sensorcli:read("*ln") + if not ln then + break + elseif ln:match("^[%w-]+$") then + bus = ln + elseif ln:match("^[%w-]+:$") then + sensor = ln:sub(0, -2):lower() + if bus and sensor_types[sensor] then + o:value("%s/%s-%s" %{ bus, sensor_types[sensor], sensor }) + o.size = o.size + 1 + end + elseif ln == "" then + bus = nil + sensor = nil + end + end + + sensorcli:close() +end + + +o = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") ) +o.default = 0 +o.rmempty = true +o:depends({ enable = 1, __all = "" }) + +return m diff --git a/applications/luci-app-statistics/luasrc/statistics/i18n.lua b/applications/luci-app-statistics/luasrc/statistics/i18n.lua index 5a2800d5f..7877e61ab 100644 --- a/applications/luci-app-statistics/luasrc/statistics/i18n.lua +++ b/applications/luci-app-statistics/luasrc/statistics/i18n.lua @@ -26,15 +26,6 @@ function Instance._subst( self, str, val ) return str end -function Instance._translate( self, key, alt ) - local val = self.i18n.string(key) - if val ~= key then - return val - else - return alt - end -end - function Instance.title( self, plugin, pinst, dtype, dinst, user_title ) local title = user_title or @@ -73,24 +64,17 @@ end function Instance.ds( self, source ) - local label = source.title or self:_translate( - string.format( "stat_ds_%s_%s_%s", source.type, source.instance, source.ds ), - self:_translate( - string.format( "stat_ds_%s_%s", source.type, source.instance ), - self:_translate( - string.format( "stat_ds_label_%s__%s", source.type, source.ds ), - self:_translate( - string.format( "stat_ds_%s", source.type ), - source.type .. "_" .. source.instance:gsub("[^%w]","_") .. "_" .. source.ds - ) - ) - ) - ) + local label = source.title or + "dt=%s/di=%s/ds=%s" % { + (source.type and #source.type > 0) and source.type or "(nil)", + (source.instance and #source.instance > 0) and source.instance or "(nil)", + (source.ds and #source.ds > 0) and source.ds or "(nil)" + } return self:_subst( label, { dtype = source.type, dinst = source.instance, dsrc = source.ds - } ) + } ):gsub(":", "\\:") end diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua index d8317a817..5d4ad9859 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua @@ -397,6 +397,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index ) transform_rpn = dopts.transform_rpn or "0,+", noarea = dopts.noarea or false, title = dopts.title or nil, + weight = dopts.weight or nil, ds = dsource, type = dtype, instance = dinst, @@ -469,6 +470,12 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index ) for i, o in ipairs(opts.rrdopts) do _ti( _args, o ) end end + -- sort sources + table.sort(_sources, function(a, b) + local x = a.weight or a.index or 0 + local y = b.weight or b.index or 0 + return x < y + end) -- create DEF statements for each instance for i, source in ipairs(_sources) do diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua index efa631d55..6f687d218 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua @@ -66,36 +66,40 @@ function rrdargs( graph, plugin, plugin_instance ) options = { -- processed packets (tx DS) if_packets__tx = { + weight = 1, overlay = true, -- don't summarize total = true, -- report total amount of bytes color = "00ff00", -- processed tx is green - title = "Processed (tx)" + title = "Processed (TX)" }, -- processed packets (rx DS) if_packets__rx = { + weight = 2, overlay = true, -- don't summarize flip = true, -- flip rx line total = true, -- report total amount of bytes color = "0000ff", -- processed rx is blue - title = "Processed (rx)" + title = "Processed (RX)" }, -- packet errors (tx DS) if_errors__tx = { + weight = 0, overlay = true, -- don't summarize total = true, -- report total amount of packets color = "ff5500", -- tx errors are orange - title = "Errors (tx)" + title = "Errors (TX)" }, -- packet errors (rx DS) if_errors__rx = { + weight = 3, overlay = true, -- don't summarize flip = true, -- flip rx line total = true, -- report total amount of packets color = "ff0000", -- rx errors are red - title = "Errors (rx)" + title = "Errors (RX)" } } } diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua index b4f2ac185..7b6acf366 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua @@ -22,11 +22,13 @@ function rrdargs( graph, plugin, plugin_instance ) -- special options for single data lines options = { if_octets__tx = { + title = "Bytes (TX)", total = true, -- report total amount of bytes color = "00ff00" -- tx is green }, if_octets__rx = { + title = "Bytes (RX)", flip = true, -- flip rx line total = true, -- report total amount of bytes color = "0000ff" -- rx is blue @@ -59,6 +61,8 @@ function rrdargs( graph, plugin, plugin_instance ) options = { -- processed packets (tx DS) if_packets__tx = { + weight = 2, + title = "Total (TX)", overlay = true, -- don't summarize total = true, -- report total amount of bytes color = "00ff00" -- processed tx is green @@ -66,6 +70,8 @@ function rrdargs( graph, plugin, plugin_instance ) -- processed packets (rx DS) if_packets__rx = { + weight = 3, + title = "Total (RX)", overlay = true, -- don't summarize flip = true, -- flip rx line total = true, -- report total amount of bytes @@ -74,6 +80,8 @@ function rrdargs( graph, plugin, plugin_instance ) -- dropped packets (tx DS) if_dropped__tx = { + weight = 1, + title = "Dropped (TX)", overlay = true, -- don't summarize total = true, -- report total amount of bytes color = "660055" -- dropped tx is ... dunno ;) @@ -81,14 +89,18 @@ function rrdargs( graph, plugin, plugin_instance ) -- dropped packets (rx DS) if_dropped__rx = { + weight = 4, + title = "Dropped (RX)", overlay = true, -- don't summarize flip = true, -- flip rx line total = true, -- report total amount of bytes - color = "440066" -- dropped rx is violett + color = "ff00ff" -- dropped rx is violett }, -- packet errors (tx DS) if_errors__tx = { + weight = 0, + title = "Errors (TX)", overlay = true, -- don't summarize total = true, -- report total amount of packets color = "ff5500" -- tx errors are orange @@ -96,6 +108,8 @@ function rrdargs( graph, plugin, plugin_instance ) -- packet errors (rx DS) if_errors__rx = { + weight = 5, + title = "Errors (RX)", overlay = true, -- don't summarize flip = true, -- flip rx line total = true, -- report total amount of packets @@ -122,6 +136,7 @@ function rrdargs( graph, plugin, plugin_instance ) options = { -- multicast packets if_multicast = { + title = "Packets", total = true, -- report total amount of packets color = "0000ff" -- multicast is blue } @@ -146,6 +161,7 @@ function rrdargs( graph, plugin, plugin_instance ) options = { -- collision rate if_collisions = { + title = "Collisions", total = true, -- report total amount of packets color = "ff0000" -- collsions are red } @@ -173,15 +189,19 @@ function rrdargs( graph, plugin, plugin_instance ) }, -- special options for single data lines - options = { -- XXX: fixme (define colors...) - if_tx_errors = { - total = true - }, - - if_rx_errors = { - flip = true, - total = true - } + options = { + if_tx_errors_aborted_value = { total = true, color = "ffff00", title = "Aborted (TX)" }, + if_tx_errors_carrier_value = { total = true, color = "ffcc00", title = "Carrier (TX)" }, + if_tx_errors_fifo_value = { total = true, color = "ff9900", title = "Fifo (TX)" }, + if_tx_errors_heartbeat_value = { total = true, color = "ff6600", title = "Heartbeat (TX)" }, + if_tx_errors_window_value = { total = true, color = "ff3300", title = "Window (TX)" }, + + if_rx_errors_length_value = { flip = true, total = true, color = "ff0000", title = "Length (RX)" }, + if_rx_errors_missed_value = { flip = true, total = true, color = "ff0033", title = "Missed (RX)" }, + if_rx_errors_over_value = { flip = true, total = true, color = "ff0066", title = "Over (RX)" }, + if_rx_errors_crc_value = { flip = true, total = true, color = "ff0099", title = "CRC (RX)" }, + if_rx_errors_fifo_value = { flip = true, total = true, color = "ff00cc", title = "Fifo (RX)" }, + if_rx_errors_frame_value = { flip = true, total = true, color = "ff00ff", title = "Frame (RX)" } } } } diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua index 6dc81bc1d..8b04ab8b3 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua @@ -44,9 +44,6 @@ function rrdargs( graph, plugin, plugin_instance, dtype ) y_max = "100", number_format = "%5.1lf%%", data = { - sources = { - percent = { "percent" } - }, instances = { percent = "charge" }, @@ -77,9 +74,6 @@ function rrdargs( graph, plugin, plugin_instance, dtype ) vlabel = "Minutes", number_format = "%.1lfm", data = { - sources = { - timeleft = { "timeleft" } - }, instances = { timeleft = { "battery" } }, diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/openvpn.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/openvpn.lua new file mode 100644 index 000000000..876e871d1 --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/openvpn.lua @@ -0,0 +1,48 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +module("luci.statistics.rrdtool.definitions.openvpn", package.seeall) + +function rrdargs( graph, plugin, plugin_instance ) + local inst = plugin_instance:gsub("^openvpn%.(.+)%.status$", "%1") + + return { + { + title = "%%H: OpenVPN \"%s\" - Traffic" % inst, + vlabel = "Bytes/s", + data = { + instances = { + if_octets = { "traffic", "overhead" } + }, + sources = { + if_octets = { "tx", "rx" } + }, + options = { + if_octets_traffic_tx = { weight = 0, title = "Bytes (TX)", total = true, color = "00ff00" }, + if_octets_overhead_tx = { weight = 1, title = "Overhead (TX)", total = true, color = "ff9900" }, + if_octets_overhead_rx = { weight = 2, title = "Overhead (RX)", total = true, flip = true, color = "ff00ff" }, + if_octets_traffic_rx = { weight = 3, title = "Bytes (RX)", total = true, flip = true, color = "0000ff" } + } + } + }, + + { + title = "%%H: OpenVPN \"%s\" - Compression" % inst, + vlabel = "Bytes/s", + data = { + instances = { + compression = { "data_out", "data_in" } + }, + sources = { + compression = { "uncompressed", "compressed" } + }, + options = { + compression_data_out_uncompressed = { weight = 0, title = "Uncompressed (TX)", total = true, color = "00ff00" }, + compression_data_out_compressed = { weight = 1, title = "Compressed (TX)", total = true, color = "008800" }, + compression_data_in_compressed = { weight = 2, title = "Compressed (RX)", total = true, flip = true, color = "000088" }, + compression_data_in_uncompressed = { weight = 3, title = "Uncompressed (RX)", total = true, flip = true, color = "0000ff" } + } + } + } + } +end diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/sensors.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/sensors.lua new file mode 100644 index 000000000..f8bddb96e --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/sensors.lua @@ -0,0 +1,24 @@ +-- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org> +-- Licensed to the public under the Apache License 2.0. + +module("luci.statistics.rrdtool.definitions.sensors", package.seeall) + +function rrdargs( graph, plugin, plugin_instance ) + return { + { + per_instance = true, + title = "%H: %pi - %di", + vlabel = "\176C", + number_format = "%4.1lf\176C", + data = { + types = { "temperature" }, + options = { + temperature__value = { + color = "ff0000", + title = "Temperature" + } + } + } + } + } +end diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics index abcee3e93..de16f29de 100644 --- a/applications/luci-app-statistics/root/etc/config/luci_statistics +++ b/applications/luci-app-statistics/root/etc/config/luci_statistics @@ -140,6 +140,9 @@ config statistics 'collectd_processes' option enable '0' option Processes 'uhttpd dnsmasq dropbear' +config statistics 'collectd_sensors' + option enable '0' + config statistics 'collectd_splash_leases' option enable '0' diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig index 8acae46c6..49d8a0993 100755 --- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig +++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig @@ -187,9 +187,9 @@ function _list_expand( c, l, nopad ) end if n:find("(%w+)ses") then - k = n:gsub("(%w+)ses", "%1s") + k = n:gsub("(%w+)ses$", "%1s") else - k = n:gsub("(%w+)s", "%1") + k = n:gsub("(%w+)s$", "%1") end str = str .. _expand( c[n], k, nopad ) @@ -375,6 +375,12 @@ plugins = { { } }, + openvpn = { + { }, + { "CollectIndividualUsers", "CollectUserCount", "CollectCompression", "ImprovedNamingSchema" }, + { "StatusFile" } + }, + ping = { { "TTL", "Interval" }, { }, @@ -393,6 +399,12 @@ plugins = { { "RRATimespans" } }, + sensors = { + { }, + { "IgnoreSelected" }, + { "Sensor" } + }, + splash_leases = { { }, { }, diff --git a/documentation/SubmitPatchesHowTo:.md b/documentation/SubmitPatchesHowTo:.md deleted file mode 100644 index cdd15524a..000000000 --- a/documentation/SubmitPatchesHowTo:.md +++ /dev/null @@ -1,33 +0,0 @@ -# Checkout svn - - svn co http://svn.luci.subsignal.org/luci/trunk - -and change to that directory: - - cd trunk - -# Make your changes - -Edit the files you want to change. If you add some new files you need to add them to the svn tree: - - svn add <dir/files> - -Where <dir/files> are the directories/files you have added. Its possible to specify multiple files/directories here. - -# Use svn diff to generate a patch with your changes - -To check if your changes look ok first do: - - svn diff <dir/files> - -and check the output. Again you can specify multiple dirs/directories here. - -If everything looks like expected save the patch: - - svn diff <dir/files> > ./mypatch.patch - - -# Submit patches - -Use the [Ticket system](http://luci.subsignal.org/trac/newticket) to submit your patch. - diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png b/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png Binary files differindex 4c163bf69..7faadecf9 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/bridge.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png Binary files differindex 0f367c536..b3e620b3a 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/bridge_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/encryption.png b/modules/luci-base/htdocs/luci-static/resources/icons/encryption.png Binary files differindex 41d2ba9ac..776283360 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/encryption.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/encryption.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/encryption_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/encryption_disabled.png Binary files differindex f2e05a425..9a8721b02 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/encryption_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/encryption_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png b/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png Binary files differindex a02538124..e3d24f279 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/ethernet.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png Binary files differindex 2bb02e455..d8792df54 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/ethernet_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png b/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png Binary files differindex 25ea17232..5a2b235d0 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/port_down.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png b/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png Binary files differindex e06303791..8105e77d0 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/port_up.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png Binary files differindex 2e5dff466..b3a8118af 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-0-25.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png Binary files differindex 114583a67..333b1557b 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-0.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png Binary files differindex ee8cc4f1c..b465de3f5 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-25-50.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png Binary files differindex 26bcbf715..cd7bcaf9a 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-50-75.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png Binary files differindex 5cffaa1b8..f7a3658df 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-75-100.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png b/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png Binary files differindex b77585c0f..4a11356af 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/signal-none.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/switch.png b/modules/luci-base/htdocs/luci-static/resources/icons/switch.png Binary files differindex 5c99ba568..be99b19ba 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/switch.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/switch.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png Binary files differindex b8c84c8dc..54588d24d 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/switch_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png b/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png Binary files differindex c5a09dd68..63eabfef5 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/tunnel.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png Binary files differindex ad9856cfe..ca79d8170 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/tunnel_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png b/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png Binary files differindex 5c99ba568..be99b19ba 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/vlan.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png Binary files differindex b8c84c8dc..54588d24d 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/vlan_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png b/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png Binary files differindex 528ce2b4e..80a23e8e9 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/wifi.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big.png b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big.png Binary files differindex d73a5e740..9e466aebf 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big_disabled.png Binary files differindex af93b37b7..6f9fff381 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_big_disabled.png diff --git a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png Binary files differindex 338a34f78..e989a2bd3 100644 --- a/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png +++ b/modules/luci-base/htdocs/luci-static/resources/icons/wifi_disabled.png diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po index baa7ab853..e1ec57ffe 100644 --- a/modules/luci-base/po/pl/base.po +++ b/modules/luci-base/po/pl/base.po @@ -42,13 +42,13 @@ msgid "-- match by label --" msgstr "" msgid "1 Minute Load:" -msgstr "Obciążenie w ciągu 1 minuty:" +msgstr "Obciążenie 1 min.:" msgid "15 Minute Load:" -msgstr "Obciążenie w ciągu 15 minut:" +msgstr "Obciążenie 15 min.:" msgid "5 Minute Load:" -msgstr "Obciążenie w ciągu 5 minut:" +msgstr "Obciążenie 5 min.:" msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>" msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>" @@ -1838,7 +1838,7 @@ msgid "Out" msgstr "Wychodzące" msgid "Outbound:" -msgstr "Wychodzące:" +msgstr "Wychodzący:" msgid "Outdoor Channels" msgstr "Kanały zewnętrzne" diff --git a/modules/luci-base/root/etc/config/luci b/modules/luci-base/root/etc/config/luci index c503a8f1e..baa3ac5d1 100644 --- a/modules/luci-base/root/etc/config/luci +++ b/modules/luci-base/root/etc/config/luci @@ -1,6 +1,6 @@ config core main option lang auto - option mediaurlbase /luci-static/openwrt.org + option mediaurlbase /luci-static/bootstrap option resourcebase /luci-static/resources config extern flash_keep diff --git a/modules/luci-base/root/www/index.html b/modules/luci-base/root/www/index.html index 0b5fa1d87..59b0d8484 100644 --- a/modules/luci-base/root/www/index.html +++ b/modules/luci-base/root/www/index.html @@ -5,7 +5,7 @@ <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="refresh" content="0; URL=/cgi-bin/luci" /> </head> -<body style="background-color: black"> -<a style="color: white; text-decoration: none" href="/cgi-bin/luci">LuCI - Lua Configuration Interface</a> +<body style="background-color: white"> +<a style="color: black; font-family: arial, helvetica, sans-serif;" href="/cgi-bin/luci">LuCI - Lua Configuration Interface</a> </body> </html> diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua index 49103a811..4dc52ada0 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua @@ -51,13 +51,10 @@ rf.optional = true s:taboption("files", Flag, "nohosts", - translate("Ignore Hosts files")).optional = true + translate("Ignore <code>/etc/hosts</code>")).optional = true -hf = s:taboption("files", DynamicList, "addnhosts", - translate("Additional Hosts files")) - -hf:depends("nohosts", "") -hf.optional = true +s:taboption("files", DynamicList, "addnhosts", + translate("Additional Hosts files")).optional = true s:taboption("advanced", Flag, "boguspriv", diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/ipkg.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/ipkg.lua index b01b5dbb3..7c6d7e1c6 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/ipkg.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/ipkg.lua @@ -11,6 +11,7 @@ f = SimpleForm("ipkgconf", translate("OPKG-Configuration"), translate("General o f:append(Template("admin_system/ipkg")) t = f:field(TextValue, "lines") +t.wrap = "off" t.rows = 10 function t.cfgvalue() return nixio.fs.readfile(ipkgfile) or "" @@ -28,6 +29,7 @@ g = SimpleForm("distfeedconf", translate("Distribution feeds"), translate("Build/distribution specific feed definitions. This file will NOT be preserved in any sysupgrade.")) d = g:field(TextValue, "lines2") +d.wrap = "off" d.rows = 10 function d.cfgvalue() return nixio.fs.readfile(distfeeds) or "" @@ -45,6 +47,7 @@ h = SimpleForm("customfeedconf", translate("Custom feeds"), translate("Custom feed definitions, e.g. private feeds. This file can be preserved in a sysupgrade.")) c = h:field(TextValue, "lines3") +c.wrap = "off" c.rows = 10 function c.cfgvalue() return nixio.fs.readfile(customfeeds) or "" diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm index 07a96b2bf..a98d79080 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm @@ -88,7 +88,9 @@ if has_dsl then local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat") local dsl_func = loadstring(dsl_stat) - rv.dsl = dsl_func() + if dsl_func then + rv.dsl = dsl_func() + end end luci.http.prepare_content("application/json") diff --git a/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua b/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua index 6f7864301..60caadb4b 100644 --- a/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua +++ b/modules/luci-mod-failsafe/luasrc/controller/failsafe/failsafe.lua @@ -84,11 +84,13 @@ function action_flashops() fp = io.open(image_tmp, "w") end end - if chunk then - fp:write(chunk) - end - if eof then - fp:close() + if fp then + if chunk then + fp:write(chunk) + end + if eof then + fp:close() + end end end ) diff --git a/modules/luci-mod-rpc/luasrc/controller/rpc.lua b/modules/luci-mod-rpc/luasrc/controller/rpc.lua index 129ca43b5..759bb749c 100644 --- a/modules/luci-mod-rpc/luasrc/controller/rpc.lua +++ b/modules/luci-mod-rpc/luasrc/controller/rpc.lua @@ -49,10 +49,10 @@ function rpc_auth() server.challenge = function(user, pass) local sid, token, secret - require "luci.config" + local config = require "luci.config" if sys.user.checkpasswd(user, pass) then - local sdat = util.ubus("session", "create", { timeout = luci.config.sauth.sessiontime }) + local sdat = util.ubus("session", "create", { timeout = config.sauth.sessiontime }) if sdat then sid = sdat.ubus_rpc_session token = sys.uniqueid(16) diff --git a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua index 2f8108ef1..37d4ec901 100644 --- a/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua +++ b/protocols/luci-proto-ipv6/luasrc/model/cbi/admin_network/proto_map.lua @@ -50,7 +50,7 @@ ip6prefixlen.datatype = "range(0,64)" s:taboption("general", Value, "ealen", - translate("EA-bits length")).datatype = "range(0,16)" + translate("EA-bits length")).datatype = "range(0,48)" s:taboption("general", Value, "psidlen", translate("PSID-bits length")).datatype = "range(0,16)" diff --git a/themes/luci-theme-freifunk-bno/Makefile b/themes/luci-theme-freifunk-bno/Makefile deleted file mode 100644 index 1491a9774..000000000 --- a/themes/luci-theme-freifunk-bno/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org> -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=Freifunk Berlin Nordost Theme -LUCI_DEPENDS:= - -include ../../luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/cascade.css b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/cascade.css deleted file mode 100644 index 4f89b2d3a..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/cascade.css +++ /dev/null @@ -1,872 +0,0 @@ -* { - margin: 0; - padding: 0; -} - -body { - background-color: #ffffff; - color: #ffffff; - font-family: Verdana, Arial, sans-serif; - font-size: 100%; - line-height: 100%; - background-image: url(images/main-back.png); - background-repeat: repeat-x; - background-position: left bottom; - } -#all { - margin: 0px; - padding: 0px; - min-height: 800px; -} - -code { - font-family: monospace; - white-space: pre; -} - -a:link, a:visited { - color:#000000; - font-weight:bold; - text-decoration:none; - } -a:hover { - color:#333333; - font-weight:bold; - } - -/* Custom*/ - #wrapper -{ - width: 95%; - color: #333333; - margin-left: auto; - margin-right: auto; -/* background-image: url(images/corner-left.gif); */ -/* background-repeat: no-repeat; */ -/* background-position: left bottom; */ - background-color: #FffdF4; - min-width: 710px; - min-height: 710px; -} -#main { - clear: both; - width: 100%; - margin: 0; - padding: 0; - color: #333333; -/* background-image: url(images/corner-right.gif); */ -/* background-repeat: no-repeat; */ -/* background-position: right bottom; */ - min-height: 710px; -} - -div#maincontent ul { - margin-left: 2em; -} - -.warning { - color: red !important; - font-weight: bold; -} - -.clear { - clear: both; - height: 1px; -} - -.hidden { - display: none; -} - -.error { - color: #ff0000; -} - -#header -{ - padding: 0px; - height: 100px; -} -#headerleft -{ - height: 100px; - background-color: #FFFfff; - background-image: url(images/header-left.gif); - background-repeat: no-repeat; - background-position: left top; -} -#headerright -{ - height: 100px; - background-color: #FFfffF; - - margin-left: 5px; - background-image: url(images/header-right.gif); - background-repeat: no-repeat; - background-position: right top; -} - -#headerback -{ - margin-right: 5px; - height: 100px; - background-color: #FFfffF; - background-image: url(images/header-back.gif); - background-repeat: repeat-x; - background-position: left top; -} -#schriftzug { - font-size : 1.5em; - text-align:left; - margin-bottom: 7px; - margin-top: 7px; - float:left; - width: 450px; -} - -#schriftzug a:hover{ - background-color:transparent; -} -#logo{ - margin-top: 5px; - float:right; - width: 115px; -} - -.pathbar { - display: none; -} - -.menubar { - width: 100%; - min-height: 1.8em; - background: #ffffff; - color: #000000; - border-top:0.4em solid #DC0067; -} - -.mainmenu { - float: left; - width: auto; - min-height: 1.8em; - background: #ffffff; - color: #000000; -} -.modemenu li { - border-top:0.3em solid #DC0067; - margin-left: 0.3em; - margin-top: -0.3em; -} -.mainmenu div { - float: left; - border-top:0.3em solid #DC0067; - margin-right: 0.3em; - margin-top: -0.3em; -} -.mainmenu div.preactive { - border-top: 0.3em solid #FFCB05; - margin-top: -0.2em; -} - -.mainmenu li { - white-space: nowrap; -} - -.mainmenu div ul { - display: none; - position: absolute; - background: #ffffff; - color: #000000; - border-width: 0 1px 1px 1px; - border-style: solid; - border-color: #444444; - list-style-type: none; -} - -.mainmenu ul li:hover > ul, -.mainmenu div:hover > ul { - display: block; -} - -.mainmenu ul li > ul { - left: 100%; - margin-top: -1.8em; - border-width: 1px; -} - -.modemenu a, -.mainmenu a { - display: block; - padding: 0.2em; - color: #000000; - text-decoration: none; - font-size: 70%; - font-weight: bold; -} - - -.modemenu .active a { - color: #000000; - font-weight: bold; - border-top:0.3em solid #FFCB05; - margin-top: -0.2em; -} -.mainmenu .active a{ - color: #000000; - font-weight: bold; - border-top:0.2em solid #FFCB05; -} -.mainmenu li > span:active { - background-color: #FFE990; -} - -.mainmenu li:hover > span > a, -.mainmenu div:hover > a { -color: #ffffff; -background-color: #FFCB05; -} - - -.modemenu a:focus, -.mainmenu a:focus { - color: #000000; -} - -.mainmenu a:hover, -.modemenu a:hover { -color: #ffffff; -background-color: #FFCB05; -} - -.mainmenu div.preactive > a { - color: #DC0067; - font-weight: bold; -} -.mainmenu div.preactive > a:hover, -.mainmenu div.preactive > a:focus { - color: #ffffff; - font-weight: bold; -} - -.modemenu ul { - width: auto; - background: #000000; - color: #ffffff; - list-style-type: none; -} - -.modemenu li { - float: right; - -} - -#maincontent { - clear: both; - width: 98%; - margin: 0 auto; - padding: 0.5em; - background: #FFF4BE; - color: #000000; - font-size: 80%; - border-top:1px solid #D2A800; -} - -#maincontent h2 { - margin: 0.25em 0 0.5em 0; - font-size: 150%; - font-weight: normal; -} - -#maincontent h3 { - margin: 0.5em 0; - font-size: 120%; - font-weight: normal; - text-decoration: underline; -} - -#maincontent p { - margin-bottom: 1em; -} - -.cbi-section { - margin-bottom: 0.5em; - padding: 0.5em 1em; - border: 1px dotted #D2A800; - background-color: #FFE990; -} - -.cbi-section legend { - font-size: 110%; - font-weight: bold; - height: 1em; - padding: 0 0.25em; - color: #555555; -} - -.cbi-section h2 { - margin: 0em 0 0.5em -0.5em !important; -} - -.cbi-section h3 { - height: 1.5em; - font-size: 90%; - color: #555555; -} - -.cbi-section-descr { - margin-bottom: 0.5em; - font-size: 95%; -} - -.cbi-title-ref { - color: inherit; - text-decoration: none; - padding-right: 18px; - background: url('../resources/cbi/link.gif') no-repeat scroll right center; - background-color: inherit; -} - -input[type=submit], -input[type=reset], -input[type=image], -label { - cursor: pointer; -} - -select, -input, -textarea { - background: #FffdF4; - color: #000000; - border-width: 1px; - border-color: #000000; -} - -input[type=image] { - border: none; -} - - -input:focus, -input:hover, -select:focus, -select:hover, -textarea:focus, -textarea:hover { - background-color: #FFF4BE; -} - -select, -input[type=text], -input[type=password] { - width: 20em; -} - -td select, -td input[type=text], -td input[type=password] { - width: 99%; -} - -img.cbi-image-button { - cursor: pointer; - margin: 0 2px; - vertical-align: middle; -} - -input.cbi-input-user { - background: url('../resources/cbi/user.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; -} - -input.cbi-input-password { - background: url('../resources/cbi/key.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; -} - -input.cbi-input-find { - background: url('../resources/cbi/find.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; -} - -input.cbi-input-reload { - background: url('../resources/cbi/reload.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; -} - -input.cbi-input-add, -input.cbi-button-add { - background: url('../resources/cbi/add.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-input-fieldadd, -input.cbi-button-fieldadd { - background: url(../resources/cbi/fieldadd.gif) no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-input-reset, -input.cbi-button-reset { - background: url('../resources/cbi/reset.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-input-save, -input.cbi-button-save { - background: url('../resources/cbi/save.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-input-apply, -input.cbi-button-apply { - background: url('../resources/cbi/apply.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-input-remove, -div.cbi-section-remove input { - background: url('../resources/cbi/remove.gif') no-repeat scroll 1px center; - background-color: inherit; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-button-up { - background-image: url('../resources/cbi/up.gif'); - padding-left: 11px; - padding-right: 1px; -} - -input.cbi-button-down { - background-image: url('../resources/cbi/down.gif'); - padding-left: 11px; - padding-right: 1px; -} - -input.cbi-button-edit { - background-image: url('../resources/cbi/edit.gif'); - color: #000000; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-button-reload { - background-image: url('../resources/cbi/reload.gif'); - color: #000000; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-button-reset { - background-image: url('../resources/cbi/reset.gif'); - color: #000000; - padding-left: 17px; - padding-right: 1px; -} - -input.cbi-button-remove { - background-image: url('../resources/cbi/remove.gif'); - color: #000000; - padding-left: 17px; - padding-right: 1px; -} - -.cbi-input-invalid { - background-image: url('../resources/cbi/reset.gif'); - background-repeat: no-repeat; - background-position: right; - color: #FF0000 !important; - border-color: #FF0000; -} - -div.cbi-section-remove input { - border-bottom: none; -} - -textarea { - margin-left: -1px; - margin-bottom: 0.5em; -} - -form > div > input[type=submit], -form > div > input[type=reset] { - float: right; - margin-left: 0.5em; -} - -table.smalltext { -background-color: #FFCB05; - border-top: 1px solid #666666; - border-right: 1px solid #666666; - border-bottom: 1px solid #666666; - font-size: 90%; - width: 80%; - margin-left: auto; - margin-right: auto; - border-collapse: collapse; -} - -table.smalltext tr:hover td { -background-color: #FFE990; -} - -table.smalltext tr th { - padding: 0 0.25em; - border-left: 1px solid #666666; - text-align: left; -} - -table.smalltext tr td { - padding: 0 0.25em; - border-top: 1px solid #666666; - border-left: 1px solid #666666; -} - -.cbi-rowstyle-1 { - background-color: #FFF4BE; -} - -.cbi-rowstyle-2 { -} - -table.cbi-section-table .cbi-section-table-cell { - padding: 3px; - white-space: nowrap; -} - -div.cbi-value { - clear: left; - vertical-align: middle; - padding-left: 0.25em; - border-bottom: 1px dotted #FFCB05; -} - -div.cbi-value:hover { - background: #FFF4BE; -} - -div.cbi-value:last-child { - border: none; -} - -.cbi-value-title { - float: left; - width: 40%; -} - -div.cbi-value-field { - width: 58%; - margin: 0.25em 0 0.25em 40%; -} - -div.cbi-value-description { - font-size: 90%; -} - -div.cbi-value-field > div.cbi-value-description { - display: none; -} - -div.cbi-value:hover div.cbi-value-field > div.cbi-value-description { - display: block; - color: #ffffff; - background-color: #FFCB05; -} - -option:active, -option:before, -option:after, -option:focus, -option:hover { - color: #ffffff; - background-color: #EEBA00; - background: url(images/bgoption.png); -} - -div.cbi-section-create { - clear: left; - white-space: nowrap; -} - -div.cbi-map-descr { - margin-bottom: 1em; -} - -div.cbi-optionals { - margin: 0.5em 0; - padding: 0 0.25em; -} - -div.cbi-section-remove { - float: right; -} - -.cbi-section-node { - clear: both; - border: 1px dotted #FFCB05; - padding-bottom: 0; -} - -.cbi-section-node div.cbi-section-table-row { - margin: 0.25em; -} - -table.cbi-section-table { - width: 100%; - font-size: 95%; -} - -table.cbi-section-table th, -table.cbi-section-table td { - text-align: center; -} - -tr.cbi-section-table-descr th { - font-weight: normal; - font-size: 90%; -} - -td.cbi-section-table-optionals { - text-align: left !important; - padding-top: 1em; -} - -.cbi-value-helpicon img { - vertical-align: bottom; -} - -div.cbi-error { - font-size: 95%; - font-weight: bold; - color: #FF0000; -} - -td.cbi-value-error { - border-color: red !important; -} - -.cbi-value-error input, -.cbi-value-error select { - color: red !important; - background-color: #FFCCCC; -} - -.cbi-section-error { - color: red; - font-size: 95%; - border: 1px dotted red; - margin: 3px; - padding: 3px; -} - -ul.cbi-apply { - font-size: 90%; -} - -ul.cbi-tabmenu { - padding: 3px 0; - margin-left: 0 !important; - margin-bottom: -1px; - list-style-type: none; -} - -ul.cbi-tabmenu li.cbi-tab, -ul.cbi-tabmenu li.cbi-tab-disabled { - display: inline; - margin: 0; -} - -ul.cbi-tabmenu li.cbi-tab a, -ul.cbi-tabmenu li.cbi-tab-disabled a { - text-decoration: none; - padding: 3px 7px; - margin-right: 3px; - border: 1px outset #000; - border-bottom: none; - background-color: #eee; - color: #bbb; -} - -ul.cbi-tabmenu li.cbi-tab-highlighted a { - color: #000; - background-color: #FFEEAA; -} - -ul.cbi-tabmenu li a:hover { - color: #000; -} - -ul.cbi-tabmenu li.cbi-tab a { - position: relative; - top: 1px; - padding-top: 4px; - color: #000; - background-color: #fff; -} - -div.cbi-tab-descr { - background-image: url(/luci-static/resources/cbi/help.gif); - background-position: 0.25em 50%; - background-repeat: no-repeat; - border-bottom: 1px solid #ccc; - margin: 0.25em 0.25em 2em; - padding: 0.5em 0.5em 0.5em 2em; -} - - -.left { - text-align: left !important; -} - -.right { - text-align: right !important; -} - -.luci { - position: fixed; - bottom: 0; - left: 0; - text-align: right; -} - -.luci a { - color: #666666; - text-decoration: none; - font-size: 70%; -} - -.inline { - display: inline; -} - -.error500 { - white-space: normal; - border: 1px dotted #FF0000; - background-color: #FFFFFF; - padding: 0.5em; -} - -/* obligatory IE6 Voodoo Code */ -* html body { - padding-left: 50% !important; -} - -* html div#header { - margin-left: -100% !important; -} - -* html div.menubar { - margin-left: -100% !important; - width: 200% !important; -} - -* html div#maincontent { - margin-left: -80% !important; - width: 160% !important; -} - -* html div.mainmenu div.hover ul, -* html div.mainmenu div li.hover ul, -* html div.mainmenu div li li.hover ul, -* html div.mainmenu div li li li.hover ul, -* html div.mainmenu div li li li li.hover ul { - display: block !important; - margin-left: 3em; -} - -* html div.mainmenu div.hover ul { - margin-left: 0; -} - -* html div.mainmenu .hover ul ul, -* html div.mainmenu .hover ul ul ul, -* html div.mainmenu .hover ul ul ul ul, -* html div.mainmenu .hover ul ul ul ul ul { - display: none !important; -} - -* html div.mainmenu li { - height: 1em !important; - width: 10em !important; -} - -* html .mainmenu { - height: 1.8em; -} - -* html div.cbi-value-description { - margin-left: 40%; -} - - -.ifacebox { - background-color: #FFFFFF; - border: 1px solid #CCCCCC; - margin: 0 10px; - text-align: center; - white-space: nowrap; -} - -.ifacebox .ifacebox-head { - border-bottom: 1px solid #CCCCCC; - padding: 2px; -} - -.ifacebox .ifacebox-body { - padding: 2px; -} - - -.ifacebadge { - background-color: #FFFFFF; - border: 1px solid #CCCCCC; - padding: 2px; - margin-left: 2px; - display: inline-block; -} - -.ifacebadge-active { - border-color: #000000; - font-weight: bold; -} - - -.zonebadge { - padding: 2px; - display: inline-block; - white-space: nowrap; - cursor: pointer; -} - -.zonebadge em, -.zonebadge strong { - margin: 3px; - display: inline-block; -} - -.zonebadge input { - width: 6em; - height: 1.5em; -} - -.zonebadge-empty { - border: 1px dashed #AAAAAA; - color: #AAAAAA; - font-style: italic; - font-size: smaller; -} diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/bgoption.png b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/bgoption.png Binary files differdeleted file mode 100644 index 6fd1e2f34..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/bgoption.png +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/favicon.ico b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/favicon.ico Binary files differdeleted file mode 100644 index 7247cfac5..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/favicon.ico +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-back.gif b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-back.gif Binary files differdeleted file mode 100644 index 21fe02b1e..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-back.gif +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-left.gif b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-left.gif Binary files differdeleted file mode 100644 index a3258ccb6..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-left.gif +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-right.gif b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-right.gif Binary files differdeleted file mode 100644 index 93d0291a2..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/header-right.gif +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/logo.gif b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/logo.gif Binary files differdeleted file mode 100644 index ff00d6ddb..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/logo.gif +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/main-back.png b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/main-back.png Binary files differdeleted file mode 100644 index 34aca44e0..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/main-back.png +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/schriftzug.gif b/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/schriftzug.gif Binary files differdeleted file mode 100644 index 82607d533..000000000 --- a/themes/luci-theme-freifunk-bno/htdocs/luci-static/freifunk-bno/images/schriftzug.gif +++ /dev/null diff --git a/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/footer.htm b/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/footer.htm deleted file mode 100644 index 2dbade371..000000000 --- a/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/footer.htm +++ /dev/null @@ -1,24 +0,0 @@ -<%# - Copyright 2008 Steven Barth <steven@midlink.org> - Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> - Licensed to the public under the Apache License 2.0. --%> - - <br class="clear" /> - </div> -</div></div> -</div> - -<div class="luci separator black whitetext bold"> - <% local ver = require "luci.version" -%> - <a href="<%=controller%>/about">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> -</div> -</div><!-- end main --><div align="center" style="padding-top:5px "></div> -<br> -</div><!-- end wrapper --> - -</center> -</div> - -</body> -</html> diff --git a/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/header.htm b/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/header.htm deleted file mode 100644 index d108a0893..000000000 --- a/themes/luci-theme-freifunk-bno/luasrc/view/themes/freifunk-bno/header.htm +++ /dev/null @@ -1,209 +0,0 @@ -<%# - Copyright 2008 Steven Barth <steven@midlink.org> - Copyright 2008 Jo-Philipp Wich <jow@openwrt.org> - Licensed to the public under the Apache License 2.0. --%> - -<% -require("luci.sys") -require("luci.util") - -local boardinfo = luci.util.ubus("system", "board") - -local request = require("luci.dispatcher").context.path -local category = request[1] -local tree = luci.dispatcher.node() -local cattree = category and luci.dispatcher.node(category) -local node = luci.dispatcher.context.dispatched - -local c = tree -for i,r in ipairs(request) do - if c.nodes and c.nodes[r] then - c = c.nodes[r] - c._menu_selected = true - end -end - -require("luci.http").prepare_content("text/html") - --%> - -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" /> - <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %> - <% if css then %><style title="text/css"> - <%-= css %> - </style> - <% end -%> - <link rel="shortcut icon" href="<%=media%>/images/favicon.ico" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> - <meta http-equiv="content-script-type" content="text/javascript" /> - <script type="text/javascript" src="<%=resource%>/xhr.js"></script> - <title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title> - - <!--[if lt IE 7]> - <script type="text/javascript"> - function setup_hover() { - function ie_hover(e) { - e.onmouseover = function() { this.className = "hover" } - e.onmouseout = function() { this.className = null } - } - - var lis = document.getElementById("mainmenu").getElementsByTagName("LI"); - var divs = document.getElementById("mainmenu").getElementsByTagName("DIV"); - - for( var i = 0; i < lis.length; i++ ) ie_hover( lis[i] ); - for( var i = 0; i < divs.length; i++ ) ie_hover( divs[i] ); - } - </script> - <![endif]--> -</head> -<body onload="window.setup_hover && setup_hover()"> -<div id="all"> -<center> - -<div id="wrapper"> -<%- if luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%> - <div class="warning"> - <strong><%:No password set!%></strong><br /> - <%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%> - </div> -<%- end -%> -<div id="main"> - - -<div id="header"> - <div id="headerleft"> - <div id="headerright"> - <div id="headerback"> - <div id="schriftzug"><img src="<%=media%>/images/schriftzug.gif" alt="Freifunk Nordost ueberschrift" name="Freifunk_nordost_ueberschrift" border="0"> </div> - <div id="logo"><img src="<%=media%>/images/logo.gif" alt="Freifunk Nordost logo" name="Freifunk_nordost" border="0"></a></div> - <div class="clear"></div> - - </div> - </div> - </div> -</div> - -<div class="pathbar separator black whitetext bold"> -<%:Path%>: <% -local c = tree -local url = controller -for k,v in pairs(request) do - if c.nodes and c.nodes[v] then - c = c.nodes[v] - url = url .. "/" .. v - %><a href="<%=url%>"><%=pcdata(striptags(translate(c.title) or v))%></a> <% if k ~= #request then %>» <% end - end -end -%> -</div> - -<div class="menubar"> - <div id="mainmenu" class="mainmenu"> -<%- -local function submenu(prefix, node) - if not node.nodes or node.hidden then - return false - end - local index = {} - local count = 0 - for k, n in pairs(node.nodes) do - if n.title and n.target then - table.insert(index, {name=k, order=n.order or 100}) - count = count + 1 - end - end - - table.sort(index, function(a, b) return a.order < b.order end) - - if count > 0 then -%> - <ul> - <%- for j, v in pairs(index) do - if not v.hidden and #v.name > 0 then - local nnode = node.nodes[v.name] - local href = controller .. prefix .. v.name - href = (nnode.query) and href .. luci.http.build_querystring(nnode.query) or href - %> - <li> - <span<% if nnode._menu_selected then %> class="active"<%end%>><a href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(nnode.title)))%></a></span> - <%- submenu(prefix .. v.name .. "/", nnode) %> - </li> - <%- end %> - <%- end %> - </ul> -<%- - end -end - -if cattree and cattree.nodes then - local index = {} - for k, node in pairs(cattree.nodes) do - table.insert(index, {name=k, order=node.order or 100}) - end - - table.sort(index, function(a, b) return a.order < b.order end) - - for i, k in ipairs(index) do - node = cattree.nodes[k.name] - if not node.hidden and node.title and node.target then - local href = controller.."/"..category.."/"..k.name - href = (k.query) and href .. luci.http.build_querystring(k.query) or href %> - <div<% if node._menu_selected then %> class="preactive"<%end%>><a href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(node.title)))%></a> - <%submenu("/" .. category .. "/" .. k.name .. "/", node)%> - </div> -<% end - end -end -%> - </div> - <div class="modemenu"> - <ul><% - for k,node in pairs(tree.nodes) do - if node.title and not node.hidden then %> - <li<% if request[1] == k then %> class="active"<%end%>><a href="<%=controller%>/<%=k%>"><%=pcdata(striptags(translate(node.title)))%></a></li> -<% end - end%> - </ul> - </div> - - <% - if tree.nodes[category] and tree.nodes[category].ucidata then - local ucic = 0 - - for i, j in pairs(require("luci.model.uci").cursor():changes()) do - for k, l in pairs(j) do - for m, n in pairs(l) do - ucic = ucic + 1; - end - end - end - %> - <div class="mainmenu" style="float:right; margin-right:2em"> - <div> - <% if ucic > 0 then %> - <a class="warning" href="<%=controller%>/<%=category%>/uci/changes"><%:Unsaved Changes%>: <%=ucic%></a> - <% submenu("/" .. category .. "/uci/", tree.nodes[category].nodes["uci"]) -%> - <% else %> - <a href="#"><%:Changes%>: 0</a> - <% end %> - </div> - </div> - <% end %> - - <br class="clear" /> -</div> - -<div id="maincontent"> -<% if category ~= "freifunk" and category ~= "splash" then %> -<noscript> - <div class="errorbox"> - <strong><%:Java Script required!%></strong><br /> - <%:You must enable Java Script in your browser or LuCI will not work properly.%> - </div> -</noscript> -<% end %> diff --git a/themes/luci-theme-freifunk-bno/root/etc/uci-defaults/luci-theme-freifunk-bno b/themes/luci-theme-freifunk-bno/root/etc/uci-defaults/luci-theme-freifunk-bno deleted file mode 100755 index a19f2bb41..000000000 --- a/themes/luci-theme-freifunk-bno/root/etc/uci-defaults/luci-theme-freifunk-bno +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -uci batch <<-EOF - set luci.themes.Freifunk_BNO=/luci-static/freifunk-bno - set luci.main.mediaurlbase=/luci-static/freifunk-bno - commit luci -EOF |