Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. class dashboardCtrl
  2.  
  3. NOTIFICATIONS_STATUS_UPDATE_PERIOD = 30 # Seconds
  4.  
  5. @$inject = ['$scope', '$q', '$log', '$cookies', '$state', '$rootScope', '$timeout', 'MonitoringService',
  6. 'loginService', 'SettingsService']
  7.  
  8. _s = {}
  9.  
  10. scheduleAgentDataUpdate = () ->
  11. _s.MonitoringService.getUpdatePeriod().then (updatePeriod) =>
  12. _s.$log.debug "schedule update agents data: #{updatePeriod} seconds"
  13. _s.$timeout (=>
  14. @updateAgentsData().finally => scheduleAgentDataUpdate.call @
  15. ), (+updatePeriod) * 1000
  16.  
  17. scheduleNotificationsStatusUpdate = () ->
  18. _s.SettingsService.getNotificationsStatus().then (notificationsState) =>
  19. @user.notificationsState = +notificationsState
  20.  
  21. _s.$timeout (=> scheduleNotificationsStatusUpdate.call @), NOTIFICATIONS_STATUS_UPDATE_PERIOD * 1000
  22.  
  23. constructor: (args...) ->
  24. _s = _.object dashboardCtrl.$inject, args
  25.  
  26. @agentsMenuShow = true
  27.  
  28. @agentsMenuOpen = false
  29.  
  30. @hasParentState = _s.$state.includes
  31.  
  32. @user = _s.loginService.getUser()
  33.  
  34. _s.$scope.$watch (-> _s.MonitoringService.getAgentsData()), (newVal, oldVal) =>
  35. @monitoringAgents = _s.MonitoringService.getAgentsData()
  36.  
  37. _s.$scope.notificationsOnOffCallback = =>
  38. _s.SettingsService.notificationsOnOff(@user.notificationsState)
  39.  
  40. _s.$scope.$on 'showAgentsMenu', @showAgentsMenu
  41.  
  42. _s.$scope.$on 'dashboard.updateAgents', () => @updateAgentsData()
  43.  
  44. _s.$scope.$on '$stateChangeSuccess', =>
  45. @agentsMenuShow = _s.$state.includes 'dashboard.monitoring'
  46. if _s.$state.current.name isnt 'dashboard.monitoring.phones'
  47. @hideAgentsMenu()
  48. else
  49. @showAgentsMenu()
  50.  
  51. scheduleNotificationsStatusUpdate.call @
  52.  
  53. scheduleAgentDataUpdate.call @
  54.  
  55. @updateAgentsData()
  56.  
  57. _s.$log.debug "dashboardCtrl", _s.$scope
  58.  
  59. isAgentsOverallStatusBad: () ->
  60. (_.select @monitoringAgents, (agent) -> +agent.status in [3, 5])?.length > 0
  61.  
  62. logout: ->
  63. _s.$cookies.authCode = "";
  64. _s.$state.go 'login'
  65.  
  66. updateAgentsData: () ->
  67. promise = _s.MonitoringService.getAgents()
  68. _s.$scope.$broadcast 'dashboard.monitoring.phonesUpdate'
  69. _s.$scope.$broadcast 'dashboard.monitoring.diagramUpdate'
  70. promise
  71.  
  72. hasRole: (roles) ->
  73. _s.loginService.hasRole(roles)
  74.  
  75. toggleAgentsMenu: ->
  76. @agentsMenuOpen = not @agentsMenuOpen
  77.  
  78. showAgentsMenu: ->
  79. @agentsMenuOpen = true
  80.  
  81. hideAgentsMenu: ->
  82. @agentsMenuOpen = false
  83.  
  84. isAgentActive: (agent) ->
  85. activeAgent = _s.MonitoringService.getActiveAgent()
  86. activeAgent and activeAgent.agentId is agent.agentId
  87.  
  88. goAgent: (agent) ->
  89. _s.$state.go 'dashboard.monitoring.phones', {agentId: agent.agentId}
  90.  
  91. goMonitoring: () ->
  92. unless @hasParentState 'dashboard.monitoring'
  93. _s.$state.go 'dashboard.monitoring'
  94.  
  95. if (@hasParentState 'dashboard.monitoring.phones') or (@hasParentState 'dashboard.monitoring.diagram')
  96. @toggleAgentsMenu()
  97. @updateAgentsData()
  98.  
  99. espp.controller 'dashboardCtrl', dashboardCtrl
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement