mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Preferences! Timezone support, new window setting, and default story view.
This commit is contained in:
parent
100b672bbe
commit
905766c7e5
7 changed files with 28 additions and 13 deletions
|
@ -12,6 +12,8 @@ from utils.user_functions import ajax_login_required
|
|||
from apps.profile.models import Profile
|
||||
from apps.reader.models import UserSubscription
|
||||
|
||||
SINGLE_FIELD_PREFS = ('timezone',)
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
@json.json_view
|
||||
|
@ -21,7 +23,10 @@ def set_preference(request):
|
|||
|
||||
preferences = json.decode(request.user.profile.preferences)
|
||||
for preference_name, preference_value in new_preferences.items():
|
||||
preferences[preference_name] = preference_value
|
||||
if preference_name in SINGLE_FIELD_PREFS:
|
||||
setattr(request.user.profile, preference_name, preference_value)
|
||||
else:
|
||||
preferences[preference_name] = preference_value
|
||||
|
||||
request.user.profile.preferences = json.encode(preferences)
|
||||
request.user.profile.save()
|
||||
|
|
|
@ -25,7 +25,10 @@ except:
|
|||
from utils import json_functions as json, urlnorm
|
||||
from utils.user_functions import get_user, ajax_login_required
|
||||
from utils.feed_functions import fetch_address_from_page, relative_timesince
|
||||
from utils.story_functions import format_story_link_date__short
|
||||
from utils.story_functions import format_story_link_date__long
|
||||
from utils import log as logging
|
||||
from utils.timezones.utilities import localtime_for_timezone
|
||||
|
||||
SINGLE_DAY = 60*60*24
|
||||
|
||||
|
@ -284,6 +287,9 @@ def load_single_feed(request):
|
|||
classifier_authors.rewind()
|
||||
classifier_tags.rewind()
|
||||
classifier_titles.rewind()
|
||||
story_date = localtime_for_timezone(story['story_date'], request.user.profile.timezone)
|
||||
story['short_parsed_date'] = format_story_link_date__short(story_date)
|
||||
story['long_parsed_date'] = format_story_link_date__long(story_date)
|
||||
if story['id'] in userstories:
|
||||
story['read_status'] = 1
|
||||
elif not story.get('read_status') and story['story_date'] < usersub.mark_read_date:
|
||||
|
@ -308,10 +314,10 @@ def load_single_feed(request):
|
|||
|
||||
diff = datetime.datetime.utcnow()-now
|
||||
timediff = float("%s.%s" % (diff.seconds, (diff.microseconds / 1000)))
|
||||
last_update = relative_timesince(feed.last_update)
|
||||
logging.info(" ---> [%s] Loading feed: %s (%s seconds)" % (request.user, feed, timediff))
|
||||
FeedLoadtime.objects.create(feed=feed, loadtime=timediff)
|
||||
|
||||
last_update = relative_timesince(feed.last_update)
|
||||
data = dict(stories=stories,
|
||||
feed_tags=feed_tags,
|
||||
feed_authors=feed_authors,
|
||||
|
|
|
@ -19,8 +19,6 @@ from utils import json_functions as json
|
|||
from utils import feedfinder
|
||||
from utils.feed_functions import levenshtein_distance
|
||||
from utils.feed_functions import timelimit
|
||||
from utils.story_functions import format_story_link_date__short
|
||||
from utils.story_functions import format_story_link_date__long
|
||||
from utils.story_functions import pre_process_story
|
||||
from utils.compressed_textfield import StoryField
|
||||
from utils.diff import HTMLDiff
|
||||
|
@ -486,8 +484,6 @@ class Feed(models.Model):
|
|||
for story_db in stories_db:
|
||||
story = {}
|
||||
story['story_tags'] = story_db.story_tags or []
|
||||
story['short_parsed_date'] = format_story_link_date__short(story_db.story_date)
|
||||
story['long_parsed_date'] = format_story_link_date__long(story_db.story_date)
|
||||
story['story_date'] = story_db.story_date
|
||||
story['story_authors'] = story_db.story_author_name
|
||||
story['story_title'] = story_db.story_title
|
||||
|
|
|
@ -3504,4 +3504,7 @@ background: transparent;
|
|||
}
|
||||
.NB-modal-preferences .NB-preference-view input {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.NB-modal-preferences .NB-preference-window input {
|
||||
margin-top: 6px;
|
||||
}
|
|
@ -22,7 +22,7 @@ NEWSBLUR.AssetModel.Reader = function() {
|
|||
this.read_stories = {};
|
||||
this.classifiers = {};
|
||||
|
||||
this.DEFAULT_VIEW = 'page';
|
||||
this.DEFAULT_VIEW = NEWSBLUR.Preferences.default_view || 'page';
|
||||
};
|
||||
|
||||
NEWSBLUR.AssetModel.Reader.prototype = {
|
||||
|
|
|
@ -2026,6 +2026,11 @@
|
|||
]),
|
||||
$.make('div', { className: 'NB-feed-story-content' }, story.story_content)
|
||||
]).data('story', story.id);
|
||||
|
||||
if (NEWSBLUR.Preferences.new_window == 1) {
|
||||
$('a', $story).attr('target', '_blank');
|
||||
}
|
||||
|
||||
if (refresh_load) {
|
||||
$stories.prepend($story);
|
||||
} else {
|
||||
|
@ -2360,11 +2365,11 @@
|
|||
$.make('div', { className: 'NB-menu-manage-title' }, 'Intelligence Trainer'),
|
||||
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Accurate filters are happy filters.')
|
||||
]),
|
||||
// $.make('li', { className: 'NB-menu-manage-preferences' }, [
|
||||
// $.make('div', { className: 'NB-menu-manage-image' }),
|
||||
// $.make('div', { className: 'NB-menu-manage-title' }, 'Preferences'),
|
||||
// $.make('div', { className: 'NB-menu-manage-subtitle' }, 'Defaults and options.')
|
||||
// ]),
|
||||
$.make('li', { className: 'NB-menu-manage-preferences' }, [
|
||||
$.make('div', { className: 'NB-menu-manage-image' }),
|
||||
$.make('div', { className: 'NB-menu-manage-title' }, 'Preferences'),
|
||||
$.make('div', { className: 'NB-menu-manage-subtitle' }, 'Defaults and options.')
|
||||
]),
|
||||
(show_chooser && $.make('li', { className: 'NB-menu-manage-feedchooser' }, [
|
||||
$.make('div', { className: 'NB-menu-manage-image' }),
|
||||
$.make('div', { className: 'NB-menu-manage-title' }, 'Choose Your 64'),
|
||||
|
|
|
@ -154,7 +154,7 @@ NEWSBLUR.ReaderPreferences.prototype = {
|
|||
'Default view'
|
||||
])
|
||||
]),
|
||||
$.make('div', { className: 'NB-preference' }, [
|
||||
$.make('div', { className: 'NB-preference NB-preference-window' }, [
|
||||
$.make('div', { className: 'NB-preference-options' }, [
|
||||
$.make('div', [
|
||||
$.make('input', { id: 'NB-preference-window-1', type: 'radio', name: 'new_window', value: 0 }),
|
||||
|
|
Loading…
Add table
Reference in a new issue