Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
5c1bba33
提交
5c1bba33
authored
5月 19, 2016
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V1.3版本,阶段A:GLUE模式开关
上级
e6c239ec
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
143 行增加
和
22 行删除
+143
-22
tables_xxl_job.sql
doc/db/tables_xxl_job.sql
+15
-4
JobInfoController.java
...c/main/java/com/xxl/job/controller/JobInfoController.java
+8
-4
XxlJobInfo.java
...dmin/src/main/java/com/xxl/job/core/model/XxlJobInfo.java
+31
-2
XxlJobInfoMapper.xml
...in/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
+20
-4
index.ftl
...-admin/src/main/webapp/WEB-INF/template/jobinfo/index.ftl
+15
-2
jobcode.index.1.js
xxl-job-admin/src/main/webapp/static/js/jobcode.index.1.js
+2
-1
jobinfo.index.1.js
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
+52
-5
没有找到文件。
doc/db/tables_xxl_job.sql
浏览文件 @
5c1bba33
#
DROP
TABLE
IF
EXISTS
XXL_JOB_QRTZ_FIRED_TRIGGERS
;
#
DROP
TABLE
IF
EXISTS
XXL_JOB_QRTZ_PAUSED_TRIGGER_GRPS
;
#
DROP
TABLE
IF
EXISTS
XXL_JOB_QRTZ_SCHEDULER_STATE
;
#
DROP
TABLE
IF
EXISTS
XXL_JOB_QRTZ_LOCKS
;
CREATE
TABLE
XXL_JOB_QRTZ_JOB_DETAILS
CREATE
TABLE
XXL_JOB_QRTZ_JOB_DETAILS
(
(
...
@@ -160,6 +156,9 @@ CREATE TABLE `xxl_job_qrtz_trigger_info` (
...
@@ -160,6 +156,9 @@ CREATE TABLE `xxl_job_qrtz_trigger_info` (
`author`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'作者'
,
`author`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'作者'
,
`alarm_email`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'报警邮件'
,
`alarm_email`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'报警邮件'
,
`alarm_threshold`
int
(
11
)
DEFAULT
NULL
COMMENT
'报警阀值(连续失败次数)'
,
`alarm_threshold`
int
(
11
)
DEFAULT
NULL
COMMENT
'报警阀值(连续失败次数)'
,
`glue_switch`
int
(
11
)
DEFAULT
'0'
COMMENT
'GLUE模式开关:0-否,1-是'
,
`glue_source`
text
COMMENT
'GLUE源代码'
,
`glue_remark`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'GLUE备注'
,
PRIMARY
KEY
(
`id`
)
PRIMARY
KEY
(
`id`
)
);
);
...
@@ -180,5 +179,17 @@ CREATE TABLE `xxl_job_qrtz_trigger_log` (
...
@@ -180,5 +179,17 @@ CREATE TABLE `xxl_job_qrtz_trigger_log` (
PRIMARY
KEY
(
`id`
)
PRIMARY
KEY
(
`id`
)
);
);
CREATE
TABLE
`xxl_job_qrtz_trigger_logglue`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`job_group`
varchar
(
255
)
NOT
NULL
,
`job_name`
varchar
(
255
)
NOT
NULL
,
`glue_source`
text
,
`glue_remark`
varchar
(
128
)
NOT
NULL
,
`add_time`
timestamp
NULL
DEFAULT
NULL
,
`update_time`
timestamp
NULL
DEFAULT
NULL
ON
UPDATE
CURRENT_TIMESTAMP
,
PRIMARY
KEY
(
`id`
)
)
;
commit
;
commit
;
xxl-job-admin/src/main/java/com/xxl/job/controller/JobInfoController.java
浏览文件 @
5c1bba33
...
@@ -70,7 +70,7 @@ public class JobInfoController {
...
@@ -70,7 +70,7 @@ public class JobInfoController {
@ResponseBody
@ResponseBody
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
handler_address
,
String
handler_name
,
String
handler_params
,
String
handler_address
,
String
handler_name
,
String
handler_params
,
String
author
,
String
alarmEmail
,
int
alarmThreshold
)
{
String
author
,
String
alarmEmail
,
int
alarmThreshold
,
int
glueSwitch
)
{
// valid
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
...
@@ -88,7 +88,7 @@ public class JobInfoController {
...
@@ -88,7 +88,7 @@ public class JobInfoController {
if
(
StringUtils
.
isBlank
(
handler_address
))
{
if
(
StringUtils
.
isBlank
(
handler_address
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入“机器地址”"
);
return
new
ReturnT
<
String
>(
500
,
"请输入“机器地址”"
);
}
}
if
(
StringUtils
.
isBlank
(
handler_name
))
{
if
(
glueSwitch
==
0
&&
StringUtils
.
isBlank
(
handler_name
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入“执行器”"
);
return
new
ReturnT
<
String
>(
500
,
"请输入“执行器”"
);
}
}
if
(
StringUtils
.
isBlank
(
author
))
{
if
(
StringUtils
.
isBlank
(
author
))
{
...
@@ -127,6 +127,9 @@ public class JobInfoController {
...
@@ -127,6 +127,9 @@ public class JobInfoController {
jobInfo
.
setAuthor
(
author
);
jobInfo
.
setAuthor
(
author
);
jobInfo
.
setAlarmEmail
(
alarmEmail
);
jobInfo
.
setAlarmEmail
(
alarmEmail
);
jobInfo
.
setAlarmThreshold
(
alarmThreshold
);
jobInfo
.
setAlarmThreshold
(
alarmThreshold
);
jobInfo
.
setGlueSwitch
(
glueSwitch
);
jobInfo
.
setGlueSource
(
null
);
jobInfo
.
setGlueRemark
(
null
);
xxlJobInfoDao
.
save
(
jobInfo
);
xxlJobInfoDao
.
save
(
jobInfo
);
try
{
try
{
...
@@ -148,7 +151,7 @@ public class JobInfoController {
...
@@ -148,7 +151,7 @@ public class JobInfoController {
@ResponseBody
@ResponseBody
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
handler_address
,
String
handler_name
,
String
handler_params
,
String
handler_address
,
String
handler_name
,
String
handler_params
,
String
author
,
String
alarmEmail
,
int
alarmThreshold
)
{
String
author
,
String
alarmEmail
,
int
alarmThreshold
,
int
glueSwitch
)
{
// valid
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
...
@@ -166,7 +169,7 @@ public class JobInfoController {
...
@@ -166,7 +169,7 @@ public class JobInfoController {
if
(
StringUtils
.
isBlank
(
handler_address
))
{
if
(
StringUtils
.
isBlank
(
handler_address
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入“机器地址”"
);
return
new
ReturnT
<
String
>(
500
,
"请输入“机器地址”"
);
}
}
if
(
StringUtils
.
isBlank
(
handler_name
))
{
if
(
glueSwitch
==
0
&&
StringUtils
.
isBlank
(
handler_name
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入“执行器”"
);
return
new
ReturnT
<
String
>(
500
,
"请输入“执行器”"
);
}
}
if
(
StringUtils
.
isBlank
(
author
))
{
if
(
StringUtils
.
isBlank
(
author
))
{
...
@@ -192,6 +195,7 @@ public class JobInfoController {
...
@@ -192,6 +195,7 @@ public class JobInfoController {
jobInfo
.
setAuthor
(
author
);
jobInfo
.
setAuthor
(
author
);
jobInfo
.
setAlarmEmail
(
alarmEmail
);
jobInfo
.
setAlarmEmail
(
alarmEmail
);
jobInfo
.
setAlarmThreshold
(
alarmThreshold
);
jobInfo
.
setAlarmThreshold
(
alarmThreshold
);
jobInfo
.
setGlueSwitch
(
glueSwitch
);
try
{
try
{
// fresh quartz
// fresh quartz
...
...
xxl-job-admin/src/main/java/com/xxl/job/core/model/XxlJobInfo.java
浏览文件 @
5c1bba33
...
@@ -24,6 +24,10 @@ public class XxlJobInfo {
...
@@ -24,6 +24,10 @@ public class XxlJobInfo {
private
String
alarmEmail
;
// 报警邮件
private
String
alarmEmail
;
// 报警邮件
private
int
alarmThreshold
;
// 报警阀值
private
int
alarmThreshold
;
// 报警阀值
private
int
glueSwitch
;
// GLUE模式开关:0-否,1-是
private
String
glueSource
;
// GLUE源代码
private
String
glueRemark
;
// GLUE备注
// copy from quartz
// copy from quartz
private
String
jobStatus
;
// 任务状态 【base on quartz】
private
String
jobStatus
;
// 任务状态 【base on quartz】
...
@@ -131,12 +135,37 @@ public class XxlJobInfo {
...
@@ -131,12 +135,37 @@ public class XxlJobInfo {
this
.
jobStatus
=
jobStatus
;
this
.
jobStatus
=
jobStatus
;
}
}
public
int
getGlueSwitch
()
{
return
glueSwitch
;
}
public
void
setGlueSwitch
(
int
glueSwitch
)
{
this
.
glueSwitch
=
glueSwitch
;
}
public
String
getGlueSource
()
{
return
glueSource
;
}
public
void
setGlueSource
(
String
glueSource
)
{
this
.
glueSource
=
glueSource
;
}
public
String
getGlueRemark
()
{
return
glueRemark
;
}
public
void
setGlueRemark
(
String
glueRemark
)
{
this
.
glueRemark
=
glueRemark
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"XxlJobInfo [id="
+
id
+
", jobGroup="
+
jobGroup
+
", jobName="
+
jobName
+
", jobCron="
+
jobCron
return
"XxlJobInfo [id="
+
id
+
", jobGroup="
+
jobGroup
+
", jobName="
+
jobName
+
", jobCron="
+
jobCron
+
", jobDesc="
+
jobDesc
+
", jobClass="
+
jobClass
+
", jobData="
+
jobData
+
", addTime="
+
addTime
+
", jobDesc="
+
jobDesc
+
", jobClass="
+
jobClass
+
", jobData="
+
jobData
+
", addTime="
+
addTime
+
", updateTime="
+
updateTime
+
", author="
+
author
+
", alarmEmail="
+
alarmEmail
+
", updateTime="
+
updateTime
+
", author="
+
author
+
", alarmEmail="
+
alarmEmail
+
", alarmThreshold="
+
alarmThreshold
+
", jobStatus="
+
jobStatus
+
"]"
;
+
", alarmThreshold="
+
alarmThreshold
+
", glueSwitch="
+
glueSwitch
+
", glueSource="
+
glueSource
+
", glueRemark="
+
glueRemark
+
", jobStatus="
+
jobStatus
+
"]"
;
}
}
}
}
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
浏览文件 @
5c1bba33
...
@@ -19,6 +19,10 @@
...
@@ -19,6 +19,10 @@
<result
column=
"author"
property=
"author"
/>
<result
column=
"author"
property=
"author"
/>
<result
column=
"alarm_email"
property=
"alarmEmail"
/>
<result
column=
"alarm_email"
property=
"alarmEmail"
/>
<result
column=
"alarm_threshold"
property=
"alarmThreshold"
/>
<result
column=
"alarm_threshold"
property=
"alarmThreshold"
/>
<result
column=
"glue_switch"
property=
"glueSwitch"
/>
<result
column=
"glue_source"
property=
"glueSource"
/>
<result
column=
"glue_remark"
property=
"glueRemark"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
...
@@ -33,7 +37,10 @@
...
@@ -33,7 +37,10 @@
t.update_time,
t.update_time,
t.author,
t.author,
t.alarm_email,
t.alarm_email,
t.alarm_threshold
t.alarm_threshold,
t.glue_switch,
t.glue_source,
t.glue_remark
</sql>
</sql>
<select
id=
"pageList"
parameterType=
"java.util.HashMap"
resultMap=
"XxlJobInfo"
>
<select
id=
"pageList"
parameterType=
"java.util.HashMap"
resultMap=
"XxlJobInfo"
>
...
@@ -76,7 +83,10 @@
...
@@ -76,7 +83,10 @@
update_time,
update_time,
author,
author,
alarm_email,
alarm_email,
alarm_threshold
alarm_threshold,
glue_switch,
glue_source,
glue_remark
) VALUES (
) VALUES (
#{jobGroup},
#{jobGroup},
#{jobName},
#{jobName},
...
@@ -88,7 +98,10 @@
...
@@ -88,7 +98,10 @@
NOW(),
NOW(),
#{author},
#{author},
#{alarmEmail},
#{alarmEmail},
#{alarmThreshold}
#{alarmThreshold},
#{glueSwitch},
#{glueSource},
#{glueRemark}
);
);
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
SELECT LAST_INSERT_ID()
SELECT LAST_INSERT_ID()
...
@@ -111,7 +124,10 @@
...
@@ -111,7 +124,10 @@
update_time = NOW(),
update_time = NOW(),
author = #{author},
author = #{author},
alarm_email = #{alarmEmail},
alarm_email = #{alarmEmail},
alarm_threshold = #{alarmThreshold}
alarm_threshold = #{alarmThreshold},
glue_switch = #{glueSwitch},
glue_source = #{glueSource},
glue_remark = #{glueRemark}
WHERE job_group = #{jobGroup}
WHERE job_group = #{jobGroup}
AND job_name = #{jobName}
AND job_name = #{jobName}
</update>
</update>
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/index.ftl
浏览文件 @
5c1bba33
...
@@ -78,6 +78,7 @@
...
@@ -78,6 +78,7 @@
<th
name=
"author"
>
负责人
</th>
<th
name=
"author"
>
负责人
</th>
<th
name=
"alarmEmail"
>
报警邮件
</th>
<th
name=
"alarmEmail"
>
报警邮件
</th>
<th
name=
"alarmThreshold"
>
报警阀值
</th>
<th
name=
"alarmThreshold"
>
报警阀值
</th>
<th
name=
"glueSwitch"
>
GLUE模式
</th>
<th
name=
"jobStatus"
>
状态
</th>
<th
name=
"jobStatus"
>
状态
</th>
<th>
操作
</th>
<th>
操作
</th>
</tr>
</tr>
...
@@ -142,10 +143,16 @@
...
@@ -142,10 +143,16 @@
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmThreshold"
placeholder=
"请输入“报警阈值”"
maxlength=
"200"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmThreshold"
placeholder=
"请输入“报警阈值”"
maxlength=
"200"
></div>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<div
class=
"col-sm-offset-3 col-sm-
9
"
>
<div
class=
"col-sm-offset-3 col-sm-
6
"
>
<button
type=
"submit"
class=
"btn btn-primary"
>
保存
</button>
<button
type=
"submit"
class=
"btn btn-primary"
>
保存
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<div
class=
"col-sm-3"
>
<div
class=
"checkbox"
>
<label><input
type=
"checkbox"
class=
"ifGLUE"
>
开启GLUE模式
<font
color=
"black"
>
*
</font></label>
<input
type=
"hidden"
name=
"glueSwitch"
value=
"0"
>
</div>
</div>
</div>
</div>
</form>
</form>
</div>
</div>
...
@@ -194,10 +201,16 @@
...
@@ -194,10 +201,16 @@
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmThreshold"
placeholder=
"请输入“报警阈值”"
maxlength=
"200"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmThreshold"
placeholder=
"请输入“报警阈值”"
maxlength=
"200"
></div>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<div
class=
"col-sm-offset-3 col-sm-
9
"
>
<div
class=
"col-sm-offset-3 col-sm-
6
"
>
<button
type=
"submit"
class=
"btn btn-primary"
>
保存
</button>
<button
type=
"submit"
class=
"btn btn-primary"
>
保存
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
<button
type=
"button"
class=
"btn btn-default"
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
<div
class=
"col-sm-3"
>
<div
class=
"checkbox"
>
<label><input
type=
"checkbox"
class=
"ifGLUE"
>
开启GLUE模式
<font
color=
"black"
>
*
</font></label>
<input
type=
"hidden"
name=
"glueSwitch"
value=
"0"
>
</div>
</div>
</div>
</div>
</form>
</form>
</div>
</div>
...
...
xxl-job-admin/src/main/webapp/static/js/jobcode.index.1.js
浏览文件 @
5c1bba33
...
@@ -8,10 +8,11 @@ $(function() {
...
@@ -8,10 +8,11 @@ $(function() {
});
});
codeEditor
.
setValue
(
$
(
"#demoCode"
).
val
()
);
codeEditor
.
setValue
(
$
(
"#demoCode"
).
val
()
);
// editor height
var
height
=
Math
.
max
(
document
.
documentElement
.
clientHeight
,
document
.
body
.
offsetHeight
);
var
height
=
Math
.
max
(
document
.
documentElement
.
clientHeight
,
document
.
body
.
offsetHeight
);
$
(
".CodeMirror"
).
attr
(
'style'
,
'height:'
+
height
+
'px'
);
$
(
".CodeMirror"
).
attr
(
'style'
,
'height:'
+
height
+
'px'
);
// code source save
$
(
"#save"
).
click
(
function
()
{
$
(
"#save"
).
click
(
function
()
{
var
codeSource
=
codeEditor
.
getValue
();
var
codeSource
=
codeEditor
.
getValue
();
var
codeRemark
=
$
(
"#codeRemark"
).
val
();
var
codeRemark
=
$
(
"#codeRemark"
).
val
();
...
...
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
浏览文件 @
5c1bba33
...
@@ -61,6 +61,7 @@ $(function() {
...
@@ -61,6 +61,7 @@ $(function() {
{
"data"
:
'author'
,
"visible"
:
true
},
{
"data"
:
'author'
,
"visible"
:
true
},
{
"data"
:
'alarmEmail'
,
"visible"
:
false
},
{
"data"
:
'alarmEmail'
,
"visible"
:
false
},
{
"data"
:
'alarmThreshold'
,
"visible"
:
false
},
{
"data"
:
'alarmThreshold'
,
"visible"
:
false
},
{
"data"
:
'glueSwitch'
,
"visible"
:
false
},
{
{
"data"
:
'jobStatus'
,
"data"
:
'jobStatus'
,
"visible"
:
true
,
"visible"
:
true
,
...
@@ -87,8 +88,13 @@ $(function() {
...
@@ -87,8 +88,13 @@ $(function() {
}
}
// log url
// log url
var
logUrl
=
base_url
+
'/joblog?jobGroup='
+
row
.
jobGroup
+
'&jobName='
+
row
.
jobName
;
var
logUrl
=
base_url
+
'/joblog?jobGroup='
+
row
.
jobGroup
+
'&jobName='
+
row
.
jobName
;
// log url
// log url
var
codeUrl
=
base_url
+
'/jobcode?id='
+
row
.
id
;
var
codeHtml
=
""
;
if
(
row
.
glueSwitch
!=
0
){
var
codeUrl
=
base_url
+
'/jobcode?id='
+
row
.
id
;
codeHtml
=
'<button class="btn btn-warning btn-xs" type="button" onclick="javascript:window.open(
\'
'
+
codeUrl
+
'
\'
)" >GLUE</button> '
}
// job data
// job data
var
jobDataMap
=
eval
(
'('
+
row
.
jobData
+
')'
);
var
jobDataMap
=
eval
(
'('
+
row
.
jobData
+
')'
);
...
@@ -100,18 +106,19 @@ $(function() {
...
@@ -100,18 +106,19 @@ $(function() {
' jobDesc="'
+
row
.
jobDesc
+
'" '
+
' jobDesc="'
+
row
.
jobDesc
+
'" '
+
' jobClass="'
+
row
.
jobClass
+
'" '
+
' jobClass="'
+
row
.
jobClass
+
'" '
+
' jobData="'
+
row
.
jobData
+
'" '
+
' jobData="'
+
row
.
jobData
+
'" '
+
' author="'
+
row
.
author
+
'" '
+
' alarmEmail="'
+
row
.
alarmEmail
+
'" '
+
' alarmThreshold="'
+
row
.
alarmThreshold
+
'" '
+
' handler_params="'
+
jobDataMap
.
handler_params
+
'" '
+
' handler_params="'
+
jobDataMap
.
handler_params
+
'" '
+
' handler_address="'
+
jobDataMap
.
handler_address
+
'" '
+
' handler_address="'
+
jobDataMap
.
handler_address
+
'" '
+
' handler_name="'
+
jobDataMap
.
handler_name
+
'" '
+
' handler_name="'
+
jobDataMap
.
handler_name
+
'" '
+
' author="'
+
row
.
author
+
'" '
+
' alarmEmail="'
+
row
.
alarmEmail
+
'" '
+
' alarmThreshold="'
+
row
.
alarmThreshold
+
'" '
+
' glueSwitch="'
+
row
.
glueSwitch
+
'" '
+
'>'
+
'>'
+
'<button class="btn btn-primary btn-xs job_operate" type="job_trigger" type="button">执行</button> '
+
'<button class="btn btn-primary btn-xs job_operate" type="job_trigger" type="button">执行</button> '
+
pause_resume
+
pause_resume
+
'<button class="btn btn-primary btn-xs" type="job_del" type="button" onclick="javascript:window.open(
\'
'
+
logUrl
+
'
\'
)" >日志</button><br> '
+
'<button class="btn btn-primary btn-xs" type="job_del" type="button" onclick="javascript:window.open(
\'
'
+
logUrl
+
'
\'
)" >日志</button><br> '
+
'<button class="btn btn-warning btn-xs update" type="button">编辑</button> '
+
'<button class="btn btn-warning btn-xs update" type="button">编辑</button> '
+
'<button class="btn btn-warning btn-xs" type="button" onclick="javascript:window.open(
\'
'
+
codeUrl
+
'
\'
)" >GLUE</button> '
+
codeHtml
+
'<button class="btn btn-danger btn-xs job_operate" type="job_del" type="button">删除</button> '
+
'<button class="btn btn-danger btn-xs job_operate" type="job_del" type="button">删除</button> '
+
'</p>'
;
'</p>'
;
...
@@ -318,6 +325,34 @@ $(function() {
...
@@ -318,6 +325,34 @@ $(function() {
$
(
".remote_panel"
).
show
();
// remote
$
(
".remote_panel"
).
show
();
// remote
});
});
// GLUE模式开启
$
(
"#addModal .form .ifGLUE"
).
click
(
function
(){
var
ifGLUE
=
$
(
this
).
is
(
':checked'
);
var
$handler_name
=
$
(
"#addModal .form input[name='handler_name']"
);
var
$glueSwitch
=
$
(
"#addModal .form input[name='glueSwitch']"
);
if
(
ifGLUE
)
{
$handler_name
.
val
(
""
);
$handler_name
.
attr
(
"readonly"
,
"readonly"
);
$glueSwitch
.
val
(
1
);
}
else
{
$handler_name
.
removeAttr
(
"readonly"
);
$glueSwitch
.
val
(
0
);
}
});
$
(
"#updateModal .form .ifGLUE"
).
click
(
function
(){
var
ifGLUE
=
$
(
this
).
is
(
':checked'
);
var
$handler_name
=
$
(
"#updateModal .form input[name='handler_name']"
);
var
$glueSwitch
=
$
(
"#updateModal .form input[name='glueSwitch']"
);
if
(
ifGLUE
)
{
$handler_name
.
val
(
""
);
$handler_name
.
attr
(
"readonly"
,
"readonly"
);
$glueSwitch
.
val
(
1
);
}
else
{
$handler_name
.
removeAttr
(
"readonly"
);
$glueSwitch
.
val
(
0
);
}
});
// 更新
// 更新
$
(
"#job_list"
).
on
(
'click'
,
'.update'
,
function
()
{
$
(
"#job_list"
).
on
(
'click'
,
'.update'
,
function
()
{
$
(
"#updateModal .form input[name='jobGroup']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"jobGroup"
));
$
(
"#updateModal .form input[name='jobGroup']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"jobGroup"
));
...
@@ -330,6 +365,18 @@ $(function() {
...
@@ -330,6 +365,18 @@ $(function() {
$
(
"#updateModal .form input[name='author']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"author"
));
$
(
"#updateModal .form input[name='author']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"author"
));
$
(
"#updateModal .form input[name='alarmEmail']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"alarmEmail"
));
$
(
"#updateModal .form input[name='alarmEmail']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"alarmEmail"
));
$
(
"#updateModal .form input[name='alarmThreshold']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"alarmThreshold"
));
$
(
"#updateModal .form input[name='alarmThreshold']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"alarmThreshold"
));
$
(
"#updateModal .form input[name='glueSwitch']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"glueSwitch"
));
// GLUE check
var
$glueSwitch
=
$
(
"#updateModal .form input[name='glueSwitch']"
);
var
$handler_name
=
$
(
"#updateModal .form input[name='handler_name']"
);
if
(
$glueSwitch
.
val
()
!=
0
)
{
$handler_name
.
attr
(
"readonly"
,
"readonly"
);
$
(
"#updateModal .form .ifGLUE"
).
attr
(
"checked"
,
true
);
}
else
{
$handler_name
.
removeAttr
(
"readonly"
);
$
(
"#updateModal .form .ifGLUE"
).
attr
(
"checked"
,
false
);
}
$
(
'#updateModal'
).
modal
({
backdrop
:
false
,
keyboard
:
false
}).
modal
(
'show'
);
$
(
'#updateModal'
).
modal
({
backdrop
:
false
,
keyboard
:
false
}).
modal
(
'show'
);
});
});
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论