diff --git a/app/assets/javascripts/discourse/routes/filtered_list_route.js b/app/assets/javascripts/discourse/routes/filtered_list_route.js index 22a6adf25..fd4cee253 100644 --- a/app/assets/javascripts/discourse/routes/filtered_list_route.js +++ b/app/assets/javascripts/discourse/routes/filtered_list_route.js @@ -41,18 +41,21 @@ Discourse.FilteredListRoute = Discourse.Route.extend({ listController.load(this.filter).then(function(topicList) { listController.set('canCreateTopic', topicList.get('can_create_topic')); listTopicsController.set('model', topicList); - - var scrollPos = Discourse.Session.currentProp('topicListScrollPosition'); - if (scrollPos) { - Em.run.next(function() { - $('html, body').scrollTop(scrollPos); - }); - Discourse.Session.current().set('topicListScrollPosition', null); - } + Discourse.FilteredListRoute.scrollToLastPosition(); }); } }); +Discourse.FilteredListRoute.reopenClass({ + scrollToLastPosition: function() { + var scrollPos = Discourse.Session.currentProp('topicListScrollPosition'); + if (scrollPos) { + Em.run.next(function() { $('html, body').scrollTop(scrollPos); }); + Discourse.Session.currentProp('topicListScrollPosition', null); + } + } +}); + Discourse.ListController.filters.forEach(function(filter) { Discourse["List" + (filter.capitalize()) + "Route"] = Discourse.FilteredListRoute.extend({ filter: filter }); }); diff --git a/app/assets/javascripts/discourse/routes/list_category_route.js b/app/assets/javascripts/discourse/routes/list_category_route.js index 96a26443a..ec12d452d 100644 --- a/app/assets/javascripts/discourse/routes/list_category_route.js +++ b/app/assets/javascripts/discourse/routes/list_category_route.js @@ -35,6 +35,7 @@ Discourse.ListCategoryRoute = Discourse.FilteredListRoute.extend({ }); self.controllerFor('listTopics').set('content', topicList); self.controllerFor('listTopics').set('category', category); + Discourse.FilteredListRoute.scrollToLastPosition(); }); },