Software /
code /
prosody
Comparison
util/dataforms.lua @ 9090:56c52cb4d44e
util.dataforms: Exclude descriptive text fields from forms of type 'submit'
The receiving end presumably already have the original form, so these
potentially long text fields are of little value.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 03 Aug 2018 21:45:55 +0200 |
parent | 9089:3a7a0b9f42f3 |
child | 9091:519dea077d20 |
comparison
equal
deleted
inserted
replaced
9089:3a7a0b9f42f3 | 9090:56c52cb4d44e |
---|---|
29 if not formtype then formtype = "form" end | 29 if not formtype then formtype = "form" end |
30 local form = st.stanza("x", { xmlns = xmlns_forms, type = formtype }); | 30 local form = st.stanza("x", { xmlns = xmlns_forms, type = formtype }); |
31 if formtype == "cancel" then | 31 if formtype == "cancel" then |
32 return form; | 32 return form; |
33 end | 33 end |
34 if layout.title then | 34 if formtype ~= "submit" then |
35 form:tag("title"):text(layout.title):up(); | 35 if layout.title then |
36 end | 36 form:tag("title"):text(layout.title):up(); |
37 if layout.instructions then | 37 end |
38 form:tag("instructions"):text(layout.instructions):up(); | 38 if layout.instructions then |
39 form:tag("instructions"):text(layout.instructions):up(); | |
40 end | |
39 end | 41 end |
40 for _, field in ipairs(layout) do | 42 for _, field in ipairs(layout) do |
41 local field_type = field.type or "text-single"; | 43 local field_type = field.type or "text-single"; |
42 -- Add field tag | 44 -- Add field tag |
43 form:tag("field", { type = field_type, var = field.name, label = field.label }); | 45 form:tag("field", { type = field_type, var = field.name, label = formtype ~= "submit" and field.label or nil }); |
44 | 46 |
45 if field.desc then | 47 if formtype ~= "submit" then |
46 form:text_tag("desc", field.desc); | 48 if field.desc then |
49 form:text_tag("desc", field.desc); | |
50 end | |
47 end | 51 end |
48 | 52 |
49 local value; | 53 local value; |
50 if data and data[field.name] ~= nil then | 54 if data and data[field.name] ~= nil then |
51 value = data[field.name]; | 55 value = data[field.name]; |
118 form:tag("uri", { type = val.type }):text(val.uri):up() | 122 form:tag("uri", { type = val.type }):text(val.uri):up() |
119 end | 123 end |
120 form:up(); | 124 form:up(); |
121 end | 125 end |
122 | 126 |
123 if field.required then | 127 if formtype == "form" and field.required then |
124 form:tag("required"):up(); | 128 form:tag("required"):up(); |
125 end | 129 end |
126 | 130 |
127 -- Jump back up to list of fields | 131 -- Jump back up to list of fields |
128 form:up(); | 132 form:up(); |