[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