diff --git a/app/application.coffee b/app/application.coffee index 860aee96e..caf648679 100644 --- a/app/application.coffee +++ b/app/application.coffee @@ -44,11 +44,12 @@ Application = initialize: -> }, (t) => @router = new Router() @router.subscribe() + onIdleChanged = (to) => => Backbone.Mediator.publish 'application:idle-changed', idle: @userIsIdle = to @idleTracker = new Idle - onAway: => @userIsIdle = true - onAwayBack: => @userIsIdle = false - onHidden: => @userIsIdle = true - onVisible: => @userIsIdle = false + onAway: onIdleChanged true + onAwayBack: onIdleChanged false + onHidden: onIdleChanged true + onVisible: onIdleChanged false awayTimeout: 5 * 60 * 1000 @idleTracker.start() diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index 0323d3ec5..e275d0613 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -25,6 +25,9 @@ module.exports = class LadderView extends RootView template: require 'templates/play/ladder' startsLoading: true + subscriptions: + 'application:idle-changed': 'onIdleChanged' + events: 'click #simulate-button': 'onSimulateButtonClick' 'click #simulate-all-button': 'onSimulateAllButtonClick' @@ -70,10 +73,14 @@ module.exports = class LadderView extends RootView @sessions.fetch({"success": @refreshViews}) refreshViews: => - return if @destroyed or application.userIsIdle + return if @destroyed or application.userIsIdle or new Date() - 2000 < @lastRefreshTime + @lastRefreshTime = new Date() @ladderTab.refreshLadder() @myMatchesTab.refreshMatches() - console.log "refreshed views!" + console.log "Refreshing ladder and matches views." + + onIdleChanged: (e) -> + @refreshViews() unless e.idle # Simulations