Comparison

util/dataforms.lua @ 9091:519dea077d20

util.dataforms: Allow passing dynamically generated options as values (fixes traceback) This is awkward but there’s currently no better way to do this, short of dynamically generating the entire form each time
author Kim Alvefur <zash@zash.se>
date Fri, 03 Aug 2018 22:05:40 +0200
parent 9090:56c52cb4d44e
child 9092:5110da3a71eb
comparison
equal deleted inserted replaced
9090:56c52cb4d44e 9091:519dea077d20
55 value = data[field.name]; 55 value = data[field.name];
56 else 56 else
57 value = field.value; 57 value = field.value;
58 end 58 end
59 59
60 if formtype == "form" and field.options then 60 local options = field.options;
61 if formtype == "form" and not options and value
62 and (field_type == "list-single" or field_type == "list-multi") then
63 -- Allow passing dynamically generated options as values
64 options, value = value, nil;
65 end
66
67 if formtype == "form" and options then
61 local defaults = {}; 68 local defaults = {};
62 for _, val in ipairs(field.options) do 69 for _, val in ipairs(options) do
63 if type(val) == "table" then 70 if type(val) == "table" then
64 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); 71 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up();
65 if val.default then 72 if val.default then
66 defaults[#defaults+1] = val.value; 73 defaults[#defaults+1] = val.value;
67 end 74 end