Comparison

util/dataforms.lua @ 8863:64fa8d80c09f

util.dataforms: Remove string conversion to let util.stanza validate types
author Kim Alvefur <zash@zash.se>
date Sat, 02 Jun 2018 19:49:15 +0200
parent 8555:4f0f5b49bb03
child 8864:cf2f66b233d1
comparison
equal deleted inserted replaced
8862:900dff5ef498 8863:64fa8d80c09f
6 -- COPYING file in the source package for more information. 6 -- COPYING file in the source package for more information.
7 -- 7 --
8 8
9 local setmetatable = setmetatable; 9 local setmetatable = setmetatable;
10 local ipairs = ipairs; 10 local ipairs = ipairs;
11 local tostring, type, next = tostring, type, next; 11 local type, next = type, next;
12 local t_concat = table.concat; 12 local t_concat = table.concat;
13 local st = require "util.stanza"; 13 local st = require "util.stanza";
14 local jid_prep = require "util.jid".prep; 14 local jid_prep = require "util.jid".prep;
15 15
16 local _ENV = nil; 16 local _ENV = nil;
47 -- Assume an XML snippet 47 -- Assume an XML snippet
48 form:tag("value") 48 form:tag("value")
49 :add_child(value) 49 :add_child(value)
50 :up(); 50 :up();
51 else 51 else
52 form:tag("value"):text(tostring(value)):up(); 52 form:tag("value"):text(value):up();
53 end 53 end
54 elseif field_type == "boolean" then 54 elseif field_type == "boolean" then
55 form:tag("value"):text((value and "1") or "0"):up(); 55 form:tag("value"):text((value and "1") or "0"):up();
56 elseif field_type == "fixed" then 56 elseif field_type == "fixed" then
57 form:tag("value"):text(value):up(); 57 form:tag("value"):text(value):up();
77 if value == val.value or val.default and (not has_default) then 77 if value == val.value or val.default and (not has_default) then
78 form:tag("value"):text(val.value):up(); 78 form:tag("value"):text(val.value):up();
79 has_default = true; 79 has_default = true;
80 end 80 end
81 else 81 else
82 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); 82 form:tag("option", { label= val }):tag("value"):text(val):up():up();
83 end 83 end
84 end 84 end
85 end 85 end
86 if (field.options or formtype == "result") and value then 86 if (field.options or formtype == "result") and value then
87 form:tag("value"):text(value):up(); 87 form:tag("value"):text(value):up();
93 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up(); 93 form:tag("option", { label = val.label }):tag("value"):text(val.value):up():up();
94 if not field.options and val.default then 94 if not field.options and val.default then
95 form:tag("value"):text(val.value):up(); 95 form:tag("value"):text(val.value):up();
96 end 96 end
97 else 97 else
98 form:tag("option", { label= val }):tag("value"):text(tostring(val)):up():up(); 98 form:tag("option", { label= val }):tag("value"):text(val):up():up();
99 end 99 end
100 end 100 end
101 end 101 end
102 if (field.options or formtype == "result") and value then 102 if (field.options or formtype == "result") and value then
103 for _, val in ipairs(value) do 103 for _, val in ipairs(value) do