webmcp
annotate framework/env/param/get_list.lua @ 53:a1c77838c2e5
Documentation for "attr", "a_attr" and "form_attr" arguments to function ui.link{...}
author | jbe |
---|---|
date | Fri Jun 10 15:32:29 2011 +0200 (2011-06-10) |
parents | 9fdfb27f8e67 |
children | 32ec28229bb5 |
rev | line source |
---|---|
jbe/bsw@0 | 1 --[[-- |
jbe/bsw@0 | 2 values = -- list of values casted to the chosen param_type |
jbe/bsw@0 | 3 param.get_list( |
jbe/bsw@0 | 4 key, -- name of the parameter without "[]" suffix |
jbe/bsw@0 | 5 param_type, -- desired type of the returned values |
jbe/bsw@0 | 6 ) |
jbe/bsw@0 | 7 |
jbe/bsw@0 | 8 Same as param.get(...), but used for parameters which contain a list of values. For external GET/POST parameters the parameter name gets suffixed with "[]". |
jbe/bsw@0 | 9 |
jbe/bsw@0 | 10 --]]-- |
jbe/bsw@0 | 11 |
jbe/bsw@0 | 12 function param.get_list(key, param_type) |
jbe/bsw@0 | 13 local param_type = param_type or atom.string |
jbe/bsw@0 | 14 if param._exchanged then |
jbe/bsw@0 | 15 local values = param._exchanged.params[key] or {} |
jbe/bsw@0 | 16 if type(values) ~= "table" then |
jbe/bsw@0 | 17 error("Parameter has unexpected type.") |
jbe/bsw@0 | 18 end |
jbe/bsw@0 | 19 for idx, value in ipairs(values) do |
jbe/bsw@0 | 20 if not atom.has_type(value, param_type) then |
jbe/bsw@0 | 21 error("Element of parameter list has unexpected type.") |
jbe/bsw@0 | 22 end |
jbe/bsw@0 | 23 end |
jbe/bsw@0 | 24 return values |
jbe/bsw@0 | 25 else |
jbe/bsw@0 | 26 local format_info = cgi.params[key .. "__format"] |
jbe/bsw@0 | 27 local parser = param._get_parser(format_info, param_type) |
jbe/bsw@0 | 28 local raw_values = cgi.params[key .. "[]"] |
jbe/bsw@0 | 29 local values = {} |
jbe/bsw@0 | 30 if raw_values then |
jbe/bsw@0 | 31 for idx, value in ipairs(raw_values) do |
jbe/bsw@0 | 32 values[idx] = parser(raw_values[idx]) |
jbe/bsw@0 | 33 end |
jbe/bsw@0 | 34 end |
jbe/bsw@0 | 35 return values |
jbe/bsw@0 | 36 end |
jbe/bsw@0 | 37 end |