1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- Config Mode
- ===========
- As of 2014.4 `gluon-config-mode` consists of several modules.
- gluon-config-mode-core
- This modules provides the core functionality for the config mode.
- All modules must depend on it.
- gluon-config-mode-hostname
- Provides a hostname field.
- gluon-config-mode-autoupdater
- Informs whether the autoupdater is enabled.
- gluon-config-mode-mesh-vpn
- Allows toggling of mesh-vpn-fastd and setting a bandwidth limit.
- gluon-config-mode-geo-location
- Enables the user to set the geographical location of the node.
- gluon-config-mode-contact-info
- Adds a field where the user can provide contact information.
- In order to get a config mode close to the one found in 2014.3.x you may add
- these modules to your `site.mk`:
- gluon-config-mode-hostname,
- gluon-config-mode-autoupdater,
- gluon-config-mode-mesh-vpn,
- gluon-config-mode-geo-location,
- gluon-config-mode-contact-info
- Writing Config Mode Modules
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Config mode modules are located at `/lib/gluon/config-mode/wizard` and
- `/lib/gluon/config-mode/reboot`. Modules are named like `0000-name.lua` and
- are executed in lexical order. If you take the standard set of modules, the
- order is, for wizard modules:
- - 0050-autoupdater-info
- - 0100-hostname
- - 0300-mesh-vpn
- - 0400-geo-location
- - 0500-contact-info
- While for reboot modules it is:
- - 0100-mesh-vpn
- - 0900-msg-reboot
- Wizards
- -------
- Wizard modules return a UCI section. A simple module capable of changing the
- hostname might look like this::
- local cbi = require "luci.cbi"
- local uci = luci.model.uci.cursor()
- local M = {}
- function M.section(form)
- local s = form:section(cbi.SimpleSection, nil, nil)
- local o = s:option(cbi.Value, "_hostname", "Hostname")
- o.value = uci:get_first("system", "system", "hostname")
- o.rmempty = false
- o.datatype = "hostname"
- end
- function M.handle(data)
- uci:set("system", uci:get_first("system", "system"), "hostname", data._hostname)
- uci:save("system")
- uci:commit("system")
- end
- return M
- Reboot page
- -----------
- Reboot modules return a function that will be called when the page is to be
- rendered or nil (i.e. the module is skipped)::
- if no_hello_world_today then
- return nil
- else
- return function ()
- luci.template.render_string("Hello World!")
- end
- end
|