Browse Source

gluon-config-mode-contact-info: define an "obligatory" option in site.conf (#843)

Ruben Barkow 7 years ago
parent
commit
d03c88afb4

+ 28 - 0
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
+    },
+  },
+
+
+    

+ 9 - 4
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
+    -- },
   -- },
+
 }

+ 11 - 1
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))

+ 3 - 0
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

+ 5 - 5
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 <em>publicly</em> on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible <em>publicly</em> on "
 "the internet together with your node's coordinates."
 msgstr ""
-"Hier kannst du einen <em>öffentlichen</em> 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 "
+"<em>öffentlich</em> im Internet, zusammen mit den Koordinaten "
 "deines Knotens, einsehbar sein wird."
 
 msgid "e.g. E-mail or phone number"

+ 4 - 3
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 <em>publicly</em> on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible <em>publicly</em> on "
 "the internet together with your node's coordinates."
 msgstr ""
-"Ici vous pouvez donner des informations <em>publiques</em> pour permettre aux autres de vous contacter. "
+"S'il vous plaît entrez ici des informations <em>publiques</em> 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"

+ 2 - 2
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 <em>publicly</em> on "
+"Please provide your contact information here to allow others to contact "
+"you. Note that this information will be visible <em>publicly</em> on "
 "the internet together with your node's coordinates."
 msgstr ""
 

+ 4 - 3
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 <em>publicly</em> '
       .. '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