From 57267207dd4e2e2881def47251f2525fb402a143 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Wed, 22 May 2013 18:40:18 -0700 Subject: [PATCH] Fixing temporary text view in List view by refactoring switch to correct view method. --- media/js/newsblur/reader/reader.js | 60 ++++++++++++--------- media/js/newsblur/views/story_title_view.js | 6 +-- media/js/newsblur/views/text_tab_view.js | 5 +- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index 049d0bebc..d3505bff7 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -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(); diff --git a/media/js/newsblur/views/story_title_view.js b/media/js/newsblur/views/story_title_view.js index 9b1b6633e..764664fff 100644 --- a/media/js/newsblur/views/story_title_view.js +++ b/media/js/newsblur/views/story_title_view.js @@ -67,12 +67,12 @@ NEWSBLUR.Views.StoryTitleView = Backbone.View.extend({
\ '), - 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({ diff --git a/media/js/newsblur/views/text_tab_view.js b/media/js/newsblur/views/text_tab_view.js index 58cb914f8..b4f59ddee 100644 --- a/media/js/newsblur/views/text_tab_view.js +++ b/media/js/newsblur/views/text_tab_view.js @@ -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(); }