aboutsummaryrefslogtreecommitdiffstats
path: root/util/dataforms.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-05-28 12:51:12 +0200
committerKim Alvefur <zash@zash.se>2016-05-28 12:51:12 +0200
commite8e531fa1d45b4b454abdac3a170cba16da02b86 (patch)
treeaf9b1ce44f8066574de3d39858357fa64c4aa35b /util/dataforms.lua
parenta94034cbe38778a9e9bdf6bc10faf8a1584f4156 (diff)
parentb44930be7ec51bc82cdc977f9d4320bb747ffc40 (diff)
downloadprosody-e8e531fa1d45b4b454abdac3a170cba16da02b86.tar.gz
prosody-e8e531fa1d45b4b454abdac3a170cba16da02b86.zip
Merge 0.10->trunk
Diffstat (limited to 'util/dataforms.lua')
-rw-r--r--util/dataforms.lua16
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