Comparison

util/dataforms.lua @ 6830:e08f5d081a6c

util.dataforms: Fix interaction of required fields and empty string values (fixes #521)
author Kim Alvefur <zash@zash.se>
date Sat, 12 Sep 2015 17:49:47 +0200
parent 6829:22522443982f
child 6981:bcaa553de6e8
comparison
equal deleted inserted replaced
6829:22522443982f 6830:e08f5d081a6c
145 return data; 145 return data;
146 end 146 end
147 147
148 local function simple_text(field_tag, required) 148 local function simple_text(field_tag, required)
149 local data = field_tag:get_child_text("value"); 149 local data = field_tag:get_child_text("value");
150 if data and #data > 0 then 150 -- XEP-0004 does not say if an empty string is acceptable for a required value
151 return data 151 -- so we will follow HTML5 which says that empty string means missing
152 elseif required then 152 if required and (data == nil or data == "") then
153 return nil, "Required value missing"; 153 return nil, "Required value missing";
154 end 154 end
155 return data; -- Return whatever get_child_text returned, even if empty string
155 end 156 end
156 157
157 field_readers["text-single"] = simple_text; 158 field_readers["text-single"] = simple_text;
158 159
159 field_readers["text-private"] = simple_text; 160 field_readers["text-private"] = simple_text;