mirror of
https://github.com/viq/NewsBlur.git
synced 2025-08-05 16:49:45 +00:00
Adding global preference for read filtering (unread/all) and story order (oldest/newest). Fixing colored log. Fixing story by email.
This commit is contained in:
parent
508147516d
commit
b7733c71e9
5 changed files with 84 additions and 8 deletions
|
@ -594,8 +594,11 @@ class MUserStory(mongo.Document):
|
||||||
if self.story:
|
if self.story:
|
||||||
return self.story.id
|
return self.story.id
|
||||||
elif self.found_story:
|
elif self.found_story:
|
||||||
return self.found_story['_ref'].id
|
if '_ref' in self.found_story:
|
||||||
|
return self.found_story['_ref'].id
|
||||||
|
elif hasattr(self.found_story, 'id'):
|
||||||
|
return self.found_story.id
|
||||||
|
|
||||||
story, found_original = MStory.find_story(self.feed_id, self.story_id)
|
story, found_original = MStory.find_story(self.feed_id, self.story_id)
|
||||||
if story:
|
if story:
|
||||||
if found_original:
|
if found_original:
|
||||||
|
|
|
@ -1400,7 +1400,7 @@ def send_story_email(request):
|
||||||
code = -1
|
code = -1
|
||||||
message = 'You need to provide your name.'
|
message = 'You need to provide your name.'
|
||||||
else:
|
else:
|
||||||
story = MStory.find_story(story_feed_id=feed_id, story_guid=story_id)
|
story = MStory.find_story(feed_id, story_id)
|
||||||
story = Feed.format_story(story, feed_id, text=True)
|
story = Feed.format_story(story, feed_id, text=True)
|
||||||
feed = Feed.objects.get(pk=story['story_feed_id'])
|
feed = Feed.objects.get(pk=story['story_feed_id'])
|
||||||
text = render_to_string('mail/email_story_text.xhtml', locals())
|
text = render_to_string('mail/email_story_text.xhtml', locals())
|
||||||
|
|
|
@ -7216,6 +7216,33 @@ form.opml_import_form input {
|
||||||
.NB-modal-preferences .NB-preference-story-share label[for=NB-preference-story-share-instapaper] {
|
.NB-modal-preferences .NB-preference-story-share label[for=NB-preference-story-share-instapaper] {
|
||||||
background: transparent url('/media/embed/reader/instapaper.png') no-repeat 0 0;
|
background: transparent url('/media/embed/reader/instapaper.png') no-repeat 0 0;
|
||||||
}
|
}
|
||||||
|
.NB-modal-preferences .segmented-control {
|
||||||
|
display: block;
|
||||||
|
margin: 4px 0 12px 24px;
|
||||||
|
float: left;
|
||||||
|
/* height: 14px;*/
|
||||||
|
width: auto;
|
||||||
|
color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
.NB-modal-preferences .segmented-control:last-child {
|
||||||
|
}
|
||||||
|
.NB-modal-preferences .segmented-control li {
|
||||||
|
clear: none;
|
||||||
|
padding: 1px 12px 0;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #E0E0E0;
|
||||||
|
}
|
||||||
|
.NB-modal-preferences .segmented-control li:hover {
|
||||||
|
background-color: #639510;
|
||||||
|
}
|
||||||
|
.NB-modal-preferences .segmented-control li.NB-active {
|
||||||
|
color: white;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
/* ================== */
|
/* ================== */
|
||||||
/* = Account Dialog = */
|
/* = Account Dialog = */
|
||||||
|
|
|
@ -163,6 +163,22 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
|
||||||
$.make('div', { className: 'NB-preference-sublabel' }, 'You can override this on a per-site basis.')
|
$.make('div', { className: 'NB-preference-sublabel' }, 'You can override this on a per-site basis.')
|
||||||
])
|
])
|
||||||
]),
|
]),
|
||||||
|
$.make('div', { className: 'NB-preference NB-preference-view-setting' }, [
|
||||||
|
$.make('div', { className: 'NB-preference-options' }, [
|
||||||
|
$.make('ul', { className: 'segmented-control NB-preference-view-setting-order' }, [
|
||||||
|
$.make('li', { className: 'NB-preference-view-setting-order-newest NB-active' }, 'Newest first'),
|
||||||
|
$.make('li', { className: 'NB-preference-view-setting-order-oldest' }, 'Oldest')
|
||||||
|
]),
|
||||||
|
$.make('ul', { className: 'segmented-control NB-preference-view-setting-read-filter' }, [
|
||||||
|
$.make('li', { className: 'NB-preference-view-setting-read-filter-all NB-active' }, 'All stories'),
|
||||||
|
$.make('li', { className: 'NB-preference-view-setting-read-filter-unread' }, 'Unread only')
|
||||||
|
])
|
||||||
|
]),
|
||||||
|
$.make('div', { className: 'NB-preference-label'}, [
|
||||||
|
'Default story order',
|
||||||
|
$.make('div', { className: 'NB-preference-sublabel' }, 'You can override this on a per-site and per-folder basis.')
|
||||||
|
])
|
||||||
|
]),
|
||||||
$.make('div', { className: 'NB-preference NB-preference-story-pane-position' }, [
|
$.make('div', { className: 'NB-preference NB-preference-story-pane-position' }, [
|
||||||
$.make('div', { className: 'NB-preference-options' }, [
|
$.make('div', { className: 'NB-preference-options' }, [
|
||||||
$.make('div', [
|
$.make('div', [
|
||||||
|
@ -663,6 +679,12 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var order = NEWSBLUR.Preferences['default_order'];
|
||||||
|
var read_filter = NEWSBLUR.Preferences['default_read_filter'];
|
||||||
|
$('.NB-preference-view-setting-order-oldest', $modal).toggleClass('NB-active', order == 'oldest');
|
||||||
|
$('.NB-preference-view-setting-order-newest', $modal).toggleClass('NB-active', order != 'oldest');
|
||||||
|
$('.NB-preference-view-setting-read-filter-unread', $modal).toggleClass('NB-active', read_filter == 'unread');
|
||||||
|
$('.NB-preference-view-setting-read-filter-all', $modal).toggleClass('NB-active', read_filter != 'unread');
|
||||||
|
|
||||||
var share_preferences = _.select(_.keys(NEWSBLUR.Preferences), function(p) {
|
var share_preferences = _.select(_.keys(NEWSBLUR.Preferences), function(p) {
|
||||||
return p.indexOf('story_share') != -1;
|
return p.indexOf('story_share') != -1;
|
||||||
|
@ -707,6 +729,8 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
|
||||||
$('input[type=checkbox]', this.$modal).each(function() {
|
$('input[type=checkbox]', this.$modal).each(function() {
|
||||||
preferences[$(this).attr('name')] = $(this).is(':checked');
|
preferences[$(this).attr('name')] = $(this).is(':checked');
|
||||||
});
|
});
|
||||||
|
preferences['default_order'] = $('.NB-preference-view-setting-order li.NB-active', this.$modal).hasClass('NB-preference-view-setting-order-oldest') ? 'oldest' : 'newest';
|
||||||
|
preferences['default_read_filter'] = $('.NB-preference-view-setting-read-filter li.NB-active', this.$modal).hasClass('NB-preference-view-setting-read-filter-unread') ? 'unread' : 'all';
|
||||||
|
|
||||||
return preferences;
|
return preferences;
|
||||||
},
|
},
|
||||||
|
@ -760,6 +784,20 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
change_view_setting: function(view, setting) {
|
||||||
|
if (view == 'order') {
|
||||||
|
$('.NB-preference-view-setting-order-oldest').toggleClass('NB-active', setting == 'oldest');
|
||||||
|
$('.NB-preference-view-setting-order-newest').toggleClass('NB-active', setting != 'oldest');
|
||||||
|
} else if (view == 'read_filter') {
|
||||||
|
$('.NB-preference-view-setting-read-filter-unread').toggleClass('NB-active', setting == 'unread');
|
||||||
|
$('.NB-preference-view-setting-read-filter-all').toggleClass('NB-active', setting != 'unread');
|
||||||
|
}
|
||||||
|
|
||||||
|
this.enable_save();
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ===========
|
// ===========
|
||||||
// = Actions =
|
// = Actions =
|
||||||
// ===========
|
// ===========
|
||||||
|
@ -782,6 +820,16 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
|
||||||
|
|
||||||
self.close();
|
self.close();
|
||||||
});
|
});
|
||||||
|
$.targetIs(e, { tagSelector: '.segmented-control.NB-preference-view-setting-order li' }, function($t, $p) {
|
||||||
|
e.preventDefault();
|
||||||
|
var order = $t.hasClass('NB-preference-view-setting-order-oldest') ? 'oldest' : 'newest';
|
||||||
|
self.change_view_setting('order', order);
|
||||||
|
});
|
||||||
|
$.targetIs(e, { tagSelector: '.segmented-control.NB-preference-view-setting-read-filter li' }, function($t, $p) {
|
||||||
|
e.preventDefault();
|
||||||
|
var read_filter = $t.hasClass('NB-preference-view-setting-read-filter-unread') ? 'unread' : 'all';
|
||||||
|
self.change_view_setting('read_filter', read_filter);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
handle_change: function() {
|
handle_change: function() {
|
||||||
|
|
|
@ -116,11 +116,9 @@ def colorize(msg):
|
||||||
for k, v in params.items():
|
for k, v in params.items():
|
||||||
msg = re.sub(k, v, msg)
|
msg = re.sub(k, v, msg)
|
||||||
msg = msg + '~ST~FW~BT'
|
msg = msg + '~ST~FW~BT'
|
||||||
msg = re.sub(r'(~[A-Z]{2})', r'%(\1)s', msg)
|
# msg = re.sub(r'(~[A-Z]{2})', r'%(\1)s', msg)
|
||||||
try:
|
for k, v in colors.items():
|
||||||
msg = msg % colors
|
msg = msg.replace(k, v)
|
||||||
except (TypeError, ValueError, KeyError):
|
|
||||||
pass
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Add table
Reference in a new issue