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
Additional configuration for the configuration web interface. All values are
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*
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
......@@ -385,6 +389,9 @@ config_mode \: optional
::
config_mode = {
hostname = {
optional = false,
},
geo_location = {
show_altitude = true,
},
......
need_boolean(in_site({'config_mode', 'hostname', 'optional'}), false)
return function(form, uci)
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(
"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."
))
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 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)
pretty_hostname.set(uci, data)
pretty_hostname.set(uci, data or default_hostname)
end
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