[Ils-source] r1626 - trunk/webapp

scribe at crosswire.org scribe at crosswire.org
Mon Nov 12 07:30:34 MST 2018


Author: scribe
Date: 2018-11-12 07:30:34 -0700 (Mon, 12 Nov 2018)
New Revision: 1626

Modified:
   trunk/webapp/admin_systemmanagement.jsp
Log:
added staging time and scheduled jobs section to admin system management


Modified: trunk/webapp/admin_systemmanagement.jsp
===================================================================
--- trunk/webapp/admin_systemmanagement.jsp	2018-11-12 14:29:54 UTC (rev 1625)
+++ trunk/webapp/admin_systemmanagement.jsp	2018-11-12 14:30:34 UTC (rev 1626)
@@ -4,8 +4,9 @@
     contentType="text/html;charset=utf-8"
 %>
 <%@ page trimDirectiveWhitespaces="true" %>
-<%@ page import="com.resolutions.ils.*" %>
+<%@ page import="org.crosswire.utils.Utils" %>
 <%@ page import="com.resolutions.ils.data.*" %>
+<%@ page import="com.resolutions.ils.ILSSession" %>
 <%@ page import="java.util.List" %>
 <%@ page import="java.util.ArrayList" %>
 <%@ page import="java.util.Comparator" %>
@@ -21,6 +22,11 @@
 <%@ page import="org.apache.commons.fileupload.*" %>
 <%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
 <%@ page import="org.apache.log4j.Logger" %>
+<%@ page import="org.quartz.Scheduler" %>
+<%@ page import="org.quartz.JobKey" %>
+<%@ page import="org.quartz.Trigger" %>
+<%@ page import="org.quartz.impl.StdSchedulerFactory" %>
+<%@ page import="org.quartz.impl.matchers.GroupMatcher" %>
 
 <%
 	Logger logger = Logger.getLogger(this.getClass());
@@ -193,7 +199,7 @@
     String validError = "";
 
     Company current = null;
-    SimpleDateFormat df  = new SimpleDateFormat("MM/dd/yyyy");
+    SimpleDateFormat df  = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss z");
 
     try {
       current = Company.getCompany(ilsSession);
@@ -477,6 +483,27 @@
 		statusMsg = "Sent Manager Compliance Emails.";
 		logger.debug("Finished Sending Manager Compliance Emails");
 	}
