You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by ki...@apache.org on 2015/06/09 03:30:37 UTC

svn commit: r1684303 [14/18] - in /manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp: ./ css/ javascript/ less/

Modified: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/showjobstatus.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/showjobstatus.jsp?rev=1684303&r1=1684302&r2=1684303&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/showjobstatus.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/showjobstatus.jsp Tue Jun  9 01:30:36 2015
@@ -2,298 +2,327 @@
 
 <%
 
-/* $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();
-
-%>
-
-<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(),"showjobstatus.ApacheManifoldCFStatusOfAllJobs")%>
-	</title>
-
-	<script type="text/javascript">
-	<!--
-
-	function Start(jobID)
-	{
-		document.liststatuses.op.value="Start";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function StartMinimal(jobID)
-	{
-		document.liststatuses.op.value="StartMinimal";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function Abort(jobID)
-	{
-		document.liststatuses.op.value="Abort";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function Restart(jobID)
-	{
-		document.liststatuses.op.value="Restart";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function RestartMinimal(jobID)
-	{
-		document.liststatuses.op.value="RestartMinimal";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function Pause(jobID)
-	{
-		document.liststatuses.op.value="Pause";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	function Resume(jobID)
-	{
-		document.liststatuses.op.value="Resume";
-		document.liststatuses.jobid.value=jobID;
-		document.liststatuses.submit();
-	}
-
-	//-->
-	</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(),"showjobstatus.StatusOfJobs")%></p>
-<%
-if (maintenanceUnderway == false)
-{
-%>
-	<form class="standardform" name="liststatuses" action="execute.jsp" method="POST">
-		<input type="hidden" name="op" value="Continue"/>
-		<input type="hidden" name="type" value="jobstatus"/>
-		<input type="hidden" name="jobid" value=""/>
-
-<%
-    try
-    {
-	// Get the max count
-	int maxCount = LockManagerFactory.getIntProperty(threadContext,"org.apache.manifoldcf.ui.maxstatuscount",500000);
-	// Get the job manager handle
-	IJobManager manager = JobManagerFactory.make(threadContext);
-	JobStatus[] jobs = manager.getAllStatus(true,maxCount);
-%>
-		<table class="datatable">
-			<tr>
-				<td class="separator" colspan="8"><hr/></td>
-			</tr>
-			<tr class="headerrow">
-				<td class="columnheader"></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Name")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Status")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.StartTime")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.EndTime")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Documents")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Active")%></td><td class="columnheader"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Processed")%></td>
-			</tr>
-<%
-	int i = 0;
-	while (i < jobs.length)
-	{
-		JobStatus js = jobs[i++];
-		String statusName;
-		int status = js.getStatus();
-		switch (status)
-		{
-		case JobStatus.JOBSTATUS_NOTYETRUN:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Notyetrun");
-			break;
-		case JobStatus.JOBSTATUS_RUNNING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Running");
-			break;
-		case JobStatus.JOBSTATUS_RUNNING_UNINSTALLED:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Runningnoconnector");
-			break;
-		case JobStatus.JOBSTATUS_ABORTING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborting");
-			break;
-		case JobStatus.JOBSTATUS_RESTARTING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restarting");
-			break;
-		case JobStatus.JOBSTATUS_STOPPING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Stopping");
-			break;
-		case JobStatus.JOBSTATUS_RESUMING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Resuming");
-			break;
-		case JobStatus.JOBSTATUS_PAUSED:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Paused");
-			break;
-		case JobStatus.JOBSTATUS_COMPLETED:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Done");
-			break;
-		case JobStatus.JOBSTATUS_WINDOWWAIT:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Waiting");
-			break;
-		case JobStatus.JOBSTATUS_STARTING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Startingup");
-			break;
-		case JobStatus.JOBSTATUS_DESTRUCTING:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Cleaningup");
-			break;
-		case JobStatus.JOBSTATUS_JOBENDCLEANUP:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Terminating");
-			break;
-		case JobStatus.JOBSTATUS_JOBENDNOTIFICATION:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Endnotification");
-			break;
-		case JobStatus.JOBSTATUS_ERROR:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.ErrorColon")+" "+js.getErrorText();
-			break;
-		default:
-			statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Unknown");
-			break;
-		}
-		String startTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Notstarted");
-		if (js.getStartTime() != -1L)
-			startTime = new Date(js.getStartTime()).toString();
-		String endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborted");
-		if (js.getStartTime() == -1L)
-			endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Neverrun");
-		else
-		{
-			if (js.getEndTime() == -1L)
-			{
-				if (status == JobStatus.JOBSTATUS_COMPLETED)
-					endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborted");
-				else
-					endTime = "";
-			}
-			else
-				endTime = new Date(js.getEndTime()).toString();
-		}
-%>
-		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
-			<td class="columncell">
-				<nobr>
-<%
-		if (status == JobStatus.JOBSTATUS_NOTYETRUN ||
-			status == JobStatus.JOBSTATUS_COMPLETED ||
-			status == JobStatus.JOBSTATUS_ERROR)
-		{
-%>
-					<a href='<%="javascript:Start(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Start")%></a>
-					<a href='<%="javascript:StartMinimal(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Startminimal")%></a>
-<%
-		}
-		if (status == JobStatus.JOBSTATUS_RUNNING ||
-			status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
-			status == JobStatus.JOBSTATUS_WINDOWWAIT ||
-			status == JobStatus.JOBSTATUS_PAUSED ||
-			status == JobStatus.JOBSTATUS_STARTING)
-		{
-%>
-					<a href='<%="javascript:Restart(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restart")%></a>
-					<a href='<%="javascript:RestartMinimal(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restartminimal")%></a>
-<%
-		}
-		if (status == JobStatus.JOBSTATUS_RUNNING ||
-			status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
-			status == JobStatus.JOBSTATUS_WINDOWWAIT)
-		{
-%>
-					<a href='<%="javascript:Pause(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Pausejob")+" "+js.getJobID()%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Pause")%></a>
-<%
-		}
-		if (status == JobStatus.JOBSTATUS_RUNNING ||
-			status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
-			status == JobStatus.JOBSTATUS_STOPPING ||
-			status == JobStatus.JOBSTATUS_RESUMING ||
-			status == JobStatus.JOBSTATUS_WINDOWWAIT ||
-			status == JobStatus.JOBSTATUS_PAUSED ||
-			status == JobStatus.JOBSTATUS_STARTING ||
-			status == JobStatus.JOBSTATUS_RESTARTING)
-		{
-%>
-					<a href='<%="javascript:Abort(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Abortjob")+" "+js.getJobID()%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Abort")%></a>
-<%
-		}
-		if (status == JobStatus.JOBSTATUS_PAUSED)
-		{
-%>
-					<a href='<%="javascript:Resume(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Resumejob")+" "+js.getJobID()%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Resume")%></a>
-<%
-		}
-%>
-				</nobr>
-			</td>
-			<td class="columncell"><%="<!--jobid="+js.getJobID()+"-->"%><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(js.getDescription())%></td><td class="columncell"><%=statusName%></td><td class="columncell"><%=startTime%></td><td class="columncell"><%=endTime%></td>
-			<td class="columncell"><%=(js.getQueueCountExact()?"":"&gt; ")%><%=new Long(js.getDocumentsInQueue()).toString()%></td>
-			<td class="columncell"><%=(js.getOutstandingCountExact()?"":"&gt; ")%><%=new Long(js.getDocumentsOutstanding()).toString()%></td>
-			<td class="columncell"><%=(js.getProcessedCountExact()?"":"&gt; ")%><%=new Long(js.getDocumentsProcessed()).toString()%></td>
-		</tr>
-<%
-	}
-%>
-
-			<tr>
-				<td class="separator" colspan="8"><hr/></td>
-			</tr>
-		<tr><td class="message" colspan="8"><a href="showjobstatus.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.RefreshStatus")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Refresh")%></a></td></tr>
-		</table>
-
-<%
-    }
-    catch (ManifoldCFException e)
-    {
-	out.println("Error: "+e.getMessage());
-
-	e.printStackTrace();
-    }
-%>
-	    </form>
-<%
-}
-else
-{
-%>
-		<table class="displaytable">
-			<tr><td class="separator" colspan="1"><hr/></td></tr>
-			<tr><td class="message"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.PleaseTryAgainLater")%></td></tr>
-		</table>
-<%
-}
-%>
-       </td>
-      </tr>
-    </table>
-
-
-</body>
-
-</html>
+ * 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();
+
+%>
+<script type="text/javascript">
+  <!--
+  $.ManifoldCF.setTitle('<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.ApacheManifoldCFStatusOfAllJobs")%>',
+      '<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.StatusOfJobs")%>',
+      'jobs'
+  );
+
+  function Start(jobID) {
+    document.liststatuses.op.value = "Start";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function StartMinimal(jobID) {
+    document.liststatuses.op.value = "StartMinimal";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function Abort(jobID) {
+    document.liststatuses.op.value = "Abort";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function Restart(jobID) {
+    document.liststatuses.op.value = "Restart";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function RestartMinimal(jobID) {
+    document.liststatuses.op.value = "RestartMinimal";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function Pause(jobID) {
+    document.liststatuses.op.value = "Pause";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  function Resume(jobID) {
+    document.liststatuses.op.value = "Resume";
+    document.liststatuses.jobid.value = jobID;
+    $.ManifoldCF.submit(document.liststatuses);
+  }
+
+  //-->
+</script>
+<div class="row">
+  <div class="col-md-12">
+    <div class="box box-primary">
+      <%
+        if (maintenanceUnderway == false) {
+      %>
+      <form class="standardform" name="liststatuses" action="execute.jsp" method="POST">
+        <input type="hidden" name="op" value="Continue"/>
+        <input type="hidden" name="type" value="jobstatus"/>
+        <input type="hidden" name="jobid" value=""/>
+
+        <div class="box-body">
+          <%
+            try {
+              // Get the max count
+              int maxCount = LockManagerFactory.getIntProperty(threadContext, "org.apache.manifoldcf.ui.maxstatuscount", 500000);
+              // Get the job manager handle
+              IJobManager manager = JobManagerFactory.make(threadContext);
+              JobStatus[] jobs = manager.getAllStatus(true, maxCount);
+          %>
+          <table class="table table-bordered">
+            <tr>
+              <th>Action</th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Name")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Status")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.StartTime")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.EndTime")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Documents")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Active")%>
+              </th>
+              <th><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Processed")%>
+              </th>
+            </tr>
+            <%
+              int i = 0;
+              while (i < jobs.length) {
+                JobStatus js = jobs[i++];
+                String statusName;
+                int status = js.getStatus();
+                switch (status) {
+                  case JobStatus.JOBSTATUS_NOTYETRUN:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Notyetrun");
+                    break;
+                  case JobStatus.JOBSTATUS_RUNNING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Running");
+                    break;
+                  case JobStatus.JOBSTATUS_RUNNING_UNINSTALLED:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Runningnoconnector");
+                    break;
+                  case JobStatus.JOBSTATUS_ABORTING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Aborting");
+                    break;
+                  case JobStatus.JOBSTATUS_RESTARTING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Restarting");
+                    break;
+                  case JobStatus.JOBSTATUS_STOPPING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Stopping");
+                    break;
+                  case JobStatus.JOBSTATUS_RESUMING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Resuming");
+                    break;
+                  case JobStatus.JOBSTATUS_PAUSED:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Paused");
+                    break;
+                  case JobStatus.JOBSTATUS_COMPLETED:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Done");
+                    break;
+                  case JobStatus.JOBSTATUS_WINDOWWAIT:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Waiting");
+                    break;
+                  case JobStatus.JOBSTATUS_STARTING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Startingup");
+                    break;
+                  case JobStatus.JOBSTATUS_DESTRUCTING:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Cleaningup");
+                    break;
+                  case JobStatus.JOBSTATUS_JOBENDCLEANUP:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Terminating");
+                    break;
+                  case JobStatus.JOBSTATUS_JOBENDNOTIFICATION:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Endnotification");
+                    break;
+                  case JobStatus.JOBSTATUS_ERROR:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.ErrorColon") + " " + js.getErrorText();
+                    break;
+                  default:
+                    statusName = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Unknown");
+                    break;
+                }
+                String startTime = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Notstarted");
+                if (js.getStartTime() != -1L)
+                  startTime = new Date(js.getStartTime()).toString();
+                String endTime = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Aborted");
+                if (js.getStartTime() == -1L)
+                  endTime = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Neverrun");
+                else {
+                  if (js.getEndTime() == -1L) {
+                    if (status == JobStatus.JOBSTATUS_COMPLETED)
+                      endTime = Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Aborted");
+                    else
+                      endTime = "";
+                  } else
+                    endTime = new Date(js.getEndTime()).toString();
+                }
+            %>
+            <tr>
+              <td>
+
+                <%
+                  if (status == JobStatus.JOBSTATUS_NOTYETRUN ||
+                      status == JobStatus.JOBSTATUS_COMPLETED ||
+                      status == JobStatus.JOBSTATUS_ERROR) {
+                %>
+                <a href='<%="javascript:Start(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-play" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Start")%>
+                </a>
+                <a href='<%="javascript:StartMinimal(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-compress" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Startminimal")%>
+                </a>
+                <%
+                  }
+                  if (status == JobStatus.JOBSTATUS_RUNNING ||
+                      status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
+                      status == JobStatus.JOBSTATUS_WINDOWWAIT ||
+                      status == JobStatus.JOBSTATUS_PAUSED ||
+                      status == JobStatus.JOBSTATUS_STARTING) {
+                %>
+                <a href='<%="javascript:Restart(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-play" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Restart")%>
+                </a>
+                <a href='<%="javascript:RestartMinimal(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-compress" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Restartminimal")%>
+                </a>
+                <%
+                  }
+                  if (status == JobStatus.JOBSTATUS_RUNNING ||
+                      status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
+                      status == JobStatus.JOBSTATUS_WINDOWWAIT) {
+                %>
+                <a href='<%="javascript:Pause(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Pausejob")+" "+js.getJobID()%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-pause" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Pause")%>
+                </a>
+                <%
+                  }
+                  if (status == JobStatus.JOBSTATUS_RUNNING ||
+                      status == JobStatus.JOBSTATUS_RUNNING_UNINSTALLED ||
+                      status == JobStatus.JOBSTATUS_STOPPING ||
+                      status == JobStatus.JOBSTATUS_RESUMING ||
+                      status == JobStatus.JOBSTATUS_WINDOWWAIT ||
+                      status == JobStatus.JOBSTATUS_PAUSED ||
+                      status == JobStatus.JOBSTATUS_STARTING ||
+                      status == JobStatus.JOBSTATUS_RESTARTING) {
+                %>
+                <a href='<%="javascript:Abort(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Abortjob")+" "+js.getJobID()%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-stop" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Abort")%>
+                </a>
+                <%
+                  }
+                  if (status == JobStatus.JOBSTATUS_PAUSED) {
+                %>
+                <a href='<%="javascript:Resume(\""+js.getJobID()+"\")"%>'
+                   alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Resumejob")+" "+js.getJobID()%>'
+                   class="btn btn-success btn-xs" role="button">
+                  <span class="fa fa-play" aria-hidden="true"></span>
+                  <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Resume")%>
+                </a>
+                <%
+                  }
+                %>
+
+              </td>
+              <td><%="<!--jobid=" + js.getJobID() + "-->"%><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(js.getDescription())%>
+              </td>
+              <td><%=statusName%>
+              </td>
+              <td><%=startTime%>
+              </td>
+              <td><%=endTime%>
+              </td>
+              <td><%=(js.getQueueCountExact() ? "" : "&gt; ")%><%=new Long(js.getDocumentsInQueue()).toString()%>
+              </td>
+              <td><%=(js.getOutstandingCountExact() ? "" : "&gt; ")%><%=new Long(js.getDocumentsOutstanding()).toString()%>
+              </td>
+              <td><%=(js.getProcessedCountExact() ? "" : "&gt; ")%><%=new Long(js.getDocumentsProcessed()).toString()%>
+              </td>
+            </tr>
+            <%
+              }
+            %>
+          </table>
+        </div>
+        <div class="box-footer clearfix">
+          <div class="btn-group">
+            <a href="showjobstatus.jsp"
+               alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.RefreshStatus")%>"
+               class="link btn btn-primary" role="button">
+              <span class="fa fa-refresh" aria-hidden="true"></span>
+              <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.Refresh")%>
+            </a>
+          </div>
+
+
+          <%
+            } catch (ManifoldCFException e) {
+              out.println("Error: " + e.getMessage());
+
+              e.printStackTrace();
+            }
+          %>
+        </div>
+      </form>
+      <%
+      } else {
+      %>
+      <div class="box-body">
+        <table class="table table-bordered">
+          <tr>
+            <td>
+              <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "showjobstatus.PleaseTryAgainLater")%>
+            </td>
+          </tr>
+        </table>
+      </div>
+      <%
+        }
+      %>
+    </div>
+  </div>
+</div>
\ No newline at end of file

Added: manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/sidebar.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/sidebar.jsp?rev=1684303&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/sidebar.jsp (added)
+++ manifoldcf/branches/CONNECTORS-1196/framework/crawler-ui/src/main/webapp/sidebar.jsp Tue Jun  9 01:30:36 2015
@@ -0,0 +1,191 @@
+<%@ include file="adminDefaults.jsp" %>
+
+<%
+
+  /* $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.
+ */
+%>
+<section class="sidebar">
+  <ul class="sidebar-menu">
+    <li class="header">MAIN NAVIGATION</li>
+    <li class="outputs treeview">
+      <a href="#">
+        <i class="glyphicon glyphicon-export"></i>
+			<span>
+				<%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Outputs")%>
+			</span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="listtransformations.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listtransformationconnections")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListTransformationConnections")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="listoutputs.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listoutputconnections")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListOutputConnections")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="authorities treeview">
+      <a href="#">
+        <i class="glyphicon glyphicon-user"></i>
+        <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Authorities")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="listgroups.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthoritygroups")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListAuthorityGroups")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="listmappers.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listusermappings")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListUserMappings")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="listauthorities.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listauthorities")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListAuthorityConnections")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="repositories treeview">
+      <a href="#">
+        <i class="glyphicon glyphicon-import"></i>
+        <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Repositories")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="listconnections.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listrepositoryconnections")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListRepositoryConnections")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="listnotifications.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listnotificationconnections")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListNotificationConnections")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="jobs treeview">
+      <a href="#">
+        <i class="fa fa-laptop"></i>
+        <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Jobs")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="listjobs.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Listjobs")%>">
+            <i class="glyphicon glyphicon-list"></i> <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ListAllJobs")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="showjobstatus.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Managejobs")%>">
+            <i class="glyphicon glyphicon-list"></i> <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.StatusAndJobManagement")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="statusreports treeview">
+      <a href="#">
+        <i class="fa fa-table"></i> <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.StatusReports")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="documentstatus.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Documentstatus")%>">
+            <i class="fa fa-file-text"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.DocumentStatus")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="queuestatus.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Queuestatus")%>">
+            <i class="glyphicon glyphicon-list"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.QueueStatus")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="historyreports treeview">
+      <a href="#">
+        <i class="fa fa-history"></i> <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.HistoryReports")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a class="link" href="simplereport.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Simplehistory")%>">
+            <i class="fa fa-history"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.SimpleHistory")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="maxactivityreport.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumactivity")%>">
+            <i class="fa fa-circle-o"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.MaximumActivity")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="maxbandwidthreport.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Maximumbandwidth")%>">
+            <i class="fa fa-bar-chart"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.MaximumBandwidth")%>
+          </a>
+        </li>
+        <li>
+          <a class="link" href="resultreport.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.Resulthistogram")%>">
+            <i class="fa fa-area-chart"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.ResultHistogram")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+    <li class="miscellaneous treeview">
+      <a href="#">
+        <i class="glyphicon glyphicon-info-sign"></i> <span><%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Miscellaneous")%></span>
+        <i class="fa fa-angle-left pull-right"></i>
+      </a>
+      <ul class="treeview-menu">
+        <li>
+          <a 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")%>">
+            <i class="fa fa-book"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.Help")%>
+          </a>
+        </li>
+        <li>
+          <a href="logout.jsp" alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"navigation.LogOut")%>">
+            <i class="glyphicon glyphicon-log-out"></i>
+            <%=Messages.getBodyString(pageContext.getRequest().getLocale(), "navigation.LogOut")%>
+          </a>
+        </li>
+      </ul>
+    </li>
+  </ul>
+</section>
\ No newline at end of file