worker-checker.js.coffee 1.9KB

    $ -> firstEventCount = null previousJobs = null if $(".job-indicator").length check = -> $.getJSON "/worker_status", (json) -> for method in ['pending', 'awaiting_retry', 'recent_failures'] count = json[method] elem = $(".job-indicator[role=#{method}]") if count > 0 tooltipOptions = { title: "#{count} jobs #{method.split('_').join(' ')}" delay: 0 placement: "bottom" trigger: "hover" } if elem.is(":visible") elem.tooltip('destroy').tooltip(tooltipOptions).find(".number").text(count) else elem.tooltip('destroy').tooltip(tooltipOptions).fadeIn().find(".number").text(count) else if elem.is(":visible") elem.tooltip('destroy').fadeOut() firstEventCount = json.event_count unless firstEventCount? if firstEventCount? && json.event_count > firstEventCount $("#event-indicator").tooltip('destroy'). tooltip(title: "Click to reload", delay: 0, placement: "bottom", trigger: "hover"). fadeIn(). find(".number"). text(json.event_count - firstEventCount) else $("#event-indicator").tooltip('destroy').fadeOut() currentJobs = [json.pending, json.awaiting_retry, json.recent_failures] if document.location.pathname == '/jobs' && $(".modal[aria-hidden=false]").length == 0 && previousJobs? && previousJobs.join(',') != currentJobs.join(',') $.get '/jobs', (data) => $("#main-content").html(data) previousJobs = currentJobs window.workerCheckTimeout = setTimeout check, 2000 check() $("#event-indicator a").on "click", (e) -> e.preventDefault() window.location.reload()