Modified: manifoldcf/trunk/framework/crawler-ui/src/main/webapp/navigation.jsp
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/navigation.jsp?rev=1685187&r1=1685186&r2=1685187&view=diff
==============================================================================
--- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/navigation.jsp 
(original)
+++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/navigation.jsp Fri 
Jun 12 22:54:43 2015
@@ -2,156 +2,101 @@
 
 <%
 
-  /* $Id$ */
+/* $Id$ */
 
 /**
- * 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.
- */
+* 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.
+*/
 %>
 
 <%
-  // This module is meant to be called within a table cell, and will drop the
-  // lcf navigation into the cell
+       // This module is meant to be called within a table cell, and will drop 
the
+       // lcf navigation into the cell
 
 %>
 
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.Outputs")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listtransformations.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listtransformationconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListTransformationConnections")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listoutputs.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listoutputconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListOutputConnections")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.Authorities")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listgroups.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthoritygroups")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListAuthorityGroups")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listmappers.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listusermappings")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListUserMappings")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listauthorities.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthorities")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListAuthorityConnections")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.Repositories")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listconnections.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listrepositoryconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListRepositoryConnections")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listnotifications.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listnotificationconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListNotificationConnections")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.Jobs")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="listjobs.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listjobs")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ListAllJobs")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="showjobstatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Managejobs")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.StatusAndJobManagement")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.StatusReports")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="documentstatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Documentstatus")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.DocumentStatus")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="queuestatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Queuestatus")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.QueueStatus")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.HistoryReports")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="simplereport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Simplehistory")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.SimpleHistory")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="maxactivityreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumactivity")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.MaximumActivity")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="maxbandwidthreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumbandwidth")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.MaximumBandwidth")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="resultreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Resulthistogram")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.ResultHistogram")%>
-      </a></nobr>
-  </li>
-</ul>
-<p class="menumain">
-<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"navigation.Miscellaneous")%>
-</nobr>
-</p>
-<ul class="menusecond">
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" 
href='<%="http://manifoldcf.apache.org/release/trunk/"+Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Locale")+"/end-user-documentation.html"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Help")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.Help")%>
-      </a></nobr>
-  </li>
-  <li class="menuitem">
-    <nobr>
-      <a class="menulink" href="logout.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.LogOut")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "navigation.LogOut")%>
-      </a></nobr>
-  </li>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Outputs")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listtransformations.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listtransformationconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListTransformationConnections")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listoutputs.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listoutputconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListOutputConnections")%></a></nobr>
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Authorities")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listgroups.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthoritygroups")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListAuthorityGroups")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listmappers.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listusermappings")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListUserMappings")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listauthorities.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthorities")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListAuthorityConnections")%></a></nobr>
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Repositories")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listconnections.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listrepositoryconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListRepositoryConnections")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listnotifications.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listnotificationconnections")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListNotificationConnections")%></a></nobr>
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Jobs")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="listjobs.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listjobs")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ListAllJobs")%></a></nobr>
                                          
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="showjobstatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Managejobs")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.StatusAndJobManagement")%></a></nobr>
                                                
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.StatusReports")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="documentstatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Documentstatus")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.DocumentStatus")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="queuestatus.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Queuestatus")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.QueueStatus")%></a></nobr>
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.HistoryReports")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" href="simplereport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Simplehistory")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.SimpleHistory")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="maxactivityreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumactivity")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.MaximumActivity")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="maxbandwidthreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumbandwidth")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.MaximumBandwidth")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="resultreport.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Resulthistogram")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.ResultHistogram")%></a></nobr>
+       </li>
+</ul>
+<p 
class="menumain"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Miscellaneous")%></nobr></p>
+<ul class="menusecond">
+       <li class="menuitem">
+               <nobr><a class="menulink" 
href='<%="http://manifoldcf.apache.org/release/trunk/"+Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Locale")+"/end-user-documentation.html"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Help")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.Help")%></a></nobr>
+       </li>
+       <li class="menuitem">
+               <nobr><a class="menulink" href="logout.jsp" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.LogOut")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"navigation.LogOut")%></a></nobr>
+       </li>
 </ul>

Modified: manifoldcf/trunk/framework/crawler-ui/src/main/webapp/queuestatus.jsp
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/crawler-ui/src/main/webapp/queuestatus.jsp?rev=1685187&r1=1685186&r2=1685187&view=diff
==============================================================================
--- manifoldcf/trunk/framework/crawler-ui/src/main/webapp/queuestatus.jsp 
(original)
+++ manifoldcf/trunk/framework/crawler-ui/src/main/webapp/queuestatus.jsp Fri 
Jun 12 22:54:43 2015
@@ -2,25 +2,25 @@
 
 <%
 
-  /* $Id$ */
+/* $Id$ */
 
 /**
- * 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.
- */
-  boolean maintenanceUnderway = 
org.apache.manifoldcf.crawler.system.ManifoldCF.checkMaintenanceUnderway();
+* 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.
+*/
+boolean maintenanceUnderway = 
org.apache.manifoldcf.crawler.system.ManifoldCF.checkMaintenanceUnderway();
 
 %>
 
@@ -30,655 +30,600 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml";>
 <head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-  <link rel="StyleSheet" href="style.css" type="text/css" media="screen"/>
