diff --git a/apps/reader/views.py b/apps/reader/views.py index 5bf330dab..40fcebe4e 100644 --- a/apps/reader/views.py +++ b/apps/reader/views.py @@ -765,8 +765,8 @@ def load_single_feed(request, feed_id): # if page <= 3: # import random - # time.sleep(random.randint(2, 7) / 10.0) - # # time.sleep(random.randint(2, 14)) + # # time.sleep(random.randint(2, 7) / 10.0) + # time.sleep(random.randint(10, 14)) # if page == 2: # assert False diff --git a/media/js/newsblur/common/assetmodel.js b/media/js/newsblur/common/assetmodel.js index 045690270..1cdf701be 100644 --- a/media/js/newsblur/common/assetmodel.js +++ b/media/js/newsblur/common/assetmodel.js @@ -689,6 +689,7 @@ NEWSBLUR.AssetModel = Backbone.Router.extend({ 'ajax_group': (page ? 'feed_page' : 'feed'), 'request_type': 'GET' }); + }, fetch_dashboard_stories: function(feed_id, feeds, callback, error_callback) { diff --git a/media/js/newsblur/reader/reader.js b/media/js/newsblur/reader/reader.js index 2146cd775..8c75c7c03 100644 --- a/media/js/newsblur/reader/reader.js +++ b/media/js/newsblur/reader/reader.js @@ -118,7 +118,10 @@ }); NEWSBLUR.app.sidebar = new NEWSBLUR.Views.Sidebar(); NEWSBLUR.app.feed_list = new NEWSBLUR.Views.FeedList({el: this.$s.$feed_list[0]}); - NEWSBLUR.app.story_titles = new NEWSBLUR.Views.StoryTitlesView({collection: NEWSBLUR.assets.stories}); + NEWSBLUR.app.story_titles = new NEWSBLUR.Views.StoryTitlesView({ + el: this.$s.$story_titles, + collection: NEWSBLUR.assets.stories + }); NEWSBLUR.app.story_list = new NEWSBLUR.Views.StoryListView({collection: NEWSBLUR.assets.stories}); NEWSBLUR.app.original_tab_view = new NEWSBLUR.Views.OriginalTabView({collection: NEWSBLUR.assets.stories}); NEWSBLUR.app.story_tab_view = new NEWSBLUR.Views.StoryTabView({collection: NEWSBLUR.assets.stories}); diff --git a/media/js/newsblur/views/dashboard_river.js b/media/js/newsblur/views/dashboard_river.js index 0df71d61b..d25d237fc 100644 --- a/media/js/newsblur/views/dashboard_river.js +++ b/media/js/newsblur/views/dashboard_river.js @@ -9,9 +9,11 @@ NEWSBLUR.Views.DashboardRiver = Backbone.View.extend({ initialize: function() { this.$stories = this.$(".NB-module-item"); this.story_titles = new NEWSBLUR.Views.StoryTitlesView({ + el: this.$stories, collection: NEWSBLUR.assets.dashboard_stories, $story_titles: this.$stories, - override_layout: 'split' + override_layout: 'split', + on_dashboard: true }); // this.$stories.html(this.story_titles.$el); @@ -30,7 +32,7 @@ NEWSBLUR.Views.DashboardRiver = Backbone.View.extend({ }, post_load_stories: function() { - console.log(['$story_title', this.story_titles.el, this.$stories[0], NEWSBLUR.reader.$s.$story_titles[0]]); + } }); \ No newline at end of file diff --git a/media/js/newsblur/views/story_title_view.js b/media/js/newsblur/views/story_title_view.js index 06fdcb2a9..6893a858e 100644 --- a/media/js/newsblur/views/story_title_view.js +++ b/media/js/newsblur/views/story_title_view.js @@ -461,6 +461,11 @@ NEWSBLUR.Views.StoryTitleView = Backbone.View.extend({ e.stopPropagation(); if (e.which == 1 && $('.NB-menu-manage-container:visible').length) return; + if (this.options.on_dashboard) { + console.log(['clicked story', this.model]); + return; + } + if (_.contains(['list', 'grid'], this.options.override_layout || NEWSBLUR.assets.view_setting(NEWSBLUR.reader.active_feed, 'layout')) && this.model.get('selected')) { @@ -498,6 +503,10 @@ NEWSBLUR.Views.StoryTitleView = Backbone.View.extend({ show_manage_menu: function(e) { e.preventDefault(); e.stopPropagation(); + if (this.options.on_dashboard) { + return this.select_story(e); + } + // NEWSBLUR.log(["showing manage menu", this.model.is_social() ? 'socialfeed' : 'feed', $(this.el), this]); NEWSBLUR.reader.show_manage_menu('story', this.$st, { story_id: this.model.id, @@ -522,6 +531,10 @@ NEWSBLUR.Views.StoryTitleView = Backbone.View.extend({ open_story_in_story_view: function(e) { e.preventDefault(); e.stopPropagation(); + if (this.options.on_dashboard) { + return this.select_story(e); + } + NEWSBLUR.app.story_tab_view.prepare_story(this.model, true); NEWSBLUR.app.story_tab_view.open_story(this.model); return false; diff --git a/media/js/newsblur/views/story_titles_view.js b/media/js/newsblur/views/story_titles_view.js index 105d9f9fb..d5b2bded3 100644 --- a/media/js/newsblur/views/story_titles_view.js +++ b/media/js/newsblur/views/story_titles_view.js @@ -26,18 +26,22 @@ NEWSBLUR.Views.StoryTitlesView = Backbone.View.extend({ // ========== render: function() { + // console.log(['render story_titles', this.options.override_layout, this.collection.length, this.$story_titles[0]]); this.clear(); this.$story_titles.scrollTop(0); var collection = this.collection; - var stories = this.collection.map(_.bind(function(story) { + var story_layout = this.options.override_layout || + NEWSBLUR.assets.view_setting(NEWSBLUR.reader.active_feed, 'layout'); + var on_dashboard = this.options.on_dashboard; + var stories = this.collection.map(function(story) { return new NEWSBLUR.Views.StoryTitleView({ model: story, collection: collection, - is_grid: this.options.override_layout == 'grid' || - NEWSBLUR.assets.view_setting(NEWSBLUR.reader.active_feed, 'layout') == 'grid', - override_layout: this.options.override_layout + is_grid: story_layout == 'grid', + override_layout: story_layout, + on_dashboard: on_dashboard }).render(); - }, this)); + }); this.stories = stories; var $stories = _.map(stories, function(story) { return story.el; @@ -51,6 +55,7 @@ NEWSBLUR.Views.StoryTitlesView = Backbone.View.extend({ }, add: function(options) { + // console.log(['add story_titles', options]); var collection = this.collection; if (options.added) { var stories = _.compact(_.map(this.collection.models.slice(-1 * options.added), _.bind(function(story) {