% local data, viewlibrary, page_info = ...
require("viewfunctions")
%>
<%
function displayitemcustom(myitem, header_level)
if not myitem then return 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", "
") .. "
\n") end
if myitem.errtxt then io.write('' .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "
\n") end
local seqorder = {}
local order = {}
for name,item in pairs(myitem.value) do
if tonumber(item.seq) then
seqorder[#seqorder+1] = {seq=tonumber(item.seq), name=name}
else
order[#order+1] = name
end
end
table.sort(seqorder, function(a,b) if a.seq ~= b.seq then return a.seq > b.seq else return a.name > b.name end end)
table.sort(order)
for i,val in ipairs(seqorder) do
table.insert(order, 1, val.name)
end
for x,name in ipairs(order) do
if myitem.value[name] then
displayitemcustom(myitem.value[name], tonumber(header_level)+1)
end
end
elseif myitem.type ~= "hidden" then
io.write("" .. html.html_escape(myitem.label) .. "\n")
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", "
") .. "
\n") end
if myitem.errtxt then io.write("" .. string.gsub(html.html_escape(myitem.errtxt), "\n", "
") .. "
\n") end
io.write("\n")
end
end
displayitemcustom(data, 1)
%>