| $(function() { |
| authorityControl(); |
| renderJobOverview(); |
| $("#add-job").click(function() { |
| $(".box-body").remove(); |
| $("#add-job-body").load("html/job/add_job.html", null, function() { |
| doLocale(); |
| tooltipLocale(); |
| }); |
| $("#data-add-job").modal({backdrop : "static", keyboard : true}); |
| }); |
| bindDetailJobButton(); |
| bindDeleteJobButton(); |
| bindModifyJobButton(); |
| bindEnableJobButton(); |
| bindDisableJobButton(); |
| }); |
| |
| function renderJobOverview() { |
| var jsonData = { |
| url: "/api/job/jobs", |
| cache: false |
| }; |
| $("#job-table").bootstrapTable({ |
| columns: jsonData.columns, |
| url: jsonData.url, |
| cache: jsonData.cache |
| }).on("all.bs.table", function() { |
| doLocale(); |
| }); |
| } |
| |
| function operationJob(val, row) { |
| var detailButton = "<button operation='detailJob' class='btn-xs btn-info' jobName='" + row.jobName + "' data-lang='operation-detail'></button>"; |
| var modifyButton = "<button operation='modifyJob' class='btn-xs btn-warning' jobName='" + row.jobName + "' data-lang='operation-update'></button>"; |
| var deleteButton = "<button operation='deleteJob' class='btn-xs btn-danger' jobName='" + row.jobName + "' data-lang='operation-delete'></button>"; |
| var enableButton = "<button operation='enableJob' class='btn-xs btn-success' jobName='" + row.jobName + "' appName='" + row.appName + "' data-lang='operation-enable'></button>"; |
| var disableButton = "<button operation='disableJob' class='btn-xs btn-warning' jobName='" + row.jobName + "' data-lang='operation-disable'></button>"; |
| var operationId = detailButton + " " + modifyButton +" " + deleteButton; |
| if(selectJobStatus(row.jobName)) { |
| operationId = operationId + " " + enableButton; |
| }else{ |
| operationId = operationId + " " + disableButton; |
| } |
| return operationId; |
| } |
| |
| function selectJobStatus(jobName) { |
| var resultValue = null; |
| $.ajax({ |
| type:"GET", |
| async: false, |
| url: "/api/job/" + jobName + "/disable", |
| contentType: "application/json", |
| success: function(result) { |
| resultValue = result; |
| } |
| }); |
| return resultValue; |
| } |
| |
| function bindDetailJobButton() { |
| $(document).off("click", "button[operation='detailJob'][data-toggle!='modal']"); |
| $(document).on("click", "button[operation='detailJob'][data-toggle!='modal']", function(event) { |
| var jobName = $(event.currentTarget).attr("jobName"); |
| $.ajax({ |
| url: "/api/job/jobs/" + jobName, |
| contentType: "application/json", |
| success: function(result) { |
| $(".box-body").remove(); |
| $("#detail-job-body").load("html/job/detail_job.html", null, function() { |
| if("SCRIPT" === result.jobType) { |
| $("#bootstrap-script-div").show(); |
| } else { |
| $("#bootstrap-script-div").hide(); |
| } |
| renderJob(result); |
| doLocale(); |
| tooltipLocale(); |
| $("#data-detail-job").modal({backdrop : "static", keyboard : true}); |
| $("#close-button").on("click", function(){ |
| $("#data-detail-job").modal("hide"); |
| }); |
| }); |
| } |
| }); |
| }); |
| } |
| |
| function bindDeleteJobButton() { |
| $(document).off("click", "button[operation='deleteJob'][data-toggle!='modal']"); |
| $(document).on("click", "button[operation='deleteJob'][data-toggle!='modal']", function(event) { |
| var jobName = $(event.currentTarget).attr("jobName"); |
| $("#delete-data").modal({backdrop : "static", keyboard : true}); |
| var flag = true; |
| $("#delete-job-remove").on("click", function() { |
| flag = false; |
| }); |
| $("#delete-job-confirm").on("click", function() { |
| if(flag) { |
| $.ajax({ |
| url: "/api/job/deregister", |
| type: "DELETE", |
| contentType: "application/json", |
| data: jobName, |
| success: function(result) { |
| $("#job-table").bootstrapTable("refresh"); |
| $("#delete-data").hide(); |
| refreshJobNavTag(); |
| } |
| }); |
| } |
| }); |
| }); |
| } |
| |
| function bindModifyJobButton() { |
| $(document).off("click", "button[operation='modifyJob'][data-toggle!='modal']"); |
| $(document).on("click", "button[operation='modifyJob'][data-toggle!='modal']", function(event) { |
| var jobName = $(event.currentTarget).attr("jobName"); |
| $.ajax({ |
| url: "/api/job/jobs/" + jobName, |
| success: function(result) { |
| if (null !== result) { |
| $(".box-body").remove(); |
| $("#update-job-body").load("html/job/modify_job.html", null, function() { |
| doLocale(); |
| tooltipLocale(); |
| $('#data-update-job').modal({backdrop : "static", keyboard : true}); |
| renderJob(result); |
| }); |
| } |
| } |
| }); |
| }); |
| } |
| |
| function bindEnableJobButton() { |
| $(document).off("click", "button[operation='enableJob'][data-toggle!='modal']"); |
| $(document).on("click", "button[operation='enableJob'][data-toggle!='modal']", function(event) { |
| var jobName = $(event.currentTarget).attr("jobName"); |
| var appName = $(event.currentTarget).attr("appName"); |
| if(selectAppStatus(appName)){ |
| showFailDialog(); |
| } else { |
| $.ajax({ |
| url: "/api/job/" + jobName + "/disable", |
| type: "DELETE", |
| contentType: "application/json", |
| success: function(result) { |
| $("#job-table").bootstrapTable("refresh"); |
| showSuccessDialog(); |
| } |
| }); |
| } |
| }); |
| } |
| |
| function bindDisableJobButton() { |
| $(document).off("click", "button[operation='disableJob'][data-toggle!='modal']"); |
| $(document).on("click", "button[operation='disableJob'][data-toggle!='modal']", function(event) { |
| var jobName = $(event.currentTarget).attr("jobName"); |
| $.ajax({ |
| url: "/api/job/" + jobName + "/disable", |
| type: "POST", |
| contentType: "application/json", |
| success: function(result) { |
| $("#job-table").bootstrapTable("refresh"); |
| showSuccessDialog(); |
| } |
| }); |
| }); |
| } |
| |
| function renderJob(job) { |
| $("#job-name").attr("value", job.jobName); |
| $("#job-app-name").attr("value", job.appName); |
| $("#cron").attr("value", job.cron); |
| $("#job-execution-type").val(job.jobExecutionType); |
| $("#sharding-total-count").attr("value", job.shardingTotalCount); |
| $("#job-parameter").attr("value", job.jobParameter); |
| $("#cpu-count").attr("value", job.cpuCount); |
| $("#job-memory").attr("value", job.memoryMB); |
| $("#bean-name").attr("value", job.beanName); |
| $("#application-context").attr("value", job.applicationContext); |
| $("#description").val(job.description); |
| $("#sharding-item-parameters").val(job.shardingItemParameters); |
| $("#failover").prop("checked", job.failover); |
| $("#misfire").prop("checked", job.misfire); |
| $("#streaming-process").prop("checked", job.streamingProcess); |
| $("#job-type").val(job.jobType); |
| $("#script-command-line").val(job.scriptCommandLine); |
| if("SIMPLE" === job.jobType) { |
| $("#job-class").attr("value", job.jobClass); |
| $("#job-class-model").show(); |
| $("#streaming-process").hide(); |
| $("#streaming-process-box").hide(); |
| $("#bootstrap-script-div").hide(); |
| } else if("DATAFLOW" === job.jobType) { |
| $("#job-class").attr("value", job.jobClass); |
| $("#job-class-model").show(); |
| $("#streaming-process").show(); |
| $("#streaming-process-box").show(); |
| $("#bootstrap-script-div").hide(); |
| } else if("SCRIPT" === job.jobType) { |
| $("#job-class").attr(""); |
| $("#job-class-model").hide(); |
| $("#streaming-process").hide(); |
| $("#streaming-process-box").hide(); |
| $("#bootstrap-script-div").show(); |
| } |
| } |
| |