diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java index f4e385a2..a7576e08 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java @@ -50,41 +50,56 @@ public class JobLogController { public XxlJobLogMapper xxlJobLogMapper; @RequestMapping - public String index(HttpServletRequest request, Model model, @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) { + public String index(HttpServletRequest request, Model model, + @RequestParam(value = "jobGroup", required = false, defaultValue = "0") Integer jobGroup, + @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) { - // 执行器列表 + // find jobGroup List jobGroupListTotal = xxlJobGroupMapper.findAll(); - - // filter group + // filter jobGroup List jobGroupList = JobInfoController.filterJobGroupByPermission(request, jobGroupListTotal); if (jobGroupList==null || jobGroupList.isEmpty()) { throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); } - + // write jobGroup model.addAttribute("JobGroupList", jobGroupList); - // 任务 + // parse jobId、jobGroup if (jobId > 0) { XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(jobId); if (jobInfo == null) { throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid")); } + jobGroup = jobInfo.getJobGroup(); + } else if (jobGroup > 0){ + jobId = 0; + } + jobGroup = jobGroup > 0 ? jobGroup : jobGroupList.get(0).getId(); + // valid permission + JobInfoController.validJobGroupPermission(request, jobGroup); - model.addAttribute("jobInfo", jobInfo); + // find jobList + List jobInfoList = xxlJobInfoMapper.getJobsByGroup(jobGroup); - // valid permission - JobInfoController.validJobGroupPermission(request, jobInfo.getJobGroup()); - } + // write + model.addAttribute("jobInfoList", jobInfoList); + model.addAttribute("jobGroup", jobGroup); + model.addAttribute("jobId", jobId); return "joblog/joblog.index"; } - @RequestMapping("/getJobsByGroup") + /*@RequestMapping("/getJobsByGroup") @ResponseBody - public ReturnT> getJobsByGroup(@RequestParam("jobGroup") int jobGroup){ + public ReturnT> getJobsByGroup(HttpServletRequest request, @RequestParam("jobGroup") int jobGroup){ + + // valid permission + JobInfoController.validJobGroupPermission(request, jobGroup); + + // query List list = xxlJobInfoMapper.getJobsByGroup(jobGroup); return ReturnT.ofSuccess(list); - } + }*/ @RequestMapping("/pageList") @ResponseBody @@ -209,7 +224,7 @@ public class JobLogController { @RequestMapping("/logKill") @ResponseBody - public ReturnT logKill(@RequestParam("id") int id){ + public ReturnT logKill(HttpServletRequest request, @RequestParam("id") int id){ // base check XxlJobLog log = xxlJobLogMapper.load(id); XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(log.getJobId()); @@ -220,6 +235,9 @@ public class JobLogController { return new ReturnT(500, I18nUtil.getString("joblog_kill_log_limit")); } + // valid JobGroup permission + JobInfoController.validJobGroupPermission(request, jobInfo.getJobGroup()); + // request of kill ReturnT runResult = null; try { @@ -247,7 +265,7 @@ public class JobLogController { @RequestParam("jobGroup") int jobGroup, @RequestParam("jobId") int jobId, @RequestParam("type") int type){ - // valid permission + // valid JobGroup permission JobInfoController.validJobGroupPermission(request, jobGroup); // opt diff --git a/xxl-job-admin/src/main/resources/static/js/joblog.index.1.js b/xxl-job-admin/src/main/resources/static/js/joblog.index.1.js index e0fc3f20..08a3c454 100644 --- a/xxl-job-admin/src/main/resources/static/js/joblog.index.1.js +++ b/xxl-job-admin/src/main/resources/static/js/joblog.index.1.js @@ -1,38 +1,11 @@ $(function() { - // jobGroup change, job list init and select - $("#jobGroup").on("change", function () { - var jobGroup = $(this).children('option:selected').val(); - $.ajax({ - type : 'POST', - async: false, // async, avoid js invoke pagelist before jobId data init - url : base_url + '/joblog/getJobsByGroup', - data : {"jobGroup":jobGroup}, - dataType : "json", - success : function(data){ - if (data.code == 200) { - $("#jobId").html( '' ); - $.each(data.content, function (n, value) { - $("#jobId").append(''); - }); - if ($("#jobId").attr("paramVal")){ - $("#jobId").find("option[value='" + $("#jobId").attr("paramVal") + "']").attr("selected",true); - } - } else { - layer.open({ - title: I18n.system_tips , - btn: [ I18n.system_ok ], - content: (data.msg || I18n.system_api_error ), - icon: '2' - }); - } - }, - }); + // jobGroup change + $('#jobGroup').on('change', function(){ + //reload + var jobGroup = $('#jobGroup').val(); + window.location.href = base_url + "/joblog?jobGroup=" + jobGroup; }); - if ($("#jobGroup").attr("paramVal")){ - $("#jobGroup").find("option[value='" + $("#jobGroup").attr("paramVal") + "']").attr("selected",true); - $("#jobGroup").change(); - } // filter Time var rangesConf = {}; diff --git a/xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl b/xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl index cadd15cf..bd3567c8 100644 --- a/xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl +++ b/xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl @@ -29,12 +29,9 @@
${I18n.jobinfo_field_jobgroup} - <#list JobGroupList as group> - +
@@ -42,8 +39,11 @@
${I18n.jobinfo_job} - + <#list jobInfoList as jobItem> + +