Software /
code /
prosody
Comparison
util/dataforms.lua @ 3380:e74e80b454a1
util.dataforms: Add list-multi support
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Thu, 15 Jul 2010 22:58:10 +0200 |
parent | 3379:17d4298b2a58 |
child | 3540:bc139431830b |
comparison
equal
deleted
inserted
replaced
3379:17d4298b2a58 | 3380:e74e80b454a1 |
---|---|
77 end | 77 end |
78 else | 78 else |
79 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); | 79 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); |
80 end | 80 end |
81 end | 81 end |
82 elseif field_type == "list-multi" then | |
83 for _, val in ipairs(value) do | |
84 if type(val) == "table" then | |
85 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); | |
86 if val.default then | |
87 form:tag("value"):text(val.value):up(); | |
88 end | |
89 else | |
90 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); | |
91 end | |
92 end | |
82 end | 93 end |
83 end | 94 end |
84 | 95 |
85 if field.required then | 96 if field.required then |
86 form:tag("required"):up(); | 97 form:tag("required"):up(); |
152 end | 163 end |
153 | 164 |
154 field_readers["list-single"] = | 165 field_readers["list-single"] = |
155 field_readers["text-single"]; | 166 field_readers["text-single"]; |
156 | 167 |
168 field_readers["list-multi"] = | |
169 function (field_tag) | |
170 local result = {}; | |
171 for value_tag in field_tag:childtags() do | |
172 if value_tag.name == "value" then | |
173 result[#result+1] = value_tag[1]; | |
174 end | |
175 end | |
176 return result; | |
177 end | |
178 | |
157 field_readers["boolean"] = | 179 field_readers["boolean"] = |
158 function (field_tag) | 180 function (field_tag) |
159 local value = field_tag:child_with_name("value"); | 181 local value = field_tag:child_with_name("value"); |
160 if value then | 182 if value then |
161 if value[1] == "1" or value[1] == "true" then | 183 if value[1] == "1" or value[1] == "true" then |