+	if ("runJob".equals(action)) {
+		String jobGroup = request.getParameter("jobGroup");
+		String jobName  = request.getParameter("jobName");
+		JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
+		Scheduler scheduler = new StdSchedulerFactory().getScheduler();
+		try {
+			scheduler.triggerJob(jobKey);
+			statusMsg = "Launching Job: " + jobName + ".";
+		}
+		catch (Exception e) {
+			statusMsg = "Problem Launching Job: " + jobName + ".";
+		}
+	}
+	if ("setTime".equals(action)) {
+		String stagedTime = request.getParameter("stagedTime");
+		Utils.setNow(df.parse(stagedTime).getTime());
+		statusMsg = "Setting Job Stage Time to: " + Utils.getNow();
+	}
+	if ("clearTime".equals(action)) {
+		Utils.setNow(null);
+	}
 
     if ("Save".equals(action)) {
     	boolean saveLog = false;
@@ -1147,7 +1174,7 @@
 <span class="instructiontxt"><%= statusMsg %></span><br/>
 <span class="instructiontxt"><%= validError %></span>
 </div>
-<form autocomplete="false" id="systemsave" method="post" action="admin_systemmanagement.jsp" enctype="multipart/form-data">
+<form autocomplete="off" id="systemsave" method="post" action="admin_systemmanagement.jsp" enctype="multipart/form-data">
 	<table cellpadding="0" id="tableForm" class="tableForm">
 	<tr>
 	      <th>Edit System Settings</th>
@@ -1158,7 +1185,7 @@
 	                          <table id="tableFormData" class="tableFormData">
 	                            <tr>
 	                              <td class="formHeadings">Version :</td>
-	                              <td colspan="2"><%=Utils.getVersionString()%></td>
+	                              <td colspan="2"><%=com.resolutions.ils.Utils.getVersionString()%></td>
 	                            </tr>
 	                            <tr>
 	                              <td class="formHeadings">Company ID :</td>
@@ -1256,17 +1283,17 @@
 	                            <tr>
 	                              <td class="formHeadings">Outgoing Mail User: </td>
 	                              <td colspan="2">
-<!-- the following two hidden fields are to try to prevent chrome from autofilling empty web server login fields with user's standard username and password.  Stupid Chrome doesn't obey autocompete="false"
+<!-- the following two hidden fields are to try to prevent chrome from autofilling empty web server login fields with user's standard username and password.  Stupid Chrome doesn't obey autocompete="off"
 these two fields get autofilled instead and are always ignored
  -->
 <input name="prevent_autofill" type="text" value="" style="display:none;" />
 <input name="prevent_autofill_password" type="password" value="" style="display:none;" />
 <!-- end of stupid 2 dummy field workaround for Chrome -->
 
-<input name="sendMailUser" type="text" value="<%=currentSendMailUser%>" size="40" autocomplete="false"/> </td> </tr>
+<input name="sendMailUser" type="text" value="<%=currentSendMailUser%>" size="40" autocomplete="off"/> </td> </tr>
 	                            <tr>
 	                              <td class="formHeadings">Outgoing Mail Password: </td>
-	                              <td colspan="2"><input name="sendMailPasswd" type="password" value="<%=currentSendMailPasswd%>" size="40" autocomplete="false"/>                              </td>
+	                              <td colspan="2"><input name="sendMailPasswd" type="password" value="<%=currentSendMailPasswd%>" size="40" autocomplete="off"/>                              </td>
 	                            </tr>
 	                            <tr>
 	                              <td class="formHeadings">Default "From" Email Address: </td>
@@ -1500,7 +1527,7 @@
 	                      </tr>
 	                      <tr>
 	                        <td>
-	                          <table id="tableFormData2" class="tableFormData">
+	                          <table id="tableFormData3" class="tableFormData">
 	                            <tr>
 	                              <td class="formHeadings">Enable: </td>
 	                              <td colspan="2"><input name="apiEnable" type="checkbox" value="on" <%="on".equals(currentAPIEnable)?"checked=\"checked\"":""%> size="40"/>                              </td>
@@ -1530,7 +1557,7 @@
 	                      </tr>
 	                      <tr>
 	                        <td>
-	                          <table id="tableFormData2" class="tableFormData">
+	                          <table id="tableFormData4" class="tableFormData">
 	                            <tr>
 	                              <td class="formHeadings">Enable: </td>
 	                              <td colspan="2"><input name="srEnable" type="checkbox" value="on" <%="on".equals(currentSREnable)?"checked=\"checked\"":""%> size="40"/>                              </td>
@@ -1580,13 +1607,13 @@
 				            </table> </td>
 				          </tr>
 	    </table>
-        <table cellpadding="0" id="tableFormSR" class="tableForm">
+        <table cellpadding="0" id="tableFormIPR" class="tableForm">
 	<tr>
 	                        <th>Course IP Address Restriction</th>
 	                      </tr>
 	                      <tr>
 	                        <td>
-	                          <table id="tableFormData2" class="tableFormData">
+	                          <table id="tableFormData5" class="tableFormData">
 	                            <tr>
 	                              <td class="formHeadings">Enable: </td>
 	                              <td colspan="2"><input name="ipEnable" type="checkbox" value="on" <%="on".equals(currentIPEnable)?"checked=\"checked\"":""%> size="40"/>                              </td>
@@ -1613,7 +1640,7 @@
 	                      </tr>
 	                      <tr>
 	                        <td>
-	                          <table id="tableFormData2" class="tableFormData">
+	                          <table id="tableFormData6" class="tableFormData">
 	                            <tr>
 	                              <td class="formHeadings">Enable: </td>
 	                              <td colspan="2"><input name="alternativeLoginValidationEnable" type="checkbox" value="on" <%="on".equals(currentAlternativeLoginValidationEnable)?"checked=\"checked\"":""%> size="40"/>                              </td>
@@ -1642,7 +1669,7 @@
 	    </table>
 </form>
 <br/>
-        <form autocomplete="false" id="announc" method="get" action="admin_systemmanagement.jsp">
+        <form autocomplete="off" id="announc" method="get" action="admin_systemmanagement.jsp">
                             <table cellpadding="0" cellspacing="0" class="tableMain">
                       <tr>
                         <th>Announcements</th>
@@ -1703,7 +1730,7 @@
           </table>
     </form>
         <br />
-        <form autocomplete="false" id="resourc" method="get" action="admin_systemmanagement.jsp">
+        <form autocomplete="off" id="resourc" method="get" action="admin_systemmanagement.jsp">
 
                     <table cellpadding="0" cellspacing="0" class="tableMain">
                       <tr>
@@ -1770,6 +1797,76 @@
                       </tr>
           </table>
     </form>
+        <br />
+	<table cellpadding="0" id="tableFormCron" class="tableMain">
+	<tr>
+		<th>Scheduled Jobs</th>
+	</tr>
+	<tr>
+		<td>
+			<form autocomplete="off" method="get" action="admin_systemmanagement.jsp">
+			<table class="tableDataList">
+				<tr>
+	                              <td class="formHeadings">Staged Time: </td>
+	                              <td colspan="3"><%=java.lang.Math.abs(Utils.getNowMillis() - System.currentTimeMillis()) > (1000 * 60) ? df.format(Utils.getNow()) : "[Not Set]"%></td>
+				<tr>
+	                              <td class="formHeadings">Set Staged Time: </td>
+	                              <td><input name="stagedTime" value="<%=df.format(Utils.getNow())%>" size="40"/></td>
+					<td>
+					<button name="action" value="setTime" style="horizontal-align: middle; display: block; margin:auto;">Set</button>
+					</td>
+					<td>
+					<button name="action" value="clearTime" style="horizontal-align: middle; display: block; margin:auto;">Clear</button>
+					</td>
+				</tr>
+			</table>
+			</form>
+		</td>
+	</tr>
+	<tr>
+		<td>
+			<table class="tableDataList">
+				<tr>
+					<th>Job Name</th>
+					<th>Next Run</th>
+					<th></th>
+				</tr>
+<%
+	Scheduler scheduler = new StdSchedulerFactory().getScheduler();
+    	
+	for (String groupName : scheduler.getJobGroupNames()) {
+
+		for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
+				
+			String jobName = jobKey.getName();
+			String jobGroup = jobKey.getGroup();
+
+			//get job's trigger
+			List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey);
+			Date nextFireTime = triggers.get(0).getNextFireTime(); 
+			if (!"JobSchedulingDataLoaderPlugin".equals(jobGroup)) {
+	
+%>
+				<tr>
+					<td class="formHeadings"><%=jobName%></td>
+					<td class=""><%=nextFireTime%></td>
+					<td class=""><form autocomplete="off" method="get" action="admin_systemmanagement.jsp">
+						<input type="hidden" name="action" value="runJob">
+						<input type="hidden" name="jobGroup" value="<%=jobGroup%>">
+						<input type="hidden" name="jobName" value="<%=jobName%>">
+						<button style="horizontal-align: middle; display: block; margin:auto;">Run Now</button>
+					</form></td>
+				</tr>
+<%
+			}
+		}
+	}
+%>
+
+			</table>
+		</td>
+		</tr>
+	</table>
 </div>
 <%@ include file="footer.jsp" %>
 </div>




More information about the Ils-source mailing list