-  <title>
-    <%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.ApacheManifoldCFQueueStatus")%>
-  </title>
-
-  <script type="text/javascript">
-    <!--
-
-    function Go() {
-      if (report.statusbucketdesc.value == "") {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionCannotBeEmpty")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (!isRegularExpression(report.statusbucketdesc.value)) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustBeAValidRegularExpression")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (report.statusbucketdesc.value.indexOf("(") == -1 || 
report.statusbucketdesc.value.indexOf(")") == -1) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustDelimitAClassWithParentheses")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (!isInteger(report.rowcount.value)) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.EnterALegalNumberForRowsPerPage")%>");
-        report.rowcount.focus();
-        return;
-      }
-      if (!isRegularExpression(report.statusidentifiermatch.value)) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierMatchMustBeAValidRegularExpression")%>");
-        report.statusidentifiermatch.focus();
-        return;
-      }
-
-      document.report.op.value = "Status";
-      document.report.action = document.report.action + "#MainButton";
-      document.report.submit();
-    }
-
-    function Continue() {
-      if (report.statusbucketdesc.value == "") {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionCannotBeEmpty")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (!isRegularExpression(report.statusbucketdesc.value)) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustBeAValidRegularExpression")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (report.statusbucketdesc.value.indexOf("(") == -1 || 
report.statusbucketdesc.value.indexOf(")") == -1) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustDelimitAClassWithParentheses")%>");
-        report.statusbucketdesc.focus();
-        return;
-      }
-      if (!isRegularExpression(report.statusidentifiermatch.value)) {
-        
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierMatchMustBeAValidRegularExpression")%>");
-        report.statusidentifiermatch.focus();
-        return;
-      }
-      document.report.op.value = "Continue";
-      document.report.action = document.report.action + "#MainButton";
-      document.report.submit();
-    }
-
-    function ColumnClick(colname) {
-      document.report.clickcolumn.value = colname;
-      Go();
-    }
-
-    function SetPosition(amt) {
-      if (amt < 0)
-        amt = 0;
-      document.report.startrow.value = amt;
-      Go();
-    }
-
-    function isRegularExpression(value) {
-      try {
-        var foo = "teststring";
-        foo.search(value.replace(/\(\?i\)/, ""));
-        return true;
-      }
-      catch (e) {
-        return false;
-      }
-
-    }
-
-    function isInteger(value) {
-      var anum = /(^\d+$)/;
-      return anum.test(value);
-    }
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+       <link rel="StyleSheet" href="style.css" type="text/css" media="screen"/>
+       <title>
+               
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.ApacheManifoldCFQueueStatus")%>
+       </title>
+
+       <script type="text/javascript">
+       <!--
+
+       function Go()
+       {
+               if (report.statusbucketdesc.value == "")
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionCannotBeEmpty")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (!isRegularExpression(report.statusbucketdesc.value))
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustBeAValidRegularExpression")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (report.statusbucketdesc.value.indexOf("(") == -1 || 
report.statusbucketdesc.value.indexOf(")") == -1)
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustDelimitAClassWithParentheses")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (!isInteger(report.rowcount.value))
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.EnterALegalNumberForRowsPerPage")%>");
+                       report.rowcount.focus();
+                       return;
+               }
+               if (!isRegularExpression(report.statusidentifiermatch.value))
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierMatchMustBeAValidRegularExpression")%>");
+                       report.statusidentifiermatch.focus();
+                       return;
+               }
+               
+               document.report.op.value="Status";
+               document.report.action = document.report.action + "#MainButton";
+               document.report.submit();
+       }
+
+       function Continue()
+       {
+               if (report.statusbucketdesc.value == "")
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionCannotBeEmpty")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (!isRegularExpression(report.statusbucketdesc.value))
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustBeAValidRegularExpression")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (report.statusbucketdesc.value.indexOf("(") == -1 || 
report.statusbucketdesc.value.indexOf(")") == -1)
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescriptionMustDelimitAClassWithParentheses")%>");
+                       report.statusbucketdesc.focus();
+                       return;
+               }
+               if (!isRegularExpression(report.statusidentifiermatch.value))
+               {
+                       
alert("<%=Messages.getBodyJavascriptString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierMatchMustBeAValidRegularExpression")%>");
+                       report.statusidentifiermatch.focus();
+                       return;
+               }
+               document.report.op.value="Continue";
+               document.report.action = document.report.action + "#MainButton";
+               document.report.submit();
+       }
+
+       function ColumnClick(colname)
+       {
+               document.report.clickcolumn.value = colname;
+               Go();
+       }
+
+       function SetPosition(amt)
+       {
+               if (amt < 0)
+                       amt = 0;
+               document.report.startrow.value = amt;
+               Go();
+       }
+
+       function isRegularExpression(value)
+       {
+               try
+               {
+                       var foo = "teststring";
+                        foo.search(value.replace(/\(\?i\)/,""));
+                       return true;
+               }
+               catch (e)
+               {
+                       return false;
+               }
+
+       }
+
+       function isInteger(value)
+       {
+               var anum=/(^\d+$)/;
+               return anum.test(value);
+       }
 
-    //-->
-  </script>
+       //-->
+       </script>
 
 
 </head>
 
 <body class="standardbody">
 
