util.dataforms: Don't include list options in result forms (fixes #983)

This commit is contained in:
Matthew Wild 2017-09-23 13:20:46 +01:00
parent 4cc9079746
commit 03b4a9a938

View file

@ -68,33 +68,37 @@ function form_t.form(layout, data, formtype)
form:tag("value"):text(line):up();
end
elseif field_type == "list-single" then
local has_default = false;
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 value == val.value or val.default and (not has_default) then
form:tag("value"):text(val.value):up();
has_default = true;
if formtype ~= "result" then
local has_default = false;
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 value == val.value or val.default and (not has_default) then
form:tag("value"):text(val.value):up();
has_default = true;
end
else
form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up();
end
else
form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up();
end
end
if field.options and value then
if (field.options or formtype == "result") and value then
form:tag("value"):text(value):up();
end
elseif field_type == "list-multi" then
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 not field.options and val.default then
form:tag("value"):text(val.value):up();
if formtype ~= "result" then
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 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
else
form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up();
end
end
if field.options and value then
if (field.options or formtype == "result") and value then
for _, val in ipairs(value) do
form:tag("value"):text(val):up();
end