debugging: ladder_view doesn't show loading bar.
This commit is contained in:
parent
360e594f3d
commit
fe96289bf6
3 changed files with 81 additions and 7 deletions
app
|
@ -164,6 +164,7 @@ module.exports = class SuperModel extends Backbone.Model
|
||||||
@num += r.value
|
@num += r.value
|
||||||
@progress = @num / @denom
|
@progress = @num / @denom
|
||||||
|
|
||||||
|
console.debug 'gintau', 'updateProgress', @progress, @num, @denom
|
||||||
@trigger('superModel:updateProgress', @progress)
|
@trigger('superModel:updateProgress', @progress)
|
||||||
@trigger('loaded-all') if @finished()
|
@trigger('loaded-all') if @finished()
|
||||||
|
|
||||||
|
@ -190,6 +191,7 @@ class Resource extends Backbone.Model
|
||||||
@dependencies.push(depRes)
|
@dependencies.push(depRes)
|
||||||
|
|
||||||
markLoaded: ->
|
markLoaded: ->
|
||||||
|
console.debug 'gintau', 'markLoaded', @
|
||||||
@trigger('resource:loaded', @) if not @isLoaded
|
@trigger('resource:loaded', @) if not @isLoaded
|
||||||
@isLoaded = true
|
@isLoaded = true
|
||||||
@isLoading = false
|
@isLoading = false
|
||||||
|
@ -232,6 +234,15 @@ class ModelResource extends Resource
|
||||||
onLoadDependenciesSuccess: =>
|
onLoadDependenciesSuccess: =>
|
||||||
@model.fetch(@fetchOptions)
|
@model.fetch(@fetchOptions)
|
||||||
|
|
||||||
|
###
|
||||||
|
setTimeout(=>
|
||||||
|
if @isLoading
|
||||||
|
@markLoaded()
|
||||||
|
@loadDeferred.resolve(@)
|
||||||
|
console.debug 'gintau', 'load-timeout'
|
||||||
|
, 5000)
|
||||||
|
###
|
||||||
|
|
||||||
@listenToOnce(@model, 'sync', ->
|
@listenToOnce(@model, 'sync', ->
|
||||||
@markLoaded()
|
@markLoaded()
|
||||||
@loadDeferred.resolve(@)
|
@loadDeferred.resolve(@)
|
||||||
|
|
|
@ -88,8 +88,10 @@ module.exports = class CocoView extends Backbone.View
|
||||||
@$el.html @template(@getRenderData())
|
@$el.html @template(@getRenderData())
|
||||||
|
|
||||||
if not @supermodel.finished()
|
if not @supermodel.finished()
|
||||||
|
console.debug 'gintau', 'cocoview-showLoading', @
|
||||||
@showLoading()
|
@showLoading()
|
||||||
else
|
else
|
||||||
|
console.debug 'gintau', 'cocoview-hideLoading', @
|
||||||
@hideLoading()
|
@hideLoading()
|
||||||
|
|
||||||
@afterRender()
|
@afterRender()
|
||||||
|
@ -180,6 +182,7 @@ module.exports = class CocoView extends Backbone.View
|
||||||
# Loading RootViews
|
# Loading RootViews
|
||||||
|
|
||||||
showLoading: ($el=@$el) ->
|
showLoading: ($el=@$el) ->
|
||||||
|
console.debug 'gintau', 'showLoading', $el
|
||||||
$el.find('>').addClass('hidden')
|
$el.find('>').addClass('hidden')
|
||||||
$el.append loadingScreenTemplate()
|
$el.append loadingScreenTemplate()
|
||||||
@_lastLoading = $el
|
@_lastLoading = $el
|
||||||
|
|
|
@ -10,6 +10,9 @@ application = require 'application'
|
||||||
LadderTabView = require './ladder/ladder_tab'
|
LadderTabView = require './ladder/ladder_tab'
|
||||||
MyMatchesTabView = require './ladder/my_matches_tab'
|
MyMatchesTabView = require './ladder/my_matches_tab'
|
||||||
LadderPlayModal = require './ladder/play_modal'
|
LadderPlayModal = require './ladder/play_modal'
|
||||||
|
SimulatorsLeaderboardCollection = require 'collections/SimulatorsLeaderboardCollection'
|
||||||
|
CocoClass = require 'lib/CocoClass'
|
||||||
|
|
||||||
|
|
||||||
HIGHEST_SCORE = 1000000
|
HIGHEST_SCORE = 1000000
|
||||||
|
|
||||||
|
@ -37,12 +40,16 @@ module.exports = class LadderView extends RootView
|
||||||
constructor: (options, @levelID) ->
|
constructor: (options, @levelID) ->
|
||||||
super(options)
|
super(options)
|
||||||
@level = new Level(_id:@levelID)
|
@level = new Level(_id:@levelID)
|
||||||
levelRes = @supermodel.addModelResource(@level, 'level')
|
@levelRes = @supermodel.addModelResource(@level, 'level')
|
||||||
levelRes.load()
|
@levelRes.load()
|
||||||
|
|
||||||
@sessions = new LevelSessionsCollection(levelID)
|
@sessions = new LevelSessionsCollection(levelID)
|
||||||
sessionRes = @supermodel.addModelResource(@sessions, 'level_sessions_collection')
|
@sessionRes = @supermodel.addModelResource(@sessions, 'level_sessions_collection')
|
||||||
sessionRes.load()
|
@sessionRes.load()
|
||||||
|
|
||||||
|
@simulatorsLeaderboardData = new SimulatorsLeaderboardData(me)
|
||||||
|
@simulatorsLeaderboardDataRes = @supermodel.addModelResource(@simulatorsLeaderboardData, 'top_simulators')
|
||||||
|
@simulatorsLeaderboardDataRes.markLoaded()
|
||||||
|
|
||||||
@simulator = new Simulator()
|
@simulator = new Simulator()
|
||||||
@listenTo(@simulator, 'statusUpdate', @updateSimulationStatus)
|
@listenTo(@simulator, 'statusUpdate', @updateSimulationStatus)
|
||||||
|
@ -60,10 +67,13 @@ module.exports = class LadderView extends RootView
|
||||||
ctx.teams = @teams
|
ctx.teams = @teams
|
||||||
ctx.levelID = @levelID
|
ctx.levelID = @levelID
|
||||||
ctx.levelDescription = marked(@level.get('description')) if @level.get('description')
|
ctx.levelDescription = marked(@level.get('description')) if @level.get('description')
|
||||||
|
ctx.simulatorsLeaderboardData = @simulatorsLeaderboardData
|
||||||
|
ctx._ = _
|
||||||
ctx
|
ctx
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
super()
|
super()
|
||||||
|
console.debug 'gintau', 'ladder_view-afterRender', @supermodel.finished()
|
||||||
return unless @supermodel.finished()
|
return unless @supermodel.finished()
|
||||||
@insertSubView(@ladderTab = new LadderTabView({}, @level, @sessions))
|
@insertSubView(@ladderTab = new LadderTabView({}, @level, @sessions))
|
||||||
@insertSubView(@myMatchesTab = new MyMatchesTabView({}, @level, @sessions))
|
@insertSubView(@myMatchesTab = new MyMatchesTabView({}, @level, @sessions))
|
||||||
|
@ -123,17 +133,17 @@ module.exports = class LadderView extends RootView
|
||||||
|
|
||||||
onClickPlayButton: (e) ->
|
onClickPlayButton: (e) ->
|
||||||
@showPlayModal($(e.target).closest('.play-button').data('team'))
|
@showPlayModal($(e.target).closest('.play-button').data('team'))
|
||||||
|
|
||||||
resimulateAllSessions: ->
|
resimulateAllSessions: ->
|
||||||
postData =
|
postData =
|
||||||
originalLevelID: @level.get('original')
|
originalLevelID: @level.get('original')
|
||||||
levelMajorVersion: @level.get('version').major
|
levelMajorVersion: @level.get('version').major
|
||||||
console.log postData
|
console.log postData
|
||||||
|
|
||||||
$.ajax
|
$.ajax
|
||||||
url: '/queue/scoring/resimulateAllSessions'
|
url: '/queue/scoring/resimulateAllSessions'
|
||||||
method: 'POST'
|
method: 'POST'
|
||||||
data: postData
|
data: postData
|
||||||
complete: (jqxhr) ->
|
complete: (jqxhr) ->
|
||||||
console.log jqxhr.responseText
|
console.log jqxhr.responseText
|
||||||
|
|
||||||
|
@ -158,3 +168,53 @@ module.exports = class LadderView extends RootView
|
||||||
clearInterval @refreshInterval
|
clearInterval @refreshInterval
|
||||||
@simulator.destroy()
|
@simulator.destroy()
|
||||||
super()
|
super()
|
||||||
|
|
||||||
|
class SimulatorsLeaderboardData extends CocoClass
|
||||||
|
###
|
||||||
|
Consolidates what you need to load for a leaderboard into a single Backbone Model-like object.
|
||||||
|
###
|
||||||
|
|
||||||
|
constructor: (@me) ->
|
||||||
|
super()
|
||||||
|
@fetch()
|
||||||
|
|
||||||
|
fetch: ->
|
||||||
|
@topSimulators = new SimulatorsLeaderboardCollection({order:-1, scoreOffset: -1, limit: 20})
|
||||||
|
promises = []
|
||||||
|
promises.push @topSimulators.fetch()
|
||||||
|
unless @me.get('anonymous')
|
||||||
|
score = @me.get('simulatedBy') or 0
|
||||||
|
@playersAbove = new SimulatorsLeaderboardCollection({order:1, scoreOffset: score, limit: 4})
|
||||||
|
promises.push @playersAbove.fetch()
|
||||||
|
if score
|
||||||
|
@playersBelow = new SimulatorsLeaderboardCollection({order:-1, scoreOffset: score, limit: 4})
|
||||||
|
promises.push @playersBelow.fetch()
|
||||||
|
@promise = $.when(promises...)
|
||||||
|
@promise.then @onLoad
|
||||||
|
@promise.fail @onFail
|
||||||
|
@promise
|
||||||
|
|
||||||
|
onLoad: =>
|
||||||
|
return if @destroyed
|
||||||
|
@loaded = true
|
||||||
|
@trigger 'sync', @
|
||||||
|
|
||||||
|
onFail: (resource, jqxhr) =>
|
||||||
|
return if @destroyed
|
||||||
|
@trigger 'error', @, jqxhr
|
||||||
|
|
||||||
|
inTopSimulators: ->
|
||||||
|
return me.id in (user.id for user in @topSimulators.models)
|
||||||
|
|
||||||
|
nearbySimulators: ->
|
||||||
|
l = []
|
||||||
|
above = @playersAbove.models
|
||||||
|
above.reverse()
|
||||||
|
l = l.concat(above)
|
||||||
|
l.push @me
|
||||||
|
l = l.concat(@playersBelow.models) if @playersBelow
|
||||||
|
l
|
||||||
|
|
||||||
|
allResources: ->
|
||||||
|
resources = [@topSimulators, @playersAbove, @playersBelow]
|
||||||
|
return (r for r in resources when r)
|
||||||
|
|
Reference in a new issue