diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index b81bb0456..21ee0e3b0 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -153,6 +153,8 @@ class Feed(models.Model): 'updated': relative_timesince(self.last_update), 'updated_seconds_ago': seconds_timesince(self.last_update), 'last_story_date': self.last_story_date, + 'stories_last_month': self.stories_last_month, + 'average_stories_per_month': self.average_stories_per_month, 'min_to_decay': self.min_to_decay, 'subs': self.num_subscribers, 'is_push': self.is_push, diff --git a/media/js/newsblur/reader/reader_organizer.js b/media/js/newsblur/reader/reader_organizer.js index a78abb799..b27bce999 100644 --- a/media/js/newsblur/reader/reader_organizer.js +++ b/media/js/newsblur/reader/reader_organizer.js @@ -56,7 +56,8 @@ _.extend(NEWSBLUR.ReaderOrganizer.prototype, { this.feed_count = _.unique(NEWSBLUR.assets.folders.feed_ids_in_folder()).length; var $feeds = new NEWSBLUR.Views.FeedList({ - feed_chooser: true + feed_chooser: true, + organizer: true }).make_feeds().$el; if ($feeds.data('sortable')) $feeds.data('sortable').disable(); @@ -76,8 +77,27 @@ _.extend(NEWSBLUR.ReaderOrganizer.prototype, { $('.unread_count_positive', $feeds).text('On'); $('.unread_count_negative', $feeds).text('Off'); + $('.selected', $feeds).removeClass('selected'); + return $feeds; }, + + // ============= + // = Selecting = + // ============= + + toggle_feed: function(feed_id) { + var feed = NEWSBLUR.assets.get_feed(feed_id); + if (feed.get('organizer_selected')) { + this.deselect_feed(feed); + } else { + this.select_feed(feed); + } + }, + + select_feed: function(feed) { + feed.set('organizer_selected', true); + }, // =========== // = Actions = @@ -90,11 +110,7 @@ _.extend(NEWSBLUR.ReaderOrganizer.prototype, { e.preventDefault(); var feed_id = parseInt($t.attr('data-id'), 10); - if (_.contains(this.approve_list, feed_id)) { - this.add_feed_to_decline(feed_id, true); - } else { - this.add_feed_to_approve(feed_id, true); - } + this.toggle_feed(feed_id); }, this)); } diff --git a/media/js/newsblur/views/feed_list_view.js b/media/js/newsblur/views/feed_list_view.js index 82a9b184e..50db5eac6 100644 --- a/media/js/newsblur/views/feed_list_view.js +++ b/media/js/newsblur/views/feed_list_view.js @@ -15,7 +15,11 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ if (this.options.feed_chooser) { this.$el.addClass('NB-feedchooser'); this.$el.addClass('unread_view_positive'); - this.$el.attr('id', 'NB-feedchooser-feeds'); + if (this.options.organizer) { + this.$el.attr('id', 'NB-organizer-feeds'); + } else { + this.$el.attr('id', 'NB-feedchooser-feeds'); + } return; } @@ -57,7 +61,8 @@ NEWSBLUR.Views.FeedList = Backbone.View.extend({ var $feeds = new NEWSBLUR.Views.Folder({ collection: folders, root: true, - feed_chooser: this.options.feed_chooser + feed_chooser: this.options.feed_chooser, + organizer: this.options.organizer }).render().el; this.$el.css({ 'display': 'block', diff --git a/media/js/newsblur/views/feed_title_view.js b/media/js/newsblur/views/feed_title_view.js index 92e8b001f..ceeeaeb3c 100644 --- a/media/js/newsblur/views/feed_title_view.js +++ b/media/js/newsblur/views/feed_title_view.js @@ -110,6 +110,20 @@ NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
\ \ \ + <% if (organizer) { %>\ +