Software /
code /
prosody
Comparison
util/dataforms.lua @ 7442:156c95bfed0b
util.dataforms: Allow separation of options from values in list fields
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 27 May 2016 15:44:41 +0200 |
parent | 6981:bcaa553de6e8 |
child | 7446:0db72fac2faa |
comparison
equal
deleted
inserted
replaced
7440:5424e24cdcb1 | 7442:156c95bfed0b |
---|---|
67 for line in value:gmatch("([^\r\n]+)\r?\n*") do | 67 for line in value:gmatch("([^\r\n]+)\r?\n*") do |
68 form:tag("value"):text(line):up(); | 68 form:tag("value"):text(line):up(); |
69 end | 69 end |
70 elseif field_type == "list-single" then | 70 elseif field_type == "list-single" then |
71 local has_default = false; | 71 local has_default = false; |
72 for _, val in ipairs(value) do | 72 for _, val in ipairs(field.options or value) do |
73 if type(val) == "table" then | 73 if type(val) == "table" then |
74 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); | 74 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); |
75 if val.default and (not has_default) then | 75 if value == val.value or field.options and val.default and (not has_default) then |
76 form:tag("value"):text(val.value):up(); | 76 form:tag("value"):text(val.value):up(); |
77 has_default = true; | 77 has_default = true; |
78 end | 78 end |
79 else | 79 else |
80 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); | 80 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); |
81 end | 81 end |
82 end | 82 end |
83 if field.options and value then | |
84 form:tag("value"):text(value):up(); | |
85 end | |
83 elseif field_type == "list-multi" then | 86 elseif field_type == "list-multi" then |
84 for _, val in ipairs(value) do | 87 for _, val in ipairs(field.options or value) do |
85 if type(val) == "table" then | 88 if type(val) == "table" then |
86 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); | 89 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); |
87 if val.default then | 90 if not field.options and val.default then |
88 form:tag("value"):text(val.value):up(); | 91 form:tag("value"):text(val.value):up(); |
89 end | 92 end |
90 else | 93 else |
91 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); | 94 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); |
95 end | |
96 end | |
97 if field.options and value then | |
98 for _, val in ipairs(value) do | |
99 form:tag("value"):text(val):up(); | |
92 end | 100 end |
93 end | 101 end |
94 end | 102 end |
95 end | 103 end |
96 | 104 |