util.dataforms: Add list-multi support

Thu, 15 Jul 2010 22:58:10 +0200

author
Florian Zeitz <florob@babelmonkeys.de>
date
Thu, 15 Jul 2010 22:58:10 +0200
changeset 3380
e74e80b454a1
parent 3379
17d4298b2a58
child 3381
28cb5ad72870

util.dataforms: Add list-multi support

util/dataforms.lua file | annotate | diff | comparison | revisions
--- a/util/dataforms.lua	Thu Jul 15 21:31:57 2010 +0200
+++ b/util/dataforms.lua	Thu Jul 15 22:58:10 2010 +0200
@@ -79,6 +79,17 @@
 						form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up();
 					end
 				end
+			elseif field_type == "list-multi" then
+				for _, val in ipairs(value) do
+					if type(val) == "table" then
+						form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up();
+						if val.default then
+							form:tag("value"):text(val.value):up();
+						end
+					else
+						form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up();
+					end
+				end
 			end
 		end
 		
@@ -154,6 +165,17 @@
 field_readers["list-single"] =
 	field_readers["text-single"];
 
+field_readers["list-multi"] =
+	function (field_tag)
+		local result = {};
+		for value_tag in field_tag:childtags() do
+			if value_tag.name == "value" then
+				result[#result+1] = value_tag[1];
+			end
+		end
+		return result;
+	end
+
 field_readers["boolean"] = 
 	function (field_tag)
 		local value = field_tag:child_with_name("value");

mercurial