From d5bd462ed93beea94cf22196acd9c71529b08b0a Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Fri, 6 Feb 2015 12:22:08 +1030 Subject: [PATCH] Make discussion in view when returning to index --- framework/core/ember/app/routes/discussion.js | 1 + framework/core/ember/app/views/index/index.js | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/framework/core/ember/app/routes/discussion.js b/framework/core/ember/app/routes/discussion.js index 0731f0c77..1559e49fc 100644 --- a/framework/core/ember/app/routes/discussion.js +++ b/framework/core/ember/app/routes/discussion.js @@ -30,6 +30,7 @@ export default Ember.Route.extend({ setupController: function(controller, discussion) { controller.set('model', discussion); + this.controllerFor('index/index').set('lastDiscussion', discussion); // Set up the post stream object. It needs to know about the discussion // it's representing the posts for, and we also need to inject the Ember diff --git a/framework/core/ember/app/views/index/index.js b/framework/core/ember/app/views/index/index.js index 0c0e803f3..d6832d114 100644 --- a/framework/core/ember/app/views/index/index.js +++ b/framework/core/ember/app/views/index/index.js @@ -4,7 +4,20 @@ export default Ember.View.extend({ didInsertElement: function() { this.updateTitle(); - $(window).scrollTop(this.get('controller.scrollTop')); + var scrollTop = this.get('controller.scrollTop'); + $(window).scrollTop(scrollTop); + + var lastDiscussion = this.get('controller.lastDiscussion'); + if (lastDiscussion) { + var $discussion = $('.index-area .discussion-summary[data-id='+lastDiscussion.get('id')+']'); + if ($discussion.length) { + var indexTop = $('#header').outerHeight(); + var discussionTop = $discussion.offset().top; + if (discussionTop < scrollTop + indexTop || discussionTop + $discussion.outerHeight() > scrollTop + $(window).height()) { + $(window).scrollTop(discussionTop - indexTop); + } + } + } }, willDestroyElement: function() {