Ver Fonte

任务复制功能:点击复制是弹出新建任务弹框,并初始化被复制任务信息;

xuxueli há 5 anos atrás
pai
commit
c8fd64cb91

+ 2 - 2
doc/XXL-JOB官方文档.md

@@ -1729,8 +1729,8 @@ data: post-data
 ```
 - 15、执行器注册逻辑优化:新增配置项 ”注册地址 / xxl.job.executor.address“,优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
 - 16、执行器初始化逻辑优化:修复懒加载的Bean被提前初始化问题;
-- 17、[迭代中]自定义失败重试时间间隔
-- 18、[迭代中]任务复制功能;点击复制是弹出新建任务弹框,并初始化被复制任务信息
+- 17、任务复制功能:点击复制是弹出新建任务弹框,并初始化被复制任务信息
+- 18、[迭代中]自定义失败重试时间间隔
 - 19、[迭代中]新增执行器描述、任务描述属性;
 - 20、[迭代中]任务执行一次的时候指定IP;
 - 21、[迭代中]任务日志支持单个清理和状态转移,方便触发子任务;

+ 3 - 2
xxl-job-admin/src/main/resources/i18n/message_en.properties

@@ -26,8 +26,9 @@ system_show=Show
 system_empty=Empty
 system_opt_suc=operate success
 system_opt_fail=operate fail
-system_opt_edit=Edit 
-system_opt_del=Delete 
+system_opt_edit=Edit
+system_opt_del=Delete
+system_opt_copy=Copy
 system_unvalid=illegal
 system_not_found=not exist
 system_nav=Navigation

+ 1 - 0
xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties

@@ -28,6 +28,7 @@ system_opt_suc=操作成功
 system_opt_fail=操作失败
 system_opt_edit=编辑
 system_opt_del=删除
+system_opt_copy=复制
 system_unvalid=非法
 system_not_found=不存在
 system_nav=导航

+ 1 - 0
xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties

@@ -28,6 +28,7 @@ system_opt_suc=操作成功
 system_opt_fail=操作失敗
 system_opt_edit=編輯
 system_opt_del=刪除
+system_opt_copy=復制
 system_unvalid=非法
 system_not_found=不存在
 system_nav=導航

+ 33 - 0
xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js

@@ -142,6 +142,7 @@ $(function() {
                                     start_stop_div +
                                     '       <li><a href="javascript:void(0);" class="update" >'+ I18n.system_opt_edit +'</a></li>\n' +
                                     '       <li><a href="javascript:void(0);" class="job_operate" _type="job_del" >'+ I18n.system_opt_del +'</a></li>\n' +
+									'       <li><a href="javascript:void(0);" class="job_copy" >'+ I18n.system_opt_copy +'</a></li>\n' +
                                     '     </ul>\n' +
                                     '   </div>';
 
@@ -645,4 +646,36 @@ $(function() {
         return glueTypeTitle;
     }
 
+    // job_copy
+	$("#job_list").on('click', '.job_copy',function() {
+
+		var id = $(this).parents('ul').attr("_id");
+		var row = tableData['key'+id];
+
+		// base data
+		//$("#addModal .form input[name='id']").val( row.id );
+		$('#addModal .form select[name=jobGroup] option[value='+ row.jobGroup +']').prop('selected', true);
+		$("#addModal .form input[name='jobDesc']").val( row.jobDesc );
+		$("#addModal .form input[name='jobCron']").val( row.jobCron );
+		$("#addModal .form input[name='author']").val( row.author );
+		$("#addModal .form input[name='alarmEmail']").val( row.alarmEmail );
+		$("#addModal .form input[name='executorTimeout']").val( row.executorTimeout );
+		$("#addModal .form input[name='executorFailRetryCount']").val( row.executorFailRetryCount );
+		$('#addModal .form select[name=executorRouteStrategy] option[value='+ row.executorRouteStrategy +']').prop('selected', true);
+		$("#addModal .form input[name='executorHandler']").val( row.executorHandler );
+		$("#addModal .form textarea[name='executorParam']").val( row.executorParam );
+		$("#addModal .form input[name='childJobId']").val( row.childJobId );
+		$('#addModal .form select[name=executorBlockStrategy] option[value='+ row.executorBlockStrategy +']').prop('selected', true);
+		$('#addModal .form select[name=glueType] option[value='+ row.glueType +']').prop('selected', true);
+
+		$("#addModal .form select[name=glueType]").change();
+
+		// init-cronGen
+		$("#addModal .form input[name='jobCron']").show().siblings().remove();
+		$("#addModal .form input[name='jobCron']").cronGen({});
+
+		// show
+		$('#addModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+
 });