summaryrefslogtreecommitdiffstats
path: root/weblog-viewweblog-html.lsp
diff options
context:
space:
mode:
Diffstat (limited to 'weblog-viewweblog-html.lsp')
-rw-r--r--[l---------]weblog-viewweblog-html.lsp300
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>