diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index b52a32515..cfb85680f 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -1635,20 +1635,6 @@ // // NEWSBLUR.log(['open_story', this.story_view, story, options]); // // if (this.active_story != story || options.story_id) { - // this.active_story = story; - // this.mark_story_title_as_selected($story_title); - // this.unload_story_iframe(); - // - // // Used when auto-tracking the user as they move over the feed/page. - // // No need to find the story, since they have already found it. - // clearTimeout(this.locks.scrolling); - // if (_.contains(['feed', 'page'], this.story_view)) { - // this.flags['scrolling_by_selecting_story_title'] = true; - // } - // - // // User clicks on story, scroll them to it. - // var $feed_story = this.find_story_in_feed_view(story.id); - // // if (this.story_view == 'page') { // var $iframe_story = this.find_story_in_feed_iframe(story); // if (!$iframe_story || !$iframe_story.length || !this.flags['story_titles_loaded']) { @@ -1668,7 +1654,6 @@ // } else if (this.story_view == 'story') { // this.open_story_in_story_view(story); // } - // _.defer(_.bind(this.mark_story_as_read, this, story.id)); // } // }, @@ -1736,15 +1721,7 @@ feed_id = feed_id || this.active_feed; this.mark_feed_as_read_update_counts(feed_id); - this.model.mark_feed_as_read([feed_id]); - - // if (this.model.preference('folder_counts')) { - // var $feed = this.find_feed_in_feed_list(feed_id); - // var $folder_title = $feed.closest('li.folder:visible').children('.folder_title'); - // var $children = $folder_title.closest('li.folder').children('ul.folder, .feed'); - // this.show_collapsed_folder_count($folder_title, $children); - // } }, mark_folder_as_read: function(folder_name, $folder) { @@ -1766,6 +1743,11 @@ feed.set('nt', 0); feed.set('ng', 0); } + if (feed_id == this.active_feed) { + this.model.stories.each(function(story) { + story.set('read_status', true); + }); + } }, open_story_trainer: function(story_id, feed_id) { @@ -2007,7 +1989,11 @@ var feed = this.model.get_feed(feed_id); if (!feed) return; - var feed_title_view = new NEWSBLUR.Views.Feed({model: feed, type: 'story', el: '.NB-feedbar'}).render(); + var feed_title_view = new NEWSBLUR.Views.FeedTitleView({ + model: feed, + type: 'story', + el: '.NB-feedbar' + }).render(); if (this.model.preference('show_tooltips')) { $('.NB-feedbar-train-feed, .NB-feedbar-statistics', feed_title_view.$el).tipsy({ @@ -3932,7 +3918,6 @@ var self = this; if (!this.flags['mouse_indicator_hidden']) { - console.log(["hide_mouse_indicator", this.flags['mouse_indicator_hidden']]); this.flags['mouse_indicator_hidden'] = true; this.$s.$mouse_indicator.animate({'opacity': 0, 'left': -10}, { 'duration': 200, @@ -3947,7 +3932,6 @@ show_mouse_indicator: function() { var self = this; if (this.flags['mouse_indicator_hidden']) { - console.log(["show_mouse_indicator", this.flags['mouse_indicator_hidden']]); this.flags['mouse_indicator_hidden'] = false; this.$s.$mouse_indicator.animate({'opacity': 1, 'left': 0}, { 'duration': 200, diff --git a/media/js/newsblur/views/feed_list_view.js b/media/js/newsblur/views/feed_list_view.js index d96c7bccf..0e2645bc3 100644 --- a/media/js/newsblur/views/feed_list_view.js +++ b/media/js/newsblur/views/feed_list_view.js @@ -82,7 +82,11 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ var $social_feeds = this.$s.$social_feeds; var profile = NEWSBLUR.assets.user_profile; var $feeds = NEWSBLUR.assets.social_feeds.map(function(feed) { - var feed_view = new NEWSBLUR.Views.Feed({model: feed, type: 'feed', depth: 0}).render(); + var feed_view = new NEWSBLUR.Views.FeedTitleView({ + model: feed, + type: 'feed', + depth: 0 + }).render(); feed.views.push(feed_view); return feed_view.el; }); diff --git a/media/js/newsblur/views/feed_view.js b/media/js/newsblur/views/feed_title_view.js similarity index 99% rename from media/js/newsblur/views/feed_view.js rename to media/js/newsblur/views/feed_title_view.js index 68522b198..218fe7da5 100644 --- a/media/js/newsblur/views/feed_view.js +++ b/media/js/newsblur/views/feed_title_view.js @@ -1,4 +1,4 @@ -NEWSBLUR.Views.Feed = Backbone.View.extend({ +NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({ options: { depth: 0, diff --git a/media/js/newsblur/views/folder_view.js b/media/js/newsblur/views/folder_view.js index 0f68185cb..ef29b54c1 100644 --- a/media/js/newsblur/views/folder_view.js +++ b/media/js/newsblur/views/folder_view.js @@ -38,16 +38,16 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({ this.options.collapsed = this.options.title && _.contains(NEWSBLUR.Preferences.collapsed_folders, this.options.title); var $feeds = this.collection.map(function(item) { if (item.is_feed()) { - var feed_view = new NEWSBLUR.Views.Feed({ + var feed_title_view = new NEWSBLUR.Views.FeedTitleView({ model: item.feed, type: 'feed', depth: depth, folder_title: folder_title, folder: folder }).render(); - item.feed.views.push(feed_view); + item.feed.views.push(feed_title_view); item.feed.folders.push(folder); - return feed_view.el; + return feed_title_view.el; } else if (item.is_folder()) { var folder_view = new NEWSBLUR.Views.Folder({ model: item, diff --git a/media/js/newsblur/views/original_view.js b/media/js/newsblur/views/original_view.js index dc931ca59..284f8e133 100644 --- a/media/js/newsblur/views/original_view.js +++ b/media/js/newsblur/views/original_view.js @@ -175,6 +175,8 @@ NEWSBLUR.Views.OriginalView = Backbone.View.extend({ if ($story && $story.length) { NEWSBLUR.reader.flags['scrolling_by_selecting_story_title'] = true; + clearTimeout(NEWSBLUR.reader.locks.scrolling); + if (options.immediate || NEWSBLUR.reader.story_view != 'page') { $iframe.scrollTo($story, { duration: 0, axis: 'y', offset: -24 }); // Do this at story_view switch NEWSBLUR.reader.locks.scrolling = setTimeout(function() { @@ -579,7 +581,11 @@ NEWSBLUR.Views.OriginalView = Backbone.View.extend({ if (selected && NEWSBLUR.reader.story_view == 'page' && !options.selected_in_original) { - this.scroll_to_selected_story(model); + var found = this.scroll_to_selected_story(model); + NEWSBLUR.reader.switch_to_correct_view(found); + if (!found) { + NEWSBLUR.app.story_list.scroll_to_selected_story(model); + } } } diff --git a/media/js/newsblur/views/story_list_view.js b/media/js/newsblur/views/story_list_view.js index 9d54587aa..532d72976 100644 --- a/media/js/newsblur/views/story_list_view.js +++ b/media/js/newsblur/views/story_list_view.js @@ -49,11 +49,14 @@ NEWSBLUR.Views.StoryListView = Backbone.View.extend({ // = Actions = // =========== - scroll_to_selected_story: function(story_view, options) { + scroll_to_selected_story: function(story, options) { options = options || {}; + if (!story || !story.story_view) return; + NEWSBLUR.reader.flags.scrolling_by_selecting_story_title = true; + clearTimeout(NEWSBLUR.reader.locks.scrolling); this.$el.scrollable().stop(); - this.$el.scrollTo(story_view.$el, { + this.$el.scrollTo(story.story_view.$el, { duration: options.immediate ? 0 : 340, axis: 'y', easing: 'easeInOutQuint', diff --git a/media/js/newsblur/views/story_view.js b/media/js/newsblur/views/story_view.js index 596a72dfd..9f9f2ddba 100644 --- a/media/js/newsblur/views/story_view.js +++ b/media/js/newsblur/views/story_view.js @@ -214,8 +214,12 @@ NEWSBLUR.Views.StoryView = Backbone.View.extend({ toggle_selected: function(model, selected, options) { this.$el.toggleClass('NB-selected', !!this.model.get('selected')); - if (selected && !options.selected_by_scrolling) { - NEWSBLUR.app.story_list.scroll_to_selected_story(this, options); + if (selected && + !options.selected_by_scrolling && + (NEWSBLUR.reader.story_view == 'feed' || + (NEWSBLUR.reader.story_view == 'page' && + NEWSBLUR.reader.flags['page_view_showing_feed_view']))) { + NEWSBLUR.app.story_list.scroll_to_selected_story(model, options); } },