From: Brad <bra...@us...> - 2005-11-16 03:11:41
|
Update of /cvsroot/archive-access/archive-access/projects/wayback/src/webapp/jsp/QueryUI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30992/src/webapp/jsp/QueryUI Modified Files: requestform.jsp ErrorResult.jsp PathQueryResults.jsp QueryResults.jsp Log Message: Massive overhaul decomposing into three main categories of changes: 1) All internal datatypes are now extensible (currently Properties, but should be Maps) including: a) WaybackRequest(was WBRequest) b) SearchResults (was ResourceResults) c) SearchResult (was ResourceResult) d) Resource so that there is no longer an assumption of Archival URL queries, or "CDX-style" index results. This will put more responsiblility on the UI components to interrogate SearchResults to decide how to render, but should enable extension to data returned from Indexes, as well as allow far more flexibility in queries, predominantly geared towards free-text searching. This is still somewhat clunky, as there are no convenience accessor methods, so all users refer to constants when interacting with them. 2) Major cleanup of servlet and filter interaction with servlet container. ReplayUI and QueryUI are now just plain old servlets, and filters can be optionally added to allow non-CGI argument requests to be coerced into standard WaybackRequest objects. 3) Alternate "Proxy" Replay mode is now functional, and some work has been done towards an alternate Nutch ResourceIndex. Currently the web.xml contains example configurations for both Proxy and Archival Url replay modes, but the Proxy related configurations are commented out. Proxy mode *requires* changing the servlet context to ROOT. ArchivalUrl replay mode works as ROOT context and as any (I think) other context. There are some cosmetic double-slashe issues to work out. Index: PathQueryResults.jsp =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wayback/src/webapp/jsp/QueryUI/PathQueryResults.jsp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PathQueryResults.jsp 26 Oct 2005 01:13:30 -0000 1.3 --- PathQueryResults.jsp 16 Nov 2005 03:11:29 -0000 1.4 *************** *** 1,25 **** <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> ! <%@ page import="org.archive.wayback.core.ResourceResult" %> <%@ page import="org.archive.wayback.core.Timestamp" %> ! <%@ page import="org.archive.wayback.simplequeryui.UIResults" %> <jsp:include page="../../template/UI-header.jsp" /> <% ! UIResults results = (UIResults) request.getAttribute("ui-results"); String searchString = results.getSearchUrl(); ! int resultCount = results.getNumResults(); ! Timestamp searchStartTs = results.getStartTimestamp(); ! Timestamp searchEndTs = results.getEndTimestamp(); ! String prettySearchStart = searchStartTs.prettyDate(); ! String prettySearchEnd = searchEndTs.prettyDate(); Iterator itr = results.resultsIterator(); %> ! <B><%= resultCount %></B> results for <B><%= searchString %></B><BR> ! between <B><%= prettySearchStart %></B> and <B><%= prettySearchEnd %></B> ! <HR> <% --- 1,24 ---- <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> ! <%@ page import="org.archive.wayback.WaybackConstants" %> ! <%@ page import="org.archive.wayback.core.SearchResult" %> <%@ page import="org.archive.wayback.core.Timestamp" %> ! <%@ page import="org.archive.wayback.query.UIQueryResults" %> <jsp:include page="../../template/UI-header.jsp" /> <% ! UIQueryResults results = (UIQueryResults) request.getAttribute("ui-results"); String searchString = results.getSearchUrl(); ! int resultCount = results.getResultCount(); ! String prettySearchStart = results.prettySearchStartDate(); ! String prettySearchEnd = results.prettySearchEndDate(); Iterator itr = results.resultsIterator(); %> ! <b><%= resultCount %></b> results for <b><%= searchString %></b><br></br> ! between <b><%= prettySearchStart %></b> and <b><%= prettySearchEnd %></b> ! <hr></hr> <% *************** *** 28,40 **** String lastMD5 = null; while(itr.hasNext()) { ! ResourceResult result = (ResourceResult) itr.next(); ! String url = result.getUrl(); ! String prettyDate = result.getTimestamp().prettyDate(); ! String origHost = result.getOrigHost(); ! String MD5 = result.getMd5Fragment(); ! String redirectFlag = result.isRedirect() ? "(redirect)" : ""; ! String httpResponse = result.getHttpResponseCode(); ! String mimeType = result.getMimeType(); String replayUrl = results.resultToReplayUrl(result); --- 27,41 ---- String lastMD5 = null; while(itr.hasNext()) { ! SearchResult result = (SearchResult) itr.next(); ! String url = result.get(WaybackConstants.RESULT_URL); ! String prettyDate = result.get(WaybackConstants.RESULT_CAPTURE_DATE); ! String origHost = result.get(WaybackConstants.RESULT_ORIG_HOST); ! String MD5 = result.get(WaybackConstants.RESULT_MD5_DIGEST); ! String redirectFlag = (0 == result.get( ! WaybackConstants.RESULT_REDIRECT_URL).compareTo("-")) ! ? "" : "(redirect)"; ! String httpResponse = result.get(WaybackConstants.RESULT_HTTP_CODE); ! String mimeType = result.get(WaybackConstants.RESULT_MIME_TYPE); String replayUrl = results.resultToReplayUrl(result); *************** *** 52,56 **** if(newUrl) { %> ! <HR><B><%= url %></B><BR> <% } --- 53,57 ---- if(newUrl) { %> ! <hr></hr><b><%= url %></b><br></br> <% } *************** *** 60,70 **** %> ! <A HREF="<%= replayUrl %>"><%= prettyDate %></A> ! <SPAN style="color:black;"><%= origHost %></SPAN> ! <SPAN style="color:gray;"><%= httpResponse %></SPAN> ! <SPAN style="color:brown;"><%= mimeType %></SPAN> <%= redirectFlag %> (new version) ! <BR> <% --- 61,71 ---- %> ! <a href="<%= replayUrl %>"><%= prettyDate %></a> ! <span style="color:black;"><%= origHost %></span> ! <span style="color:gray;"><%= httpResponse %></span> ! <span style="color:brown;"><%= mimeType %></span> <%= redirectFlag %> (new version) ! <br></br> <% *************** *** 72,79 **** %> ! <A HREF="<%= replayUrl %>"><%= prettyDate %></A> ! <SPAN style="color:green;"><%= origHost %></SPAN> ! <SPAN style="color:lightgray;">unchanged</SPAN> ! <BR> <% --- 73,80 ---- %> ! <a href="<%= replayUrl %>"><%= prettyDate %></a> ! <span style="color:green;"><%= origHost %></span> ! <span style="color:lightgray;">unchanged</span> ! <br></br> <% Index: requestform.jsp =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wayback/src/webapp/jsp/QueryUI/requestform.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** requestform.jsp 26 Oct 2005 01:14:00 -0000 1.2 --- requestform.jsp 16 Nov 2005 03:11:29 -0000 1.3 *************** *** 1,24 **** <jsp:include page="../../template/UI-header.jsp" /> ! <h2>Wayabck Search form:</h2> ! <p>The URL field is required. All date fields are optional.<br> ! To search for a single URL only, use the Query Type.<br> ! To search for all URLs beginning with a prefix URL, use PathQuery Type.<br> </p> <hr> <table> ! <FORM ACTION="../../query"> ! <tr><td>URL:</td><td><INPUT TYPE="TEXT" NAME="url" WIDTH="80"></td></tr> ! <tr><td>Exact Date:</td><td><INPUT TYPE="TEXT" NAME="date" WIDTH="80"></td></tr> ! <tr><td>Earliest Date:</td><td><INPUT TYPE="TEXT" NAME="earliest" WIDTH="80"></td></tr> ! <tr><td>Latest Date:</td><td><INPUT TYPE="TEXT" NAME="latest" WIDTH="80"></td></tr> <tr> <td>Type:</td> <td> ! Query <INPUT TYPE="RADIO" NAME="type" VALUE="query" CHECKED="YES"> ! PathQuery <INPUT TYPE="RADIO" NAME="type" VALUE="pathQuery"> </td> </tr> ! <tr><td colspan="2" align="left"><INPUT TYPE="SUBMIT" VALUE="Submit"></td></tr> ! </FORM> </table> <jsp:include page="../../template/UI-footer.jsp" /> --- 1,24 ---- <jsp:include page="../../template/UI-header.jsp" /> ! <h2>Wayback Search form:</h2> ! <p>The URL field is required. All date fields are optional.<br></br> ! To search for a single URL only, use the Query Type.<br></br> ! To search for all URLs beginning with a prefix URL, use PathQuery Type.<br></br> </p> <hr> <table> ! <form action="<%= request.getScheme() + "://" + request.getLocalName() + ":" + request.getLocalPort() + request.getContextPath() %>/query"> ! <tr><td>URL:</td><td><input type="TEXT" name="url" WIDTH="80"></td></tr> ! <tr><td>Exact Date:</td><td><input type="TEXT" name="exactdate" WIDTH="80"></td></tr> ! <tr><td>Earliest Date:</td><td><input type="TEXT" name="startdate" WIDTH="80"></td></tr> ! <tr><td>Latest Date:</td><td><input type="TEXT" name="enddate" WIDTH="80"></td></tr> <tr> <td>Type:</td> <td> ! Query <input type="RADIO" name="type" value="urlquery" CHECKED="YES"> ! PathQuery <input type="RADIO" name="type" value="urlprefixquery"> </td> </tr> ! <tr><td colspan="2" align="left"><input type="SUBMIT" value="Submit"></td></tr> ! </form> </table> <jsp:include page="../../template/UI-footer.jsp" /> Index: QueryResults.jsp =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wayback/src/webapp/jsp/QueryUI/QueryResults.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** QueryResults.jsp 20 Oct 2005 00:40:41 -0000 1.2 --- QueryResults.jsp 16 Nov 2005 03:11:29 -0000 1.3 *************** *** 1,13 **** <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> ! <%@ page import="org.archive.wayback.core.ResourceResult" %> <%@ page import="org.archive.wayback.core.Timestamp" %> ! <%@ page import="org.archive.wayback.simplequeryui.UIResults" %> <jsp:include page="../../template/UI-header.jsp" /> <% ! UIResults results = (UIResults) request.getAttribute("ui-results"); String searchString = results.getSearchUrl(); ! int resultCount = results.getNumResults(); Timestamp searchStartTs = results.getStartTimestamp(); --- 1,14 ---- <%@ page import="java.util.Iterator" %> <%@ page import="java.util.ArrayList" %> ! <%@ page import="org.archive.wayback.WaybackConstants" %> ! <%@ page import="org.archive.wayback.core.SearchResult" %> <%@ page import="org.archive.wayback.core.Timestamp" %> ! <%@ page import="org.archive.wayback.query.UIQueryResults" %> <jsp:include page="../../template/UI-header.jsp" /> <% ! UIQueryResults results = (UIQueryResults) request.getAttribute("ui-results"); String searchString = results.getSearchUrl(); ! int resultCount = results.getResultCount(); Timestamp searchStartTs = results.getStartTimestamp(); *************** *** 19,25 **** %> ! <B><%= resultCount %></B> results for <B><%= searchString %></B><BR> ! between <B><%= prettySearchStart %></B> and <B><%= prettySearchEnd %></B> ! <HR> <% --- 20,26 ---- %> ! <b><%= resultCount %></b> results for <b><%= searchString %></b><br></br> ! between <b><%= prettySearchStart %></b> and <b><%= prettySearchEnd %></b> ! <hr></hr> <% *************** *** 27,38 **** String lastMD5 = null; while(itr.hasNext()) { ! ResourceResult result = (ResourceResult) itr.next(); ! String prettyDate = result.getTimestamp().prettyDate(); ! String origHost = result.getOrigHost(); ! String MD5 = result.getMd5Fragment(); ! String redirectFlag = result.isRedirect() ? "(redirect)" : ""; ! String httpResponse = result.getHttpResponseCode(); ! String mimeType = result.getMimeType(); String replayUrl = results.resultToReplayUrl(result); --- 28,42 ---- String lastMD5 = null; while(itr.hasNext()) { ! SearchResult result = (SearchResult) itr.next(); ! String url = result.get(WaybackConstants.RESULT_URL); ! String prettyDate = result.get(WaybackConstants.RESULT_CAPTURE_DATE); ! String origHost = result.get(WaybackConstants.RESULT_ORIG_HOST); ! String MD5 = result.get(WaybackConstants.RESULT_MD5_DIGEST); ! String redirectFlag = (0 == result.get( ! WaybackConstants.RESULT_REDIRECT_URL).compareTo("-")) ! ? "" : "(redirect)"; ! String httpResponse = result.get(WaybackConstants.RESULT_HTTP_CODE); ! String mimeType = result.get(WaybackConstants.RESULT_MIME_TYPE); String replayUrl = results.resultToReplayUrl(result); *************** *** 48,64 **** if(updated) { %> ! <A HREF="<%= replayUrl %>"><%= prettyDate %></A> ! <SPAN style="color:black;"><%= origHost %></SPAN> ! <SPAN style="color:gray;"><%= httpResponse %></SPAN> ! <SPAN style="color:brown;"><%= mimeType %></SPAN> <%= redirectFlag %> (new version) ! <BR> <% } else { %> ! <A HREF="<%= replayUrl %>"><%= prettyDate %></A> ! <SPAN style="color:green;"><%= origHost %></SPAN> ! <BR> <% } --- 52,68 ---- if(updated) { %> ! <a href="<%= replayUrl %>"><%= prettyDate %></a> ! <span style="color:black;"><%= origHost %></span> ! <span style="color:gray;"><%= httpResponse %></span> ! <span style="color:brown;"><%= mimeType %></span> <%= redirectFlag %> (new version) ! <br></br> <% } else { %> ! <a href="<%= replayUrl %>"><%= prettyDate %></a> ! <span style="color:green;"><%= origHost %></span> ! <br></br> <% } Index: ErrorResult.jsp =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wayback/src/webapp/jsp/QueryUI/ErrorResult.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ErrorResult.jsp 20 Oct 2005 00:40:41 -0000 1.2 --- ErrorResult.jsp 16 Nov 2005 03:11:29 -0000 1.3 *************** *** 1,3 **** <jsp:include page="../../template/UI-header.jsp" /> ! <B><%= (String) request.getAttribute("message") %></B> <jsp:include page="../../template/UI-footer.jsp" /> --- 1,12 ---- + <%@ page import="org.archive.wayback.exception.WaybackException" %> <jsp:include page="../../template/UI-header.jsp" /> ! <% ! ! WaybackException e = (WaybackException) request.getAttribute("exception"); ! ! %> ! ! <h2><%= (String) e.getTitle() %></h2> ! <p><b><%= (String) e.getMessage() %></b></p> ! <p><%= (String) e.getDetails() %></p> <jsp:include page="../../template/UI-footer.jsp" /> |