-<table class="page">
-  <tr>
-    <td colspan="2" class="banner">
-      <jsp:include page="banner.jsp" flush="true"/>
-    </td>
-  </tr>
-  <tr>
-    <td class="navigation">
-      <jsp:include page="navigation.jsp" flush="true"/>
-    </td>
-    <td class="window">
-      <p 
class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.QueueStatus")%>
-      </p>
-      <%
-        if (maintenanceUnderway == false) {
-          int k;
-
-          // Read the document selection parameters.
-
-          // The status report is connection based, so the connection has to 
be selected before anything else makes sense.
-          String statusConnection = 
variableContext.getParameter("statusconnection");
-          if (statusConnection == null)
-            statusConnection = "";
-
-          // Which jobs we care about also figure in the selection part of the 
query.  It is the user's responsibility to pick jobs
-          // that are in desired states.
-          String[] statusJobIdentifiers = 
variableContext.getParameterValues("statusjobs");
-          if (statusJobIdentifiers == null)
-            statusJobIdentifiers = new String[0];
-
-          // We can select documents from the queue based on the earliest time 
they can be acted upon.  This is specified in
-          // a delta in minutes offset from "now".  Empty means that we don't 
want to select on that criteria.
-          String activeTimeOffsetMinutes = 
variableContext.getParameter("statusscheduleoffset");
-          if (activeTimeOffsetMinutes == null)
-            activeTimeOffsetMinutes = "";
-
-          // There is a selection criteria also based on the document state; 
these are integers defined in IJobManager.
-          String[] documentStateTypes;
-          if (variableContext.getParameter("statusdocumentstates_posted") != 
null) {
-            documentStateTypes = 
variableContext.getParameterValues("statusdocumentstates");
-            if (documentStateTypes == null)
-              documentStateTypes = new String[0];
-          } else
-            documentStateTypes = null;
-
-          // There is a selection criteria based on the document status; these 
are also integers defined in IJobManager.
-          String[] documentStatusTypes;
-          if (variableContext.getParameter("statusdocumentstatuses_posted") != 
null) {
-            documentStatusTypes = 
variableContext.getParameterValues("statusdocumentstatuses");
-            if (documentStatusTypes == null)
-              documentStatusTypes = new String[0];
-          } else
-            documentStatusTypes = null;
-
-          // Match string for the document identifier
-          String identifierMatch = 
variableContext.getParameter("statusidentifiermatch");
-          if (identifierMatch == null)
-            identifierMatch = "";
-
-          String statusBucketDesc = 
variableContext.getParameter("statusbucketdesc");
-          if (statusBucketDesc == null)
-            statusBucketDesc = "(.*)";
-
-          // From the passed-in selection values, calculate the actual 
selection criteria that we'll use in the queries.
-          IRepositoryConnectionManager connMgr = 
RepositoryConnectionManagerFactory.make(threadContext);
-          IRepositoryConnection[] connList = connMgr.getAllConnections();
-
-          IJobManager jobManager = JobManagerFactory.make(threadContext);
-
-          // Repository connection name: This simply needs to be mapped to an 
eligible list of identifiers.
-          IJobDescription[] eligibleList = null;
-          HashMap selectedJobs = null;
-          if (statusConnection.length() > 0) {
-            eligibleList = jobManager.findJobsForConnection(statusConnection);
-            selectedJobs = new HashMap();
-            k = 0;
-            while (k < statusJobIdentifiers.length) {
-              Long identifier = new Long(statusJobIdentifiers[k++]);
-              selectedJobs.put(identifier, identifier);
-            }
-          }
-
-          // Time offset: Need to calculate the actual time in ms since epoch 
to use to query against the "checktime" field.
-          // Note that the checktime field is actually nullable and will only 
have a value when the document is in certain states;
-          // therefore, the query itself will only include checktime for those 
states where it makes sense.  An empty value
-          // means "from the beginning of time", or is equivalent to time 0.
-          long nowTime = 0L;
-          if (activeTimeOffsetMinutes.length() > 0) {
-            nowTime = System.currentTimeMillis() + (new 
Long(activeTimeOffsetMinutes).longValue()) * 60000L;
-            if (nowTime < 0L)
-              nowTime = 0L;
-          } else
-            nowTime = System.currentTimeMillis();
-
-          // Translate the states from a string to a number that will be 
understood by IJobManager.
-          int[] matchingStates;
-          if (documentStateTypes == null) {
-            matchingStates = new int[]{IJobManager.DOCSTATE_NEVERPROCESSED, 
IJobManager.DOCSTATE_PREVIOUSLYPROCESSED, IJobManager.DOCSTATE_OUTOFSCOPE};
-          } else {
-            matchingStates = new int[documentStateTypes.length];
-            k = 0;
-            while (k < matchingStates.length) {
-              matchingStates[k] = new 
Integer(documentStateTypes[k]).intValue();
-              k++;
-            }
-          }
-          HashMap matchingStatesHash = new HashMap();
-          k = 0;
-          while (k < matchingStates.length) {
-            Integer state = new Integer(matchingStates[k++]);
-            matchingStatesHash.put(state, state);
-          }
-
-          // Convert the status from a string to a number that will be 
understood by IJobManager
-          int[] matchingStatuses;
-          if (documentStatusTypes == null) {
-            matchingStatuses = new int[]{IJobManager.DOCSTATUS_INACTIVE, 
IJobManager.DOCSTATUS_PROCESSING, IJobManager.DOCSTATUS_EXPIRING,
-                IJobManager.DOCSTATUS_DELETING, 
IJobManager.DOCSTATUS_READYFORPROCESSING, 
IJobManager.DOCSTATUS_READYFOREXPIRATION,
-                IJobManager.DOCSTATUS_WAITINGFORPROCESSING, 
IJobManager.DOCSTATUS_WAITINGFOREXPIRATION, 
IJobManager.DOCSTATUS_WAITINGFOREVER,
-                IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED};
-          } else {
-            matchingStatuses = new int[documentStatusTypes.length];
-            k = 0;
-            while (k < matchingStatuses.length) {
-              matchingStatuses[k] = new 
Integer(documentStatusTypes[k]).intValue();
-              k++;
-            }
-          }
-          HashMap matchingStatusesHash = new HashMap();
-          k = 0;
-          while (k < matchingStatuses.length) {
-            Integer status = new Integer(matchingStatuses[k++]);
-            matchingStatusesHash.put(status, status);
-          }
-
-      %>
-      <form class="standardform" name="report" action="execute.jsp" 
method="POST">
-        <input type="hidden" name="op" value="Continue"/>
-        <input type="hidden" name="type" value="queuestatus"/>
-        <table class="displaytable">
-          <tr>
-            <td class="separator" colspan="4">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td class="description" 
colspan="1"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Connection")%>
-            </td>
-            <td class="value" colspan="1">
-              <select name="statusconnection" size="3">
-                <option <%=(statusConnection.length() == 0) ? 
"selected=\"selected\"" : ""%> value="">-- 
<%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.NotSpecified")%> --</option>
-                <%
-                  int i = 0;
-                  while (i < connList.length) {
-                    IRepositoryConnection conn = connList[i++];
-                    String thisConnectionName = conn.getName();
-                    String thisDescription = conn.getDescription();
-                    if (thisDescription == null || thisDescription.length() == 
0)
-                      thisDescription = thisConnectionName;
-                %>
-                <option <%=(thisConnectionName.equals(statusConnection)) ? 
"selected=\"selected\"" : ""%> 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisConnectionName)%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%>
-                </option>
-                <%
-                  }
-                %>
-              </select>
-            </td>
-            <%
-              if (eligibleList != null) {
-            %>
-            <td class="description" 
colspan="1"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Jobs")%>
-            </td>
-            <td class="value" colspan="1">
-              <select multiple="true" name="statusjobs" size="3">
-                <%
-                  i = 0;
-                  while (i < eligibleList.length) {
-                    IJobDescription job = eligibleList[i++];
-                    String description = job.getDescription();
-                    Long identifier = job.getID();
-                %>
-                <option <%=((selectedJobs.get(identifier) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=identifier.toString()%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%>
-                </option>
-                <%
-                  }
-                %>
-              </select>
-            </td>
-            <%
-            } else {
-            %>
-            <td class="value" colspan="2"></td>
-            <%
-              }
-            %>
-
-          </tr>
-          <tr>
-            <td class="separator" colspan="4">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.TimeOffsetFromNowMinutes")%>
-            </td>
-            <td class="value" colspan="3">
-              <input name="statusscheduleoffset" type="text" size="6" 
value=""/>
-            </td>
-          </tr>
-          <tr>
-            <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentState")%>
-            </td>
-            <td class="value" colspan="3">
-              <input name="statusdocumentstates_posted" type="hidden" 
value="true"/>
-              <select name="statusdocumentstates" multiple="true" size="3">
-                <option <%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_NEVERPROCESSED)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATE_NEVERPROCESSED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsThatHaveNeverBeenProcessed")%>
-                </option>
-                <option <%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_PREVIOUSLYPROCESSED)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATE_PREVIOUSLYPROCESSED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsProcessedAtLeastOnce")%>
-                </option>
-                <option <%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_OUTOFSCOPE)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATE_OUTOFSCOPE)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsOutOfScope")%>
-                </option>
-              </select>
-            </td>
-          </tr>
-          <tr>
-            <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentState")%>
-            </td>
-            <td class="value" colspan="3">
-              <input name="statusdocumentstatuses_posted" type="hidden" 
value="true"/>
-              <select name="statusdocumentstatuses" multiple="true" size="3">
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_INACTIVE)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_INACTIVE)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsThatAreNoLongerActive")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_PROCESSING)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_PROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsCurrentlyInProgress")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_EXPIRING)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_EXPIRING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsCurrentlyBeingExpired")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_DELETING)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_DELETING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsCurrentlyBeingDeleted")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_READYFORPROCESSING)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_READYFORPROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsCurrentlyAvailableForProcessing")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_READYFOREXPIRATION)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_READYFOREXPIRATION)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsCurrentlyAvailableForExpiration")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFORPROCESSING)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFORPROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsNotYetProcessable")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFOREXPIRATION)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFOREXPIRATION)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsNotYetExpirable")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFOREVER)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFOREVER)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsWaitingForever")%>
-                </option>
-                <option <%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED)) == null) ? "" : 
"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.DocumentsHopcountExceeded")%>
-                </option>
-              </select>
-            </td>
-          </tr>
-          <tr>
-            <td class="separator" colspan="4">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td class="description">
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.DocumentIdentifierMatch")%>
-              </nobr>
-            </td>
-            <td class="value" colspan="3">
-              <input type="text" name="statusidentifiermatch" size="40" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(identifierMatch)%>'/>
-            </td>
-          </tr>
-          <tr>
-            <td class="description">
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.IdentifierClassDescription")%>
-              </nobr>
-            </td>
-            <td class="value" colspan="3">
-              <input type="text" name="statusbucketdesc" size="40" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(statusBucketDesc)%>'/></td>
-          </tr>
-          <tr>
-            <td class="separator" colspan="4">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td class="message" colspan="4">
-              <%
-                if (statusConnection.length() > 0 && 
statusJobIdentifiers.length > 0) {
-              %>
-              <a name="MainButton"><input type="button" 
value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Go")%>"
 onClick="javascript:Go()" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.ExecuteThisQuery")%>"/></a>
-              <%
-              } else {
-              %>
-              <a name="MainButton"><input type="button" 
value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Continue")%>"
 onClick="javascript:Continue()" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Continue")%>"/></a>
-              <%
-                }
-              %>
-            </td>
-          </tr>
-          <tr>
-            <td class="separator" colspan="4">
-              <hr/>
-            </td>
-          </tr>
-
-        </table>
-        <%
-          if (statusConnection.length() > 0) {
-            if (statusJobIdentifiers.length > 0) {
-              // Run the report.
-
-              // First, we need to gather the sort order object.
-              String sortOrderString = 
variableContext.getParameter("sortorder");
-              SortOrder sortOrder;
-              if (sortOrderString == null || sortOrderString.length() == 0)
-                sortOrder = new SortOrder();
-              else
-                sortOrder = new SortOrder(sortOrderString);
-
-              // Now, gather the column header that was clicked on (if any)
-              String clickedColumn = 
variableContext.getParameter("clickcolumn");
-              if (clickedColumn != null && clickedColumn.length() > 0)
-                sortOrder.clickColumn(clickedColumn);
-
-              // Gather the start
-              String startRowString = variableContext.getParameter("startrow");
-              int startRow = 0;
-              if (startRowString != null && startRowString.length() > 0)
-                startRow = Integer.parseInt(startRowString);
-
-              // Gather the max
-              String maxRowCountString = 
variableContext.getParameter("rowcount");
-              int rowCount = 20;
-              if (maxRowCountString != null && maxRowCountString.length() > 0)
-                rowCount = Integer.parseInt(maxRowCountString);
-
-              Long[] ourJobs = new Long[selectedJobs.size()];
-              Iterator iter = selectedJobs.keySet().iterator();
-              int zz = 0;
-              while (iter.hasNext()) {
-                ourJobs[zz++] = (Long) iter.next();
-              }
-
-              RegExpCriteria identifierMatchObject = null;
-              if (identifierMatch.length() > 0)
-                identifierMatchObject = new RegExpCriteria(identifierMatch, 
true);
-              StatusFilterCriteria criteria = new 
StatusFilterCriteria(ourJobs, nowTime, identifierMatchObject, matchingStates, 
matchingStatuses);
-
-              BucketDescription idBucket = new 
BucketDescription(statusBucketDesc, false);
-              IResultSet set = jobManager.genQueueStatus(statusConnection, 
criteria, sortOrder, idBucket, startRow, rowCount + 1);
-
-        %>
-        <input type="hidden" name="clickcolumn" value=""/>
-        <input type="hidden" name="startrow" 
value='<%=Integer.toString(startRow)%>'/>
-        <input type="hidden" name="sortorder" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(sortOrder.toString())%>'/>
-
-        <table class="displaytable">
-          <tr class="headerrow">
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("idbucket");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.IdentifierClass")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("inactive");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Inactive")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("processing");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Processing")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("expiring");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Expiring")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("deleting");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Deleting")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("processready");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.AboutToProcess")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("expireready");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.AboutToExpire")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("processwaiting");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.WaitingForProcessing")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("expirewaiting");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.WaitingForExpiration")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("waitingforever");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.WaitingForever")%>
-              </nobr>
-            </a></td>
-            <td class="reportcolumnheader"><a href="javascript:void(0);" 
onclick='javascript:ColumnClick("hopcountexceeded");'>
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.HopcountExceeded")%>
-              </nobr>
-            </a></td>
-          </tr>
-          <%
-            zz = 0;
-            boolean hasMoreRows = (set.getRowCount() > rowCount);
-            int iterCount = hasMoreRows ? rowCount : set.getRowCount();
-            while (zz < iterCount) {
-              IResultRow row = set.getRow(zz);
-
-              // Translate column values into something that can be reasonably 
displayed.
-              // Note that the actual hard work of translating things to 
human-readable strings largely is done by the query itself; this is because
-              // we want to sort on the columns, so it has to be that way.
-
-              String idBucketValue = (String) row.getValue("idbucket");
-              if (idBucketValue == null)
-                idBucketValue = "";
-              String[] identifierBreakdown = 
org.apache.manifoldcf.ui.util.Formatter.formatString(idBucketValue, 64, true, 
true);
-
-          %>
-          <tr <%="class=\"" + ((zz % 2 == 0) ? "evendatarow" : "odddatarow") + 
"\""%>>
-            <td class="reportcolumncell">
-              <%
-                int q = 0;
-                while (q < identifierBreakdown.length) {
-              %>
-              
<nobr><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(identifierBreakdown[q++])%>
-              </nobr>
-              <br/>
-              <%
-                }
-              %>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("inactive").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processing").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expiring").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("deleting").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processready").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expireready").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processwaiting").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expirewaiting").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("waitingforever").toString())%>
-            </td>
-            <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("hopcountexceeded").toString())%>
-            </td>
-          </tr>
-          <%
-              zz++;
-            }
-          %>
-        </table>
-        <table class="reportfootertable">
-          <tr class="reportfooterrow">
-            <td class="reportfootercell">
-              <nobr>
-                <%
-                  if (startRow == 0) {
-                %>
-                
<%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Previous")%>
-                <%
-                } else {
-                %>
-                <a href="javascript:void(0);" 
onclick='<%="javascript:SetPosition("+Integer.toString(startRow-rowCount)+");"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.PreviousPage")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.Previous")%>
-                </a>
-                <%
-                  }
-                %>
-              </nobr>
-              <nobr>
-                <%
-                  if (hasMoreRows == false) {
-                %>
-                
<%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Next")%>
-                <%
-                } else {
-                %>
-                <a href="javascript:void(0);" 
onclick='<%="javascript:SetPosition("+Integer.toString(startRow+rowCount)+");"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.NextPage")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),
 "queuestatus.Next")%>
