From 1f451d4021ca2aba8a9d82cb2feb1e450764c0c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sat, 28 Jan 2023 20:34:52 +0100
Subject: [PATCH] gluon-web-model: fix issue with warning blocking save on
 private-wifi

The other bugfix which made this element inherit from AbstractValue
caused AbstractValue:validate() to be inherited aswell

Now added an if so validate only runs if a datatype is set
(since Element is meant as a generic way to extend web-model without
modifying web-model - also to add custom inputs - just hiding it behind an if sounds like a sane solution)
---
 .../usr/lib/lua/gluon/web/model/classes.lua     | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/package/gluon-web-model/luasrc/usr/lib/lua/gluon/web/model/classes.lua b/package/gluon-web-model/luasrc/usr/lib/lua/gluon/web/model/classes.lua
index 93279c3b6..d09b9bb8a 100644
--- a/package/gluon-web-model/luasrc/usr/lib/lua/gluon/web/model/classes.lua
+++ b/package/gluon-web-model/luasrc/usr/lib/lua/gluon/web/model/classes.lua
@@ -429,6 +429,23 @@ function Element:__init__(template, kv, ...)
 	self.error = false
 end
 
+function Element:parse(http)
+	if not self.datatype then
+		self.state = M.FORM_VALID
+		return
+	end
+
+	return AbstractValue:parse(http)
+end
+
+function Element:validate()
+	if not self.datatype then
+		return true
+	end
+
+	AbstractValue:validate()
+end
+
 local Section = class(Node)
 M.Section = Section
 
-- 
GitLab