|
@@ -19,12 +19,6 @@
|
19
|
19
|
<!-- Content Header (Page header) -->
|
20
|
20
|
<section class="content-header">
|
21
|
21
|
<h1>${I18n.jobinfo_name}</h1>
|
22
|
|
- <!--
|
23
|
|
- <ol class="breadcrumb">
|
24
|
|
- <li><a><i class="fa fa-dashboard"></i>调度管理</a></li>
|
25
|
|
- <li class="active">调度中心</li>
|
26
|
|
- </ol>
|
27
|
|
- -->
|
28
|
22
|
</section>
|
29
|
23
|
|
30
|
24
|
<!-- Main content -->
|
|
@@ -33,7 +27,7 @@
|
33
|
27
|
<div class="row">
|
34
|
28
|
<div class="col-xs-3">
|
35
|
29
|
<div class="input-group">
|
36
|
|
- <span class="input-group-addon">执行器</span>
|
|
30
|
+ <span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
|
37
|
31
|
<select class="form-control" id="jobGroup" >
|
38
|
32
|
<#list JobGroupList as group>
|
39
|
33
|
<option value="${group.id}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
|
|
@@ -43,7 +37,7 @@
|
43
|
37
|
</div>
|
44
|
38
|
<div class="col-xs-3">
|
45
|
39
|
<div class="input-group">
|
46
|
|
- <span class="input-group-addon">任务描述</span>
|
|
40
|
+ <span class="input-group-addon">${I18n.jobinfo_field_jobdesc}</span>
|
47
|
41
|
<input type="text" class="form-control" id="jobDesc" autocomplete="on" >
|
48
|
42
|
</div>
|
49
|
43
|
</div>
|
|
@@ -54,36 +48,35 @@
|
54
|
48
|
</div>
|
55
|
49
|
</div>
|
56
|
50
|
<div class="col-xs-1">
|
57
|
|
- <button class="btn btn-block btn-info" id="searchBtn">搜索</button>
|
|
51
|
+ <button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button>
|
58
|
52
|
</div>
|
59
|
53
|
<div class="col-xs-2">
|
60
|
|
- <button class="btn btn-block btn-success add" type="button">+新增任务</button>
|
|
54
|
+ <button class="btn btn-block btn-success add" type="button">${I18n.jobinfo_field_add}</button>
|
61
|
55
|
</div>
|
62
|
56
|
</div>
|
63
|
57
|
|
64
|
58
|
<div class="row">
|
65
|
59
|
<div class="col-xs-12">
|
66
|
60
|
<div class="box">
|
67
|
|
- <div class="box-header hide">
|
|
61
|
+ <#--<div class="box-header hide">
|
68
|
62
|
<h3 class="box-title">调度列表</h3>
|
69
|
|
- </div>
|
|
63
|
+ </div>-->
|
70
|
64
|
<div class="box-body" >
|
71
|
65
|
<table id="job_list" class="table table-bordered table-striped" width="100%" >
|
72
|
66
|
<thead>
|
73
|
67
|
<tr>
|
74
|
|
- <th name="id" >任务ID</th>
|
75
|
|
- <th name="jobGroup" >jobGroup</th>
|
76
|
|
- <th name="jobDesc" >描述</th>
|
77
|
|
- <th name="glueType" >运行模式</th>
|
78
|
|
- <th name="executorParam" >任务参数</th>
|
|
68
|
+ <th name="id" >${I18n.jobinfo_field_id}</th>
|
|
69
|
+ <th name="jobGroup" >${I18n.jobinfo_field_jobgroup}</th>
|
|
70
|
+ <th name="jobDesc" >${I18n.jobinfo_field_jobdesc}</th>
|
|
71
|
+ <th name="glueType" >${I18n.jobinfo_field_gluetype}</th>
|
|
72
|
+ <th name="executorParam" >${I18n.jobinfo_field_executorparam}</th>
|
79
|
73
|
<th name="jobCron" >Cron</th>
|
80
|
|
- <th name="addTime" >新增时间</th>
|
81
|
|
- <th name="updateTime" >更新时间</th>
|
82
|
|
- <th name="author" >负责人</th>
|
83
|
|
- <th name="alarmEmail" >报警邮件</th>
|
84
|
|
- <th name="glueType" >运行模式</th>
|
85
|
|
- <th name="jobStatus" >状态</th>
|
86
|
|
- <th>操作</th>
|
|
74
|
+ <th name="addTime" >addTime</th>
|
|
75
|
+ <th name="updateTime" >updateTime</th>
|
|
76
|
+ <th name="author" >${I18n.jobinfo_field_author}</th>
|
|
77
|
+ <th name="alarmEmail" >${I18n.jobinfo_field_alarmemail}</th>
|
|
78
|
+ <th name="jobStatus" >${I18n.system_status}</th>
|
|
79
|
+ <th>${I18n.system_opt}</th>
|
87
|
80
|
</tr>
|
88
|
81
|
</thead>
|
89
|
82
|
<tbody></tbody>
|
|
@@ -105,12 +98,12 @@
|
105
|
98
|
<div class="modal-dialog modal-lg">
|
106
|
99
|
<div class="modal-content">
|
107
|
100
|
<div class="modal-header">
|
108
|
|
- <h4 class="modal-title" >新增任务</h4>
|
|
101
|
+ <h4 class="modal-title" >${I18n.jobinfo_field_add}</h4>
|
109
|
102
|
</div>
|
110
|
103
|
<div class="modal-body">
|
111
|
104
|
<form class="form-horizontal form" role="form" >
|
112
|
105
|
<div class="form-group">
|
113
|
|
- <label for="firstname" class="col-sm-2 control-label">执行器<font color="red">*</font></label>
|
|
106
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
|
114
|
107
|
<div class="col-sm-4">
|
115
|
108
|
<select class="form-control" name="jobGroup" >
|
116
|
109
|
<#list JobGroupList as group>
|
|
@@ -118,11 +111,11 @@
|
118
|
111
|
</#list>
|
119
|
112
|
</select>
|
120
|
113
|
</div>
|
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="jobDesc" placeholder="请输入“描述”" maxlength="50" ></div>
|
|
114
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
|
|
115
|
+ <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>
|
123
|
116
|
</div>
|
124
|
117
|
<div class="form-group">
|
125
|
|
- <label for="firstname" class="col-sm-2 control-label">路由策略<font color="red">*</font></label>
|
|
118
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="red">*</font></label>
|
126
|
119
|
<div class="col-sm-4">
|
127
|
120
|
<select class="form-control" name="executorRouteStrategy" >
|
128
|
121
|
<#list ExecutorRouteStrategyEnum as item>
|
|
@@ -131,10 +124,10 @@
|
131
|
124
|
</select>
|
132
|
125
|
</div>
|
133
|
126
|
<label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
|
134
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="请输入“Cron”" maxlength="128" ></div>
|
|
127
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
|
135
|
128
|
</div>
|
136
|
129
|
<div class="form-group">
|
137
|
|
- <label for="firstname" class="col-sm-2 control-label">运行模式<font color="red">*</font></label>
|
|
130
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
|
138
|
131
|
<div class="col-sm-4">
|
139
|
132
|
<select class="form-control glueType" name="glueType" >
|
140
|
133
|
<#list GlueTypeEnum as item>
|
|
@@ -143,16 +136,16 @@
|
143
|
136
|
</select>
|
144
|
137
|
</div>
|
145
|
138
|
<label for="firstname" class="col-sm-2 control-label">JobHandler<font color="black">*</font></label>
|
146
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="请输入“JobHandler”" maxlength="100" ></div>
|
|
139
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
|
147
|
140
|
</div>
|
148
|
141
|
<div class="form-group">
|
149
|
|
- <label for="firstname" class="col-sm-2 control-label">执行参数<font color="black">*</font></label>
|
150
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="executorParam" placeholder="请输入“执行参数”" maxlength="512" ></div>
|
151
|
|
- <label for="lastname" class="col-sm-2 control-label">子任务ID<font color="black">*</font></label>
|
152
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="请输入子任务的任务ID,如存在多个逗号分隔" maxlength="100" ></div>
|
|
142
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
|
|
143
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" ></div>
|
|
144
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
|
|
145
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
|
153
|
146
|
</div>
|
154
|
147
|
<div class="form-group">
|
155
|
|
- <label for="firstname" class="col-sm-2 control-label">阻塞处理策略<font color="red">*</font></label>
|
|
148
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="red">*</font></label>
|
156
|
149
|
<div class="col-sm-4">
|
157
|
150
|
<select class="form-control" name="executorBlockStrategy" >
|
158
|
151
|
<#list ExecutorBlockStrategyEnum as item>
|
|
@@ -160,7 +153,7 @@
|
160
|
153
|
</#list>
|
161
|
154
|
</select>
|
162
|
155
|
</div>
|
163
|
|
- <label for="lastname" class="col-sm-2 control-label">失败处理策略<font color="red">*</font></label>
|
|
156
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailStrategy}<font color="red">*</font></label>
|
164
|
157
|
<div class="col-sm-4">
|
165
|
158
|
<select class="form-control" name="executorFailStrategy" >
|
166
|
159
|
<#list ExecutorFailStrategyEnum as item>
|
|
@@ -170,17 +163,17 @@
|
170
|
163
|
</div>
|
171
|
164
|
</div>
|
172
|
165
|
<div class="form-group">
|
173
|
|
- <label for="lastname" class="col-sm-2 control-label">负责人<font color="red">*</font></label>
|
174
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="请输入“负责人”" maxlength="50" ></div>
|
175
|
|
- <label for="lastname" class="col-sm-2 control-label">报警邮件<font color="black">*</font></label>
|
176
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="请输入“报警邮件”,多个邮件地址逗号分隔" maxlength="100" ></div>
|
|
166
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
|
|
167
|
+ <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>
|
|
168
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
|
|
169
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
|
177
|
170
|
</div>
|
178
|
171
|
|
179
|
172
|
<hr>
|
180
|
173
|
<div class="form-group">
|
181
|
174
|
<div class="col-sm-offset-3 col-sm-6">
|
182
|
|
- <button type="submit" class="btn btn-primary" >保存</button>
|
183
|
|
- <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
|
175
|
+ <button type="submit" class="btn btn-primary" >${I18n.system_save}</button>
|
|
176
|
+ <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
|
184
|
177
|
</div>
|
185
|
178
|
</div>
|
186
|
179
|
|
|
@@ -207,10 +200,10 @@ public class DemoGlueJobHandler extends IJobHandler {
|
207
|
200
|
#!/bin/bash
|
208
|
201
|
echo "xxl-job: hello shell"
|
209
|
202
|
|
210
|
|
-echo "脚本位置:$0"
|
211
|
|
-echo "任务参数:$1"
|
212
|
|
-echo "分片序号 = $2"
|
213
|
|
-echo "分片总数 = $3"
|
|
203
|
+echo "${I18n.jobinfo_script_location}:$0"
|
|
204
|
+echo "${I18n.jobinfo_field_executorparam}:$1"
|
|
205
|
+echo "${I18n.jobinfo_shard_index} = $2"
|
|
206
|
+echo "${I18n.jobinfo_shard_total} = $3"
|
214
|
207
|
<#--echo "参数数量:$#"
|
215
|
208
|
for param in $*
|
216
|
209
|
do
|
|
@@ -229,10 +222,10 @@ import sys
|
229
|
222
|
|
230
|
223
|
print "xxl-job: hello python"
|
231
|
224
|
|
232
|
|
-print "脚本文件:", sys.argv[0]
|
233
|
|
-print "任务参数:", sys.argv[1]
|
234
|
|
-print "分片序号:", sys.argv[2]
|
235
|
|
-print "分片总数:", sys.argv[3]
|
|
225
|
+print "${I18n.jobinfo_script_location}:", sys.argv[0]
|
|
226
|
+print "${I18n.jobinfo_field_executorparam}:", sys.argv[1]
|
|
227
|
+print "${I18n.jobinfo_shard_index}:", sys.argv[2]
|
|
228
|
+print "${I18n.jobinfo_shard_total}:", sys.argv[3]
|
236
|
229
|
<#--for i in range(1, len(sys.argv)):
|
237
|
230
|
time.sleep(1)
|
238
|
231
|
print "参数", i, sys.argv[i]-->
|
|
@@ -251,10 +244,10 @@ console.log("xxl-job: hello nodejs")
|
251
|
244
|
|
252
|
245
|
var arguments = process.argv
|
253
|
246
|
|
254
|
|
-console.log("脚本文件: " + arguments[1])
|
255
|
|
-console.log("任务参数: " + arguments[2])
|
256
|
|
-console.log("分片序号: " + arguments[3])
|
257
|
|
-console.log("分片总数: " + arguments[4])
|
|
247
|
+console.log("${I18n.jobinfo_script_location}: " + arguments[1])
|
|
248
|
+console.log("${I18n.jobinfo_field_executorparam}: " + arguments[2])
|
|
249
|
+console.log("${I18n.jobinfo_shard_index}: " + arguments[3])
|
|
250
|
+console.log("${I18n.jobinfo_shard_total}: " + arguments[4])
|
258
|
251
|
<#--for (var i = 2; i < arguments.length; i++){
|
259
|
252
|
console.log("参数 %s = %s", (i-1), arguments[i]);
|
260
|
253
|
}-->
|
|
@@ -273,12 +266,12 @@ process.exit(0)
|
273
|
266
|
<div class="modal-dialog modal-lg">
|
274
|
267
|
<div class="modal-content">
|
275
|
268
|
<div class="modal-header">
|
276
|
|
- <h4 class="modal-title" >更新任务</h4>
|
|
269
|
+ <h4 class="modal-title" >${I18n.jobinfo_field_update}</h4>
|
277
|
270
|
</div>
|
278
|
271
|
<div class="modal-body">
|
279
|
272
|
<form class="form-horizontal form" role="form" >
|
280
|
|
- <div class="form-group">
|
281
|
|
- <label for="firstname" class="col-sm-2 control-label">执行器<font color="red">*</font></label>
|
|
273
|
+ <div class="form-group">
|
|
274
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
|
282
|
275
|
<div class="col-sm-4">
|
283
|
276
|
<select class="form-control" name="jobGroup" disabled >
|
284
|
277
|
<#list JobGroupList as group>
|
|
@@ -286,11 +279,11 @@ process.exit(0)
|
286
|
279
|
</#list>
|
287
|
280
|
</select>
|
288
|
281
|
</div>
|
289
|
|
- <label for="lastname" class="col-sm-2 control-label">任务描述<font color="red">*</font></label>
|
290
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="请输入“描述”" maxlength="50" ></div>
|
|
282
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
|
|
283
|
+ <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>
|
291
|
284
|
</div>
|
292
|
285
|
<div class="form-group">
|
293
|
|
- <label for="firstname" class="col-sm-2 control-label">路由策略<font color="red">*</font></label>
|
|
286
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="red">*</font></label>
|
294
|
287
|
<div class="col-sm-4">
|
295
|
288
|
<select class="form-control" name="executorRouteStrategy" >
|
296
|
289
|
<#list ExecutorRouteStrategyEnum as item>
|
|
@@ -299,10 +292,10 @@ process.exit(0)
|
299
|
292
|
</select>
|
300
|
293
|
</div>
|
301
|
294
|
<label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
|
302
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="请输入“Cron”" maxlength="128" ></div>
|
|
295
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
|
303
|
296
|
</div>
|
304
|
297
|
<div class="form-group">
|
305
|
|
- <label for="firstname" class="col-sm-2 control-label">运行模式<font color="red">*</font></label>
|
|
298
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
|
306
|
299
|
<div class="col-sm-4">
|
307
|
300
|
<select class="form-control glueType" name="glueType" disabled >
|
308
|
301
|
<#list GlueTypeEnum as item>
|
|
@@ -311,16 +304,16 @@ process.exit(0)
|
311
|
304
|
</select>
|
312
|
305
|
</div>
|
313
|
306
|
<label for="firstname" class="col-sm-2 control-label">JobHandler<font color="black">*</font></label>
|
314
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="请输入“JobHandler”" maxlength="100" ></div>
|
|
307
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
|
315
|
308
|
</div>
|
316
|
309
|
<div class="form-group">
|
317
|
|
- <label for="firstname" class="col-sm-2 control-label">执行参数<font color="black">*</font></label>
|
318
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="executorParam" placeholder="请输入“执行参数”" maxlength="512" ></div>
|
319
|
|
- <label for="lastname" class="col-sm-2 control-label">子任务ID<font color="black">*</font></label>
|
320
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="请输入子任务的任务ID,如存在多个逗号分隔" maxlength="100" ></div>
|
|
310
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
|
|
311
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" ></div>
|
|
312
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
|
|
313
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
|
321
|
314
|
</div>
|
322
|
315
|
<div class="form-group">
|
323
|
|
- <label for="firstname" class="col-sm-2 control-label">阻塞处理策略<font color="red">*</font></label>
|
|
316
|
+ <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="red">*</font></label>
|
324
|
317
|
<div class="col-sm-4">
|
325
|
318
|
<select class="form-control" name="executorBlockStrategy" >
|
326
|
319
|
<#list ExecutorBlockStrategyEnum as item>
|
|
@@ -328,7 +321,7 @@ process.exit(0)
|
328
|
321
|
</#list>
|
329
|
322
|
</select>
|
330
|
323
|
</div>
|
331
|
|
- <label for="lastname" class="col-sm-2 control-label">失败处理策略<font color="red">*</font></label>
|
|
324
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailStrategy}<font color="red">*</font></label>
|
332
|
325
|
<div class="col-sm-4">
|
333
|
326
|
<select class="form-control" name="executorFailStrategy" >
|
334
|
327
|
<#list ExecutorFailStrategyEnum as item>
|
|
@@ -338,20 +331,21 @@ process.exit(0)
|
338
|
331
|
</div>
|
339
|
332
|
</div>
|
340
|
333
|
<div class="form-group">
|
341
|
|
- <label for="lastname" class="col-sm-2 control-label">负责人<font color="red">*</font></label>
|
342
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="请输入“负责人”" maxlength="50" ></div>
|
343
|
|
- <label for="lastname" class="col-sm-2 control-label">报警邮件<font color="black">*</font></label>
|
344
|
|
- <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="请输入“报警邮件”,多个邮件地址逗号分隔" maxlength="100" ></div>
|
|
334
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
|
|
335
|
+ <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>
|
|
336
|
+ <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
|
|
337
|
+ <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
|
345
|
338
|
</div>
|
346
|
339
|
|
347
|
340
|
<hr>
|
348
|
341
|
<div class="form-group">
|
349
|
342
|
<div class="col-sm-offset-3 col-sm-6">
|
350
|
|
- <button type="submit" class="btn btn-primary" >保存</button>
|
351
|
|
- <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
|
343
|
+ <button type="submit" class="btn btn-primary" >${I18n.system_save}</button>
|
|
344
|
+ <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
|
352
|
345
|
<input type="hidden" name="id" >
|
353
|
346
|
</div>
|
354
|
347
|
</div>
|
|
348
|
+
|
355
|
349
|
</form>
|
356
|
350
|
</div>
|
357
|
351
|
</div>
|