X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util%2Fdataforms.lua;h=c352858c67a11883cd20f5e9f528da53a6806e4c;hb=95dfe4b0aaaf26ee4651c09eb9757c56210a135a;hp=8634e337f98ee1db5b43470581764755a4c9e12c;hpb=bca9d41c435fcce947eb9ee166efae96becbac5f;p=prosody.git diff --git a/util/dataforms.lua b/util/dataforms.lua index 8634e337..c352858c 100644 --- a/util/dataforms.lua +++ b/util/dataforms.lua @@ -1,7 +1,7 @@ -- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain --- +-- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- @@ -38,7 +38,7 @@ function form_t.form(layout, data, formtype) form:tag("field", { type = field_type, var = field.name, label = field.label }); local value = (data and data[field.name]) or field.value; - + if value then -- Add value, depending on type if field_type == "hidden" then @@ -93,11 +93,20 @@ function form_t.form(layout, data, formtype) end end end - + + local media = field.media; + if media then + form:tag("media", { xmlns = "urn:xmpp:media-element", height = media.height, width = media.width }); + for _, val in ipairs(media) do + form:tag("uri", { type = val.type }):text(val.uri):up() + end + form:up(); + end + if field.required then form:tag("required"):up(); end - + -- Jump back up to list of fields form:up(); end @@ -187,7 +196,11 @@ field_readers["list-multi"] = for value in field_tag:childtags("value") do result[#result+1] = value:get_text(); end - return result, (required and #result == 0 and "Required value missing" or nil); + if #result > 0 then + return result; + elseif required then + return nil, "Required value missing"; + end end field_readers["text-multi"] =