From 27b6de5ac1b9c273950a90979b14588d82d5aa04 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Tue, 11 Feb 2014 02:56:32 +0100 Subject: [PATCH] Fixed race condition in case of reloading whole collections. --- .../app/models/_application_model.js.coffee | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/app/models/_application_model.js.coffee b/app/assets/javascripts/app/models/_application_model.js.coffee index 49f3fb938..ef566cb2e 100644 --- a/app/assets/javascripts/app/models/_application_model.js.coffee +++ b/app/assets/javascripts/app/models/_application_model.js.coffee @@ -130,9 +130,7 @@ class App.Model extends Spine.Model for record in records if @RETRIEVE_CALLBACK[ record.id ] for key, callback of @RETRIEVE_CALLBACK[ record.id ] - data = App[ @className ].find( record.id ) - data = @_fillUp( data ) - callback( data ) + data = callback( @_fillUp( App[ @className ].find( record.id ) ) ) delete @RETRIEVE_CALLBACK[ record.id ][ key ] if _.isEmpty @RETRIEVE_CALLBACK[ record.id ] delete @RETRIEVE_CALLBACK[ record.id ] @@ -153,9 +151,9 @@ class App.Model extends Spine.Model # subscribe and render data / fetch new data if triggered @bind( 'refresh change' - => + (items) => for key, callback of @SUBSCRIPTION_COLLECTION - callback() + callback(items) ) # trigger deleteAll() and fetch() on network notify @@ -163,8 +161,7 @@ class App.Model extends Spine.Model App.Event.bind( events => - @deleteAll() - @fetch() + @fetch( {}, { clear: true } ) 'Collection::Subscribe::' + @className ) @@ -176,7 +173,7 @@ class App.Model extends Spine.Model if param['initFetch'] is true @one 'refresh', (collection) => callback(collection) - @fetch() + @fetch( {}, { clear: true } ) return key