Adding stats to organizer.

This commit is contained in:
Samuel Clay 2014-07-23 17:49:23 -07:00
parent 93f6971731
commit be7994e1c5
5 changed files with 55 additions and 12 deletions

View file

@ -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,

View file

@ -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));
}

View file

@ -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',

View file

@ -110,6 +110,20 @@ NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
<div class="NB-feed-unfetched-icon"></div>\
<div class="NB-feedlist-manage-icon"></div>\
<div class="NB-feed-highlight"></div>\
<% if (organizer) { %>\
<div class="NB-feed-organizer-subscribers">\
<%= pluralize("subscriber", feed.get("num_subscribers"), true) %>\
</div>\
<div class="NB-feed-organizer-laststory">\
<%= feed.get("last_story_date") %>\
</div>\
<div class="NB-feed-organizer-monthlycount">\
<%= pluralize("story", feed.get("average_stories_per_month"), true) %> per month\
</div>\
<div class="NB-feed-organizer-opens">\
<%= pluralize("open", feed.get("feed_opens"), true) %>\
</div>\
<% } %>\
</<%= list_type %>>\
', {
feed : feed,
@ -118,9 +132,11 @@ NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
extra_classes : extra_classes,
toplevel : this.options.depth == 0,
list_type : this.options.type == 'feed' ? 'li' : 'div',
selected : this.model.get('selected')
selected : this.model.get('selected'),
organizer : this.options.organizer,
pluralize : Inflector.pluralize
}));
if (this.options.type == 'story') {
this.search_view = new NEWSBLUR.Views.FeedSearchView({
feedbar_view: this
@ -302,6 +318,7 @@ NEWSBLUR.Views.FeedTitleView = Backbone.View.extend({
if (dblclick_pref == "ignore") return;
if (this.options.type == "story") return;
if (this.options.starred_tag) return;
if (this.options.feed_chooser) return;
if ($('.NB-modal-feedchooser').is(':visible')) return;
this.flags.double_click = true;

View file

@ -68,6 +68,7 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
var depth = this.options.depth;
var folder_title = this.options.folder_title;
var feed_chooser = this.options.feed_chooser;
var organizer = this.options.organizer;
var folder_collection = this.collection;
this.options.collapsed = folder_title && _.contains(NEWSBLUR.Preferences.collapsed_folders, folder_title);
var $folder = this.render_folder();
@ -82,7 +83,8 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
depth: depth,
folder_title: folder_title,
folder: folder_collection,
feed_chooser: feed_chooser
feed_chooser: feed_chooser,
organizer: organizer
}).render();
item.feed.views.push(feed_title_view);
item.feed.folders.push(folder_collection);
@ -92,7 +94,8 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
model: item,
collection: item.folders,
depth: depth + 1,
feed_chooser: feed_chooser
feed_chooser: feed_chooser,
organizer: organizer
}).render();
item.folder_views.push(folder_view);
return folder_view.el;