FIX: Improve use of loading spinners on discovery routes

This commit is contained in:
Robin Ward 2014-11-14 12:27:54 -05:00
parent 3829add90b
commit 1d1978086c
6 changed files with 11 additions and 7 deletions

View File

@ -13,7 +13,7 @@ export default DiscoveryController.extend({
// Don't refresh if we're still loading
if (this.get('controllers.discovery.loading')) { return; }
this.send('loading');
this.send('discoveryLoading');
Discourse.CategoryList.list('categories').then(function(list) {
self.set('model', list);
self.send('loadingComplete');

View File

@ -42,7 +42,7 @@ var controllerOpts = {
// Don't refresh if we're still loading
if (this.get('controllers.discovery.loading')) { return; }
this.send('loading');
this.send('discoveryLoading');
Discourse.TopicList.find(filter).then(function(list) {
self.setProperties({ model: list, selected: [] });

View File

@ -16,8 +16,6 @@ function loadingResolver(cb) {
fullNameWithoutType = fullNameWithoutType.replace('Loading', '');
if (LOADING_WHITELIST.indexOf(fullNameWithoutType) !== -1) {
return cb(fullNameWithoutType);
} else {
Ember.warn('consider whitelisting a loading route for: ' + fullNameWithoutType);
}
}
};

View File

@ -5,6 +5,10 @@ export default function(filter, params) {
return Discourse.Route.extend({
queryParams: queryParams,
beforeModel: function(transition) {
transition.send('discoveryLoading');
},
model: function(modelParams) {
return Discourse.Category.findBySlug(modelParams.slug, modelParams.parentSlug);
},
@ -85,6 +89,7 @@ export default function(filter, params) {
});
this.controllerFor('search').set('searchContext', model.get('searchContext'));
this.controllerFor('discovery').send('loadingComplete');
this.set('topics', null);
this.openTopicDraft(topics);

View File

@ -17,7 +17,8 @@ export default function(filter, extras) {
return Discourse.Route.extend({
queryParams: queryParams,
beforeModel: function() {
beforeModel: function(transition) {
transition.send('discoveryLoading');
this.controllerFor('navigation/default').set('filterMode', filter);
},
@ -60,6 +61,7 @@ export default function(filter, extras) {
this.openTopicDraft(model);
this.controllerFor('navigation/default').set('canCreateTopic', model.get('can_create_topic'));
this.controllerFor('discovery').send('loadingComplete');
},
renderTemplate: function() {

View File

@ -19,12 +19,11 @@ Discourse.DiscoveryRoute = Discourse.Route.extend(Discourse.ScrollTop, Discourse
},
actions: {
loading: function() {
discoveryLoading: function() {
var controller = this.controllerFor('discovery');
// If we're already loading don't do anything
if (controller.get('loading')) { return; }
controller.set('loading', true);
},