Fixing temporary text view in List view by refactoring switch to correct view method.

This commit is contained in:
Samuel Clay 2013-05-22 18:40:18 -07:00
parent 5d39f8d19d
commit 57267207dd
3 changed files with 40 additions and 31 deletions

View file

@ -1799,10 +1799,10 @@
switch_to_correct_view: function(options) {
options = options || {};
// NEWSBLUR.log(['Found story', this.story_view, options.found_story_in_page, this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
if (NEWSBLUR.assets.preference('story_layout') == 'list') {
if (this.story_view == 'page' || this.story_view == 'story') {
this.switch_taskbar_view('feed', {skip_save_type: 'layout'});
}
if (NEWSBLUR.assets.preference('story_layout') == 'list' &&
(this.story_view == 'page' || this.story_view == 'story')) {
this.switch_taskbar_view('feed', {skip_save_type: 'layout'});
} else if (options.story_not_found) {
// Story not found, show in feed view with link to page view
if (this.story_view == 'page' && !this.flags['page_view_showing_feed_view']) {
@ -1813,26 +1813,24 @@
this.switch_taskbar_view('feed', {skip_save_type: 'page'});
NEWSBLUR.app.story_list.show_stories_preference_in_feed_view();
}
} else {
if (this.story_view == 'page' && this.flags['page_view_showing_feed_view']) {
// NEWSBLUR.log(['turn off feed view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view('page');
} else if (this.flags['feed_view_showing_story_view']) {
// NEWSBLUR.log(['turn off story view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view(this.story_view, {skip_save_type: true});
} else if (this.flags['temporary_story_view']) {
// NEWSBLUR.log(['turn off story view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view(this.story_view, {skip_save_type: true});
}
} else if (this.story_view == 'page' && this.flags['page_view_showing_feed_view']) {
// NEWSBLUR.log(['turn off feed view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view('page');
} else if (this.flags['feed_view_showing_story_view']) {
// NEWSBLUR.log(['turn off story view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view(this.story_view, {skip_save_type: true});
} else if (this.flags['temporary_story_view']) {
// NEWSBLUR.log(['turn off story view', this.flags['page_view_showing_feed_view'], this.flags['feed_view_showing_story_view']]);
this.flags['page_view_showing_feed_view'] = false;
this.flags['feed_view_showing_story_view'] = false;
this.flags['temporary_story_view'] = false;
this.switch_taskbar_view(this.story_view, {skip_save_type: true});
}
},
@ -5436,11 +5434,21 @@
});
$document.bind('keydown', 'shift+enter', function(e) {
e.preventDefault();
NEWSBLUR.app.text_tab_view.fetch_and_render(null, true);
if (NEWSBLUR.assets.preference('story_layout') == 'list') {
if (!self.active_story) NEWSBLUR.reader.show_next_story(1);
self.active_story.story_title_view.render_inline_story_detail(true);
} else {
NEWSBLUR.app.text_tab_view.fetch_and_render(null, true);
}
});
$document.bind('keydown', 'shift+return', function(e) {
e.preventDefault();
NEWSBLUR.app.text_tab_view.fetch_and_render(null, true);
if (NEWSBLUR.assets.preference('story_layout') == 'list') {
if (!self.active_story) NEWSBLUR.reader.show_next_story(1);
self.active_story.story_title_view.render_inline_story_detail(true);
} else {
NEWSBLUR.app.text_tab_view.fetch_and_render(null, true);
}
});
$document.bind('keydown', 'space', function(e) {
e.preventDefault();

View file

@ -67,12 +67,12 @@ NEWSBLUR.Views.StoryTitleView = Backbone.View.extend({
<div class="NB-story-detail"></div>\
'),
render_inline_story_detail: function() {
if (NEWSBLUR.reader.story_view == 'text') {
render_inline_story_detail: function(temporary_text) {
if (NEWSBLUR.reader.story_view == 'text' || temporary_text) {
this.text_view = new NEWSBLUR.Views.TextTabView({
el: null
});
this.text_view.fetch_and_render(this.model);
this.text_view.fetch_and_render(this.model, temporary_text);
this.$(".NB-story-detail").html(this.text_view.$el);
} else {
this.story_detail = new NEWSBLUR.Views.StoryDetailView({

View file

@ -136,8 +136,9 @@ NEWSBLUR.Views.TextTabView = Backbone.View.extend({
// ==========
select_story: function(story, selected) {
if (selected && NEWSBLUR.reader.story_view == 'text' &&
NEWSBLUR.assets.preference('story_layout') == 'split') {
if (!selected) return;
if ((NEWSBLUR.reader.story_view == 'text' &&
NEWSBLUR.assets.preference('story_layout') == 'split')) {
if (NEWSBLUR.reader.flags['temporary_story_view']) {
NEWSBLUR.reader.switch_to_correct_view();
}