Browse Source

gluon-config-mode-geo-location: add ability to hide the altitude field (#693)

kb-light 8 years ago
parent
commit
269a8fbdd4

+ 1 - 0
docs/index.rst

@@ -51,6 +51,7 @@ Packages
    :maxdepth: 1
 
    package/gluon-client-bridge
+   package/gluon-config-mode-geo-location
    package/gluon-ebtables-filter-multicast
    package/gluon-ebtables-filter-ra-dhcp
 

+ 14 - 0
docs/package/gluon-config-mode-geo-location.rst

@@ -0,0 +1,14 @@
+gluon-config-mode-geo-location
+==============================
+
+This package enables the user to set latitude, longitude and altitude of their
+node within config mode. As the usage of the altitude is not well defined the
+corresponding field can be disabled.
+
+site.conf
+---------
+
+config_mode.geo_location.show_altitude : optional
+    - ``true`` enables the altitude field
+    - ``false`` disables the altitude field if altitude has not yet been set
+    - defaults to ``true``

+ 7 - 0
docs/site-example/site.conf

@@ -183,4 +183,11 @@
   -- setup_mode = {
   --  skip = true,
   -- },
+
+  -- Show/hide the altitude field
+  -- config_mode = {
+  --   geo_location = {
+  --     show_altitude = false,
+  --   },
+  -- },
 }

+ 5 - 0
package/gluon-config-mode-geo-location/Makefile

@@ -33,4 +33,9 @@ define Package/gluon-config-mode-geo-location/install
 	$(call GluonInstallI18N,gluon-config-mode-geo-location,$(1))
 endef
 
+define Package/gluon-config-mode-geo-location/postinst
+#!/bin/sh
+$(call GluonCheckSite,check_site.lua)
+endef
+
 $(eval $(call BuildPackage,gluon-config-mode-geo-location))

+ 3 - 0
package/gluon-config-mode-geo-location/check_site.lua

@@ -0,0 +1,3 @@
+if need_table('config_mode', nil, false) and need_table('config_mode.geo_location', nil, false) then
+  need_boolean('config_mode.geo_location.show_altitude', false)
+end

+ 26 - 10
package/gluon-config-mode-geo-location/files/lib/gluon/config-mode/wizard/0400-geo-location.lua

@@ -1,14 +1,28 @@
 local cbi = require "luci.cbi"
 local i18n = require "luci.i18n"
 local uci = luci.model.uci.cursor()
+local site = require 'gluon.site_config'
 
 local M = {}
 
+local function show_altitude()
+  if ((site.config_mode or {}).geo_location or {}).show_altitude ~= false then
+    return true
+  end
+  if uci:get_first("gluon-node-info", "location", "altitude") then
+    return true
+  end
+  return false
+end
+
 function M.section(form)
-  local s = form:section(cbi.SimpleSection, nil, i18n.translate(
-    'If you want the location of your node to be displayed on the map, '
-      .. 'you can enter its coordinates here. Specifying the altitude '
-      .. 'is optional and should only be done if a proper value is known.'))
+  local text = i18n.translate('If you want the location of your node to '
+    .. 'be displayed on the map, you can enter its coordinates here.')
+  if show_altitude() then
+    text = text .. ' ' .. i18n.translate('Specifying the altitude is '
+      .. 'optional and should only be done if a proper value is known.')
+  end
+  local s = form:section(cbi.SimpleSection, nil, text)
 
 
   local o
@@ -31,12 +45,14 @@ function M.section(form)
   o.datatype = "float"
   o.description = i18n.translatef("e.g. %s", "10.689901")
 
-  o = s:option(cbi.Value, "_altitude", i18n.translate("Altitude"))
-  o.default = uci:get_first("gluon-node-info", "location", "altitude")
-  o:depends("_location", "1")
-  o.rmempty = true
-  o.datatype = "float"
-  o.description = i18n.translatef("e.g. %s", "11.51")
+  if show_altitude() then
+    o = s:option(cbi.Value, "_altitude", i18n.translate("Altitude"))
+    o.default = uci:get_first("gluon-node-info", "location", "altitude")
+    o:depends("_location", "1")
+    o.rmempty = true
+    o.datatype = "float"
+    o.description = i18n.translatef("e.g. %s", "11.51")
+  end
 
 end
 

+ 9 - 5
package/gluon-config-mode-geo-location/i18n/de.po

@@ -12,13 +12,17 @@ msgstr ""
 
 msgid ""
 "If you want the location of your node to be displayed on the map, you can "
-"enter its coordinates here. Specifying the altitude is optional and should "
-"only be done if a proper value is known."
+"enter its coordinates here."
 msgstr ""
 "Um deinen Knoten auf der Karte anzeigen zu können, benötigen wir seine "
-"Koordinaten. Hier hast du die Möglichkeit, diese zu hinterlegen. Die "
-"Höhenangabe ist optional und sollte nur gesetzt werden, wenn ein exakter "
-"Wert bekannt ist."
+"Koordinaten. Hier hast du die Möglichkeit, diese zu hinterlegen."
+
+msgid ""
+"Specifying the altitude is optional and should only be done if a proper "
+"value is known."
+msgstr ""
+"Die Höhenangabe ist optional und sollte nur gesetzt werden, wenn ein "
+"exakter Wert bekannt ist."
 
 msgid "Latitude"
 msgstr "Breitengrad"

+ 9 - 4
package/gluon-config-mode-geo-location/i18n/fr.po

@@ -12,12 +12,17 @@ msgstr ""
 
 msgid ""
 "If you want the location of your node to be displayed on the map, you can "
-"enter its coordinates here. Specifying the altitude is optional and should "
-"only be done if a proper value is known."
+"enter its coordinates here."
 msgstr ""
 "Pour Afficher votre nœud sur la Carte nous avons besoin de ses coordonnées. "
-"Ici vous pouvez entrer sa position. La altitude est optionelle "
-"et ne devrait que être ajoutée si la valeur exacte est connue. "
+"Ici vous pouvez entrer sa position."
+
+msgid ""
+"Specifying the altitude is optional and should only be done if a proper "
+"value is known."
+msgstr ""
+"La altitude est optionelle et ne devrait que être ajoutée si la valeur "
+"exacte est connue."
 
 msgid "Latitude"
 msgstr "Latitude"

+ 6 - 2
package/gluon-config-mode-geo-location/i18n/gluon-config-mode-geo-location.pot

@@ -3,8 +3,12 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
 
 msgid ""
 "If you want the location of your node to be displayed on the map, you can "
-"enter its coordinates here. Specifying the altitude is optional and should "
-"only be done if a proper value is known."
+"enter its coordinates here."
+msgstr ""
+
+msgid ""
+"Specifying the altitude is optional and should only be done if a proper "
+"value is known."
 msgstr ""
 
 msgid "Latitude"