From 8dd1bd09aa02f3d91c7c41a70dce2f0f3fbf49b2 Mon Sep 17 00:00:00 2001
From: Chris Fiege <cfi@pengutronix.de>
Date: Sun, 9 Jan 2022 15:24:45 +0100
Subject: [PATCH] Contact-Info: Allow user to share contact-info on status page

With this change we allow our node operators to publish their contact
details on the status page.
---
 .../config-mode/wizard/0500-contact-info.lua  | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

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 f58e994f..31d4a0bd 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
@@ -12,6 +12,20 @@ return function(form, uci)
 	)
 	local s = form:section(Section, nil, help)
 
+	local publish = s:option(Flag, "publish", translate("Publish contact info on node-info page"))
+	publish.default=uci:get_bool("parker","owner","publish")
+	function publish:write(data)
+		uci:section("parker", "owner", "owner")
+		uci:set("parker", "owner", "publish", data)
+		local owner = uci:get_first("gluon-node-info", "owner")
+		if data then
+			local contact = uci:get("parker", "owner", "contact")
+			uci:set("gluon-node-info", owner, "contact", contact)
+		else
+			uci:set("gluon-node-info", owner, "contact", "")
+		end
+	end
+
 	local o = s:option(Value, "contact", pkg_i18n.translate("Contact info"),
 		site_i18n._translate("gluon-config-mode:contact-note") or pkg_i18n.translate("e.g. E-mail or phone number"))
 	o.default = uci:get("parker", "owner", "contact")
@@ -20,7 +34,17 @@ return function(form, uci)
 	function o:write(data)
 		uci:section("parker","owner","owner")
 		uci:set("parker", "owner", "contact", data)
+
+		local owner = uci:get_first("gluon-node-info", "owner")
+		local publish = uci:get_bool("parker", "owner", "publish")
+		if publish then
+			uci:set("gluon-node-info", owner, "contact", data)
+		else
+			uci:set("gluon-node-info", owner, "contact", "")
+		end
+
 		uci:save("parker")
+		uci:save("gluon-node-info")
 	end
 	return {'parker'}
 end
-- 
GitLab