xxl-job

jobinfo.index.ftl 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>任务调度中心</title>
  5. <#import "/common/common.macro.ftl" as netCommon>
  6. <@netCommon.commonStyle />
  7. <!-- DataTables -->
  8. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/plugins/datatables/dataTables.bootstrap.css">
  9. </head>
  10. <body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && "off" == cookieMap["adminlte_settings"].value >sidebar-collapse</#if>">
  11. <div class="wrapper">
  12. <!-- header -->
  13. <@netCommon.commonHeader />
  14. <!-- left -->
  15. <@netCommon.commonLeft />
  16. <!-- Content Wrapper. Contains page content -->
  17. <div class="content-wrapper">
  18. <!-- Content Header (Page header) -->
  19. <section class="content-header">
  20. <h1>任务调度中心<small>调度管理</small></h1>
  21. <!--
  22. <ol class="breadcrumb">
  23. <li><a><i class="fa fa-dashboard"></i>调度管理</a></li>
  24. <li class="active">调度中心</li>
  25. </ol>
  26. -->
  27. </section>
  28. <!-- Main content -->
  29. <section class="content">
  30. <div class="row">
  31. <div class="col-xs-4">
  32. <div class="input-group">
  33. <span class="input-group-addon">任务组</span>
  34. <select class="form-control" id="jobGroup" >
  35. <#list JobGroupList as group>
  36. <option value="${group}" >${group.desc}</option>
  37. </#list>
  38. </select>
  39. </div>
  40. </div>
  41. <div class="col-xs-4">
  42. <div class="input-group">
  43. <span class="input-group-addon">任务名</span>
  44. <input type="text" class="form-control" id="jobName" value="${jobName}" autocomplete="on" >
  45. </div>
  46. </div>
  47. <div class="col-xs-2">
  48. <button class="btn btn-block btn-info" id="searchBtn">搜索</button>
  49. </div>
  50. <div class="col-xs-2">
  51. <button class="btn btn-block btn-success add" type="button">+新增任务</button>
  52. </div>
  53. </div>
  54. <div class="row">
  55. <div class="col-xs-12">
  56. <div class="box">
  57. <div class="box-header">
  58. <h3 class="box-title">调度列表</h3>
  59. </div>
  60. <div class="box-body">
  61. <table id="job_list" class="table table-bordered table-striped">
  62. <thead>
  63. <tr>
  64. <th name="id" >id</th>
  65. <th name="jobGroup" >任务组</th>
  66. <th name="jobName" >任务名</th>
  67. <th name="jobDesc" >描述</th>
  68. <th name="jobCron" >Cron</th>
  69. <th name="jobClass" >JobBean</th>
  70. <th name="jobData" >任务数据</th>
  71. <th name="addTime" >新增时间</th>
  72. <th name="updateTime" >更新时间</th>
  73. <th name="author" >负责人</th>
  74. <th name="alarmEmail" >报警邮件</th>
  75. <th name="alarmThreshold" >报警阀值</th>
  76. <th name="glueSwitch" >GLUE模式</th>
  77. <th name="jobStatus" >状态</th>
  78. <th>操作</th>
  79. </tr>
  80. </thead>
  81. <tbody></tbody>
  82. <tfoot></tfoot>
  83. </table>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </section>
  89. </div>
  90. <!-- footer -->
  91. <@netCommon.commonFooter />
  92. </div>
  93. <!-- job新增.模态框 -->
  94. <div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-hidden="true">
  95. <div class="modal-dialog modal-lg">
  96. <div class="modal-content">
  97. <div class="modal-header">
  98. <h4 class="modal-title" >新增任务调度信息</h4>
  99. </div>
  100. <div class="modal-body">
  101. <form class="form-horizontal form" role="form" >
  102. <div class="form-group">
  103. <label for="firstname" class="col-sm-2 control-label">任务组<font color="red">*</font></label>
  104. <div class="col-sm-4">
  105. <select class="form-control" name="jobGroup" >
  106. <#list JobGroupList as group>
  107. <option value="${group}" >${group.desc}</option>
  108. </#list>
  109. </select>
  110. </div>
  111. <label for="firstname" class="col-sm-2 control-label">任务名<font color="red">*</font></label>
  112. <div class="col-sm-4"><input type="text" class="form-control" name="jobName" placeholder="请输入“任务名”" minlength="4" maxlength="100" ></div>
  113. </div>
  114. <div class="form-group">
  115. <label for="lastname" class="col-sm-2 control-label">Corn<font color="red">*</font></label>
  116. <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="请输入“Corn”" maxlength="100" ></div>
  117. <label for="lastname" class="col-sm-2 control-label">描述<font color="red">*</font></label>
  118. <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="请输入“描述”" maxlength="200" ></div>
  119. </div>
  120. <div class="form-group">
  121. <label for="lastname" class="col-sm-2 control-label">执行器地址<font color="red">*</font></label>
  122. <div class="col-sm-4"><input type="text" class="form-control" name="handler_address" placeholder="请输入“执行器地址”" maxlength="200" ></div>
  123. <label for="lastname" class="col-sm-2 control-label">jobHandler<font color="red">*</font></label>
  124. <div class="col-sm-4"><input type="text" class="form-control" name="handler_name" placeholder="请输入“jobHandler”" maxlength="200" ></div>
  125. </div>
  126. <div class="form-group">
  127. <label for="firstname" class="col-sm-2 control-label">执行参数<font color="black">*</font></label>
  128. <div class="col-sm-4"><input type="text" class="form-control" name="handler_params" placeholder="请输入“执行参数”" maxlength="100" ></div>
  129. <label for="lastname" class="col-sm-2 control-label">负责人<font color="red">*</font></label>
  130. <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="请输入“负责人”" maxlength="200" ></div>
  131. </div>
  132. <div class="form-group">
  133. <label for="lastname" class="col-sm-2 control-label">报警邮件<font color="red">*</font></label>
  134. <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="请输入“报警邮件”,多个邮件地址逗号分隔" maxlength="200" ></div>
  135. <label for="lastname" class="col-sm-2 control-label">报警阈值<font color="red">*</font></label>
  136. <div class="col-sm-4"><input type="text" class="form-control" name="alarmThreshold" placeholder="请输入“报警阈值”" maxlength="200" ></div>
  137. </div>
  138. <div class="form-group">
  139. <div class="col-sm-offset-3 col-sm-6">
  140. <button type="submit" class="btn btn-primary" >保存</button>
  141. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  142. </div>
  143. <div class="col-sm-3">
  144. <div class="checkbox">
  145. <label><input type="checkbox" class="ifGLUE" >开启GLUE模式<font color="black">*</font></label>
  146. <input type="hidden" name="glueSwitch" value="0" >
  147. </div>
  148. </div>
  149. </div>
  150. <input type="hidden" name="glueRemark" value="GLUE代码初始化" >
  151. <textarea name="glueSource" style="display:none;" >
  152. package com.xxl.job.service.handler;
  153. import org.slf4j.Logger;
  154. import org.slf4j.LoggerFactory;
  155. import com.xxl.job.core.handler.IJobHandler;
  156. import com.xxl.job.core.handler.IJobHandler.JobHandleStatus;
  157. public class DemoJobHandler extends IJobHandler {
  158. private static transient Logger logger = LoggerFactory.getLogger(DemoJobHandler.class);
  159. @Override
  160. public JobHandleStatus execute(String... params) throws Exception {
  161. logger.info("XXL-JOB, Hello World.");
  162. return JobHandleStatus.SUCCESS;
  163. }
  164. }
  165. </textarea>
  166. </form>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. <!-- 更新.模态框 -->
  172. <div class="modal fade" id="updateModal" tabindex="-1" role="dialog" aria-hidden="true">
  173. <div class="modal-dialog modal-lg">
  174. <div class="modal-content">
  175. <div class="modal-header">
  176. <h4 class="modal-title" >更新任务调度信息</h4>
  177. </div>
  178. <div class="modal-body">
  179. <form class="form-horizontal form" role="form" >
  180. <div class="form-group">
  181. <label for="firstname" class="col-sm-2 control-label">任务组<font color="red">*</font></label>
  182. <div class="col-sm-4"><input type="text" class="form-control" name="jobGroup" placeholder="请输入“任务组”" minlength="4" maxlength="100" readonly ></div>
  183. <label for="firstname" class="col-sm-2 control-label">任务名<font color="red">*</font></label>
  184. <div class="col-sm-4"><input type="text" class="form-control" name="jobName" placeholder="请输入“任务名”" minlength="4" maxlength="100" readonly ></div>
  185. </div>
  186. <div class="form-group">
  187. <label for="lastname" class="col-sm-2 control-label">Corn<font color="red">*</font></label>
  188. <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="请输入“Corn”" maxlength="100" ></div>
  189. <label for="lastname" class="col-sm-2 control-label">描述<font color="red">*</font></label>
  190. <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="请输入“描述”" maxlength="200" ></div>
  191. </div>
  192. <div class="form-group">
  193. <label for="lastname" class="col-sm-2 control-label">执行器地址<font color="red">*</font></label>
  194. <div class="col-sm-4"><input type="text" class="form-control" name="handler_address" placeholder="请输入“执行器地址”" maxlength="200" ></div>
  195. <label for="lastname" class="col-sm-2 control-label">jobHandler<font color="red">*</font></label>
  196. <div class="col-sm-4"><input type="text" class="form-control" name="handler_name" placeholder="请输入“jobHandler”" maxlength="200" ></div>
  197. </div>
  198. <div class="form-group">
  199. <label for="firstname" class="col-sm-2 control-label">执行参数<font color="black">*</font></label>
  200. <div class="col-sm-4"><input type="text" class="form-control" name="handler_params" placeholder="请输入“执行参数”" maxlength="100" ></div>
  201. <label for="lastname" class="col-sm-2 control-label">负责人<font color="red">*</font></label>
  202. <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="请输入“负责人”" maxlength="200" ></div>
  203. </div>
  204. <div class="form-group">
  205. <label for="lastname" class="col-sm-2 control-label">报警邮件<font color="red">*</font></label>
  206. <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="请输入“报警邮件”,多个邮件地址逗号分隔" maxlength="200" ></div>
  207. <label for="lastname" class="col-sm-2 control-label">报警阈值<font color="red">*</font></label>
  208. <div class="col-sm-4"><input type="text" class="form-control" name="alarmThreshold" placeholder="请输入“报警阈值”" maxlength="200" ></div>
  209. </div>
  210. <div class="form-group">
  211. <div class="col-sm-offset-3 col-sm-6">
  212. <button type="submit" class="btn btn-primary" >保存</button>
  213. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  214. </div>
  215. <div class="col-sm-3">
  216. <div class="checkbox">
  217. <label><input type="checkbox" class="ifGLUE" >开启GLUE模式<font color="black">*</font></label>
  218. <input type="hidden" name="glueSwitch" value="0" >
  219. </div>
  220. </div>
  221. </div>
  222. </form>
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. <@netCommon.commonScript />
  228. <@netCommon.comAlert />
  229. <!-- DataTables -->
  230. <script src="${request.contextPath}/static/adminlte/plugins/datatables/jquery.dataTables.min.js"></script>
  231. <script src="${request.contextPath}/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js"></script>
  232. <script src="${request.contextPath}/static/plugins/jquery/jquery.validate.min.js"></script>
  233. <!-- daterangepicker -->
  234. <script src="${request.contextPath}/static/adminlte/plugins/daterangepicker/moment.min.js"></script>
  235. <script src="${request.contextPath}/static/adminlte/plugins/daterangepicker/daterangepicker.js"></script>
  236. <script src="${request.contextPath}/static/js/jobinfo.index.1.js"></script>
  237. </body>
  238. </html>