diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index 7a4fad3789a..f4234a441f0 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -16,9 +16,6 @@ Discourse = Ember.Application.createWithMixins(Discourse.Ajax, { // Are we currently scrolling? scrolling: false, - // The highest seen post number by topic - highestSeenByTopic: {}, - // Helps with integration tests URL_FIXTURES: {}, diff --git a/app/assets/javascripts/discourse/components/screen_track.js b/app/assets/javascripts/discourse/components/screen_track.js index a331f39f7b0..34b2f03facf 100644 --- a/app/assets/javascripts/discourse/components/screen_track.js +++ b/app/assets/javascripts/discourse/components/screen_track.js @@ -98,7 +98,7 @@ Discourse.ScreenTrack = Ember.Object.extend({ highestSeen = Math.max(highestSeen, parseInt(postNumber, 10)); }); - var highestSeenByTopic = Discourse.get('highestSeenByTopic'); + var highestSeenByTopic = Discourse.Session.current('highestSeenByTopic'); if ((highestSeenByTopic[topicId] || 0) < highestSeen) { highestSeenByTopic[topicId] = highestSeen; Discourse.TopicTrackingState.current().updateSeen(topicId, highestSeen); diff --git a/app/assets/javascripts/discourse/models/session.js b/app/assets/javascripts/discourse/models/session.js index de7147772cb..2af3681b2ae 100644 --- a/app/assets/javascripts/discourse/models/session.js +++ b/app/assets/javascripts/discourse/models/session.js @@ -7,9 +7,14 @@ @namespace Discourse @module Discourse **/ -Discourse.Session = Discourse.Model.extend({}); +Discourse.Session = Discourse.Model.extend({ + init: function() { + this.set('highestSeenByTopic', {}); + } +}); Discourse.Session.reopenClass({ + /** Returns the current session. diff --git a/app/assets/javascripts/discourse/models/topic.js b/app/assets/javascripts/discourse/models/topic.js index 4a4efe3e088..4d46d1eaca8 100644 --- a/app/assets/javascripts/discourse/models/topic.js +++ b/app/assets/javascripts/discourse/models/topic.js @@ -87,7 +87,7 @@ Discourse.Topic = Discourse.Model.extend({ // So take what the browser has seen into consideration. displayNewPosts: function() { var delta, highestSeen, result; - if (highestSeen = Discourse.get('highestSeenByTopic')[this.get('id')]) { + if (highestSeen = Discourse.Session.current('highestSeenByTopic')[this.get('id')]) { delta = highestSeen - this.get('last_read_post_number'); if (delta > 0) { result = this.get('new_posts') - delta; diff --git a/test/javascripts/models/session_test.js b/test/javascripts/models/session_test.js index 61a95be0161..93f6341781c 100644 --- a/test/javascripts/models/session_test.js +++ b/test/javascripts/models/session_test.js @@ -13,4 +13,11 @@ test('current', function(){ Discourse.Session.current('orange', 'juice'); equal(session.get('orange'), "juice", "it can be updated"); +}); + +test('highestSeenByTopic', function() { + + var session = Discourse.Session.current(); + deepEqual(session.get('highestSeenByTopic'), {}, "by default it returns an empty object"); + }); \ No newline at end of file