diff options
author | Ted Trask <ttrask01@yahoo.com> | 2014-03-03 15:17:44 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2014-03-03 15:17:44 +0000 |
commit | 252846069d9ecc3579f64ed0e0548c79b2faefdc (patch) | |
tree | 6cce59fed2119c60a45324d09dcb76fa898b907d | |
parent | 63544eda8d5d0c398f21e46c5a6d2b9316126631 (diff) | |
download | acf-core-252846069d9ecc3579f64ed0e0548c79b2faefdc.tar.bz2 acf-core-252846069d9ecc3579f64ed0e0548c79b2faefdc.tar.xz |
Fix HTML multi select to use select instead of series of checkboxes
-rw-r--r-- | app/acf_www-controller.lua | 5 | ||||
-rw-r--r-- | lib/htmlviewfunctions.lua | 11 |
2 files changed, 12 insertions, 4 deletions
diff --git a/app/acf_www-controller.lua b/app/acf_www-controller.lua index bc0c139..53e837b 100644 --- a/app/acf_www-controller.lua +++ b/app/acf_www-controller.lua @@ -607,7 +607,7 @@ 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 -- 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 {} @@ -619,9 +619,10 @@ mymodule.handle_clientdata = function(form, clientdata) end end value.value = newtable +--]] 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" then + if value.type == "list" or value.type == "multi" then value.value = {} if clientdata[name] ~= "" then -- for www we use \r separated list diff --git a/lib/htmlviewfunctions.lua b/lib/htmlviewfunctions.lua index ff847cd..04e751c 100644 --- a/lib/htmlviewfunctions.lua +++ b/lib/htmlviewfunctions.lua @@ -91,9 +91,15 @@ function mymodule.displayformitem(myitem, name, viewtype, header_level, group) if myitem.errtxt then io.write("<p class='error'>" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "<br/>") .. "</p>") end mymodule.displayformcontents(myitem, nil, nil, tonumber(header_level)+1, myitem.name) elseif myitem.type == "multi" then + myitem.type = "select" + myitem.multiple = "true" + local tempname = myitem.name + myitem.name = tempname.."[]" + io.write((html.form[myitem.type](myitem) or "") .. "\n") + myitem.name = tempname + myitem.type = "multi" +--[[ -- FIXME multiple select doesn't work in haserl, so use series of checkboxes - --myitem.type = "select" - --myitem.multiple = "true" myitem.class = nil local tempname = myitem.name local tempval = myitem.value or {} @@ -135,6 +141,7 @@ function mymodule.displayformitem(myitem, name, viewtype, header_level, group) end myitem.name = tempname myitem.value = tempval +--]] elseif myitem.type == "boolean" then local tempval = myitem.value if (myitem.value == true) then myitem.checked = "" end |