From 91efbc18308791335b0965bcb391043179074571 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Fri, 2 Aug 2013 18:42:11 -0400 Subject: [PATCH] FIX: If an error occurs loading posts, revert state correctly --- .../javascripts/discourse/models/post_stream.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/discourse/models/post_stream.js b/app/assets/javascripts/discourse/models/post_stream.js index be62397183d..bc251c6e683 100644 --- a/app/assets/javascripts/discourse/models/post_stream.js +++ b/app/assets/javascripts/discourse/models/post_stream.js @@ -270,22 +270,26 @@ Discourse.PostStream = Em.Object.extend({ @returns {Ember.Deferred} a promise that's resolved when the posts have been added. **/ appendMore: function() { - var postStream = this, - rejectedPromise = Ember.Deferred.create(function(p) { p.reject(); }); + var postStream = this; // Make sure we can append more posts - if (!postStream.get('canAppendMore')) { return rejectedPromise; } + if (!postStream.get('canAppendMore')) { return Ember.RSVP.reject(); } var postIds = postStream.get('nextWindow'); - if (Ember.isEmpty(postIds)) { return rejectedPromise; } + if (Ember.isEmpty(postIds)) { return Ember.RSVP.reject(); } postStream.set('loadingBelow', true); + + var stopLoading = function() { + postStream.set('loadingBelow', false); + }; + return postStream.findPostsByIds(postIds).then(function(posts) { posts.forEach(function(p) { postStream.appendPost(p); }); - postStream.set('loadingBelow', false); - }); + stopLoading(); + }, stopLoading); }, /**