summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2014-03-03 15:17:44 +0000
committerTed Trask <ttrask01@yahoo.com>2014-03-03 15:17:44 +0000
commit252846069d9ecc3579f64ed0e0548c79b2faefdc (patch)
tree6cce59fed2119c60a45324d09dcb76fa898b907d
parent63544eda8d5d0c398f21e46c5a6d2b9316126631 (diff)
downloadacf-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.lua5
-rw-r--r--lib/htmlviewfunctions.lua11
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