diff --git a/docs/package/gluon-config-mode-contact-info.rst b/docs/package/gluon-config-mode-contact-info.rst
new file mode 100644
index 00000000..a38cc0a5
--- /dev/null
+++ b/docs/package/gluon-config-mode-contact-info.rst
@@ -0,0 +1,28 @@
+gluon-config-mode-contact-info
+==============================
+
+This package allows the user to provide contact information within config mode to be
+distributed in the mesh. You can define whether the owner contact field is
+obligatory or not in your site.conf.
+
+site.conf
+---------
+
+config_mode.owner.obligatory : this whole section is optional
+ - ``true`` field is obligatory: gluon-node-info.@owner[0].contact may not be empty
+ - ``false`` field is optional: gluon-node-info.@owner[0].contact may be empty
+ - defaults to ``false``
+
+# example:
+
+ config_mode = {
+ geo_location = {
+ show_altitude = true,
+ },
+ owner = {
+ obligatory = true
+ },
+ },
+
+
+
\ No newline at end of file
diff --git a/docs/site-example/site.conf b/docs/site-example/site.conf
index 964324df..6dee6df2 100644
--- a/docs/site-example/site.conf
+++ b/docs/site-example/site.conf
@@ -192,10 +192,15 @@
-- skip = true,
-- },
- -- Show/hide the altitude field
-- config_mode = {
- -- geo_location = {
- -- show_altitude = false,
- -- },
+ -- Show/hide the altitude field
+ -- geo_location = {
+ -- show_altitude = false,
+ -- },
+ -- define if the contact field is obligatory (optional)
+ -- owner = {
+ -- obligatory = true
+ -- },
-- },
+
}
diff --git a/package/gluon-config-mode-contact-info/Makefile b/package/gluon-config-mode-contact-info/Makefile
index 801fad61..3ac8a0b3 100644
--- a/package/gluon-config-mode-contact-info/Makefile
+++ b/package/gluon-config-mode-contact-info/Makefile
@@ -13,10 +13,15 @@ PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
define Package/gluon-config-mode-contact-info
SECTION:=gluon
CATEGORY:=Gluon
- TITLE:=Set a custom string that will be distributed in the mesh.
+ TITLE:=Allows the user to provide contact information to be distributed in the mesh
DEPENDS:=gluon-config-mode-core-virtual +gluon-node-info
endef
+define Package/gluon-config-mode-contact-info/description
+ Allows the user to provide contact information to be distributed in the mesh.
+ Can be made obligatory in site.conf
+endef
+
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
@@ -34,4 +39,9 @@ define Package/gluon-config-mode-contact-info/install
$(call GluonInstallI18N,gluon-config-mode-contact-info,$(1))
endef
+define Package/gluon-config-mode-contact-info/postinst
+#!/bin/sh
+$(call GluonCheckSite,check_site.lua)
+endef
+
$(eval $(call BuildPackage,gluon-config-mode-contact-info))
diff --git a/package/gluon-config-mode-contact-info/check_site.lua b/package/gluon-config-mode-contact-info/check_site.lua
new file mode 100644
index 00000000..fe818616
--- /dev/null
+++ b/package/gluon-config-mode-contact-info/check_site.lua
@@ -0,0 +1,3 @@
+if need_table('config_mode', nil, false) and need_table('config_mode.owner', nil, false) then
+ need_boolean('config_mode.owner.obligatory', false)
+end
diff --git a/package/gluon-config-mode-contact-info/i18n/de.po b/package/gluon-config-mode-contact-info/i18n/de.po
index 719246f4..35f0ee95 100644
--- a/package/gluon-config-mode-contact-info/i18n/de.po
+++ b/package/gluon-config-mode-contact-info/i18n/de.po
@@ -14,13 +14,13 @@ msgid "Contact info"
msgstr "Kontakt"
msgid ""
-"You can provide your contact information here to allow others to contact "
-"you. Please note that this information will be visible publicly on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible publicly on "
"the internet together with your node's coordinates."
msgstr ""
-"Hier kannst du einen öffentlichen Hinweis hinterlegen, um anderen "
-"zu ermöglichen, Kontakt mit dir aufzunehmen. Bitte beachte, dass "
-"dieser Hinweis auch öffentlich im Internet, zusammen mit den Koordinaten "
+"Bitte hinterlege hier einen Hinweis, um anderen zu ermöglichen, "
+"Kontakt mit dir aufzunehmen. Beachte, dass dieser Hinweis auch "
+"öffentlich im Internet, zusammen mit den Koordinaten "
"deines Knotens, einsehbar sein wird."
msgid "e.g. E-mail or phone number"
diff --git a/package/gluon-config-mode-contact-info/i18n/fr.po b/package/gluon-config-mode-contact-info/i18n/fr.po
index 779e15fe..624b1864 100644
--- a/package/gluon-config-mode-contact-info/i18n/fr.po
+++ b/package/gluon-config-mode-contact-info/i18n/fr.po
@@ -14,11 +14,12 @@ msgid "Contact info"
msgstr "Informations de Contact"
msgid ""
-"You can provide your contact information here to allow others to contact "
-"you. Please note that this information will be visible publicly on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible publicly on "
"the internet together with your node's coordinates."
msgstr ""
-"Ici vous pouvez donner des informations publiques pour permettre aux autres de vous contacter. "
+"S'il vous plaît entrez ici des informations publiques pour "
+"permettre aux autres de vous contacter. "
"Ces informations seront affichées en ligne, avec les coordonnées du nœud."
msgid "e.g. E-mail or phone number"
diff --git a/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot b/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
index 63939a83..9dcaf9ec 100644
--- a/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
+++ b/package/gluon-config-mode-contact-info/i18n/gluon-config-mode-contact-info.pot
@@ -5,8 +5,8 @@ msgid "Contact info"
msgstr ""
msgid ""
-"You can provide your contact information here to allow others to contact "
-"you. Please note that this information will be visible publicly on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible publicly on "
"the internet together with your node's coordinates."
msgstr ""
diff --git a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
index a2182f95..46ff4567 100644
--- a/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
+++ b/package/gluon-config-mode-contact-info/luasrc/lib/gluon/config-mode/wizard/0500-contact-info.lua
@@ -1,13 +1,14 @@
local cbi = require "luci.cbi"
local i18n = require "luci.i18n"
local uci = luci.model.uci.cursor()
+local site = require 'gluon.site_config'
local M = {}
function M.section(form)
local s = form:section(cbi.SimpleSection, nil, i18n.translate(
- 'You can provide your contact information here to '
- .. 'allow others to contact you. Please note that '
+ 'Please provide your contact information here to '
+ .. 'allow others to contact you. Note that '
.. 'this information will be visible publicly '
.. 'on the internet together with your node\'s coordinates.'
)
@@ -15,7 +16,7 @@ function M.section(form)
local o = s:option(cbi.Value, "_contact", i18n.translate("Contact info"))
o.default = uci:get_first("gluon-node-info", "owner", "contact", "")
- o.rmempty = true
+ o.rmempty = not ((site.config_mode or {}).owner or {}).obligatory
o.datatype = "string"
o.description = i18n.translate("e.g. E-mail or phone number")
o.maxlen = 140