Fixing loads of active story bugs.

This commit is contained in:
Samuel Clay 2012-06-11 17:51:12 -07:00
parent f139906b52
commit 3ecf5d0380
7 changed files with 37 additions and 36 deletions

View file

@ -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,

View file

@ -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;
});

View file

@ -1,4 +1,4 @@
NEWSBLUR.Views.Feed = Backbone.View.extend({
NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
options: {
depth: 0,

View file

@ -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,

View file

@ -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);
}
}
}

View file

@ -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',

View file

@ -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);
}
},