mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Fixing loads of active story bugs.
This commit is contained in:
parent
f139906b52
commit
3ecf5d0380
7 changed files with 37 additions and 36 deletions
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
NEWSBLUR.Views.Feed = Backbone.View.extend({
|
||||
NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
|
||||
|
||||
options: {
|
||||
depth: 0,
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue