Skip to content
Snippets Groups Projects
Unverified Commit 7827f896 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

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
parent 486c2e48
No related branches found
No related tags found
No related merge requests found
...@@ -370,6 +370,10 @@ config_mode \: optional ...@@ -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 ...@@ -385,6 +389,9 @@ config_mode \: optional
:: ::
config_mode = { config_mode = {
hostname = {
optional = false,
},
geo_location = { geo_location = {
show_altitude = true, show_altitude = true,
}, },
......
need_boolean(in_site({'config_mode', 'hostname', 'optional'}), false)
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'}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment