diff util/dataforms.lua @ 4541:05f5ec99da77

Merge with trunk
author Matthew Wild <mwild1@gmail.com>
date Sun, 22 Jan 2012 22:55:49 +0000
parents ea69296afaef
children b8d852aea3ad
line wrap: on
line diff
--- a/util/dataforms.lua	Sat Dec 10 17:21:19 2011 +0000
+++ b/util/dataforms.lua	Sun Jan 22 22:55:49 2012 +0000
@@ -120,12 +120,18 @@
 			end
 		end
 
-		local reader = field_readers[field.type];
-		local verifier = field.verifier or field_verifiers[field.type];
-		if reader then
-			data[field.name] = reader(tag);
-			if verifier then
-				errors[field.name] = verifier(data[field.name], tag, field.required);
+		if not tag then
+			if field.required then
+				errors[field.name] = "Required value missing";
+			end
+		else
+			local reader = field_readers[field.type];
+			local verifier = field.verifier or field_verifiers[field.type];
+			if reader then
+				data[field.name] = reader(tag);
+				if verifier then
+					errors[field.name] = verifier(data[field.name], tag, field.required);
+				end
 			end
 		end
 	end
@@ -161,7 +167,7 @@
 
 field_verifiers["jid-single"] =
 	function (data, field_tag, required)
-		if #data == 0 and required then
+		if ((not data) or (#data == 0)) and required then
 			return "Required value missing";
 		end
 		if not jid_prep(data) then
@@ -246,7 +252,7 @@
 field_verifiers["boolean"] =
 	function (data, field_tag, required)
 		data = field_readers["text-single"](field_tag);
-		if #data == 0 and required then
+		if ((not data) or (#data == 0)) and required then
 			return "Required value missing";
 		end
 		if data ~= "1" and data ~= "true" and data ~= "0" and data ~= "false" then