agent-show-page.js.coffee 2.6KB

    class @AgentShowPage constructor: -> $(".agent-show #show-tabs a[href='#logs'], #logs .refresh").on "click", @fetchLogs $(".agent-show #logs .clear").on "click", @clearLogs $(".agent-show #memory .clear").on "click", @clearMemory $('#toggle-memory').on "click", @toggleMemory # Trigger tabs when navigated to. if tab = window.location.href.match(/tab=(\w+)\b/i)?[1] if tab in ["details", "logs"] $(".agent-show .nav-pills li a[href='##{tab}']").click() fetchLogs: (e) -> agentId = $(e.target).closest("[data-agent-id]").data("agent-id") e.preventDefault() $("#logs .spinner").show() $("#logs .refresh, #logs .clear").hide() $.get "/agents/#{agentId}/logs", (html) => $("#logs .logs").html html $("#logs .logs .show-log-details").each -> $button = $(this) $button.on 'click', (e) -> e.preventDefault() Utils.showDynamicModal '<pre></pre>', title: $button.data('modal-title'), body: (body) -> $(body).find('pre').text $button.data('modal-content') $("#logs .spinner").stop(true, true).fadeOut -> $("#logs .refresh, #logs .clear").show() clearLogs: (e) -> if confirm("Are you sure you want to clear all logs for this Agent?") agentId = $(e.target).closest("[data-agent-id]").data("agent-id") e.preventDefault() $("#logs .spinner").show() $("#logs .refresh, #logs .clear").hide() $.post "/agents/#{agentId}/logs/clear", { "_method": "DELETE" }, (html) => $("#logs .logs").html html $("#show-tabs li a.recent-errors").removeClass 'recent-errors' $("#logs .spinner").stop(true, true).fadeOut -> $("#logs .refresh, #logs .clear").show() toggleMemory: (e) -> e.preventDefault() if $('pre.memory').hasClass('hidden') $('pre.memory').removeClass 'hidden' $('#toggle-memory').text('Hide') else $('pre.memory').addClass 'hidden' $('#toggle-memory').text('Show') clearMemory: (e) -> if confirm("Are you sure you want to completely clear the memory of this Agent?") agentId = $(e.target).closest("[data-agent-id]").data("agent-id") e.preventDefault() $("#memory .spinner").css(display: 'inline-block') $("#memory .clear").hide() $.post "/agents/#{agentId}/memory", { "_method": "DELETE" } .done -> $("#memory .spinner").fadeOut -> $("#memory + .memory").text "{\n}\n" .fail -> $("#memory .spinner").fadeOut -> $("#memory .clear").css(display: 'inline-block') $ -> Utils.registerPage(AgentShowPage, forPathsMatching: /^agents\/\d+/)