406 lines
15 KiB
JavaScript
406 lines
15 KiB
JavaScript
$(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},
|
||
headers: {
|
||
'Authorization': 'Bearer ' + localStorage.getItem('ACCESS-TOKEN')
|
||
},
|
||
dataType : "json",
|
||
success : function(data){
|
||
if (data.code == 200) {
|
||
$("#jobId").html( '<option value="0" >'+ I18n.system_all +'</option>' );
|
||
$.each(data.content, function (n, value) {
|
||
$("#jobId").append('<option value="' + value.id + '" >' + value.jobDesc + '</option>');
|
||
});
|
||
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'
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
if ($("#jobGroup").attr("paramVal")){
|
||
$("#jobGroup").find("option[value='" + $("#jobGroup").attr("paramVal") + "']").attr("selected",true);
|
||
$("#jobGroup").change();
|
||
}
|
||
|
||
// filter Time
|
||
var rangesConf = {};
|
||
rangesConf[I18n.daterangepicker_ranges_recent_hour] = [moment().subtract(1, 'hours'), moment()];
|
||
rangesConf[I18n.daterangepicker_ranges_today] = [moment().startOf('day'), moment().endOf('day')];
|
||
rangesConf[I18n.daterangepicker_ranges_yesterday] = [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')];
|
||
rangesConf[I18n.daterangepicker_ranges_this_month] = [moment().startOf('month'), moment().endOf('month')];
|
||
rangesConf[I18n.daterangepicker_ranges_last_month] = [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')];
|
||
rangesConf[I18n.daterangepicker_ranges_recent_week] = [moment().subtract(1, 'weeks').startOf('day'), moment().endOf('day')];
|
||
rangesConf[I18n.daterangepicker_ranges_recent_month] = [moment().subtract(1, 'months').startOf('day'), moment().endOf('day')];
|
||
|
||
$('#filterTime').daterangepicker({
|
||
autoApply:false,
|
||
singleDatePicker:false,
|
||
showDropdowns:false, // 是否显示年月选择条件
|
||
timePicker: true, // 是否显示小时和分钟选择条件
|
||
timePickerIncrement: 10, // 时间的增量,单位为分钟
|
||
timePicker24Hour : true,
|
||
opens : 'left', //日期选择框的弹出位置
|
||
ranges: rangesConf,
|
||
locale : {
|
||
format: 'YYYY-MM-DD HH:mm:ss',
|
||
separator : ' - ',
|
||
customRangeLabel : I18n.daterangepicker_custom_name ,
|
||
applyLabel : I18n.system_ok ,
|
||
cancelLabel : I18n.system_cancel ,
|
||
fromLabel : I18n.daterangepicker_custom_starttime ,
|
||
toLabel : I18n.daterangepicker_custom_endtime ,
|
||
daysOfWeek : I18n.daterangepicker_custom_daysofweek.split(',') , // '日', '一', '二', '三', '四', '五', '六'
|
||
monthNames : I18n.daterangepicker_custom_monthnames.split(',') , // '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
|
||
firstDay : 1
|
||
},
|
||
startDate: rangesConf[I18n.daterangepicker_ranges_today][0],
|
||
endDate: rangesConf[I18n.daterangepicker_ranges_today][1]
|
||
});
|
||
|
||
// init date tables
|
||
var logTable = $("#joblog_list").dataTable({
|
||
"deferRender": true,
|
||
"processing" : true,
|
||
"serverSide": true,
|
||
"ajax": {
|
||
url: base_url + "/joblog/pageList" ,
|
||
type:"post",
|
||
headers: {
|
||
'Authorization': 'Bearer ' + localStorage.getItem('ACCESS-TOKEN')
|
||
},
|
||
data : function ( d ) {
|
||
var obj = {};
|
||
obj.jobGroup = $('#jobGroup').val();
|
||
obj.jobId = $('#jobId').val();
|
||
obj.logStatus = $('#logStatus').val();
|
||
obj.filterTime = $('#filterTime').val();
|
||
obj.start = d.start;
|
||
obj.length = d.length;
|
||
return obj;
|
||
}
|
||
},
|
||
"searching": false,
|
||
"ordering": false,
|
||
//"scrollX": false,
|
||
"columns": [
|
||
{
|
||
"data": 'jobId',
|
||
"visible" : true,
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
|
||
var jobhandler = '';
|
||
if (row.executorHandler) {
|
||
jobhandler = "<br>JobHandler:" + row.executorHandler;
|
||
}
|
||
|
||
var temp = '';
|
||
temp += I18n.joblog_field_executorAddress + ':' + (row.executorAddress?row.executorAddress:'');
|
||
temp += jobhandler;
|
||
temp += '<br>'+ I18n.jobinfo_field_executorparam +':' + row.executorParam;
|
||
|
||
return '<a class="logTips" href="javascript:;" >'+ row.jobId +'<span style="display:none;">'+ temp +'</span></a>';
|
||
}
|
||
},
|
||
{ "data": 'jobGroup', "visible" : false},
|
||
{
|
||
"data": 'triggerTime',
|
||
"width":'20%',
|
||
"render": function ( data, type, row ) {
|
||
return data?moment(data).format("YYYY-MM-DD HH:mm:ss"):"";
|
||
}
|
||
},
|
||
{
|
||
"data": 'triggerCode',
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
var html = data;
|
||
if (data == 200) {
|
||
html = '<span style="color: green">'+ I18n.system_success +'</span>';
|
||
} else if (data == 500) {
|
||
html = '<span style="color: red">'+ I18n.system_fail +'</span>';
|
||
} else if (data == 0) {
|
||
html = '';
|
||
}
|
||
return html;
|
||
}
|
||
},
|
||
{
|
||
"data": 'triggerMsg',
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
return data?'<a class="logTips" href="javascript:;" >'+ I18n.system_show +'<span style="display:none;">'+ data +'</span></a>':I18n.system_empty;
|
||
}
|
||
},
|
||
{
|
||
"data": 'handleTime',
|
||
"width":'20%',
|
||
"render": function ( data, type, row ) {
|
||
return data?moment(data).format("YYYY-MM-DD HH:mm:ss"):"";
|
||
}
|
||
},
|
||
{
|
||
"data": 'handleCode',
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
var html = data;
|
||
if (data == 200) {
|
||
html = '<span style="color: green">'+ I18n.joblog_handleCode_200 +'</span>';
|
||
} else if (data == 500) {
|
||
html = '<span style="color: red">'+ I18n.joblog_handleCode_500 +'</span>';
|
||
} else if (data == 502) {
|
||
html = '<span style="color: red">'+ I18n.joblog_handleCode_502 +'</span>';
|
||
} else if (data == 0) {
|
||
html = '';
|
||
}
|
||
return html;
|
||
}
|
||
},
|
||
{
|
||
"data": 'handleMsg',
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
return data?'<a class="logTips" href="javascript:;" >'+ I18n.system_show +'<span style="display:none;">'+ data +'</span></a>':I18n.system_empty;
|
||
}
|
||
},
|
||
{
|
||
"data": 'handleMsg' ,
|
||
"bSortable": false,
|
||
"width":'10%',
|
||
"render": function ( data, type, row ) {
|
||
// better support expression or string, not function
|
||
return function () {
|
||
if (row.triggerCode == 200 || row.handleCode != 0){
|
||
|
||
/*var temp = '<a href="javascript:;" class="logDetail" _id="'+ row.id +'">'+ I18n.joblog_rolling_log +'</a>';
|
||
if(row.handleCode == 0){
|
||
temp += '<br><a href="javascript:;" class="logKill" _id="'+ row.id +'" style="color: red;" >'+ I18n.joblog_kill_log +'</a>';
|
||
}*/
|
||
//return temp;
|
||
|
||
var logKillDiv = '';
|
||
if(row.handleCode == 0){
|
||
logKillDiv = ' <li class="divider"></li>\n' +
|
||
' <li><a href="javascript:void(0);" class="logKill" _id="'+ row.id +'" >'+ I18n.joblog_kill_log +'</a></li>\n';
|
||
}
|
||
|
||
var html = '<div class="btn-group">\n' +
|
||
' <button type="button" class="btn btn-primary btn-sm">'+ I18n.system_opt +'</button>\n' +
|
||
' <button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown">\n' +
|
||
' <span class="caret"></span>\n' +
|
||
' <span class="sr-only">Toggle Dropdown</span>\n' +
|
||
' </button>\n' +
|
||
' <ul class="dropdown-menu" role="menu" _id="'+ row.id +'" >\n' +
|
||
' <li><a href="javascript:void(0);" class="logDetail" _id="'+ row.id +'" >'+ I18n.joblog_rolling_log +'</a></li>\n' +
|
||
logKillDiv +
|
||
' </ul>\n' +
|
||
' </div>';
|
||
|
||
return html;
|
||
}
|
||
return null;
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"language" : {
|
||
"sProcessing" : I18n.dataTable_sProcessing ,
|
||
"sLengthMenu" : I18n.dataTable_sLengthMenu ,
|
||
"sZeroRecords" : I18n.dataTable_sZeroRecords ,
|
||
"sInfo" : I18n.dataTable_sInfo ,
|
||
"sInfoEmpty" : I18n.dataTable_sInfoEmpty ,
|
||
"sInfoFiltered" : I18n.dataTable_sInfoFiltered ,
|
||
"sInfoPostFix" : "",
|
||
"sSearch" : I18n.dataTable_sSearch ,
|
||
"sUrl" : "",
|
||
"sEmptyTable" : I18n.dataTable_sEmptyTable ,
|
||
"sLoadingRecords" : I18n.dataTable_sLoadingRecords ,
|
||
"sInfoThousands" : ",",
|
||
"oPaginate" : {
|
||
"sFirst" : I18n.dataTable_sFirst ,
|
||
"sPrevious" : I18n.dataTable_sPrevious ,
|
||
"sNext" : I18n.dataTable_sNext ,
|
||
"sLast" : I18n.dataTable_sLast
|
||
},
|
||
"oAria" : {
|
||
"sSortAscending" : I18n.dataTable_sSortAscending ,
|
||
"sSortDescending" : I18n.dataTable_sSortDescending
|
||
}
|
||
}
|
||
});
|
||
logTable.on('xhr.dt',function(e, settings, json, xhr) {
|
||
if (json.code && json.code != 200) {
|
||
layer.msg( json.msg || I18n.system_api_error );
|
||
}
|
||
});
|
||
|
||
// logTips alert
|
||
$('#joblog_list').on('click', '.logTips', function(){
|
||
var msg = $(this).find('span').html();
|
||
ComAlertTec.show(msg);
|
||
});
|
||
|
||
// search Btn
|
||
$('#searchBtn').on('click', function(){
|
||
logTable.fnDraw();
|
||
});
|
||
|
||
// logDetail look
|
||
$('#joblog_list').on('click', '.logDetail', function(){
|
||
var _id = $(this).attr('_id');
|
||
|
||
window.open(base_url + '/joblog/logDetailPage?id=' + _id);
|
||
return;
|
||
});
|
||
|
||
/**
|
||
* log Kill
|
||
*/
|
||
$('#joblog_list').on('click', '.logKill', function(){
|
||
var _id = $(this).attr('_id');
|
||
|
||
layer.confirm( (I18n.system_ok + I18n.joblog_kill_log + '?'), {
|
||
icon: 3,
|
||
title: I18n.system_tips ,
|
||
btn: [ I18n.system_ok, I18n.system_cancel ]
|
||
}, function(index){
|
||
layer.close(index);
|
||
|
||
$.ajax({
|
||
type : 'POST',
|
||
url : base_url + '/joblog/logKill',
|
||
data : {"id":_id},
|
||
headers: {
|
||
'Authorization': 'Bearer ' + localStorage.getItem('ACCESS-TOKEN')
|
||
},
|
||
dataType : "json",
|
||
success : function(data){
|
||
if (data.code == 200) {
|
||
layer.open({
|
||
title: I18n.system_tips,
|
||
btn: [ I18n.system_ok ],
|
||
content: I18n.system_opt_suc ,
|
||
icon: '1',
|
||
end: function(layero, index){
|
||
logTable.fnDraw();
|
||
}
|
||
});
|
||
} else {
|
||
layer.open({
|
||
title: I18n.system_tips,
|
||
btn: [ I18n.system_ok ],
|
||
content: (data.msg || I18n.system_opt_fail ),
|
||
icon: '2'
|
||
});
|
||
}
|
||
},
|
||
});
|
||
});
|
||
|
||
});
|
||
|
||
/**
|
||
* clear Log
|
||
*/
|
||
$('#clearLog').on('click', function(){
|
||
|
||
var jobGroup = $('#jobGroup').val();
|
||
var jobId = $('#jobId').val();
|
||
|
||
var jobGroupText = $("#jobGroup").find("option:selected").text();
|
||
var jobIdText = $("#jobId").find("option:selected").text();
|
||
|
||
$('#clearLogModal input[name=jobGroup]').val(jobGroup);
|
||
$('#clearLogModal input[name=jobId]').val(jobId);
|
||
|
||
$('#clearLogModal .jobGroupText').val(jobGroupText);
|
||
$('#clearLogModal .jobIdText').val(jobIdText);
|
||
|
||
$('#clearLogModal').modal('show');
|
||
|
||
});
|
||
$("#clearLogModal .ok").on('click', function(){
|
||
$.post(base_url + "/joblog/clearLog", $("#clearLogModal .form").serialize(), function(data, status) {
|
||
if (data.code == "200") {
|
||
$('#clearLogModal').modal('hide');
|
||
layer.open({
|
||
title: I18n.system_tips ,
|
||
btn: [ I18n.system_ok ],
|
||
content: (I18n.joblog_clean_log + I18n.system_success) ,
|
||
icon: '1',
|
||
end: function(layero, index){
|
||
logTable.fnDraw();
|
||
}
|
||
});
|
||
} else {
|
||
layer.open({
|
||
title: I18n.system_tips ,
|
||
btn: [ I18n.system_ok ],
|
||
content: (data.msg || (I18n.joblog_clean_log + I18n.system_fail) ),
|
||
icon: '2'
|
||
});
|
||
}
|
||
});
|
||
});
|
||
$("#clearLogModal").on('hide.bs.modal', function () {
|
||
$("#clearLogModal .form")[0].reset();
|
||
});
|
||
|
||
});
|
||
|
||
|
||
// Com Alert by Tec theme
|
||
var ComAlertTec = {
|
||
html:function(){
|
||
var html =
|
||
'<div class="modal fade" id="ComAlertTec" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">' +
|
||
' <div class="modal-dialog modal-lg-">' +
|
||
' <div class="modal-content-tec">' +
|
||
' <div class="modal-body">' +
|
||
' <div class="alert" style="color:#fff;word-wrap: break-word;">' +
|
||
' </div>' +
|
||
' </div>' +
|
||
' <div class="modal-footer">' +
|
||
' <div class="text-center" >' +
|
||
' <button type="button" class="btn btn-info ok" data-dismiss="modal" >'+ I18n.system_ok +'</button>' +
|
||
' </div>' +
|
||
' </div>' +
|
||
' </div>' +
|
||
' </div>' +
|
||
'</div>';
|
||
return html;
|
||
},
|
||
show:function(msg, callback){
|
||
// dom init
|
||
if ($('#ComAlertTec').length == 0){
|
||
$('body').append(ComAlertTec.html());
|
||
}
|
||
|
||
// init com alert
|
||
$('#ComAlertTec .alert').html(msg);
|
||
$('#ComAlertTec').modal('show');
|
||
|
||
$('#ComAlertTec .ok').click(function(){
|
||
$('#ComAlertTec').modal('hide');
|
||
if(typeof callback == 'function') {
|
||
callback();
|
||
}
|
||
});
|
||
}
|
||
};
|