yuzd / Hangfire.HttpJob

httpjob for Hangfire,restful api for Hangfire,job调度与业务分离
https://github.com/yuzd/Hangfire.HttpJob/wiki
MIT License
618 stars 184 forks source link

完成的作业:第二次查询数据为空的问题,问题已解决,把这个方法更换掉就可以了 #186

Closed ijlynivfhp closed 1 year ago

ijlynivfhp commented 1 year ago

function changeTable() { if (window.location.pathname.endsWith('/failed')) { $(".table tbody").show(); return; } var isreJob = window.location.pathname.endsWith('/recurring'); var temp = '@@' var config = window.Hangfire.httpjobConfig; $(".table tbody").find('tr').each(function () { var tdArr = $(this).children(); var s1 = tdArr.eq(1).text();

    var isAgentJob = false;
    var isHttpJob = false;
    if (s1.indexOf('|') >= 0) {
        var ss1 = s1.split('|');
        if (s1.indexOf('Agent:') > 0) {
            //第一个是详细信息 第二个是className 第三个是别名(可能为空) 第四个是host
            var h = '<span class="label label-primary" title="" data-original-title="' +
                ss1[0] +
                '">' +
                ss1[1] +
                '</span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-primary left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-primary" title="" data-original-title="">' + ss1[3] + '</span>' :'<span class="label label-primary left5" title="" data-original-title="">' + ss1[3] + '</span>');
            tdArr.eq(1).html(h);
        } else {
            var h = '<span class="label label-success" title="" data-original-title="' +
                ss1[0] +
                '"><a class="job-method" href="javascript:void(0)">' +
                ss1[1] +
                '</a></span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-success left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-success" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-success left5" title="" data-original-title="">' + ss1[3] + '</span>');
            tdArr.eq(1).html(h);
        }

    }

    var ss = tdArr.eq(2).text();

    if (ss.indexOf('|') >= 0) {
        var ss1 = ss.split('|');
        if (ss.indexOf('Agent:') > 0) {
            //第一个是详细信息 第二个是className 第三个是别名(可能为空) 第四个是host
            var h = '<span class="label label-primary" title="" data-original-title="' +
                ss1[0] +
                '">' +
                ss1[1] +
                '</span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-primary left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-primary" title="" data-original-title="">' + ss1[3] + '</span>' :'<span class="label label-primary left5" title="" data-original-title="">' + ss1[3] + '</span>' );
            tdArr.eq(2).html(h);
        } else {
            var h = '<span class="label label-success" title="" data-original-title="' +
                ss1[0] +
                '"><a class="job-method" href="javascript:void(0)">' +
                ss1[1] +
                '</a></span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-success left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-success" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-success left5" title="" data-original-title="">' + ss1[3] + '</span>' );
            tdArr.eq(2).html(h);
        }

    }
    if(isreJob && ss){
        var cron = ss.replace(/^\s+|\s+$/g, '');
        if(cron == '0 0 31 2 *'){
            // 获取实际暂停前的cron表达式
            $.ajax({
                type: "post",
                url: window.Hangfire.httpjobConfig.GetPauseCronUrl,
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({ "JobName": s1, "URL": "baseurl", "ContentType": "application/json" }),
                async: true,
                success: function (cron) {
                    tdArr.eq(2).html('<span class="label label-danger">'+cron +'</span>')
                }
            });
        }
    }
    var ss2 = tdArr.eq(4).text();
    if (ss2.indexOf('|') >= 0) {
        var ss1 = ss2.split('|');
        if (ss2.indexOf('Agent:') > 0) {
            isAgentJob = true;
            var h = '<span class="label label-primary" title="" data-original-title="' +
                ss1[0] +
                '">' +
                ss1[1] +
                '</span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-primary left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-primary" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-primary left5" title="" data-original-title="">' + ss1[3] + '</span>');
            tdArr.eq(4).html(h);
        } else {
            var h = '<span class="label label-success" title="" data-original-title="' +
                ss1[0] +
                '"><a class="job-method" href="javascript:void(0)">' +
                ss1[1] +
                '</a></span>' +
                (ss1[2] == ''
                    ? ''
                    : '<span class="label label-success left5" title="" data-original-title="">' +
                    ss1[2] +
                    '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-success" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-success left5" title="" data-original-title="">' + ss1[3] + '</span>');
           tdArr.eq(4).html(h);
           isHttpJob = true;
        }

    }

    if (tdArr.eq(3).text().indexOf('China Standard') > 0) {
        tdArr.eq(3).html(tdArr.eq(3).html().replace(' Standard Time', ''));
    } else {
        var ss3 = tdArr.eq(3).text();
        if (ss3.indexOf('|') >= 0) {
            var ss1 = ss3.split('|');
            if (ss3.indexOf('Agent:') > 0) {
                isAgentJob = true;
                var h = '<span class="label label-primary" title="" data-original-title="' +
                    ss1[0] +
                    '">' +
                    ss1[1] +
                    '</span>' +
                    (ss1[2] == ''
                        ? ''
                        : '<span class="label label-primary left5" title="" data-original-title="">' +
                        ss1[2] +
                        '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-primary" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-primary left5" title="" data-original-title="">' + ss1[3] + '</span>');
                tdArr.eq(3).html(h);
            } else {
                var h = '<span class="label label-success" title="" data-original-title="' +
                    ss1[0] +
                    '"><a class="job-method" href="javascript:void(0)">' +
                    ss1[1] +
                    '</a></span>' +
                    (ss1[2] == ''
                        ? ''
                        : '<span class="label label-success left5" title="" data-original-title="">' +
                        ss1[2] +
                        '</span>') + (isreJob ? '<hr style="margin:0"><span class="label label-success" title="" data-original-title="">' + ss1[3] + '</span>' : '<span class="label label-success left5" title="" data-original-title="">' + ss1[3] + '</span>');
                tdArr.eq(3).html(h);
            }

        }
    }

    if (isreJob && isAgentJob) {
        tdArr.eq(1).html('<a style="" title="" data-original-title="' + (window.Hangfire.httpjobConfig.CloseButtonName == '关闭' ? '点击查看详情' : 'Detail') + '" href="javascript:;" onclick="window.AgentJobDetail(\'' + btoa(encodeURIComponent(tdArr.eq(1).text())) + '\',true)">' + tdArr.eq(1).text()+'</a>');
    }

    if (isreJob && isHttpJob) {
        tdArr.eq(1).html('<a style="" title="" data-original-title="' + (window.Hangfire.httpjobConfig.CloseButtonName == '关闭' ? '点击查看详情' : 'Detail') + '" href="javascript:;" onclick="window.AgentJobDetail(\'' + btoa(encodeURIComponent(tdArr.eq(1).text())) + '\',false)">' + tdArr.eq(1).text() + '</a>');
    }

    if (config.ShowTag && "True" == config.ShowTag && config.NeedAddRecurringHttpJobButton) {
        var tag = tdArr.eq(1).html();
        if (tag.indexOf('Go to Tag') == -1) {
            tdArr.eq(1).append('<a class="label label-success text-uppercase" title="" data-original-title="Go to Tag Page" href="' + config.AppUrl + '/tags/search/' + tdArr.eq(1).text() + '" target="_blank">Tag</a>');
        }

    }
});
$(".table tbody").show();
if (document.documentElement.lang == "zh") {
    try {
        moment.locale('zh-cn');
        var updateRelativeDates = function () {
            $('*[data-moment]').each(function () {
                var $this = $(this);
                var timestamp = $this.data('moment');

                if (timestamp) {
                    var time = moment(timestamp, 'X');
                    $this.html(time.fromNow())
                        .attr('title', time.format('llll'))
                        .attr('data-original-title', time.format("l LTS"))
                        .attr('data-container', 'body');
                }
            });

            $('*[data-moment-title]').each(function () {
                var $this = $(this);
                var timestamp = $this.data('moment-title');

                if (timestamp) {
                    var time = moment(timestamp, 'X');
                    $this.prop('title', time.format('llll'))
                        .attr('data-original-title', time.format("l LTS"))
                        .attr('data-container', 'body');
                }
            });

            $('*[data-moment-local]').each(function () {
                var $this = $(this);
                var timestamp = $this.data('moment-local');

                if (timestamp) {
                    var time = moment(timestamp, 'X');
                    $this.html(time.format('l LTS'));
                }
            });
        };

        updateRelativeDates();
    } catch (e) {

    } 

}
$('*[title]').tooltip();

}

yuzd commented 1 year ago

done v3.7.7