-                </a>
-                <%
-                  }
-                %>
-              </nobr>
-            </td>
-            <td class="reportfootercell">
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.Rows")%>
-              </nobr>
-              <nobr><%=Integer.toString(startRow)%>-<%=(hasMoreRows ? 
Integer.toString(startRow + rowCount - 1) : "END")%>
-              </nobr>
-            </td>
-            <td class="reportfootercell">
-              
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.RowsPerPage")%>
-              </nobr>
-              <nobr><input type="text" name="rowcount" size="5" 
value='<%=Integer.toString(rowCount)%>'/></nobr>
-            </td>
-          </tr>
-        </table>
-
-        <%
-        } else {
-        %>
-        <table class="displaytable">
-          <tr>
-            <td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.PleaseSelectAtLeastOneJob")%>
-            </td>
-          </tr>
-        </table>
-        <%
-          }
-        } else {
-        %>
-        <table class="displaytable">
-          <tr>
-            <td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.PleaseSelectaConnection")%>
-            </td>
-          </tr>
-        </table>
-        <%
-          }
-        %>
-      </form>
-      <%
-      } else {
-      %>
-      <table class="displaytable">
-        <tr>
-          <td class="separator" colspan="1">
-            <hr/>
-          </td>
-        </tr>
-        <tr>
-          <td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(), 
"queuestatus.PleaseTryAgainLater")%>
-          </td>
-        </tr>
-      </table>
-      <%
-        }
-      %>
-
-    </td>
-  </tr>
-</table>
+    <table class="page">
+      <tr><td colspan="2" class="banner"><jsp:include page="banner.jsp" 
flush="true"/></td></tr>
+      <tr><td class="navigation"><jsp:include page="navigation.jsp" 
flush="true"/></td>
+       <td class="window">
+       <p 
class="windowtitle"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.QueueStatus")%></p>
+<%
+if (maintenanceUnderway == false)
+{
+       int k;
+
+       // Read the document selection parameters.
+       
+       // The status report is connection based, so the connection has to be 
selected before anything else makes sense.
+       String statusConnection = 
variableContext.getParameter("statusconnection");
+       if (statusConnection == null)
+               statusConnection = "";
+       
+       // Which jobs we care about also figure in the selection part of the 
query.  It is the user's responsibility to pick jobs
+       // that are in desired states.
+       String[] statusJobIdentifiers = 
variableContext.getParameterValues("statusjobs");
+       if (statusJobIdentifiers == null)
+               statusJobIdentifiers = new String[0];
+
+       // We can select documents from the queue based on the earliest time 
they can be acted upon.  This is specified in
+       // a delta in minutes offset from "now".  Empty means that we don't 
want to select on that criteria.
+       String activeTimeOffsetMinutes = 
variableContext.getParameter("statusscheduleoffset");
+       if (activeTimeOffsetMinutes == null)
+               activeTimeOffsetMinutes = "";
+       
+       // There is a selection criteria also based on the document state; 
these are integers defined in IJobManager.
+       String[] documentStateTypes;
+       if (variableContext.getParameter("statusdocumentstates_posted") != null)
+       {
+               documentStateTypes = 
variableContext.getParameterValues("statusdocumentstates");
+               if (documentStateTypes == null)
+                       documentStateTypes = new String[0];
+       }
+       else
+               documentStateTypes = null;
+       
+       // There is a selection criteria based on the document status; these 
are also integers defined in IJobManager.
+       String[] documentStatusTypes;
+       if (variableContext.getParameter("statusdocumentstatuses_posted") != 
null)
+       {
+               documentStatusTypes = 
variableContext.getParameterValues("statusdocumentstatuses");
+               if (documentStatusTypes == null)
+                       documentStatusTypes = new String[0];
+       }
+       else
+               documentStatusTypes = null;
+
+       // Match string for the document identifier
+       String identifierMatch = 
variableContext.getParameter("statusidentifiermatch");
+       if (identifierMatch == null)
+               identifierMatch = "";
+
+       String statusBucketDesc = 
variableContext.getParameter("statusbucketdesc");
+       if (statusBucketDesc == null)
+               statusBucketDesc = "(.*)";
+
+       // From the passed-in selection values, calculate the actual selection 
criteria that we'll use in the queries.
+       IRepositoryConnectionManager connMgr = 
RepositoryConnectionManagerFactory.make(threadContext);
+       IRepositoryConnection[] connList = connMgr.getAllConnections();
+       
+       IJobManager jobManager = JobManagerFactory.make(threadContext);
+
+       // Repository connection name: This simply needs to be mapped to an 
eligible list of identifiers.
+       IJobDescription[] eligibleList = null;
+       HashMap selectedJobs = null;
+       if (statusConnection.length() > 0)
+       {
+               eligibleList = 
jobManager.findJobsForConnection(statusConnection);
+               selectedJobs = new HashMap();
+               k = 0;
+               while (k < statusJobIdentifiers.length)
+               {
+                       Long identifier = new Long(statusJobIdentifiers[k++]);
+                       selectedJobs.put(identifier,identifier);
+               }
+       }
+       
+       // Time offset: Need to calculate the actual time in ms since epoch to 
use to query against the "checktime" field.
+       // Note that the checktime field is actually nullable and will only 
have a value when the document is in certain states;
+       // therefore, the query itself will only include checktime for those 
states where it makes sense.  An empty value
+       // means "from the beginning of time", or is equivalent to time 0.
+       long nowTime = 0L;
+       if (activeTimeOffsetMinutes.length() > 0)
+       {
+               nowTime = System.currentTimeMillis() + (new 
Long(activeTimeOffsetMinutes).longValue()) * 60000L;
+               if (nowTime < 0L)
+                       nowTime = 0L;
+       }
+       else
+               nowTime = System.currentTimeMillis();
+
+       // Translate the states from a string to a number that will be 
understood by IJobManager.
+       int[] matchingStates;
+       if (documentStateTypes == null)
+       {
+               matchingStates = new 
int[]{IJobManager.DOCSTATE_NEVERPROCESSED,IJobManager.DOCSTATE_PREVIOUSLYPROCESSED,IJobManager.DOCSTATE_OUTOFSCOPE};
+       }
+       else
+       {
+               matchingStates = new int[documentStateTypes.length];
+               k = 0;
+               while (k < matchingStates.length)
+               {
+                       matchingStates[k] = new 
Integer(documentStateTypes[k]).intValue();
+                       k++;
+               }
+       }
+       HashMap matchingStatesHash = new HashMap();
+       k = 0;
+       while (k < matchingStates.length)
+       {
+               Integer state = new Integer(matchingStates[k++]);
+               matchingStatesHash.put(state,state);
+       }
+       
+       // Convert the status from a string to a number that will be understood 
by IJobManager
+       int[] matchingStatuses;
+       if (documentStatusTypes == null)
+       {
+               matchingStatuses = new 
int[]{IJobManager.DOCSTATUS_INACTIVE,IJobManager.DOCSTATUS_PROCESSING,IJobManager.DOCSTATUS_EXPIRING,
+                       
IJobManager.DOCSTATUS_DELETING,IJobManager.DOCSTATUS_READYFORPROCESSING,IJobManager.DOCSTATUS_READYFOREXPIRATION,
+                       
IJobManager.DOCSTATUS_WAITINGFORPROCESSING,IJobManager.DOCSTATUS_WAITINGFOREXPIRATION,IJobManager.DOCSTATUS_WAITINGFOREVER,
+                       IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED};
+       }
+       else
+       {
+               matchingStatuses = new int[documentStatusTypes.length];
+               k = 0;
+               while (k < matchingStatuses.length)
+               {
+                       matchingStatuses[k] = new 
Integer(documentStatusTypes[k]).intValue();
+                       k++;
+               }
+       }
+       HashMap matchingStatusesHash = new HashMap();
+       k = 0;
+       while (k < matchingStatuses.length)
+       {
+               Integer status = new Integer(matchingStatuses[k++]);
+               matchingStatusesHash.put(status,status);
+       }
+       
+%>
+       <form class="standardform" name="report" action="execute.jsp" 
method="POST">
+               <input type="hidden" name="op" value="Continue"/>
+               <input type="hidden" name="type" value="queuestatus"/>
+               <table class="displaytable">
+                       <tr>
+                               <td class="separator" colspan="4"><hr/></td>
+                       </tr>
+                       <tr>
+                               <td class="description" 
colspan="1"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Connection")%></td><td
 class="value" colspan="1">
+                                       <select name="statusconnection" 
size="3">
+                                               <option 
<%=(statusConnection.length()==0)?"selected=\"selected\"":""%> value="">-- 
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.NotSpecified")%>
 --</option>
+<%
+       int i = 0;
+       while (i < connList.length)
+       {
+               IRepositoryConnection conn = connList[i++];
+               String thisConnectionName = conn.getName();
+               String thisDescription = conn.getDescription();
+               if (thisDescription == null || thisDescription.length() == 0)
+                       thisDescription = thisConnectionName;
+%>
+                                               <option 
<%=(thisConnectionName.equals(statusConnection))?"selected=\"selected\"":""%> 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(thisConnectionName)%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(thisDescription)%></option>
+<%
+       }
+%>
+                                       </select>
+                               </td>
+<%
+       if (eligibleList != null)
+       {
+%>
+                               <td class="description" 
colspan="1"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Jobs")%></td><td
 class="value" colspan="1">
+                                       <select multiple="true" 
name="statusjobs" size="3">
+<%
+           i = 0;
+           while (i < eligibleList.length)
+           {
+               IJobDescription job = eligibleList[i++];
+               String description = job.getDescription();
+               Long identifier = job.getID();
+%>
+                                               <option 
<%=((selectedJobs.get(identifier)==null)?"":"selected=\"selected\"")%> 
value='<%=identifier.toString()%>'><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(description)%></option>
+<%
+           }
+%>
+                                       </select>
+                               </td>
+<%
+       }
+       else
+       {
+%>
+                               <td class="value" colspan="2"></td>
+<%
+       }
+%>
+
+                       </tr>
+                       <tr>
+                               <td class="separator" colspan="4"><hr/></td>
+                       </tr>
+                       <tr>
+                               <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.TimeOffsetFromNowMinutes")%></td>
+                               <td class="value" colspan="3">
+                                       <input name="statusscheduleoffset" 
type="text" size="6" value=""/>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentState")%></td>
+                               <td class="value" colspan="3">
+                                       <input 
name="statusdocumentstates_posted" type="hidden" value="true"/>
+                                       <select name="statusdocumentstates" 
multiple="true" size="3">
+                                               <option 
<%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_NEVERPROCESSED))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATE_NEVERPROCESSED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsThatHaveNeverBeenProcessed")%></option>
+                                               <option 
<%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_PREVIOUSLYPROCESSED))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATE_PREVIOUSLYPROCESSED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsProcessedAtLeastOnce")%></option>
+                                               <option 
<%=((matchingStatesHash.get(new 
Integer(IJobManager.DOCSTATE_OUTOFSCOPE))==null)?"":"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATE_OUTOFSCOPE)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsOutOfScope")%></option>
+                                       </select>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td 
class="description"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentState")%></td>
+                               <td class="value" colspan="3">
+                                       <input 
name="statusdocumentstatuses_posted" type="hidden" value="true"/>
+                                       <select name="statusdocumentstatuses" 
multiple="true" size="3">
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_INACTIVE))==null)?"":"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_INACTIVE)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsThatAreNoLongerActive")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_PROCESSING))==null)?"":"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_PROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsCurrentlyInProgress")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_EXPIRING))==null)?"":"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_EXPIRING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsCurrentlyBeingExpired")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_DELETING))==null)?"":"selected=\"selected\"")%> 
value='<%=Integer.toString(IJobManager.DOCSTATUS_DELETING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsCurrentlyBeingDeleted")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_READYFORPROCESSING))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_READYFORPROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsCurrentlyAvailableForProcessing")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_READYFOREXPIRATION))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_READYFOREXPIRATION)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsCurrentlyAvailableForExpiration")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFORPROCESSING))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFORPROCESSING)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsNotYetProcessable")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFOREXPIRATION))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFOREXPIRATION)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsNotYetExpirable")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_WAITINGFOREVER))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_WAITINGFOREVER)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsWaitingForever")%></option>
+                                               <option 
<%=((matchingStatusesHash.get(new 
Integer(IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED))==null)?"":"selected=\"selected\"")%>
 
