diff options
author | Ted Trask <ttrask01@yahoo.com> | 2014-04-25 04:53:08 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2014-04-25 04:53:08 +0000 |
commit | 912a8eced14e1de6519cdd915e3bafdd40c744ae (patch) | |
tree | 2ee8dc280e24ce458de6a7f753d52777ce2e702c /app | |
parent | f765ff46eb8f741f6e6e4ddc49ed17d251860d9c (diff) | |
download | acf-core-912a8eced14e1de6519cdd915e3bafdd40c744ae.tar.bz2 acf-core-912a8eced14e1de6519cdd915e3bafdd40c744ae.tar.xz |
Fix multi select in www-controller when nothing is selected
Diffstat (limited to 'app')
-rw-r--r-- | app/acf_www-controller.lua | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua index 53e837b..b529e2f 100644 --- a/app/acf_www-controller.lua +++ b/app/acf_www-controller.lua @@ -607,7 +607,16 @@ mymodule.handle_clientdata = function(form, clientdata) elseif value.type == "boolean" then --- HTML forms simply don't include checkboxes unless they're checked value.value = (clientdata[name] ~= nil) and (clientdata[name] ~= "false") ---[[ elseif value.type == "multi" then + elseif value.type == "multi" then + -- Multi-selects return \r separated lists or nothing at all if none selected + value.value = {} + if clientdata[name] and clientdata[name] ~= "" then + -- for www we use \r separated list + for l in string.gmatch(clientdata[name].."\n", "%s*([^\n]*%S)%s*\n") do + table.insert(value.value, l) + end + end +--[[ -- FIXME this is because multi selects don't work in haserl -- Multi-selects are implemented as checkboxes, so if none exists, it means nothing is selected local oldtable = clientdata[name] or {} @@ -622,7 +631,7 @@ mymodule.handle_clientdata = function(form, clientdata) --]] elseif clientdata[name] then -- The other types will be returned in clientdata even if set to blank, so if no result, leave the default - if value.type == "list" or value.type == "multi" then + if value.type == "list" then value.value = {} if clientdata[name] ~= "" then -- for www we use \r separated list |