From daf76363f57cfcde10ee812734a6528d478d5e21 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 3 Mar 2014 16:03:47 +0000 Subject: Refactor htmlviewfunctions to create displayheader and displayinfo functions and add features for link and header_level=0 A link cfe becomes a form that does not have name=submit, so it links to an action with param values, but does not submit it Setting header_level=0 prevents headers from being displayed --- lib/htmlviewfunctions.lua | 74 ++++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/lib/htmlviewfunctions.lua b/lib/htmlviewfunctions.lua index 04e751c..d0d7945 100644 --- a/lib/htmlviewfunctions.lua +++ b/lib/htmlviewfunctions.lua @@ -22,17 +22,28 @@ local function getlabel(myitem, value) return tostring(value) end +function mymodule.displayheader(myitem, page_info, header_level) + header_level = header_level or page_info.header_level or 1 + if 0 ~= header_level then + io.write(""..html.html_escape(myitem.label).."") + end + return header_level +end + +function mymodule.displayinfo(myitem) + if myitem.descr then io.write("

" .. string.gsub(html.html_escape(myitem.descr), "\n", "
") .. "

\n") end + if myitem.default then io.write('

Default:' .. string.gsub(html.html_escape(getlabel(myitem, myitem.default)), "\n", "
") .. "

\n") end + if myitem.errtxt then io.write("

" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "

\n") end +end + function mymodule.displayitem(myitem, header_level, page_info) if not myitem then return end - if myitem.type == "form" then - header_level = header_level or 1 - io.write(""..html.html_escape(myitem.label).."") + if myitem.type == "form" or myitem.type == "link" then + header_level = mymodule.displayheader(myitem, page_info, header_level) mymodule.displayform(myitem, nil, nil, page_info, header_level) elseif myitem.type == "group" then - header_level = header_level or 1 - io.write(""..html.html_escape(myitem.label).."") - if myitem.descr then io.write("

" .. string.gsub(html.html_escape(myitem.descr), "\n", "
") .. "

") end - if myitem.errtxt then io.write("

" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "

") end + header_level = mymodule.displayheader(myitem, page_info, header_level) + mymodule.displayinfo(myitem) local seqorder = {} local order = {} for name,item in pairs(myitem.value) do @@ -49,7 +60,11 @@ function mymodule.displayitem(myitem, header_level, page_info) end for x,name in ipairs(order) do if myitem.value[name] then - mymodule.displayitem(myitem.value[name], tonumber(header_level)+1) + if 0 == header_level then + mymodule.displayitem(myitem.value[name], header_level) + else + mymodule.displayitem(myitem.value[name], tonumber(header_level)+1) + end end end elseif myitem.type ~= "hidden" then @@ -61,8 +76,7 @@ function mymodule.displayitem(myitem, header_level, page_info) io.write("'>

" .. html.html_escape(myitem.label) .. "

") io.write("
") io.write(string.gsub(html.html_escape(tostring(myitem.value)), "\n", "
") .. "\n") - if myitem.descr then io.write("

" .. string.gsub(html.html_escape(myitem.descr), "\n", "
") .. "

") end - if myitem.errtxt then io.write("

" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "

") end + mymodule.displayinfo(myitem) io.write("
\n") end end @@ -85,11 +99,13 @@ function mymodule.displayformitem(myitem, name, viewtype, header_level, group) myitem.disabled = "true" end if myitem.type == "group" then - header_level = header_level or 2 - io.write(""..html.html_escape(myitem.label).."") - if myitem.descr then io.write("

" .. string.gsub(html.html_escape(myitem.descr), "\n", "
") .. "

") end - if myitem.errtxt then io.write("

" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "

") end - mymodule.displayformcontents(myitem, nil, nil, tonumber(header_level)+1, myitem.name) + header_level = mymodule.displayheader(myitem, page_info, header_level) + mymodule.displayinfo(myitem) + if 0 == header_level then + mymodule.displayformcontents(myitem, nil, nil, header_level, myitem.name) + else + mymodule.displayformcontents(myitem, nil, nil, tonumber(header_level)+1, myitem.name) + end elseif myitem.type == "multi" then myitem.type = "select" myitem.multiple = "true" @@ -157,9 +173,7 @@ function mymodule.displayformitem(myitem, name, viewtype, header_level, group) io.write((html.form[myitem.type](myitem) or "") .. "\n") end if myitem.type ~= "hidden" and myitem.type ~= "group" then - if myitem.descr then io.write("

" .. string.gsub(html.html_escape(myitem.descr), "\n", "
") .. "

") end - if myitem.default then io.write('

Default:' .. string.gsub(html.html_escape(getlabel(myitem, myitem.default)), "\n", "
") .. "

\n") end - if myitem.errtxt then io.write("

" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "

") end + mymodule.displayinfo(myitem) io.write("\n") end end @@ -169,8 +183,7 @@ function mymodule.displayformstart(myform, page_info) if not myform.action and page_info then myform.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action end - if myform.descr then io.write('

' .. string.gsub(html.html_escape(myform.descr), "\n", "
") .. "

\n") end - if myform.errtxt then io.write('

' .. string.gsub(html.html_escape(myform.errtxt), "\n", "
") .. "

\n") end + mymodule.displayinfo(myform) io.write('

") + io.write("

") + if 0 == header_level then + io.write(html.html_escape(myform.label)) + end + io.write("

") if type(option) == "table" then for i,v in ipairs(option) do io.write('\n') end else - io.write('\n') + io.write('\n') end io.write("
\n") - io.write('') + io.write('\n') end function mymodule.displayform(myform, order, finishingorder, page_info, header_level) if not myform then return end mymodule.displayformstart(myform, page_info) mymodule.displayformcontents(myform, order, finishingorder, header_level) - mymodule.displayformend(myform) + mymodule.displayformend(myform, header_level) end function mymodule.displaycommandresults(commands, session, preserveerrors) @@ -266,8 +287,7 @@ function mymodule.displaycommandresults(commands, session, preserveerrors) io.write('

Command Result

') for i,result in ipairs(cmdresult) do if type(result.value) == "string" and result.value ~= "" then io.write('

' .. string.gsub(html.html_escape(result.value), "\n", "
") .. "

") end - if result.descr then io.write('

' .. string.gsub(html.html_escape(result.descr), "\n", "
") .. "

") end - if result.errtxt then io.write('

' .. string.gsub(html.html_escape(result.errtxt), "\n", "
") .. "

") end + mymodule.displayinfo(result) end io.write('
') end -- cgit v1.2.3