提交 | 用户 | 时间
e7c126 1 <!DOCTYPE html>
H 2 <html>
3 <head>
4       <#import "../common/common.macro.ftl" as netCommon>
5     <@netCommon.commonStyle />
6     <!-- DataTables -->
7       <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
8     <title>${I18n.admin_name}</title>
9 </head>
10 <body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if>">
11 <div class="wrapper">
12     <!-- header -->
13     <@netCommon.commonHeader />
14     <!-- left -->
15     <@netCommon.commonLeft "jobinfo" />
16     
17     <!-- Content Wrapper. Contains page content -->
18     <div class="content-wrapper">
19         <!-- Content Header (Page header) -->
20         <section class="content-header">
21             <h1>${I18n.jobinfo_name}</h1>
22         </section>
23         
24         <!-- Main content -->
25         <section class="content">
26         
27             <div class="row">
28                 <div class="col-xs-3">
29                       <div class="input-group">
30                         <span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
31                         <select class="form-control" id="jobGroup" >
32                             <#list JobGroupList as group>
325d2f 33                                 <option value="${group.id?number?string(',##0')}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
e7c126 34                             </#list>
H 35                           </select>
36                       </div>
37                 </div>
38                 <div class="col-xs-1">
39                     <div class="input-group">
40                         <select class="form-control" id="triggerStatus" >
41                             <option value="-1" >${I18n.system_all}</option>
42                             <option value="0" >${I18n.jobinfo_opt_stop}</option>
43                             <option value="1" >${I18n.jobinfo_opt_start}</option>
44                         </select>
45                     </div>
46                 </div>
47                 <div class="col-xs-2">
48                     <div class="input-group">
49                         <input type="text" class="form-control" id="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" >
50                     </div>
51                 </div>
52                 <div class="col-xs-2">
53                     <div class="input-group">
54                         <input type="text" class="form-control" id="executorHandler" placeholder="${I18n.system_please_input}JobHandler" >
55                     </div>
56                 </div>
57                 <div class="col-xs-2">
58                     <div class="input-group">
59                         <input type="text" class="form-control" id="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" >
60                     </div>
61                 </div>
62                 <div class="col-xs-1">
63                     <button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button>
64                 </div>
65                 <div class="col-xs-1">
66                     <button class="btn btn-block btn-success add" type="button">${I18n.jobinfo_field_add}</button>
67                 </div>
68               </div>
69             
70             <div class="row">
71                 <div class="col-xs-12">
72                     <div class="box">
73                         <#--<div class="box-header hide">
74                             <h3 class="box-title">调度列表</h3>
75                         </div>-->
76                         <div class="box-body" >
77                               <table id="job_list" class="table table-bordered table-striped" width="100%" >
78                                 <thead>
79                                     <tr>
80                                         <th name="id" >${I18n.jobinfo_field_id}</th>
81                                         <th name="jobGroup" >${I18n.jobinfo_field_jobgroup}</th>
82                                           <th name="jobDesc" >${I18n.jobinfo_field_jobdesc}</th>
83                                         <th name="scheduleType" >${I18n.schedule_type}</th>
84                                         <th name="glueType" >${I18n.jobinfo_field_gluetype}</th>
85                                         <th name="executorParam" >${I18n.jobinfo_field_executorparam}</th>
86                                           <th name="addTime" >addTime</th>
87                                           <th name="updateTime" >updateTime</th>
88                                           <th name="author" >${I18n.jobinfo_field_author}</th>
89                                           <th name="alarmEmail" >${I18n.jobinfo_field_alarmemail}</th>
90                                           <th name="triggerStatus" >${I18n.system_status}</th>
91                                           <th>${I18n.system_opt}</th>
92                                     </tr>
93                                 </thead>
94                                 <tbody></tbody>
95                                 <tfoot></tfoot>
96                             </table>
97                         </div>
98                     </div>
99                 </div>
100             </div>
101         </section>
102     </div>
103     
104     <!-- footer -->
105     <@netCommon.commonFooter />
106 </div>
107
108 <!-- job新增.模态框 -->
109 <div class="modal fade" id="addModal" tabindex="-1" role="dialog"  aria-hidden="true">
110     <div class="modal-dialog modal-lg">
111         <div class="modal-content">
112             <div class="modal-header">
113                 <h4 class="modal-title" >${I18n.jobinfo_field_add}</h4>
114              </div>
115              <div class="modal-body">
116                 <form class="form-horizontal form" role="form" >
117
118                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_base}</p>    <#-- 基础信息 -->
119                     <div class="form-group">
120                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
121                         <div class="col-sm-4">
122                             <select class="form-control" name="jobGroup" >
123                                 <#list JobGroupList as group>
325d2f 124                                     <option value="${group.id?number?string(',##0')}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
e7c126 125                                 </#list>
H 126                               </select>
127                         </div>
128
129                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
130                         <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" maxlength="50" ></div>
131                     </div>
132                     <div class="form-group">
133                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
134                         <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" maxlength="50" ></div>
135                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
136                         <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
137                     </div>
138
139                     <br>
140                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_schedule}</p>    <#-- 调度 -->
141                     <div class="form-group">
142                         <label for="firstname" class="col-sm-2 control-label">${I18n.schedule_type}<font color="red">*</font></label>
143                         <div class="col-sm-4">
144                             <select class="form-control scheduleType" name="scheduleType" >
145                                 <#list ScheduleTypeEnum as item>
146                                     <option value="${item}" <#if 'CRON' == item >selected</#if> >${item.title}</option>
147                                 </#list>
148                             </select>
149                         </div>
150
151                         <input type="hidden" name="scheduleConf" />
152                         <div class="schedule_conf schedule_conf_NONE" style="display: none" >
153                         </div>
154                         <div class="schedule_conf schedule_conf_CRON" >
155                             <label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
156                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_CRON" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
157                         </div>
158                         <div class="schedule_conf schedule_conf_FIX_RATE" style="display: none" >
159                             <label for="lastname" class="col-sm-2 control-label">${I18n.schedule_type_fix_rate}<font color="red">*</font></label>
160                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_FIX_RATE" placeholder="${I18n.system_please_input} ( Second )" maxlength="10" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
161                         </div>
162                         <div class="schedule_conf schedule_conf_FIX_DELAY" style="display: none" >
163                             <label for="lastname" class="col-sm-2 control-label">${I18n.schedule_type_fix_delay}<font color="red">*</font></label>
164                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_FIX_DELAY" placeholder="${I18n.system_please_input} ( Second )" maxlength="10" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
165                         </div>
166                     </div>
167
168                     <br>
169                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_job}</p>    <#-- 任务配置 -->
170
171                     <div class="form-group">
172                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
173                         <div class="col-sm-4">
174                             <select class="form-control glueType" name="glueType" >
175                                 <#list GlueTypeEnum as item>
176                                     <option value="${item}" >${item.desc}</option>
177                                 </#list>
178                             </select>
179                         </div>
180                         <label for="firstname" class="col-sm-2 control-label">JobHandler<font color="red">*</font></label>
181                         <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
182                     </div>
183
184                     <div class="form-group">
185                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
186                         <div class="col-sm-10">
187                             <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
188                         </div>
189                     </div>
190
191                     <br>
192                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_advanced}</p>    <#-- 高级配置 -->
193
194                     <div class="form-group">
195                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="black">*</font></label>
196                         <div class="col-sm-4">
197                             <select class="form-control" name="executorRouteStrategy" >
198                             <#list ExecutorRouteStrategyEnum as item>
199                                 <option value="${item}" >${item.title}</option>
200                             </#list>
201                             </select>
202                         </div>
203
204                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
205                         <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
206                     </div>
207
208                     <div class="form-group">
209                         <label for="firstname" class="col-sm-2 control-label">${I18n.misfire_strategy}<font color="black">*</font></label>
210                         <div class="col-sm-4">
211                             <select class="form-control" name="misfireStrategy" >
212                                 <#list MisfireStrategyEnum as item>
213                                     <option value="${item}" <#if 'DO_NOTHING' == item >selected</#if> >${item.title}</option>
214                                 </#list>
215                             </select>
216                         </div>
217
218                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="black">*</font></label>
219                         <div class="col-sm-4">
220                             <select class="form-control" name="executorBlockStrategy" >
221                                 <#list ExecutorBlockStrategyEnum as item>
222                                     <option value="${item}" >${item.title}</option>
223                                 </#list>
224                             </select>
225                         </div>
226                     </div>
227
228                     <div class="form-group">
229                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_timeout}<font color="black">*</font></label>
230                         <div class="col-sm-4"><input type="text" class="form-control" name="executorTimeout" placeholder="${I18n.jobinfo_field_executorTimeout_placeholder}" maxlength="6" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
231                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailRetryCount}<font color="black">*</font></label>
232                         <div class="col-sm-4"><input type="text" class="form-control" name="executorFailRetryCount" placeholder="${I18n.jobinfo_field_executorFailRetryCount_placeholder}" maxlength="4" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
233                     </div>
234
235                     <hr>
236                     <div class="form-group">
237                         <div class="col-sm-offset-3 col-sm-6">
238                             <button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
239                             <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
240                         </div>
241                     </div>
242
243 <input type="hidden" name="glueRemark" value="GLUE代码初始化" >
244 <textarea name="glueSource" style="display:none;" ></textarea>
245 <textarea class="glueSource_java" style="display:none;" >
246 package com.xxl.job.service.handler;
247
248 import com.xxl.job.core.context.XxlJobHelper;
249 import com.xxl.job.core.handler.IJobHandler;
250
251 public class DemoGlueJobHandler extends IJobHandler {
252
253     @Override
254     public void execute() throws Exception {
255         XxlJobHelper.log("XXL-JOB, Hello World.");
256     }
257
258 }
259 </textarea>
260 <textarea class="glueSource_shell" style="display:none;" >
261 #!/bin/bash
262 echo "xxl-job: hello shell"
263
264 echo "${I18n.jobinfo_script_location}:$0"
265 echo "${I18n.jobinfo_field_executorparam}:$1"
266 echo "${I18n.jobinfo_shard_index} = $2"
267 echo "${I18n.jobinfo_shard_total} = $3"
268 <#--echo "参数数量:$#"
269 for param in $*
270 do
271     echo "参数 : $param"
272     sleep 1s
273 done-->
274
275 echo "Good bye!"
276 exit 0
277 </textarea>
278 <textarea class="glueSource_python" style="display:none;" >
279 #!/usr/bin/python
280 # -*- coding: UTF-8 -*-
281 import time
282 import sys
283
284 print "xxl-job: hello python"
285
286 print "${I18n.jobinfo_script_location}:", sys.argv[0]
287 print "${I18n.jobinfo_field_executorparam}:", sys.argv[1]
288 print "${I18n.jobinfo_shard_index}:", sys.argv[2]
289 print "${I18n.jobinfo_shard_total}:", sys.argv[3]
290 <#--for i in range(1, len(sys.argv)):
291     time.sleep(1)
292     print "参数", i, sys.argv[i]-->
293
294 print "Good bye!"
295 exit(0)
296 <#--
297 import logging
298 logging.basicConfig(level=logging.DEBUG)
299 logging.info("脚本文件:" + sys.argv[0])
300 -->
301 </textarea>
302 <#--这里有问题,新建一个运行模式为 php 的任务后,GLUE 中没有下边的 php 代码-->
303 <textarea class="glueSource_php" style="display:none;" >
304 <?php
305
306     echo "xxl-job: hello php  \n";
307
308     echo "${I18n.jobinfo_script_location}:$argv[0]  \n";
309     echo "${I18n.jobinfo_field_executorparam}:$argv[1]  \n";
310     echo "${I18n.jobinfo_shard_index} = $argv[2]  \n";
311     echo "${I18n.jobinfo_shard_total} = $argv[3]  \n";
312
313     echo "Good bye!  \n";
314     exit(0);
315
316 ?>
317 </textarea>
318 <textarea class="glueSource_nodejs" style="display:none;" >
319 #!/usr/bin/env node
320 console.log("xxl-job: hello nodejs")
321
322 var arguments = process.argv
323
324 console.log("${I18n.jobinfo_script_location}: " + arguments[1])
325 console.log("${I18n.jobinfo_field_executorparam}: " + arguments[2])
326 console.log("${I18n.jobinfo_shard_index}: " + arguments[3])
327 console.log("${I18n.jobinfo_shard_total}: " + arguments[4])
328 <#--for (var i = 2; i < arguments.length; i++){
329     console.log("参数 %s = %s", (i-1), arguments[i]);
330 }-->
331
332 console.log("Good bye!")
333 process.exit(0)
334 </textarea>
335 <textarea class="glueSource_powershell" style="display:none;" >
336 Write-Host "xxl-job: hello powershell"
337
338 Write-Host "${I18n.jobinfo_script_location}: " $MyInvocation.MyCommand.Definition
339 Write-Host "${I18n.jobinfo_field_executorparam}: "
340     if ($args.Count -gt 2) { $args[0..($args.Count-3)] }
341 Write-Host "${I18n.jobinfo_shard_index}: " $args[$args.Count-2]
342 Write-Host "${I18n.jobinfo_shard_total}: " $args[$args.Count-1]
343
344 Write-Host "Good bye!"
345 exit 0
346 </textarea>
347                 </form>
348              </div>
349         </div>
350     </div>
351 </div>
352
353 <!-- 更新.模态框 -->
354 <div class="modal fade" id="updateModal" tabindex="-1" role="dialog"  aria-hidden="true">
355     <div class="modal-dialog modal-lg">
356         <div class="modal-content">
357             <div class="modal-header">
358                 <h4 class="modal-title" >${I18n.jobinfo_field_update}</h4>
359              </div>
360              <div class="modal-body">
361                 <form class="form-horizontal form" role="form" >
362
363                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_base}</p>    <#-- 基础信息 -->
364                     <div class="form-group">
365                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
366                         <div class="col-sm-4">
367                             <select class="form-control" name="jobGroup" >
368                                 <#list JobGroupList as group>
325d2f 369                                     <option value="${group.id?number?string(',##0')}" >${group.title}</option>
e7c126 370                                 </#list>
H 371                             </select>
372                         </div>
373
374                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
375                         <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" maxlength="50" ></div>
376                     </div>
377                     <div class="form-group">
378                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
379                         <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" maxlength="50" ></div>
380                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
381                         <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
382                     </div>
383
384                     <br>
385                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_schedule}</p>    <#-- 调度配置 -->
386                     <div class="form-group">
387                         <label for="firstname" class="col-sm-2 control-label">${I18n.schedule_type}<font color="red">*</font></label>
388                         <div class="col-sm-4">
389                             <select class="form-control scheduleType" name="scheduleType" >
390                                 <#list ScheduleTypeEnum as item>
391                                     <option value="${item}" >${item.title}</option>
392                                 </#list>
393                             </select>
394                         </div>
395
396                         <input type="hidden" name="scheduleConf" />
397                         <div class="schedule_conf schedule_conf_NONE" style="display: none" >
398                         </div>
399                         <div class="schedule_conf schedule_conf_CRON" >
400                             <label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
401                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_CRON" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
402                         </div>
403                         <div class="schedule_conf schedule_conf_FIX_RATE" style="display: none" >
404                             <label for="lastname" class="col-sm-2 control-label">${I18n.schedule_type_fix_rate}<font color="red">*</font></label>
405                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_FIX_RATE" placeholder="${I18n.system_please_input} ( Second )" maxlength="10" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
406                         </div>
407                         <div class="schedule_conf schedule_conf_FIX_DELAY" style="display: none" >
408                             <label for="lastname" class="col-sm-2 control-label">${I18n.schedule_type_fix_delay}<font color="red">*</font></label>
409                             <div class="col-sm-4"><input type="text" class="form-control" name="schedule_conf_FIX_DELAY" placeholder="${I18n.system_please_input} ( Second )" maxlength="10" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
410                         </div>
411                     </div>
412
413                     <br>
414                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_job}</p>    <#-- 任务配置 -->
415
416                     <div class="form-group">
417                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
418                         <div class="col-sm-4">
419                             <select class="form-control glueType" name="glueType" disabled >
420                                 <#list GlueTypeEnum as item>
421                                     <option value="${item}" >${item.desc}</option>
422                                 </#list>
423                             </select>
424                         </div>
425                         <label for="firstname" class="col-sm-2 control-label">JobHandler<font color="red">*</font></label>
426                         <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
427                     </div>
428
429                     <div class="form-group">
430                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
431                         <div class="col-sm-10">
432                             <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
433                         </div>
434                     </div>
435
436                     <br>
437                     <p style="margin: 0 0 10px;text-align: left;border-bottom: 1px solid #e5e5e5;color: gray;">${I18n.jobinfo_conf_advanced}</p>    <#-- 高级配置 -->
438
439                     <div class="form-group">
440                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="red">*</font></label>
441                         <div class="col-sm-4">
442                             <select class="form-control" name="executorRouteStrategy" >
443                                 <#list ExecutorRouteStrategyEnum as item>
444                                     <option value="${item}" >${item.title}</option>
445                                 </#list>
446                             </select>
447                         </div>
448
449                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
450                         <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
451                     </div>
452
453                     <div class="form-group">
454                         <label for="firstname" class="col-sm-2 control-label">${I18n.misfire_strategy}<font color="black">*</font></label>
455                         <div class="col-sm-4">
456                             <select class="form-control" name="misfireStrategy" >
457                                 <#list MisfireStrategyEnum as item>
458                                     <option value="${item}" <#if 'DO_NOTHING' == item >selected</#if> >${item.title}</option>
459                                 </#list>
460                             </select>
461                         </div>
462
463                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="red">*</font></label>
464                         <div class="col-sm-4">
465                             <select class="form-control" name="executorBlockStrategy" >
466                                 <#list ExecutorBlockStrategyEnum as item>
467                                     <option value="${item}" >${item.title}</option>
468                                 </#list>
469                             </select>
470                         </div>
471                     </div>
472
473                     <div class="form-group">
474                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_timeout}<font color="black">*</font></label>
475                         <div class="col-sm-4"><input type="text" class="form-control" name="executorTimeout" placeholder="${I18n.jobinfo_field_executorTimeout_placeholder}" maxlength="6" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
476                         <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailRetryCount}<font color="black">*</font></label>
477                         <div class="col-sm-4"><input type="text" class="form-control" name="executorFailRetryCount" placeholder="${I18n.jobinfo_field_executorFailRetryCount_placeholder}" maxlength="4" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" ></div>
478                     </div>
479
480                     <hr>
481                     <div class="form-group">
482                         <div class="col-sm-offset-3 col-sm-6">
483                             <button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
484                             <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
485                             <input type="hidden" name="id" >
486                         </div>
487                     </div>
488
489                 </form>
490              </div>
491         </div>
492     </div>
493 </div>
494
495 <#-- trigger -->
496 <div class="modal fade" id="jobTriggerModal" tabindex="-1" role="dialog"  aria-hidden="true">
497     <div class="modal-dialog ">
498         <div class="modal-content">
499             <div class="modal-header">
500                 <h4 class="modal-title" >${I18n.jobinfo_opt_run}</h4>
501             </div>
502             <div class="modal-body">
503                 <form class="form-horizontal form" role="form" >
504                     <div class="form-group">
505                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
506                         <div class="col-sm-10">
507                             <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
508                         </div>
509                     </div>
510                     <div class="form-group">
511                         <label for="firstname" class="col-sm-2 control-label">${I18n.jobgroup_field_registryList}<font color="black">*</font></label>
512                         <div class="col-sm-10">
513                             <textarea class="textarea form-control" name="addressList" placeholder="${I18n.jobinfo_opt_run_tips}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
514                         </div>
515                     </div>
516                     <hr>
517                     <div class="form-group">
518                         <div class="col-sm-offset-3 col-sm-6">
519                             <button type="button" class="btn btn-primary ok" >${I18n.system_save}</button>
520                             <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
521                             <input type="hidden" name="id" >
522                         </div>
523                     </div>
524                 </form>
525             </div>
526         </div>
527     </div>
528 </div>
529
530 <@netCommon.commonScript />
531 <!-- DataTables -->
532 <script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
533 <script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
534 <!-- moment -->
535 <script src="${request.contextPath}/static/adminlte/bower_components/moment/moment.min.js"></script>
536 <#-- cronGen -->
537 <script src="${request.contextPath}/static/plugins/cronGen/cronGen<#if I18n.admin_i18n?default('')?length gt 0 >_${I18n.admin_i18n}</#if>.js"></script>
538 <script src="${request.contextPath}/static/js/jobinfo.index.1.js"></script>
539 </body>
540 </html>