Adding mark as read button to All Site Stories on web.

This commit is contained in:
Samuel Clay 2014-10-08 16:43:48 -07:00
parent b05999e0e5
commit 57f1f7e5ec
5 changed files with 56 additions and 12 deletions

View file

@ -1073,7 +1073,7 @@ class Feed(models.Model):
else:
ret_values['same'] += 1
if verbose:
logging.debug("Unchanged story: %s / %s " % (story.get('guid'), story.get('title')))
logging.debug("Unchanged story (%s): %s / %s " % (story.get('story_hash'), story.get('guid'), story.get('title')))
return ret_values
@ -1344,7 +1344,7 @@ class Feed(models.Model):
# story_published_now = story.get('published_now', False)
# start_date = story_pub_date - datetime.timedelta(hours=8)
# end_date = story_pub_date + datetime.timedelta(hours=8)
for existing_story in existing_stories.values():
content_ratio = 0
# existing_story_pub_date = existing_story.story_date
@ -1391,7 +1391,8 @@ class Feed(models.Model):
seq = difflib.SequenceMatcher(None, story_content, existing_story_content)
similiar_length_min = 1000
if existing_story.story_permalink == story_link:
if (existing_story.story_permalink == story_link and
existing_story.story_title == story.get('title')):
similiar_length_min = 20
if (seq

View file

@ -1374,6 +1374,12 @@ a img {
display: block;
}
.NB-feedbar .NB-folder-fake .NB-feedbar-mark-feed-read-container {
display: none;
}
.NB-feedbar .NB-folder-river .NB-feedbar-mark-feed-read-container {
display: block;
}
.NB-feedbar .feed .feed_counts {
width: 200px;
@ -5378,7 +5384,7 @@ form.opml_import_form input {
background-size: 28px;
}
.NB-modal-markread .NB-markread-slider {
margin-top: 24px;
margin: 24px 12px;
}
.NB-modal-markread .NB-markread-explanation {

View file

@ -5,6 +5,13 @@ NEWSBLUR.ReaderMarkRead = function(options) {
};
this.flags = {};
this.values = {
0: 0,
1: 1,
2: 3,
3: 7,
4: 14
};
this.options = $.extend({}, defaults, options);
this.model = NEWSBLUR.assets;
this.runner();
@ -58,11 +65,11 @@ _.extend(NEWSBLUR.ReaderMarkRead.prototype, {
$slider.slider({
range: 'min',
min: 0,
max: 7,
max: 4,
step: 1,
value: this.options['days'],
value: _.indexOf(_.values(this.values), this.options['days']),
slide: function(e, ui) {
var value = ui.value;
var value = self.values[ui.value];
self.update_dayofweek(value);
self.generate_explanation(value);
},
@ -95,7 +102,7 @@ _.extend(NEWSBLUR.ReaderMarkRead.prototype, {
var $save = $('.NB-modal input[type=submit]');
var $slider = $('.NB-markread-slider', this.$modal);
var days = $slider.slider('option', 'value');
var days = this.values[$slider.slider('option', 'value')];
this.flags.saving = true;
$save.attr('value', 'Marking as read...').addClass('NB-disabled').attr('disabled', true);

View file

@ -28,7 +28,8 @@ NEWSBLUR.Views.Folder = Backbone.View.extend({
_.bindAll(this, 'update_title', 'update_selected', 'delete_folder', 'check_collapsed',
'update_hidden');
this.options.folder_title = this.model && this.model.get('folder_title');
this.options.folder_title = this.options.folder_title ||
(this.model && this.model.get('folder_title'));
if (this.model && !this.options.feed_chooser) {
// Root folder does not have a model.

View file

@ -7,8 +7,11 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
},
events: {
"click .NB-feedbar-options" : "open_options_popover",
"click .NB-story-title-indicator" : "show_hidden_story_titles"
"click .NB-feedbar-options" : "open_options_popover",
"click .NB-story-title-indicator" : "show_hidden_story_titles",
"click .NB-feedbar-mark-feed-read" : "mark_folder_as_read",
"click .NB-feedbar-mark-feed-read-expand" : "expand_mark_read",
"click .NB-feedbar-mark-feed-read-time" : "mark_folder_as_read_days"
},
initialize: function() {
@ -70,7 +73,7 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
', {}));
} else if (this.showing_fake_folder) {
$view = $(_.template('\
<div class="NB-folder NB-no-hover">\
<div class="NB-folder NB-no-hover NB-folder-<%= all_stories ? "river" : "fake" %>">\
<div class="NB-search-container"></div>\
<% if (show_options) { %>\
<div class="NB-feedbar-options-container">\
@ -82,6 +85,14 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
</span>\
</div>\
<% } %>\
<div class="NB-feedbar-mark-feed-read-container">\
<div class="NB-feedbar-mark-feed-read"><div class="NB-icon"></div></div>\
<div class="NB-feedbar-mark-feed-read-time" data-days="1">1d</div>\
<div class="NB-feedbar-mark-feed-read-time" data-days="3">3d</div>\
<div class="NB-feedbar-mark-feed-read-time" data-days="7">7d</div>\
<div class="NB-feedbar-mark-feed-read-time" data-days="14">14d</div>\
<div class="NB-feedbar-mark-feed-read-expand"></div>\
</div>\
<div class="NB-story-title-indicator">\
<div class="NB-story-title-indicator-count"></div>\
<span class="NB-story-title-indicator-text">show hidden stories</span>\
@ -93,6 +104,7 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
', {
folder_title: this.fake_folder_title(),
folder_id: NEWSBLUR.reader.active_feed,
all_stories: NEWSBLUR.reader.active_feed == "river:",
show_options: !NEWSBLUR.reader.active_folder.get('fake') ||
NEWSBLUR.reader.active_folder.get('show_options')
}));
@ -235,6 +247,23 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
anchor: this.$(".NB-feedbar-options"),
feed_id: NEWSBLUR.reader.active_feed
});
},
mark_folder_as_read: function(e, days_back) {
if (!this.showing_fake_folder) return;
NEWSBLUR.reader.open_mark_read_modal({days: days_back || 0});
this.$('.NB-feedbar-mark-feed-read-container').fadeOut(400);
},
mark_folder_as_read_days: function(e) {
if (!this.showing_fake_folder) return;
var days = parseInt($(e.target).data('days'), 10);
this.mark_folder_as_read(e, days);
},
expand_mark_read: function() {
if (!this.showing_fake_folder) return;
NEWSBLUR.Views.FeedTitleView.prototype.expand_mark_read.call(this);
}