You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2006/12/28 10:39:56 UTC
svn commit: r490685 - in /geronimo/server:
branches/1.1/applications/console-framework/src/webapp/js/
branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/
branches/1.1/applications/console-standard/src/webapp/WEB-...
Author: vamsic007
Date: Thu Dec 28 01:39:54 2006
New Revision: 490685
URL: http://svn.apache.org/viewvc?view=rev&rev=490685
Log:
GERONIMO-1749 Server Logs portlet - Web Access Log Viewer improvements
o Improved upon the patch submitted by Rakesh Midha. Thanks Rakesh.
o Added PUT and DELETE to request method
o Date select box does not refresh properly upon changing the year. Replaced select box with text field.
o Validate the dates and date range
o Support max results and start result to enable result browsing
Modified:
geronimo/server/branches/1.1/applications/console-framework/src/webapp/js/forms.js
geronimo/server/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
geronimo/server/branches/1.1/applications/console-standard/src/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
Modified: geronimo/server/branches/1.1/applications/console-framework/src/webapp/js/forms.js
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.1/applications/console-framework/src/webapp/js/forms.js?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/branches/1.1/applications/console-framework/src/webapp/js/forms.js (original)
+++ geronimo/server/branches/1.1/applications/console-framework/src/webapp/js/forms.js Thu Dec 28 01:39:54 2006
@@ -31,4 +31,22 @@
}
return true;
}
-
\ No newline at end of file
+
+function checkDateMMDDYYYY(formName, elementName) {
+ var obj = eval("document.forms['" + formName + "'].elements['"+ elementName +"']");
+ if(validDateMMDDYYYY(obj.value)) return true;
+ else{
+ alert(elementName + " must be a date in MM/DD/YYYY format.");
+ obj.focus();
+ return false;
+ }
+}
+
+function validDateMMDDYYYY(inpDate) {
+ var d0 = new Date(inpDate);
+ var mm = (d0.getMonth() < 9 ? '0' : '') + (d0.getMonth()+1);
+ var dd = (d0.getDate() < 10 ? '0' : '') + d0.getDate();
+ var yyyy = d0.getFullYear();
+ var d1 = mm+'/'+dd+'/'+yyyy;
+ return inpDate == d1;
+}
Modified: geronimo/server/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java (original)
+++ geronimo/server/branches/1.1/applications/console-standard/src/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java Thu Dec 28 01:39:54 2006
@@ -37,12 +37,20 @@
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * @version $Rev$ $Date$
+ */
public class WebAccessLogViewerPortlet extends BasePortlet {
private final static Log log = LogFactory.getLog(WebAccessLogViewerPortlet.class);
+ private static final int DEFAULT_MAX_RESULTS = 10;
protected PortletRequestDispatcher searchView;
@@ -121,20 +129,13 @@
//todo: currently refreshes on every request; that's pretty slow.
}
-
- //todo: completely revamp this argument processing
- String startDate = (String) renderRequest.getParameter("startDate");
- String startMonth = (String) renderRequest.getParameter("startMonth");
- String startYear = (String) renderRequest.getParameter("startYear");
- String endDate = (String) renderRequest.getParameter("endDate");
- String endMonth = (String) renderRequest.getParameter("endMonth");
- String endYear = (String) renderRequest.getParameter("endYear");
+ String fromDateStr = (String) renderRequest.getParameter("fromDate");
+ String toDateStr = (String) renderRequest.getParameter("toDate");
Calendar cal1 = Calendar.getInstance(), cal2 = Calendar.getInstance();
// If not all dates were passed we assume than no fields were passed and just
// filter on the current date.
- if (startDate == null || startMonth == null || startYear == null
- || endDate == null || endMonth == null || endYear == null) {
+ if(fromDateStr == null || toDateStr == null) {
// just keep the month date and year
cal1.set(Calendar.MILLISECOND, 0);
cal1.set(Calendar.MINUTE, 0);
@@ -147,38 +148,82 @@
cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- null, null, null, null, cal1.getTime(), cal2.getTime(), null, null);
+ null, null, null, null, cal1.getTime(), cal2.getTime(), null, new Integer(DEFAULT_MAX_RESULTS - 1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
+ renderRequest.setAttribute("maxResult", new Integer(DEFAULT_MAX_RESULTS));
} else {
- cal1.clear();
- cal2.clear();
- // get the requested start date (defaults to 00:00:00:000 for time
- cal1.set(Calendar.DATE, Integer.parseInt(startDate));
- cal1.set(Calendar.MONTH, Integer.parseInt(startMonth));
- cal1.set(Calendar.YEAR, Integer.parseInt(startYear));
- // get the requested end date - Note: must set time to end of day
- cal2.set(Calendar.DATE, Integer.parseInt(endDate));
- cal2.set(Calendar.MONTH, Integer.parseInt(endMonth));
- cal2.set(Calendar.YEAR, Integer.parseInt(endYear));
- cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
- cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
- cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
- cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
// Get other search criteria
String requestHost = (String) renderRequest.getParameter("requestHost");
String authUser = (String) renderRequest.getParameter("authUser");
String requestMethod = (String) renderRequest.getParameter("requestMethod");
String requestedURI = (String) renderRequest.getParameter("requestedURI");
+ String startResult = (String) renderRequest.getParameter("startResult");
+ String maxResult = (String) renderRequest.getParameter("maxResult");
+ Integer iStartResult = null;
+ Integer iMaxResult = new Integer(DEFAULT_MAX_RESULTS);
+ try{
+ iStartResult = Integer.valueOf(startResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+ try{
+ iMaxResult = Integer.valueOf(maxResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+
boolean ignoreDates = renderRequest.getParameter("ignoreDates") != null;
if (ignoreDates) {
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, null, null, null, null);
+ requestHost, authUser, requestMethod, requestedURI, null, null, iStartResult, new Integer(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
} else {
+ Date fromDate = null, toDate = null;
+ // Check if the from and to date format is MM/DD/YYYY
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
+ try {
+ fromDate = df.parse(fromDateStr);
+ // get the requested start date (defaults to 00:00:00:000 for time)
+ cal1.setTime(fromDate);
+ String mmddyyyy = (cal1.get(Calendar.MONTH) < 9 ? "0":"") + (cal1.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal1.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal1.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal1.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(fromDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore dates in search criteria and log a WARNING
+ log.warn("From date must be a date in MM/DD/YYYY format, not '"+fromDateStr+"'. Dates will be ignored.");
+ fromDate = null;
+ }
+ toDate = df.parse(toDateStr);
+ cal2.setTime(toDate);
+ mmddyyyy = (cal2.get(Calendar.MONTH) < 9 ? "0":"") + (cal2.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal2.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal2.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal2.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(toDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore to date in search criteria and log a WARNING
+ log.warn("To date must be a date in MM/DD/YYYY format, not "+toDateStr+"'. Dates will be ignored.");
+ toDate = null;
+ } else {
+ // get the requested end date - Note: must set time to end of day
+ cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
+ cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
+ cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
+ cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
+ toDate = cal2.getTime();
+ }
+ } catch (ParseException e) {
+ // Should not occur since date input has been validated using javascript.
+ // If this does occur, ignore from and to dates and log a WARNING
+ log.warn("Error parsing input dates. Dates will be ignored.", e);
+ }
+ if(fromDate == null || toDate == null) {
+ fromDate = toDate = null;
+ }
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, cal1.getTime(), cal2.getTime(), null, null);
+ requestHost, authUser, requestMethod, requestedURI, fromDate, toDate, iStartResult, new Integer(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
}
@@ -187,10 +232,11 @@
renderRequest.setAttribute("authUser", authUser);
renderRequest.setAttribute("requestMethod", requestMethod);
renderRequest.setAttribute("requestedURI", requestedURI);
-
+ if(iStartResult != null)renderRequest.setAttribute("startResult", iStartResult);
+ if(iMaxResult != null)renderRequest.setAttribute("maxResult", iMaxResult);
}
- renderRequest.setAttribute("toDate", cal2.getTime());
- renderRequest.setAttribute("fromDate", cal1.getTime());
+ renderRequest.setAttribute("toDate", toDateStr);
+ renderRequest.setAttribute("fromDate", fromDateStr);
searchView.include(renderRequest, renderRespose);
}
Modified: geronimo/server/branches/1.1/applications/console-standard/src/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.1/applications/console-standard/src/webapp/WEB-INF/view/webaccesslogmanager/view.jsp?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/branches/1.1/applications/console-standard/src/webapp/WEB-INF/view/webaccesslogmanager/view.jsp (original)
+++ geronimo/server/branches/1.1/applications/console-standard/src/webapp/WEB-INF/view/webaccesslogmanager/view.jsp Thu Dec 28 01:39:54 2006
@@ -1,39 +1,46 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--%>
+
+<%-- $Rev$ $Date$ --%>
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
-<%!
-java.util.Calendar cal = java.util.Calendar.getInstance();
-int startYear = 1990;
-int currentYear = cal.get(java.util.Calendar.YEAR);
-%>
<script language="Javascript">
+var <portlet:namespace/>formName = "<portlet:namespace/>searchForm";
+var <portlet:namespace/>dateFields = new Array("fromDate", "toDate");
-function <portlet:namespace/>loadDates(monthElemName,dateElemName,yearElemName){
- var yearElem = eval("document.<portlet:namespace/>searchForm." + yearElemName);
- var monthElem = eval("document.<portlet:namespace/>searchForm." + monthElemName);
- var dateElem = eval("document.<portlet:namespace/>searchForm." + dateElemName);
- var monthIndex = parseInt(monthElem.options[monthElem.selectedIndex].value);
- var selectedYear = parseInt(yearElem.options[yearElem.selectedIndex].value);
- var totalDays = 0;
- // February
- if(monthIndex == 1){
- totalDays = (isLeapYear(selectedYear)? 29 : 28)
- }else if(monthIndex == 0 || monthIndex == 2 || monthIndex == 4 || monthIndex == 6 || monthIndex == 7 ||
- monthIndex == 9 || monthIndex == 11){
- totalDays = 31;
- }else{
- totalDays = 30;
+function <portlet:namespace/>validateForm(){
+ if(document.forms[<portlet:namespace/>formName].ignoreDates.checked)
+ return true;
+ for(i in <portlet:namespace/>dateFields) {
+ if(!checkDateMMDDYYYY(<portlet:namespace/>formName, <portlet:namespace/>dateFields[i]))
+ return false;
}
- dateElem.options.length = 0;
- for(i = 0; i < totalDays; i++){
- dateElem.options.length += 1;
- dateElem.options[i].text = dateElem.options[i].value = i+1;
- }
+ // Check if to date is after from date
+ var fromDate = new Date(document.forms[<portlet:namespace/>formName].fromDate.value);
+ var toDate = new Date(document.forms[<portlet:namespace/>formName].toDate.value);
+ if(fromDate > toDate) {
+ alert('to date must be after from date.');
+ return false;
+ }
+ return true;
}
-function isLeapYear(year) {
- return (year%4 == 0 && (year % 100 != 0 || year % 400 == 0));
-}
function <portlet:namespace/>refresh(){
document.<portlet:namespace/>searchForm.action="<portlet:renderURL><portlet:param name="action" value="refresh"/></portlet:renderURL>";
document.<portlet:namespace/>searchForm.submit();
@@ -47,7 +54,7 @@
</tr>
<tr>
<td>
- <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post">
+ <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post" onSubmit="return <portlet:namespace/>validateForm();">
<b>Filter results:</b>
<table width="680">
<c:choose>
@@ -100,50 +107,10 @@
<td colspan="4" class="DarkBackground"><b>Date:</b></td>
</tr>
<tr>
- <td>From:</td>
- <td>
- <select name="startMonth" onchange="<portlet:namespace/>loadDates('startMonth','startDate','startYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="startDate">
- </select>
- /
- <select name="startYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
- <td>To:</td>
- <td>
- <select name="endMonth" onchange="<portlet:namespace/>loadDates('endMonth','endDate','endYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="endDate">
- </select>
- /
- <select name="endYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
+ <td>From (MM/DD/YYYY):</td>
+ <td><input type="text" name="fromDate" value="${fromDate}"></td>
+ <td>To (MM/DD/YYYY):</td>
+ <td><input type="text" name="toDate" value="${toDate}"></td>
</tr>
<tr>
<td>Ignore Dates:</td>
@@ -170,10 +137,22 @@
<option value="" <c:if test="${empty requestMethod or requestMethod eq ''}"> selected</c:if>>ANY</option>
<option <c:if test="${requestMethod == 'GET'}"> selected</c:if>>GET</option>
<option <c:if test="${requestMethod == 'POST'}"> selected</c:if>>POST</option>
+ <option <c:if test="${requestMethod == 'PUT'}"> selected</c:if>>PUT</option>
+ <option <c:if test="${requestMethod == 'DELETE'}"> selected</c:if>>DELETE</option>
</select>
</td>
<td>Requested URI:</td>
<td><input type="text" name="requestedURI" value="${requestedURI}"/></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="DarkBackground"><b>Result Size:</b></td>
+ </tr>
+ <tr>
+ <td>Start Result:</td>
+ <td><input type="text" name="startResult" value="${startResult}"/></td>
+ <td>Max Results:</td>
+ <td><input type="text" name="maxResult" value="${maxResult}"/></td>
+ </tr>
<tr>
<td colspan="4" align="left">
<input type="submit" value="Go"/>
@@ -207,36 +186,3 @@
</td>
</tr>
</table>
-<script language="Javascript">
-var <portlet:namespace/>form = document.<portlet:namespace/>searchForm;
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startMonth.selectedIndex = ${fromDate.month};
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endMonth.selectedIndex = ${toDate.month};
-</c:if>
-<portlet:namespace/>loadDates('startMonth','startDate','startYear');
-<portlet:namespace/>loadDates('endMonth','endDate','endYear');
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startDate.selectedIndex = ${fromDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < startYear.options.length; i++){
- if(startYear.options[i].value == ${fromDate.year} + 1900){
- startYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endDate.selectedIndex = ${toDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < endYear.options.length; i++){
- if(endYear.options[i].value == ${toDate.year} + 1900){
- endYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-</script>
\ No newline at end of file
Modified: geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java (original)
+++ geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java Thu Dec 28 01:39:54 2006
@@ -37,12 +37,20 @@
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * @version $Rev$ $Date$
+ */
public class WebAccessLogViewerPortlet extends BasePortlet {
private final static Log log = LogFactory.getLog(WebAccessLogViewerPortlet.class);
+ private static final int DEFAULT_MAX_RESULTS = 10;
protected PortletRequestDispatcher searchView;
@@ -121,20 +129,13 @@
//todo: currently refreshes on every request; that's pretty slow.
}
-
- //todo: completely revamp this argument processing
- String startDate = (String) renderRequest.getParameter("startDate");
- String startMonth = (String) renderRequest.getParameter("startMonth");
- String startYear = (String) renderRequest.getParameter("startYear");
- String endDate = (String) renderRequest.getParameter("endDate");
- String endMonth = (String) renderRequest.getParameter("endMonth");
- String endYear = (String) renderRequest.getParameter("endYear");
+ String fromDateStr = (String) renderRequest.getParameter("fromDate");
+ String toDateStr = (String) renderRequest.getParameter("toDate");
Calendar cal1 = Calendar.getInstance(), cal2 = Calendar.getInstance();
// If not all dates were passed we assume than no fields were passed and just
// filter on the current date.
- if (startDate == null || startMonth == null || startYear == null
- || endDate == null || endMonth == null || endYear == null) {
+ if(fromDateStr == null || toDateStr == null) {
// just keep the month date and year
cal1.set(Calendar.MILLISECOND, 0);
cal1.set(Calendar.MINUTE, 0);
@@ -147,38 +148,82 @@
cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- null, null, null, null, cal1.getTime(), cal2.getTime(), null, null);
+ null, null, null, null, cal1.getTime(), cal2.getTime(), null, Integer.valueOf(DEFAULT_MAX_RESULTS - 1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
+ renderRequest.setAttribute("maxResult", Integer.valueOf(DEFAULT_MAX_RESULTS));
} else {
- cal1.clear();
- cal2.clear();
- // get the requested start date (defaults to 00:00:00:000 for time
- cal1.set(Calendar.DATE, Integer.parseInt(startDate));
- cal1.set(Calendar.MONTH, Integer.parseInt(startMonth));
- cal1.set(Calendar.YEAR, Integer.parseInt(startYear));
- // get the requested end date - Note: must set time to end of day
- cal2.set(Calendar.DATE, Integer.parseInt(endDate));
- cal2.set(Calendar.MONTH, Integer.parseInt(endMonth));
- cal2.set(Calendar.YEAR, Integer.parseInt(endYear));
- cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
- cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
- cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
- cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
// Get other search criteria
String requestHost = (String) renderRequest.getParameter("requestHost");
String authUser = (String) renderRequest.getParameter("authUser");
String requestMethod = (String) renderRequest.getParameter("requestMethod");
String requestedURI = (String) renderRequest.getParameter("requestedURI");
+ String startResult = (String) renderRequest.getParameter("startResult");
+ String maxResult = (String) renderRequest.getParameter("maxResult");
+ Integer iStartResult = null;
+ Integer iMaxResult = Integer.valueOf(DEFAULT_MAX_RESULTS);
+ try{
+ iStartResult = Integer.valueOf(startResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+ try{
+ iMaxResult = Integer.valueOf(maxResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+
boolean ignoreDates = renderRequest.getParameter("ignoreDates") != null;
if (ignoreDates) {
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, null, null, null, null);
+ requestHost, authUser, requestMethod, requestedURI, null, null, iStartResult, Integer.valueOf(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
} else {
+ Date fromDate = null, toDate = null;
+ // Check if the from and to date format is MM/DD/YYYY
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
+ try {
+ fromDate = df.parse(fromDateStr);
+ // get the requested start date (defaults to 00:00:00:000 for time)
+ cal1.setTime(fromDate);
+ String mmddyyyy = (cal1.get(Calendar.MONTH) < 9 ? "0":"") + (cal1.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal1.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal1.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal1.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(fromDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore dates in search criteria and log a WARNING
+ log.warn("From date must be a date in MM/DD/YYYY format, not '"+fromDateStr+"'. Dates will be ignored.");
+ fromDate = null;
+ }
+ toDate = df.parse(toDateStr);
+ cal2.setTime(toDate);
+ mmddyyyy = (cal2.get(Calendar.MONTH) < 9 ? "0":"") + (cal2.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal2.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal2.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal2.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(toDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore to date in search criteria and log a WARNING
+ log.warn("To date must be a date in MM/DD/YYYY format, not "+toDateStr+"'. Dates will be ignored.");
+ toDate = null;
+ } else {
+ // get the requested end date - Note: must set time to end of day
+ cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
+ cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
+ cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
+ cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
+ toDate = cal2.getTime();
+ }
+ } catch (ParseException e) {
+ // Should not occur since date input has been validated using javascript.
+ // If this does occur, ignore from and to dates and log a WARNING
+ log.warn("Error parsing input dates. Dates will be ignored.", e);
+ }
+ if(fromDate == null || toDate == null) {
+ fromDate = toDate = null;
+ }
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, cal1.getTime(), cal2.getTime(), null, null);
+ requestHost, authUser, requestMethod, requestedURI, fromDate, toDate, iStartResult, Integer.valueOf(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
}
@@ -187,10 +232,11 @@
renderRequest.setAttribute("authUser", authUser);
renderRequest.setAttribute("requestMethod", requestMethod);
renderRequest.setAttribute("requestedURI", requestedURI);
-
+ if(iStartResult != null)renderRequest.setAttribute("startResult", iStartResult);
+ if(iMaxResult != null)renderRequest.setAttribute("maxResult", iMaxResult);
}
- renderRequest.setAttribute("toDate", cal2.getTime());
- renderRequest.setAttribute("fromDate", cal1.getTime());
+ renderRequest.setAttribute("toDate", toDateStr);
+ renderRequest.setAttribute("fromDate", fromDateStr);
searchView.include(renderRequest, renderRespose);
}
Modified: geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp (original)
+++ geronimo/server/branches/1.2/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp Thu Dec 28 01:39:54 2006
@@ -14,42 +14,33 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
+
+<%-- $Rev$ $Date$ --%>
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
-<%!
-java.util.Calendar cal = java.util.Calendar.getInstance();
-int startYear = 1990;
-int currentYear = cal.get(java.util.Calendar.YEAR);
-%>
<script language="Javascript">
+var <portlet:namespace/>formName = "<portlet:namespace/>searchForm";
+var <portlet:namespace/>dateFields = new Array("fromDate", "toDate");
-function <portlet:namespace/>loadDates(monthElemName,dateElemName,yearElemName){
- var yearElem = eval("document.<portlet:namespace/>searchForm." + yearElemName);
- var monthElem = eval("document.<portlet:namespace/>searchForm." + monthElemName);
- var dateElem = eval("document.<portlet:namespace/>searchForm." + dateElemName);
- var monthIndex = parseInt(monthElem.options[monthElem.selectedIndex].value);
- var selectedYear = parseInt(yearElem.options[yearElem.selectedIndex].value);
- var totalDays = 0;
- // February
- if(monthIndex == 1){
- totalDays = (isLeapYear(selectedYear)? 29 : 28)
- }else if(monthIndex == 0 || monthIndex == 2 || monthIndex == 4 || monthIndex == 6 || monthIndex == 7 ||
- monthIndex == 9 || monthIndex == 11){
- totalDays = 31;
- }else{
- totalDays = 30;
+function <portlet:namespace/>validateForm(){
+ if(document.forms[<portlet:namespace/>formName].ignoreDates.checked)
+ return true;
+ for(i in <portlet:namespace/>dateFields) {
+ if(!checkDateMMDDYYYY(<portlet:namespace/>formName, <portlet:namespace/>dateFields[i]))
+ return false;
}
- dateElem.options.length = 0;
- for(i = 0; i < totalDays; i++){
- dateElem.options.length += 1;
- dateElem.options[i].text = dateElem.options[i].value = i+1;
- }
+ // Check if to date is after from date
+ var fromDate = new Date(document.forms[<portlet:namespace/>formName].fromDate.value);
+ var toDate = new Date(document.forms[<portlet:namespace/>formName].toDate.value);
+ if(fromDate > toDate) {
+ alert('to date must be after from date.');
+ return false;
+ }
+ return true;
}
-function isLeapYear(year) {
- return (year%4 == 0 && (year % 100 != 0 || year % 400 == 0));
-}
function <portlet:namespace/>refresh(){
document.<portlet:namespace/>searchForm.action="<portlet:renderURL><portlet:param name="action" value="refresh"/></portlet:renderURL>";
document.<portlet:namespace/>searchForm.submit();
@@ -63,7 +54,7 @@
</tr>
<tr>
<td>
- <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post">
+ <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post" onSubmit="return <portlet:namespace/>validateForm();">
<b>Filter results:</b>
<table width="680">
<c:choose>
@@ -116,50 +107,10 @@
<td colspan="4" class="DarkBackground"><b>Date:</b></td>
</tr>
<tr>
- <td>From:</td>
- <td>
- <select name="startMonth" onchange="<portlet:namespace/>loadDates('startMonth','startDate','startYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="startDate">
- </select>
- /
- <select name="startYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
- <td>To:</td>
- <td>
- <select name="endMonth" onchange="<portlet:namespace/>loadDates('endMonth','endDate','endYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="endDate">
- </select>
- /
- <select name="endYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
+ <td>From (MM/DD/YYYY):</td>
+ <td><input type="text" name="fromDate" value="${fromDate}"></td>
+ <td>To (MM/DD/YYYY):</td>
+ <td><input type="text" name="toDate" value="${toDate}"></td>
</tr>
<tr>
<td>Ignore Dates:</td>
@@ -186,10 +137,22 @@
<option value="" <c:if test="${empty requestMethod or requestMethod eq ''}"> selected</c:if>>ANY</option>
<option <c:if test="${requestMethod == 'GET'}"> selected</c:if>>GET</option>
<option <c:if test="${requestMethod == 'POST'}"> selected</c:if>>POST</option>
+ <option <c:if test="${requestMethod == 'PUT'}"> selected</c:if>>PUT</option>
+ <option <c:if test="${requestMethod == 'DELETE'}"> selected</c:if>>DELETE</option>
</select>
</td>
<td>Requested URI:</td>
<td><input type="text" name="requestedURI" value="${requestedURI}"/></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="DarkBackground"><b>Result Size:</b></td>
+ </tr>
+ <tr>
+ <td>Start Result:</td>
+ <td><input type="text" name="startResult" value="${startResult}"/></td>
+ <td>Max Results:</td>
+ <td><input type="text" name="maxResult" value="${maxResult}"/></td>
+ </tr>
<tr>
<td colspan="4" align="left">
<input type="submit" value="Go"/>
@@ -223,36 +186,3 @@
</td>
</tr>
</table>
-<script language="Javascript">
-var <portlet:namespace/>form = document.<portlet:namespace/>searchForm;
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startMonth.selectedIndex = ${fromDate.month};
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endMonth.selectedIndex = ${toDate.month};
-</c:if>
-<portlet:namespace/>loadDates('startMonth','startDate','startYear');
-<portlet:namespace/>loadDates('endMonth','endDate','endYear');
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startDate.selectedIndex = ${fromDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < startYear.options.length; i++){
- if(startYear.options[i].value == ${fromDate.year} + 1900){
- startYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endDate.selectedIndex = ${toDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < endYear.options.length; i++){
- if(endYear.options[i].value == ${toDate.year} + 1900){
- endYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-</script>
Modified: geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java (original)
+++ geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/java/org/apache/geronimo/console/logmanager/WebAccessLogViewerPortlet.java Thu Dec 28 01:39:54 2006
@@ -37,12 +37,20 @@
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * @version $Rev$ $Date$
+ */
public class WebAccessLogViewerPortlet extends BasePortlet {
private final static Log log = LogFactory.getLog(WebAccessLogViewerPortlet.class);
+ private static final int DEFAULT_MAX_RESULTS = 10;
protected PortletRequestDispatcher searchView;
@@ -121,20 +129,13 @@
//todo: currently refreshes on every request; that's pretty slow.
}
-
- //todo: completely revamp this argument processing
- String startDate = (String) renderRequest.getParameter("startDate");
- String startMonth = (String) renderRequest.getParameter("startMonth");
- String startYear = (String) renderRequest.getParameter("startYear");
- String endDate = (String) renderRequest.getParameter("endDate");
- String endMonth = (String) renderRequest.getParameter("endMonth");
- String endYear = (String) renderRequest.getParameter("endYear");
+ String fromDateStr = (String) renderRequest.getParameter("fromDate");
+ String toDateStr = (String) renderRequest.getParameter("toDate");
Calendar cal1 = Calendar.getInstance(), cal2 = Calendar.getInstance();
// If not all dates were passed we assume than no fields were passed and just
// filter on the current date.
- if (startDate == null || startMonth == null || startYear == null
- || endDate == null || endMonth == null || endYear == null) {
+ if(fromDateStr == null || toDateStr == null) {
// just keep the month date and year
cal1.set(Calendar.MILLISECOND, 0);
cal1.set(Calendar.MINUTE, 0);
@@ -147,38 +148,82 @@
cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- null, null, null, null, cal1.getTime(), cal2.getTime(), null, null);
+ null, null, null, null, cal1.getTime(), cal2.getTime(), null, Integer.valueOf(DEFAULT_MAX_RESULTS - 1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
+ renderRequest.setAttribute("maxResult", Integer.valueOf(DEFAULT_MAX_RESULTS));
} else {
- cal1.clear();
- cal2.clear();
- // get the requested start date (defaults to 00:00:00:000 for time
- cal1.set(Calendar.DATE, Integer.parseInt(startDate));
- cal1.set(Calendar.MONTH, Integer.parseInt(startMonth));
- cal1.set(Calendar.YEAR, Integer.parseInt(startYear));
- // get the requested end date - Note: must set time to end of day
- cal2.set(Calendar.DATE, Integer.parseInt(endDate));
- cal2.set(Calendar.MONTH, Integer.parseInt(endMonth));
- cal2.set(Calendar.YEAR, Integer.parseInt(endYear));
- cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
- cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
- cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
- cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
// Get other search criteria
String requestHost = (String) renderRequest.getParameter("requestHost");
String authUser = (String) renderRequest.getParameter("authUser");
String requestMethod = (String) renderRequest.getParameter("requestMethod");
String requestedURI = (String) renderRequest.getParameter("requestedURI");
+ String startResult = (String) renderRequest.getParameter("startResult");
+ String maxResult = (String) renderRequest.getParameter("maxResult");
+ Integer iStartResult = null;
+ Integer iMaxResult = Integer.valueOf(DEFAULT_MAX_RESULTS);
+ try{
+ iStartResult = Integer.valueOf(startResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+ try{
+ iMaxResult = Integer.valueOf(maxResult);
+ }catch(NumberFormatException e){
+ //ignore
+ }
+
boolean ignoreDates = renderRequest.getParameter("ignoreDates") != null;
if (ignoreDates) {
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, null, null, null, null);
+ requestHost, authUser, requestMethod, requestedURI, null, null, iStartResult, Integer.valueOf(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
} else {
+ Date fromDate = null, toDate = null;
+ // Check if the from and to date format is MM/DD/YYYY
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
+ try {
+ fromDate = df.parse(fromDateStr);
+ // get the requested start date (defaults to 00:00:00:000 for time)
+ cal1.setTime(fromDate);
+ String mmddyyyy = (cal1.get(Calendar.MONTH) < 9 ? "0":"") + (cal1.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal1.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal1.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal1.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(fromDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore dates in search criteria and log a WARNING
+ log.warn("From date must be a date in MM/DD/YYYY format, not '"+fromDateStr+"'. Dates will be ignored.");
+ fromDate = null;
+ }
+ toDate = df.parse(toDateStr);
+ cal2.setTime(toDate);
+ mmddyyyy = (cal2.get(Calendar.MONTH) < 9 ? "0":"") + (cal2.get(Calendar.MONTH)+1);
+ mmddyyyy += "/"+(cal2.get(Calendar.DAY_OF_MONTH) < 10 ? "0":"") + (cal2.get(Calendar.DAY_OF_MONTH));
+ mmddyyyy += "/"+cal2.get(Calendar.YEAR);
+ if(!mmddyyyy.equals(toDateStr)) {
+ // This should not arise since date input has been validated using javascript.
+ // If this does occur, ignore to date in search criteria and log a WARNING
+ log.warn("To date must be a date in MM/DD/YYYY format, not "+toDateStr+"'. Dates will be ignored.");
+ toDate = null;
+ } else {
+ // get the requested end date - Note: must set time to end of day
+ cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY));
+ cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE));
+ cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND));
+ cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND));
+ toDate = cal2.getTime();
+ }
+ } catch (ParseException e) {
+ // Should not occur since date input has been validated using javascript.
+ // If this does occur, ignore from and to dates and log a WARNING
+ log.warn("Error parsing input dates. Dates will be ignored.", e);
+ }
+ if(fromDate == null || toDate == null) {
+ fromDate = toDate = null;
+ }
WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch,
- requestHost, authUser, requestMethod, requestedURI, cal1.getTime(), cal2.getTime(), null, null);
+ requestHost, authUser, requestMethod, requestedURI, fromDate, toDate, iStartResult, Integer.valueOf(iMaxResult.intValue()-1));
renderRequest.setAttribute("logs", matchingItems.getResults());
renderRequest.setAttribute("logLength", new Integer(matchingItems.getLineCount()));
}
@@ -187,10 +232,11 @@
renderRequest.setAttribute("authUser", authUser);
renderRequest.setAttribute("requestMethod", requestMethod);
renderRequest.setAttribute("requestedURI", requestedURI);
-
+ if(iStartResult != null)renderRequest.setAttribute("startResult", iStartResult);
+ if(iMaxResult != null)renderRequest.setAttribute("maxResult", iMaxResult);
}
- renderRequest.setAttribute("toDate", cal2.getTime());
- renderRequest.setAttribute("fromDate", cal1.getTime());
+ renderRequest.setAttribute("toDate", toDateStr);
+ renderRequest.setAttribute("fromDate", fromDateStr);
searchView.include(renderRequest, renderRespose);
}
Modified: geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp?view=diff&rev=490685&r1=490684&r2=490685
==============================================================================
--- geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp (original)
+++ geronimo/server/trunk/applications/console/geronimo-console-standard/src/main/webapp/WEB-INF/view/webaccesslogmanager/view.jsp Thu Dec 28 01:39:54 2006
@@ -14,42 +14,33 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
+
+<%-- $Rev$ $Date$ --%>
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
-<%!
-java.util.Calendar cal = java.util.Calendar.getInstance();
-int startYear = 1990;
-int currentYear = cal.get(java.util.Calendar.YEAR);
-%>
<script language="Javascript">
+var <portlet:namespace/>formName = "<portlet:namespace/>searchForm";
+var <portlet:namespace/>dateFields = new Array("fromDate", "toDate");
-function <portlet:namespace/>loadDates(monthElemName,dateElemName,yearElemName){
- var yearElem = eval("document.<portlet:namespace/>searchForm." + yearElemName);
- var monthElem = eval("document.<portlet:namespace/>searchForm." + monthElemName);
- var dateElem = eval("document.<portlet:namespace/>searchForm." + dateElemName);
- var monthIndex = parseInt(monthElem.options[monthElem.selectedIndex].value);
- var selectedYear = parseInt(yearElem.options[yearElem.selectedIndex].value);
- var totalDays = 0;
- // February
- if(monthIndex == 1){
- totalDays = (isLeapYear(selectedYear)? 29 : 28)
- }else if(monthIndex == 0 || monthIndex == 2 || monthIndex == 4 || monthIndex == 6 || monthIndex == 7 ||
- monthIndex == 9 || monthIndex == 11){
- totalDays = 31;
- }else{
- totalDays = 30;
+function <portlet:namespace/>validateForm(){
+ if(document.forms[<portlet:namespace/>formName].ignoreDates.checked)
+ return true;
+ for(i in <portlet:namespace/>dateFields) {
+ if(!checkDateMMDDYYYY(<portlet:namespace/>formName, <portlet:namespace/>dateFields[i]))
+ return false;
}
- dateElem.options.length = 0;
- for(i = 0; i < totalDays; i++){
- dateElem.options.length += 1;
- dateElem.options[i].text = dateElem.options[i].value = i+1;
- }
+ // Check if to date is after from date
+ var fromDate = new Date(document.forms[<portlet:namespace/>formName].fromDate.value);
+ var toDate = new Date(document.forms[<portlet:namespace/>formName].toDate.value);
+ if(fromDate > toDate) {
+ alert('to date must be after from date.');
+ return false;
+ }
+ return true;
}
-function isLeapYear(year) {
- return (year%4 == 0 && (year % 100 != 0 || year % 400 == 0));
-}
function <portlet:namespace/>refresh(){
document.<portlet:namespace/>searchForm.action="<portlet:renderURL><portlet:param name="action" value="refresh"/></portlet:renderURL>";
document.<portlet:namespace/>searchForm.submit();
@@ -63,7 +54,7 @@
</tr>
<tr>
<td>
- <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post">
+ <form action="<portlet:renderURL/>" name="<portlet:namespace/>searchForm" method="post" onSubmit="return <portlet:namespace/>validateForm();">
<b>Filter results:</b>
<table width="680">
<c:choose>
@@ -116,50 +107,10 @@
<td colspan="4" class="DarkBackground"><b>Date:</b></td>
</tr>
<tr>
- <td>From:</td>
- <td>
- <select name="startMonth" onchange="<portlet:namespace/>loadDates('startMonth','startDate','startYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="startDate">
- </select>
- /
- <select name="startYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
- <td>To:</td>
- <td>
- <select name="endMonth" onchange="<portlet:namespace/>loadDates('endMonth','endDate','endYear');">
- <option value="0">January</option><option value="1">February</option>
- <option value="2">March</option><option value="3">April</option>
- <option value="4">May</option><option value="5">June</option>
- <option value="6">July</option><option value="7">August</option>
- <option value="8">September</option><option value="9">October</option>
- <option value="10">November</option><option value="11">December</option>
- </select>
- /
- <select name="endDate">
- </select>
- /
- <select name="endYear">
- <%
- for(int i = startYear;i <= currentYear; i++){
- %>
- <option value="<%=i%>"><%=i%></option>
- <%}%>
- </select>
- </td>
+ <td>From (MM/DD/YYYY):</td>
+ <td><input type="text" name="fromDate" value="${fromDate}"></td>
+ <td>To (MM/DD/YYYY):</td>
+ <td><input type="text" name="toDate" value="${toDate}"></td>
</tr>
<tr>
<td>Ignore Dates:</td>
@@ -186,10 +137,22 @@
<option value="" <c:if test="${empty requestMethod or requestMethod eq ''}"> selected</c:if>>ANY</option>
<option <c:if test="${requestMethod == 'GET'}"> selected</c:if>>GET</option>
<option <c:if test="${requestMethod == 'POST'}"> selected</c:if>>POST</option>
+ <option <c:if test="${requestMethod == 'PUT'}"> selected</c:if>>PUT</option>
+ <option <c:if test="${requestMethod == 'DELETE'}"> selected</c:if>>DELETE</option>
</select>
</td>
<td>Requested URI:</td>
<td><input type="text" name="requestedURI" value="${requestedURI}"/></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="DarkBackground"><b>Result Size:</b></td>
+ </tr>
+ <tr>
+ <td>Start Result:</td>
+ <td><input type="text" name="startResult" value="${startResult}"/></td>
+ <td>Max Results:</td>
+ <td><input type="text" name="maxResult" value="${maxResult}"/></td>
+ </tr>
<tr>
<td colspan="4" align="left">
<input type="submit" value="Go"/>
@@ -223,36 +186,3 @@
</td>
</tr>
</table>
-<script language="Javascript">
-var <portlet:namespace/>form = document.<portlet:namespace/>searchForm;
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startMonth.selectedIndex = ${fromDate.month};
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endMonth.selectedIndex = ${toDate.month};
-</c:if>
-<portlet:namespace/>loadDates('startMonth','startDate','startYear');
-<portlet:namespace/>loadDates('endMonth','endDate','endYear');
-<c:if test="${!empty fromDate}">
-<portlet:namespace/>form.startDate.selectedIndex = ${fromDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < startYear.options.length; i++){
- if(startYear.options[i].value == ${fromDate.year} + 1900){
- startYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-<c:if test="${!empty toDate}">
-<portlet:namespace/>form.endDate.selectedIndex = ${toDate.date}-1;
-with(<portlet:namespace/>form){
- for(var i = 0; i < endYear.options.length; i++){
- if(endYear.options[i].value == ${toDate.year} + 1900){
- endYear.selectedIndex = i;
- break;
- }
- }
-}
-</c:if>
-</script>