From f3021e9a856c9f18f30f13dc5dc93a6bc365063e Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Thu, 26 Feb 2015 13:29:26 +1030 Subject: [PATCH] Only reload results once when multiple params change --- framework/core/ember/app/controllers/index/index.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/framework/core/ember/app/controllers/index/index.js b/framework/core/ember/app/controllers/index/index.js index bb03a54c4..e4d5cd673 100644 --- a/framework/core/ember/app/controllers/index/index.js +++ b/framework/core/ember/app/controllers/index/index.js @@ -57,9 +57,9 @@ export default Ember.Controller.extend({ // var results = Ember.RSVP.resolve(FLARUM_DATA.discussions); return this.store.find('discussion', params).then(function(discussions) { - var results = Ember.A(); + var results = []; discussions.forEach(function(discussion) { - var relevantPosts = Ember.A(); + var relevantPosts = []; // discussion.get('relevantPosts.content').forEach(function(post) { // relevantPosts.pushObject(PostResult.create(post)); // }); @@ -92,11 +92,15 @@ export default Ember.Controller.extend({ }), paramsDidChange: Ember.observer('sort', 'show', 'searchQuery', function() { - if (this.get('model')) { - this.send('refresh'); + if (this.get('model') && !this.get('resultsLoading')) { + Ember.run.once(this, this.loadResults); } }), + loadResults: function() { + this.send('loadResults'); + }, + actions: { loadMore: function() { var controller = this; @@ -115,6 +119,7 @@ export default Ember.Controller.extend({ loadResults: function() { var controller = this; + controller.get('model').clear(); controller.set('resultsLoading', true); controller.getResults().then(function(results) { controller