From 554651a23b04a2b0239878e46528fbd36b1443ae Mon Sep 17 00:00:00 2001
From: Matthew Wild <mwild1@gmail.com>
Date: Sat, 7 Jul 2018 12:11:52 +0100
Subject: util.dataforms: More robust handling of field values, especially
 booleans

Ensure that a non-nil data[field_name] always overrides the field's default,
and that values of boolean 'false' are always rendered in the form.
---
 util/dataforms.lua | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'util')

diff --git a/util/dataforms.lua b/util/dataforms.lua
index e48f6879..64f73c11 100644
--- a/util/dataforms.lua
+++ b/util/dataforms.lua
@@ -42,9 +42,14 @@ function form_t.form(layout, data, formtype)
 			form:text_tag("desc", field.desc);
 		end
 
-		local value = (data and data[field.name]) or field.value;
+		local value;
+		if data and data[field.name] ~= nil then
+			value = data[field.name];
+		else
+			value = field.value;
+		end
 
-		if value then
+		if value ~= nil then
 			-- Add value, depending on type
 			if field_type == "hidden" then
 				if type(value) == "table" then
-- 
cgit v1.2.3