From 50005e2ef9573819c34b81407dddb978daf42c73 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Thu, 21 Nov 2013 11:31:10 -0500 Subject: [PATCH] FIX: Back button wasn't reusing scroll position on category filter --- .../discourse/routes/filtered_list_route.js | 19 +++++++++++-------- .../discourse/routes/list_category_route.js | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/discourse/routes/filtered_list_route.js b/app/assets/javascripts/discourse/routes/filtered_list_route.js index 22a6adf256..fd4cee253e 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 96a26443a8..ec12d452da 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(); }); },