value='<%=Integer.toString(IJobManager.DOCSTATUS_HOPCOUNTEXCEEDED)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentsHopcountExceeded")%></option>
+                                       </select>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td class="separator" colspan="4"><hr/></td>
+                       </tr>
+                       <tr>
+                               <td 
class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.DocumentIdentifierMatch")%></nobr></td>
+                               <td class="value" colspan="3"><input 
type="text" name="statusidentifiermatch" size="40" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(identifierMatch)%>'/></td>
+                       </tr>
+                       <tr>
+                               <td 
class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClassDescription")%></nobr></td>
+                               <td class="value" colspan="3"><input 
type="text" name="statusbucketdesc" size="40" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(statusBucketDesc)%>'/></td>
+                       </tr>
+                       <tr>
+                               <td class="separator" colspan="4"><hr/></td>
+                       </tr>
+                       <tr>
+                               <td class="message" colspan="4">
+<%
+       if (statusConnection.length() > 0 && statusJobIdentifiers.length > 0)
+       {
+%>
+                                       <a name="MainButton"><input 
type="button" 
value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Go")%>"
 onClick="javascript:Go()" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.ExecuteThisQuery")%>"/></a>
+<%
+       }
+       else
+       {
+%>
+                                       <a name="MainButton"><input 
type="button" 
value="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Continue")%>"
 onClick="javascript:Continue()" 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.Continue")%>"/></a>
