agent-show-page.js.coffee 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. $('#target').click ->
  2. $('#memorytoggle').toggleClass 'hidden'
  3. return
  4. class @AgentShowPage
  5. constructor: ->
  6. $(".agent-show #show-tabs a[href='#logs'], #logs .refresh").on "click", @fetchLogs
  7. $(".agent-show #logs .clear").on "click", @clearLogs
  8. $(".agent-show #memory .clear").on "click", @clearMemory
  9. # Trigger tabs when navigated to.
  10. if tab = window.location.href.match(/tab=(\w+)\b/i)?[1]
  11. if tab in ["details", "logs"]
  12. $(".agent-show .nav-pills li a[href='##{tab}']").click()
  13. fetchLogs: (e) ->
  14. agentId = $(e.target).closest("[data-agent-id]").data("agent-id")
  15. e.preventDefault()
  16. $("#logs .spinner").show()
  17. $("#logs .refresh, #logs .clear").hide()
  18. $.get "/agents/#{agentId}/logs", (html) =>
  19. $("#logs .logs").html html
  20. $("#logs .logs .show-log-details").each ->
  21. $button = $(this)
  22. $button.on 'click', (e) ->
  23. e.preventDefault()
  24. Utils.showDynamicModal '<pre></pre>',
  25. title: $button.data('modal-title'),
  26. body: (body) ->
  27. $(body).find('pre').text $button.data('modal-content')
  28. $("#logs .spinner").stop(true, true).fadeOut ->
  29. $("#logs .refresh, #logs .clear").show()
  30. clearLogs: (e) ->
  31. if confirm("Are you sure you want to clear all logs for this Agent?")
  32. agentId = $(e.target).closest("[data-agent-id]").data("agent-id")
  33. e.preventDefault()
  34. $("#logs .spinner").show()
  35. $("#logs .refresh, #logs .clear").hide()
  36. $.post "/agents/#{agentId}/logs/clear", { "_method": "DELETE" }, (html) =>
  37. $("#logs .logs").html html
  38. $("#show-tabs li a.recent-errors").removeClass 'recent-errors'
  39. $("#logs .spinner").stop(true, true).fadeOut ->
  40. $("#logs .refresh, #logs .clear").show()
  41. clearMemory: (e) ->
  42. if confirm("Are you sure you want to clear memory of this Agent?")
  43. agentId = $(e.target).closest("[data-agent-id]").data("agent-id")
  44. e.preventDefault()
  45. $("#memory .spinner").css(display: 'inline-block')
  46. $("#memory .clear").hide()
  47. $.post "/agents/#{agentId}/memory", { "_method": "DELETE" }
  48. .done ->
  49. $("#memory .spinner").fadeOut ->
  50. $("#memory + .memory").text "{\n}\n"
  51. .fail ->
  52. $("#memory .spinner").fadeOut ->
  53. $("#memory .clear").css(display: 'inline-block')
  54. $ ->
  55. Utils.registerPage(AgentShowPage, forPathsMatching: /^agents\/\d+/)