gluon-config-mode-hostname: add config_mode.hostname.optional site option
This setting allows to enforce manually setting a hostname. In the initial configuration, the hostname field is now left empty; when setting the hostname is not enforced, the default hostname is shown as the field placeholder. Fixes #1139
This commit is contained in:
parent
486c2e4821
commit
7827f8960f
@ -370,6 +370,10 @@ config_mode \: optional
|
|||||||
Additional configuration for the configuration web interface. All values are
|
Additional configuration for the configuration web interface. All values are
|
||||||
optional.
|
optional.
|
||||||
|
|
||||||
|
When no hostname is specified, a default hostname based on the *hostname_prefix*
|
||||||
|
and the node's primary MAC address is assigned. Manually setting a hostname
|
||||||
|
can be enforced by setting *hostname.optional* to *false*.
|
||||||
|
|
||||||
By default, no altitude fields are shown by the *gluon-config-mode-geo-location*
|
By default, no altitude fields are shown by the *gluon-config-mode-geo-location*
|
||||||
package. If *geo_location.show_altitude* is set to *true*, the *gluon-config-mode:altitude-label*
|
package. If *geo_location.show_altitude* is set to *true*, the *gluon-config-mode:altitude-label*
|
||||||
and *gluon-config-mode:altitude-help* strings must be provided in the site i18n
|
and *gluon-config-mode:altitude-help* strings must be provided in the site i18n
|
||||||
@ -385,6 +389,9 @@ config_mode \: optional
|
|||||||
::
|
::
|
||||||
|
|
||||||
config_mode = {
|
config_mode = {
|
||||||
|
hostname = {
|
||||||
|
optional = false,
|
||||||
|
},
|
||||||
geo_location = {
|
geo_location = {
|
||||||
show_altitude = true,
|
show_altitude = true,
|
||||||
},
|
},
|
||||||
|
1
package/gluon-config-mode-hostname/check_site.lua
Normal file
1
package/gluon-config-mode-hostname/check_site.lua
Normal file
@ -0,0 +1 @@
|
|||||||
|
need_boolean(in_site({'config_mode', 'hostname', 'optional'}), false)
|
@ -1,19 +1,32 @@
|
|||||||
return function(form, uci)
|
return function(form, uci)
|
||||||
local pkg_i18n = i18n 'gluon-config-mode-hostname'
|
local pkg_i18n = i18n 'gluon-config-mode-hostname'
|
||||||
|
|
||||||
local pretty_hostname = require "pretty_hostname"
|
local pretty_hostname = require 'pretty_hostname'
|
||||||
|
local site = require 'gluon.site'
|
||||||
|
local util = require 'gluon.util'
|
||||||
|
|
||||||
form:section(Section, nil, pkg_i18n.translate(
|
form:section(Section, nil, pkg_i18n.translate(
|
||||||
"The node name is used solely for identification of your node, e.g. on a "
|
"The node name is used solely for identification of your node, e.g. on a "
|
||||||
.. "node map. It does not affect the name (SSID) of the broadcasted WLAN."
|
.. "node map. It does not affect the name (SSID) of the broadcasted WLAN."
|
||||||
))
|
))
|
||||||
|
|
||||||
|
local current_hostname = pretty_hostname.get(uci)
|
||||||
|
local default_hostname = util.default_hostname()
|
||||||
|
local configured = uci:get_first('gluon-setup-mode', 'setup_mode', 'configured', false) or (current_hostname ~= default_hostname)
|
||||||
|
|
||||||
local s = form:section(Section)
|
local s = form:section(Section)
|
||||||
local o = s:option(Value, "hostname", pkg_i18n.translate("Node name"))
|
local o = s:option(Value, "hostname", pkg_i18n.translate("Node name"))
|
||||||
o.default = pretty_hostname.get(uci)
|
o.datatype = 'minlength(1)'
|
||||||
|
if site.config_mode.hostname.optional(true) then
|
||||||
|
o.optional = true
|
||||||
|
o.placeholder = default_hostname
|
||||||
|
end
|
||||||
|
if configured then
|
||||||
|
o.default = current_hostname
|
||||||
|
end
|
||||||
|
|
||||||
function o:write(data)
|
function o:write(data)
|
||||||
pretty_hostname.set(uci, data)
|
pretty_hostname.set(uci, data or default_hostname)
|
||||||
end
|
end
|
||||||
|
|
||||||
return {'system'}
|
return {'system'}
|
||||||
|
Loading…
Reference in New Issue
Block a user