+<%
+       }
+%>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td class="separator" colspan="4"><hr/></td>
+                       </tr>
+
+               </table>
+<%
+       if (statusConnection.length() > 0)
+       {
+           if (statusJobIdentifiers.length > 0)
+           {
+               // Run the report.
+
+               // First, we need to gather the sort order object.
+               String sortOrderString = 
variableContext.getParameter("sortorder");
+               SortOrder sortOrder;
+               if (sortOrderString == null || sortOrderString.length() == 0)
+                       sortOrder = new SortOrder();
+               else
+                       sortOrder = new SortOrder(sortOrderString);
+
+               // Now, gather the column header that was clicked on (if any)
+               String clickedColumn = 
variableContext.getParameter("clickcolumn");
+               if (clickedColumn != null && clickedColumn.length() > 0)
+                       sortOrder.clickColumn(clickedColumn);
+
+               // Gather the start
+               String startRowString = 
variableContext.getParameter("startrow");
+               int startRow = 0;
+               if (startRowString != null && startRowString.length() > 0)
+                       startRow = Integer.parseInt(startRowString);
+
+               // Gather the max
+               String maxRowCountString = 
variableContext.getParameter("rowcount");
+               int rowCount = 20;
+               if (maxRowCountString != null && maxRowCountString.length() > 0)
+                       rowCount = Integer.parseInt(maxRowCountString);
+
+               Long[] ourJobs = new Long[selectedJobs.size()];
+               Iterator iter = selectedJobs.keySet().iterator();
+               int zz = 0;
+               while (iter.hasNext())
+               {
+                       ourJobs[zz++] = (Long)iter.next();
+               }
+
+               RegExpCriteria identifierMatchObject = null;
+               if (identifierMatch.length() > 0)
+                       identifierMatchObject = new 
RegExpCriteria(identifierMatch,true);
+               StatusFilterCriteria criteria = new 
StatusFilterCriteria(ourJobs,nowTime,identifierMatchObject,matchingStates,matchingStatuses);
+
+               BucketDescription idBucket = new 
BucketDescription(statusBucketDesc,false);
+               IResultSet set = 
jobManager.genQueueStatus(statusConnection,criteria,sortOrder,idBucket,startRow,rowCount+1);
+
+%>
+               <input type="hidden" name="clickcolumn" value=""/>
+               <input type="hidden" name="startrow" 
value='<%=Integer.toString(startRow)%>'/>
+               <input type="hidden" name="sortorder" 
value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(sortOrder.toString())%>'/>
+
+               <table class="displaytable">
+                   <tr class="headerrow">
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("idbucket");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.IdentifierClass")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("inactive");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Inactive")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("processing");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Processing")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("expiring");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Expiring")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("deleting");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Deleting")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("processready");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.AboutToProcess")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("expireready");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.AboutToExpire")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("processwaiting");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.WaitingForProcessing")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("expirewaiting");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.WaitingForExpiration")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("waitingforever");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.WaitingForever")%></nobr></a></td>
+                       <td class="reportcolumnheader"><a 
href="javascript:void(0);" 
onclick='javascript:ColumnClick("hopcountexceeded");'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.HopcountExceeded")%></nobr></a></td>
+                   </tr>
+<%
+               zz = 0;
+               boolean hasMoreRows = (set.getRowCount() > rowCount);
+               int iterCount = hasMoreRows?rowCount:set.getRowCount();
+               while (zz < iterCount)
+               {
+                   IResultRow row = set.getRow(zz);
+                   
+                   // Translate column values into something that can be 
reasonably displayed.
+                   // Note that the actual hard work of translating things to 
human-readable strings largely is done by the query itself; this is because
+                   // we want to sort on the columns, so it has to be that way.
+
+                   String idBucketValue = (String)row.getValue("idbucket");
+                   if (idBucketValue == null)
+                       idBucketValue = "";
+                   String[] identifierBreakdown = 
org.apache.manifoldcf.ui.util.Formatter.formatString(idBucketValue,64,true,true);
+                       
+%>
+                   <tr 
<%="class=\""+((zz%2==0)?"evendatarow":"odddatarow")+"\""%>>
+                       <td class="reportcolumncell">
+<%
+                   int q = 0;
+                   while (q < identifierBreakdown.length)
+                   {
+%>
+                               
<nobr><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(identifierBreakdown[q++])%></nobr><br/>
+<%
+                   }
+%>
+                       </td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("inactive").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processing").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expiring").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("deleting").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processready").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expireready").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("processwaiting").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("expirewaiting").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("waitingforever").toString())%></td>
+                       <td 
class="reportcolumncell"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(row.getValue("hopcountexceeded").toString())%></td>
+                   </tr>
+<%
+                       zz++;
+               }
+%>
+               </table>
+               <table class="reportfootertable">
+                   <tr class="reportfooterrow">
+                       <td class="reportfootercell">
+                               <nobr>
+<%
+               if (startRow == 0)
+               {
+%>
+                                       
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Previous")%>
+<%
+               }
+               else
+               {
+%>
+                                       <a href="javascript:void(0);" 
onclick='<%="javascript:SetPosition("+Integer.toString(startRow-rowCount)+");"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.PreviousPage")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Previous")%></a>
+<%
+               }
+%>
+                               </nobr>
+                               <nobr>
+<%
+               if (hasMoreRows == false)
+               {
+%>
+                                       
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Next")%>
+<%
+               }
+               else
+               {
+%>
+                                       <a href="javascript:void(0);" 
onclick='<%="javascript:SetPosition("+Integer.toString(startRow+rowCount)+");"%>'
 
alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"queuestatus.NextPage")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Next")%></a>
+<%
+               }
+%>
+                               </nobr>
+                       </td>
+                       <td class="reportfootercell">
+                               
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.Rows")%></nobr>
+                               
<nobr><%=Integer.toString(startRow)%>-<%=(hasMoreRows?Integer.toString(startRow+rowCount-1):"END")%></nobr>
+                       </td>
+                       <td class="reportfootercell">
+                               
<nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.RowsPerPage")%></nobr>
+                               <nobr><input type="text" name="rowcount" 
size="5" value='<%=Integer.toString(rowCount)%>'/></nobr>
+                       </td>
+                   </tr>
+               </table>
+
+<%
+           }
+           else
+           {
+%>
+               <table class="displaytable"><tr><td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.PleaseSelectAtLeastOneJob")%></td></tr></table>
+<%
+           }
+       }
+       else
+       {
+%>
+               <table class="displaytable"><tr><td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.PleaseSelectaConnection")%></td></tr></table>
+<%
+       }
+%>
+       </form>
+<%
+}
+else
+{
+%>
+               <table class="displaytable">
+                       <tr><td class="separator" colspan="1"><hr/></td></tr>
+                       <tr><td 
class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"queuestatus.PleaseTryAgainLater")%></td></tr>
+               </table>
+<%
+}
+%>
+
+       </td>
+      </tr>
+    </table>
 
 </body>
 


Reply via email to