summaryrefslogtreecommitdiffstats
path: root/gnats-queryresult-html.lsp
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2008-04-15 12:52:00 +0000
committerMika Havela <mika.havela@gmail.com>2008-04-15 12:52:00 +0000
commit612b0e754176f1b7098c5c1d7973028a22ee902d (patch)
tree79e410f870556474f297aa960251d428204d75b5 /gnats-queryresult-html.lsp
downloadacf-gnats-612b0e754176f1b7098c5c1d7973028a22ee902d.tar.bz2
acf-gnats-612b0e754176f1b7098c5c1d7973028a22ee902d.tar.xz
Creating a acf-gnats so that users can view/add bugreports to bugs@alpinelinux.org
git-svn-id: svn://svn.alpinelinux.org/acf/gnats/trunk@985 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'gnats-queryresult-html.lsp')
-rw-r--r--gnats-queryresult-html.lsp120
1 files changed, 120 insertions, 0 deletions
diff --git a/gnats-queryresult-html.lsp b/gnats-queryresult-html.lsp
new file mode 100644
index 0000000..c47b919
--- /dev/null
+++ b/gnats-queryresult-html.lsp
@@ -0,0 +1,120 @@
+<? local form = ... ?>
+<?
+--[[ DEBUG INFORMATION
+io.write("<H1>DEBUGGING</H1><span style='color:red'><H2>DEBUG INFO: CFE</H2>")
+io.write(html.cfe_unpack(form.query))
+io.write("</span>")
+--]]
+?>
+
+<?
+function displayinfo(myform,tags,viewtype)
+ for k,v in pairs(tags) do
+ if (myform[v]) and (myform[v]["value"]) then
+ local val = myform[v]
+ io.write("\n\t<DT")
+ if (#val.errtxt > 0) then
+ val.class = "error"
+ io.write(" class='error'")
+ end
+ io.write(">" .. val.label .. "</DT>")
+ io.write("\n\t\t<DD>")
+ if (viewtype == "viewonly") then
+ if not (val.value) or (val.value == "") then val.value = "&nbsp;" end
+ io.write(val.value)
+ elseif (val.type == "radio") and (type(val.option) == "table") and (#val.option > 0) then
+ io.write("<span style='display:inline' class='" .. ( val.class or "") .. "'>")
+ for k1,v1 in pairs(val.option) do
+ io.write("\n\t\t\t"..tostring(v1) .. ":")
+ io.write("<input style='margin-right:20px;margin-left:5px;' type='radio' class='" .. ( val.class or "") .. "' name='" .. val.name .. "'")
+ if (tostring(val.value) == tostring(v1)) then io.write(" checked='yes'") end
+ io.write(" value='" .. v1 .. "'>")
+ end
+ io.write("\n\t\t\t</input></span>")
+ else
+ io.write(html.form[val.type](val))
+ end
+ if (val.descr) and (#val.descr > 0) then io.write("\n\t\t<P CLASS='descr'>" .. string.gsub(val.descr, "\n", "<BR>") .. "</P>") end
+ if (#val.errtxt > 0) then io.write("\n\t\t<P CLASS='error'>" .. string.gsub(val.errtxt, "\n", "<BR>") .. "</P>") end
+ io.write("\n\t\t</DD>\n")
+ end
+ end
+end
+?>
+
+<H1><? io.write(form["query"]["sfields"]["category"]["value"] .. "/")
+io.write(form["query"]["sfields"]["number"]["value"] .. ": " )
+io.write(form["query"]["sfields"]["synopsis"]["value"] or form["query"]["header"]["subject"]["value"] or "Qurery object")?></H1>
+
+<H2>Header</H2>
+<DL>
+<?
+local myform = form.query.header
+local tags = { "from","date", "subject", }
+displayinfo(myform,tags,"viewonly")
+?>
+</DL>
+
+<H2>Details</H2>
+<DL>
+<?
+local myform = form.query.sfields
+local tags = { "class", "release", "state", "priority", "severity", "responsible", "arrival_date", "closed_date", "last_modified", "originator", }
+displayinfo(myform,tags,"viewonly")
+?>
+</DL>
+
+<?
+local myform = form.query.mfields
+local tags = {"organization", "environment", "description", "how_to_repeat", "fix", "release_note", }
+for k,v in pairs(tags) do
+ local myform=myform[v]
+?>
+<H2><? io.write(myform.label) ?></H2>
+<DL>
+<PRE><? io.write(myform.value) ?></PRE>
+</DL>
+<? end ?>
+
+
+<style>
+table {margin:10px;margin-top:5px;border:1px solid #aaa;background:#eee;}
+.Responsible-Changed-From-To {background: #fcc;}
+.Responsible-Changed-From-To {background: #fcc;}
+.State-Changed-From-To {background: #cfc;}
+.From {background: #ccf;}
+.Header {padding:3px;font-weight:bold;border-bottom:1px solid #665;}
+</style>
+
+<?
+local myform = form.query["mfields"]["audit_trail"]
+?>
+<H2><? io.write(myform.label) ?></H2>
+<DL>
+<?
+for k,v in pairs(myform.option) do
+ io.write("\n<TABLE STYLE='width:98%;'>")
+ if (#v.label > 0) then
+ io.write("<TR CLASS='" .. (v.class or "") .. "'><TD COLSPAN=2 CLASS='Header'>" .. (v.label or "Uknown") .. "</TD></TR>")
+ end
+ for i=1,#v do
+ io.write("<TR><TD WIDTH='100%'><PRE>" .. (v[i] or "Uknown") .. "</PRE></TD></TR>")
+ end
+ io.write("\n</TABLE>")
+end
+?>
+</DL>
+
+<?
+local myform = form.query.mfields
+local tags = {"unformatted", }
+for k,v in pairs(tags) do
+ local myform=myform[v]
+?>
+<H2><? io.write(myform.label) ?></H2>
+<DL>
+<PRE><? io.write(myform.value) ?></PRE>
+</DL>
+<? end ?>
+
+