# HG changeset patch
# User Florian Zeitz <florob@babelmonkeys.de>
# Date 1279227490 -7200
# Node ID e74e80b454a1e2a3c3bc7efa8eb636fe9f651fc0
# Parent  17d4298b2a589a0c8a7d7b286d4c69b02ac0310c
util.dataforms: Add list-multi support

diff -r 17d4298b2a58 -r e74e80b454a1 util/dataforms.lua
--- 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");