Better handling of refreshing ladder and matches views depending on idle state.

This commit is contained in:
Nick Winter 2014-03-12 11:39:09 -07:00
parent 7e8f74f385
commit 77c9217357
2 changed files with 14 additions and 6 deletions

View file

@ -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()

View file

@ -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