diff options
Diffstat (limited to 'weblog-viewweblog-html.lsp')
-rw-r--r--[l---------] | weblog-viewweblog-html.lsp | 300 |
1 files changed, 299 insertions, 1 deletions
diff --git a/weblog-viewweblog-html.lsp b/weblog-viewweblog-html.lsp index 4ec32bc..a03c3e6 120000..100644 --- a/weblog-viewweblog-html.lsp +++ b/weblog-viewweblog-html.lsp @@ -1 +1,299 @@ -weblog-viewblocklog-html.lsp
\ No newline at end of file +<% local data, viewlibrary, page_info, session = ... %> +<% require("viewfunctions")%> +<% require("weblogviewfunctions")%> +<% if data.value.focus.value ~= "" then %> +<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"></script> +<script type="text/javascript"> + $(function(){ + if ($("#focus").length) { + var top = $("#focus").offset().top; + $("html,body").scrollTop(top); + } + }); +</script> +<% end %> + +<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.min.js"></script> +<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix)%>/js/jquery.tablesorter.js"></script> +<script type="text/javascript"> + $(document).ready(function() { + $("#loglist").tablesorter({headers: {0:{sorter: false},1:{sorter: false}, 2:{sorter: 'text'}, 6:{sorter: false}, 7:{sorter: false}, 8:{sorter: false}}}); + }); + function hideColumn(myCol) { + myCol.style.display = "none"; + }; +</script> + +<% local subdata, pagedata = paginate(data.value.log.value, page_info.clientdata, 200) %> + +<style type="text/css"> + #content table { border-collapse: collapse; width: 100%; } + #content table td { border-bottom: none; white-space: normal; padding-right:20px; } + #content table th { border-bottom: none; white-space: normal; vertical-align: middle; padding-right:15px } + #content table tr.mark { background: #E9E9E9; } + #content table tr.selected { background: #FC9A01; } +</style> +<H1>Search Parameters</H1> +<DL> +<% if data.errtxt then %><p class="error"><%= html.html_escape(data.errtxt) %></p><% end %> +<form action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action) %>" method="POST"> +<DT>Active Weblog</DT> +<DD><select name="activelog"> +<option value="pubweblog">Current</option> +<option value="pubweblog_history"<% if data.value.activelog.value == "pubweblog_history" then %> selected="selected" <% end %> >History</option> +</select> +</DD> +<DT>Start Time</DT> +<DD><input class="text" type="text" name="starttime" value="<%= html.html_escape(data.value.starttime.value) %>" > +<p><%= html.html_escape(data.value.starttime.value) %></p> +<% if data.value.starttime.errtxt then %><p class="error"><%= html.html_escape(data.value.starttime.errtxt) %></p><% end %> +</DD> +<DT>User ID</DT> +<DD><input class="text" type="text" name="clientuserid" value="<%= html.html_escape(data.value.clientuserid.value) %>" > +<p><%= html.html_escape(data.value.clientuserid.value) %></p> +<% if data.value.clientuserid.errtxt then %><p class="error"><%= html.html_escape(data.value.clientuserid.errtxt) %></p><% end %> +</DD> +<DT>Client IP</DT> +<DD><input class="text" type="text" name="clientip" value="<%= html.html_escape(data.value.clientip.value) %>" > +<p><%= html.html_escape(data.value.clientip.value) %></p> +<% if data.value.clientip.errtxt then %><p class="error"><%= html.html_escape(data.value.clientip.errtxt) %></p><% end %> +</DD> +<DT>End Time</DT> +<DD><input class="text" type="text" name="endtime" value="<%= html.html_escape(data.value.endtime.value) %>" > +<p><%= html.html_escape(data.value.endtime.value) %></p> +<% if data.value.endtime.errtxt then %><p class="error"><%= html.html_escape(data.value.endtime.errtxt) %></p><% end %> +</DD> +<DT>URI Contains</DT> +<DD><input class="text" type="text" name="urisearch" value="<%= html.html_escape(data.value.urisearch.value) %>" > +<P CLASS="descr">Retrieve records where the URI contains this word</P> +<p><%= html.html_escape(data.value.urisearch.value) %></p> +<% if data.value.urisearch.errtxt then %><p class="error"><%= html.html_escape(data.value.urisearch.errtxt) %></p><% end %> +</DD> +<DT>Minimum Score</DT> +<DD><input class="text" type="text" name="score" value="<%= html.html_escape(data.value.score.value) %>" > +<P CLASS="descr">Minimum score to search on</P> +<% if data.value.score.errtxt then %><p class="error"><%= html.html_escape(data.value.score.errtxt) %></p><% end %> +</DD> +<DT>Sort By</DT> +<DD><select name="sortby"> +<option value="logdatetime"<% if data.value.log.value == "sortby" then %> selected="selected" <% end %> >Timestamp</option> +<option value="logdatetime DESC"<% if data.value.sortby.value == "logdatetime DESC" then %> selected="selected" <% end %> >Timestamp DESC</option> +<option value="clientuserid"<% if data.value.sortby.value == "clientuserid" then %> selected="selected" <% end %> >User ID</option> +<option value="clientuserid DESC"<% if data.value.sortby.value == "clientuserid DESC" then %> selected="selected" <% end %> >User ID DESC</option> +<option value="bytes"<% if data.value.sortby.value == "bytes" then %> selected="selected" <% end %> >Size</option> +<option value="bytes DESC"<% if data.value.sortby.value == "bytes DESC" then %> selected="selected" <% end %> >Size DESC</option> +<option value="score"<% if data.value.sortby.value == "score" then %> selected="selected" <% end %> >Score</option> +<option value="score DESC"<% if data.value.sortby.value == "score DESC" then %> selected="selected" <% end %> >Score DESC</option> +<option value="reason"<% if data.value.sortby.value == "reason" then %> selected="selected" <% end %> >Reason</option> +<option value="reason DESC"<% if data.value.sortby.value == "reason DESC" then %> selected="selected" <% end %> >Reason DESC</option> +</select> +</DD> +<DT>Show Suspect Records</DT> +<DD> +<input class="checkbox" type="checkbox" name="badyesno" value="1" <% if data.value.badyesno.value == "1" then %> checked <% end %>> +<P CLASS="descr">Show only URIs containing flagged words</P> +<% if data.value.badyesno.errtxt then %><p class="error"><%= html.html_escape(data.value.badyesno.errtxt) %></p><% end %> +</DD> +<DT>Show Denied URIs</DT> +<DD> +<input class="checkbox" type="checkbox" name="deniedyesno" value="1" <% if data.value.deniedyesno.value == "1" then %>checked<% end %>> +<% if data.value.deniedyesno.errtxt then %><p class="error"><%= html.html_escape(data.value.deniedyesno.errtxt) %></p><% end %> +<P CLASS="descr">Show only Denied URIs</P> +</DD> +<DT>Show Bypass Attempts</DT> +<DD> +<input class="checkbox" type="checkbox" name="bypassyesno" value="1" <% if data.value.bypassyesno.value == "1" then %>checked <% end %>> +<% if data.value.bypassyesno.errtxt then %><p class="error"><%= html.html_escape(data.value.bypassyesno.errtxt) %></p><% end %> +<P CLASS="descr">Show only Bypass attempts</P> +</DD> +<DT>Show Selected Records</DT> +<DD> +<input class="checkbox" type="checkbox" name="selected" value="true" <% if data.value.selected.value == "true" then %>checked <% end %>> +<% if data.value.selected.errtxt then %><p class="error"><%= html.html_escape(data.value.selected.errtxt) %></p><% end %> +<P CLASS="descr">Show only records that have been selected</P> +</DD> +<DT></DT><DD><input class="submit" type="submit" name="Update" value="Update"></DD> +</FORM> +</DL> + +<% +local clientinfo = "" +if data.value.clientuserid.value ~= "" then + clientinfo = clientinfo .. "clientuserid="..data.value.clientuserid.value.."&" +end +if data.value.clientip.value ~= "" then + clientinfo = clientinfo .. "clientip="..data.value.clientip.value.."&" +end +%> + +<% displaypagination(pagedata, page_info) %> +<H1><%= html.html_escape(data.label) %></H1> +<DL> +<TABLE id="loglist" class="tablesorter"> +<THEAD> +<TR style=font-weight:bold;> + <TH><input type="checkbox" id="chkHead" /></TH> + <TH style="width:0%; display:none"></TH> + <TH>Timestamp</TH> + <TH>Client IP</TH> + <TH>User ID</TH> + <TH>Size</TH> + <TH style=font-weight:bold >Sus</TH> + <TH style=font-weight:bold >Den</TH> + <TH style=font-weight:bold >Byp</TH> + <TH>Score</TH> + <TH>Reason</TH> + <TH WIDTH="90%">URL</TH> + <TH>Bad Words</TH> + </TR> +</THEAD> +<TBODY> +<FORM action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/checkselected") %>" name="markselected" onsubmit="return false" method="POST"> +<input type="hidden" id="chkdata" name="chkdata" value="chkdata"></FORM> +<% for i,watch in ipairs(subdata) do + local a,b = math.modf((i/2)) + local mark = '' + if (b == 0) and watch.selected ~= "t" then mark=' class="mark"' end + if watch.selected == "t" then mark=' class="selected"' end + local time = {} + time.year, time.month, time.day, time.hour, time.min, time.sec = + string.match(watch.logdatetime, "(%d+)%-(%d+)-(%d+)%s+(%d+):(%d+):(%d+)") + time = os.time(time) %> +<TR<%= mark %>> + <TD><input class="chktbl" type="checkbox" value="true" <% if watch.selected == "t" then %> checked <% end %>></TD> + <TD style="width:0%; display:none"><%= html.html_escape(watch.id) %></TD> + <TD <% if data.value.focus.value == watch.logdatetime then %> style="font-weight:bold;" id="focus" <% end %> ><%= html.link{value = "viewweblog?"..clientinfo.. + "starttime="..os.date("%Y-%m-%d %H:%M:%S", time - 60*(tonumber(data.value.window.value))).. + "&endtime="..os.date("%Y-%m-%d %H:%M:%S", time + 60*(tonumber(data.value.window.value))).. + "&focus="..watch.logdatetime, + label=watch.logdatetime} %></TD> + <TD <% if data.value.clientip.value == watch.clientip then %> style="font-weight:bold;" <% end %> ><%= html.html_escape(watch.clientip) %></TD> + <TD <% if data.value.clientuserid.value == watch.clientuserid then %> style="font-weight:bold;" <% end %> ><%= html.html_escape(watch.clientuserid) %></TD> + <TD><%= html.html_escape(watch.bytes) %></TD> + <TD WIDTH="2%"><% if watch.badyesno == "1" then %><IMG SRC='<%= html.html_escape(page_info.wwwprefix..page_info.staticdir) %>/dodgy.gif' width='13' height='13'><% end %></TD> + <TD WIDTH="2%"><% if watch.deniedyesno ~= "0" then %> <IMG SRC='<%= html.html_escape(page_info.wwwprefix..page_info.staticdir) %>/denied.gif' width='13' height='13'><% end %></TD> + <TD WIDTH="2%"><% if watch.bypassyesno ~= "0" then %> <IMG SRC='<%= html.html_escape(page_info.wwwprefix..page_info.staticdir) %>/bypass.gif' width='13' height='13'><% end %></TD> + <TD><%= html.html_escape(watch.score) %></TD> + <TD><%= html.html_escape(watch.reason) %></TD> + <TD style="word-wrap: break-word" width="500"><% highlight_uri=html.html_escape(watch.uri) + if watch.wordloc ~= nil then + if string.find(watch.wordloc,"|") then + badwords = split(watch.wordloc,"|") + for key,wrd in pairs(badwords) do + highlight_uri = string.highlight(highlight_uri, wrd, "yellow","red") + end + else + highlight_uri = string.highlight(highlight_uri, watch.wordloc, "yellow","red") + end + end %> + <%= highlight_uri %></TD> + <TD><%= watch.wordloc %></TD> +</TR> +<% end %> +</TBODY> +</TABLE> +<% displaypagination(pagedata, page_info) %> + +<% if data.errtxt then %> +<p class="error"><%= html.html_escape(data.errtxt) %></p> +<% end %> +<% if #data.value.log.value == 0 then %> +<p>No results, try adjusting search parameters</p> +<% end %> +<DT>Download Options</DT> +<% if page_info.action == "viewweblog" then %> +<form action="<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/downloadlogview") %>" method="POST"> +<input type="hidden" name="activelog" value="<%= html.html_escape(data.value.activelog.value) %>" > +<input type="hidden" name="starttime" value="<%= html.html_escape(data.value.starttime.value) %>" > +<input type="hidden" name="clientuserid" value="<%= html.html_escape(data.value.clientuserid.value) %>" > +<input type="hidden" name="clientip" value="<%= html.html_escape(data.value.clientip.value) %>" > +<input type="hidden" name="endtime" value="<%= html.html_escape(data.value.endtime.value) %>" > +<input type="hidden" name="badyesno" value="<%= html.html_escape(data.value.badyesno.value) %>" > +<input type="hidden" name="deniedyesno" value="<%= html.html_escape(data.value.deniedyesno.value) %>" > +<input type="hidden" name="bypassyesno" value="<%= html.html_escape(data.value.bypassyesno.value) %>" > +<input type="hidden" name="score" value="<%= html.html_escape(data.value.score.value) %>" > +<input type="hidden" name="sortby" value="<%= html.html_escape(data.value.sortby.value) %>" > +<input type="hidden" name="urisearch" value="<%= html.html_escape(data.value.urisearch.value) %>" > +<input type="hidden" name="selected" value="<%= html.html_escape(data.value.selected.value) %>" > +<DD><input class="submit" type="submit" name="Download" value="Export List"></DD> +</form> +<% end %> + +<script type="text/javascript"> + $('#chkHead').click(function () { + if (this.checked == false) { + $('.chktbl:checked').attr('checked', false); + } + else { + $('.chktbl:not(:checked)').attr('checked', true); + } + if ($(this).attr("checked")==true) + { + $("#loglist").find('tr:not(#chktbl)').css("background-color","#FC9A01"); + } + else + { + $("#loglist").find('tr:not(#chktbl)').css("background-color","#FFF"); + } + }); + $('#chkHead').click(function(){ + }); + + $('.chktbl').click(function () { + if($("chkHead").attr('checked') == true && this.checked == false) + { + var csv_data = ""; + var csv_cnt = 0; + $(".chktbl").attr('checked',false); + $(this).closest('tr').css("background-color","#ffffff"); + $(this).closest('tr').each(function () { + $(this).find('td').each(function () { + if(csv_cnt == 1) + { document.viewweblog.chktbl.value = "false|" + $(this).text(); + return false; + } + csv_cnt +=1; + }); + }); + } + if(this.checked == true) + { + $(this).closest('tr').css("background-color","#FC9A01"); + var csv_list = ""; + var csv_cnt = 0; + $(this).closest('tr').each(function () { + $(this).find('td').each(function () { + if(csv_cnt == 1) + { document.markselected.chkdata.value = "true|" + $(this).text(); + //alert("this is: " + document.markselected.chkdata.value ); + return false; + } + csv_cnt +=1; + }); + }); + document.forms["markselected"].submit(); + //document.getElementById("subbutton").click(); + + } + if(this.checked == false) + { + $(this).closest('tr').css("background-color","#ffffff"); + var csv_list = ""; + var csv_cnt = 0; + $(this).closest('tr').each(function () { + $(this).find('td').each(function () { + if(csv_cnt == 1) + { document.markselected.chkdata.value = "false|" + $(this).text(); + return false; + } + csv_cnt +=1; + }); + }); + document.forms["markselected"].submit(); + } + }); + +</script> + + +</DL> |