diff options
author | Kim Alvefur <zash@zash.se> | 2016-05-28 12:51:12 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2016-05-28 12:51:12 +0200 |
commit | e8e531fa1d45b4b454abdac3a170cba16da02b86 (patch) | |
tree | af9b1ce44f8066574de3d39858357fa64c4aa35b /util/dataforms.lua | |
parent | a94034cbe38778a9e9bdf6bc10faf8a1584f4156 (diff) | |
parent | b44930be7ec51bc82cdc977f9d4320bb747ffc40 (diff) | |
download | prosody-e8e531fa1d45b4b454abdac3a170cba16da02b86.tar.gz prosody-e8e531fa1d45b4b454abdac3a170cba16da02b86.zip |
Merge 0.10->trunk
Diffstat (limited to 'util/dataforms.lua')
-rw-r--r-- | util/dataforms.lua | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/util/dataforms.lua b/util/dataforms.lua index 79b4d1a4..685f3aaf 100644 --- a/util/dataforms.lua +++ b/util/dataforms.lua @@ -69,10 +69,10 @@ function form_t.form(layout, data, formtype) end elseif field_type == "list-single" then local has_default = false; - for _, val in ipairs(value) do + for _, val in ipairs(field.options or value) do if type(val) == "table" then form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); - if val.default and (not has_default) then + if value == val.value or field.options and val.default and (not has_default) then form:tag("value"):text(val.value):up(); has_default = true; end @@ -80,17 +80,25 @@ function form_t.form(layout, data, formtype) form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); end end + if field.options and value then + form:tag("value"):text(value):up(); + end elseif field_type == "list-multi" then - for _, val in ipairs(value) do + for _, val in ipairs(field.options or value) do if type(val) == "table" then form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); - if val.default then + if not field.options and 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 + if field.options and value then + for _, val in ipairs(value) do + form:tag("value"):text(val):up(); + end + end end end |