From 7c2636d28264df20b448b0160b69f5059c40b84a Mon Sep 17 00:00:00 2001
From: kb-light <freifunk@kb-light.de>
Date: Sun, 29 Oct 2017 14:51:27 +0100
Subject: [PATCH] gluon-web-network: make poe_passthrough more generic

---
 package/gluon-web-network/i18n/de.po          |  2 +-
 package/gluon-web-network/i18n/fr.po          |  2 +-
 .../i18n/gluon-web-network.pot                |  2 +-
 .../lib/gluon/web/model/admin/network.lua     | 19 ++++++++++++-------
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/package/gluon-web-network/i18n/de.po b/package/gluon-web-network/i18n/de.po
index 6b321f3ee..88194cff8 100644
--- a/package/gluon-web-network/i18n/de.po
+++ b/package/gluon-web-network/i18n/de.po
@@ -19,7 +19,7 @@ msgstr "Automatisch (RA/DHCPv6)"
 msgid "Disabled"
 msgstr "Deaktiviert"
 
-msgid "Enable PoE passthrough"
+msgid "Enable PoE Passthrough"
 msgstr "PoE-Passthrough aktivieren"
 
 msgid "Enable meshing on the LAN interface"
diff --git a/package/gluon-web-network/i18n/fr.po b/package/gluon-web-network/i18n/fr.po
index 1e36a201b..d14559a8d 100644
--- a/package/gluon-web-network/i18n/fr.po
+++ b/package/gluon-web-network/i18n/fr.po
@@ -19,7 +19,7 @@ msgstr "Automatique (RA/DHCPv6)"
 msgid "Disabled"
 msgstr "Désactivé"
 
-msgid "Enable PoE passthrough"
+msgid "Enable PoE Passthrough"
 msgstr ""
 
 msgid "Enable meshing on the LAN interface"
diff --git a/package/gluon-web-network/i18n/gluon-web-network.pot b/package/gluon-web-network/i18n/gluon-web-network.pot
index 5b793a23d..94c5cdabf 100644
--- a/package/gluon-web-network/i18n/gluon-web-network.pot
+++ b/package/gluon-web-network/i18n/gluon-web-network.pot
@@ -10,7 +10,7 @@ msgstr ""
 msgid "Disabled"
 msgstr ""
 
-msgid "Enable PoE passthrough"
+msgid "Enable PoE Passthrough"
 msgstr ""
 
 msgid "Enable meshing on the LAN interface"
diff --git a/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua b/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua
index eb178da2f..2abd69e27 100644
--- a/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua
+++ b/package/gluon-web-network/luasrc/lib/gluon/web/model/admin/network.lua
@@ -104,15 +104,20 @@ if sysconfig.lan_ifname then
 	end
 end
 
-if uci:get('system', 'gpio_switch_poe_passthrough') then
-	local s = f:section(Section)
-	local poe_passthrough = s:option(Flag, "poe_passthrough", translate("Enable PoE passthrough"))
-	poe_passthrough.default = uci:get_bool("system", "gpio_switch_poe_passthrough", "value")
+local section
+uci:foreach("system", "gpio_switch", function(s)
+	if s[".name"]:match("poe") then
+		if not section then
+			section = f:section(Section)
+		end
+		local poe = section:option(Flag, s[".name"], translate("Enable " .. s.name))
+		poe.default = uci:get_bool("system", s[".name"], "value")
 
-	function poe_passthrough:write(data)
-		uci:set('system', 'gpio_switch_poe_passthrough', 'value', data)
+		function poe:write(data)
+			uci:set("system", s[".name"], "value", data)
+		end
 	end
-end
+end)
 
 function f:write()
 	uci:set("network", "wan", "proto", ipv4.data)
-- 
GitLab