diff options
Diffstat (limited to 'app/acf-util/roles-editrole-html.lsp')
-rw-r--r-- | app/acf-util/roles-editrole-html.lsp | 62 |
1 files changed, 59 insertions, 3 deletions
diff --git a/app/acf-util/roles-editrole-html.lsp b/app/acf-util/roles-editrole-html.lsp index 5f106fc..0a32839 100644 --- a/app/acf-util/roles-editrole-html.lsp +++ b/app/acf-util/roles-editrole-html.lsp @@ -7,11 +7,67 @@ <H1><%= form.label %></H1> <% - form.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action + displayformstart(form, page_info) -- If editing existing role, disable role if page_info.action ~= "newrole" then form.value.role.contenteditable = false end - local order = { "role", "permissions" } - displayform(form, order) + io.write("<DL>\n") + displayformitem(form.value.role, "role") + + -- copied this code from viewfunctions so we can disable the default boxes + local myitem = form.value.permissions + myitem.name = "permissions" + io.write("<DT") + if myitem.errtxt then + myitem.class = "error" + io.write(' class="error"') + end + io.write(">" .. myitem.label .. "</DT>\n") + io.write("<DD>") + -- FIXME multiple select doesn't work in haserl, so use series of checkboxes + myitem.class = nil + local tempname = myitem.name + local tempval = myitem.value or {} + local reversedefault = {} + for x,val in ipairs(myitem.default or {}) do + reversedefault[val] = x + end + local reverseval = {} + for x,val in ipairs(tempval) do + reverseval[val] = x + end + local reverseopt = {} + for x,val in ipairs(myitem.option) do + reverseopt[val] = x + myitem.value = val + myitem.checked = reverseval[val] + if reversedefault[val] then myitem.disabled = true else myitem.disabled = nil end + myitem.name = tempname .. "." .. x + io.write(html.form.checkbox(myitem) .. val .. "<br>\n") + end + -- Check for values not in options + if myitem.errtxt then + myitem.class = "error" + io.write('<p class="error">\n') + end + for x,val in ipairs(tempval) do + if not reverseopt[val] then + myitem.value = val + myitem.checked = true + io.write(html.form.checkbox(myitem) .. val .. "<br>\n") + end + end + if myitem.errtxt then + io.write('</p>\n') + end + myitem.name = tempname + myitem.value = tempval + + if myitem.descr then io.write('<P CLASS="descr">' .. string.gsub(myitem.descr, "\n", "<BR>") .. "</P>\n") end + if myitem.errtxt then io.write('<P CLASS="error">' .. string.gsub(myitem.errtxt, "\n", "<BR>") .. "</P>\n") end + io.write("</DD>\n") + + io.write("</DL>\n") + displayformend(form) %> |