Adding preference for changing days of unreads. Need to kick off a re-counter on preference change.

This commit is contained in:
Samuel Clay 2022-01-18 12:40:49 -05:00
parent 6ec1d762b7
commit 0baaa951b9
6 changed files with 79 additions and 4 deletions

View file

@ -34,7 +34,7 @@ from paypal.standard.forms import PayPalPaymentsForm
SINGLE_FIELD_PREFS = ('timezone','feed_pane_size','hide_mobile','send_emails',
'hide_getting_started', 'has_setup_feeds', 'has_found_friends',
'has_trained_intelligence')
'has_trained_intelligence', 'days_of_unread')
SPECIAL_PREFERENCES = ('old_password', 'new_password', 'autofollow_friends', 'dashboard_date',)
@ajax_login_required

View file

@ -10546,6 +10546,14 @@ form.opml_import_form input {
-webkit-box-shadow:2px 2px 0 #D0D0D0;
box-shadow:2px 2px 0 #D0D0D0;
}
.NB-modal-preferences .NB-preference-daysofunread .NB-tangle-daysofunread-control {
margin-top: 4px;
margin-left: 32px;
width: 300px;
}
.NB-modal-preferences .NB-preference-daysofunread .NB-preference-options label {
float: none;
}
.NB-modal-preferences .NB-preference-readstorydelay .NB-tangle-readstorydelay,
.NB-modal-preferences .NB-preference-slider {
display: inline-block;

View file

@ -48,6 +48,28 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
]),
$.make('form', { className: 'NB-preferences-form' }, [
$.make('div', { className: 'NB-tab NB-tab-general NB-active' }, [
$.make('div', { className: 'NB-preference NB-preference-daysofunread' }, [
$.make('div', { className: 'NB-preference-options' }, [
$.make('div', [
$.make('input', { id: 'NB-preference-daysofunread-1', type: 'radio', name: 'days_of_unread', value: 9999 }),
$.make('label', { 'for': 'NB-preference-daysofunread-1' }, [
'Manually mark every story as read'
])
]),
$.make('div', [
$.make('input', { id: 'NB-preference-daysofunread-2', type: 'radio', name: 'days_of_unread', value: 0 }),
$.make('label', { 'for': 'NB-preference-daysofunread-2', className: 'NB-preference-daysofunread-slider-label' }, [
'Mark stories as read after',
$.make('span', { className: 'NB-tangle-daysofunread-control NB-preference-slider', 'data-var': 'arrow' }),
$.make('span', { className: 'NB-tangle-daysofunread' }, NEWSBLUR.Preferences.days_of_unread + ' days'),
$.make('input', { name: 'daysofunread_input', value: NEWSBLUR.Preferences.days_of_unread, type: 'hidden' })
])
])
]),
$.make('div', { className: 'NB-preference-label'}, [
'Days of unreads'
])
]),
$.make('div', { className: 'NB-preference' }, [
$.make('div', { className: 'NB-preference-options' }, [
$.make('div', [
@ -1105,6 +1127,12 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
return false;
}
});
$('input[name=days_of_unread]', $modal).each(function() {
if ($(this).val() == ""+NEWSBLUR.Preferences.days_of_unread) {
$(this).prop('checked', true);
return false;
}
});
$('input[name=read_story_delay]', $modal).each(function() {
if ($(this).val() == ""+NEWSBLUR.Preferences.read_story_delay) {
$(this).prop('checked', true);
@ -1207,6 +1235,14 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
$('input#NB-preference-story-share-'+share_name, $modal).prop('checked', NEWSBLUR.Preferences[share]);
});
$(".NB-tangle-daysofunread-control", $modal).slider({
range: 'min',
min: 1,
max: 365,
step: 1,
value: NEWSBLUR.Preferences.days_of_unread,
slide: _.bind(this.slide_days_of_unread_slider, this)
});
$(".NB-tangle-readstorydelay", $modal).slider({
range: 'min',
min: 1,
@ -1233,12 +1269,34 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
slide: _.bind(this.slide_space_scroll_spacing_slider, this),
disabled: !NEWSBLUR.Globals.is_premium
});
this.slide_days_of_unread_slider();
this.slide_read_story_delay_slider();
this.slide_arrow_scroll_spacing_slider();
this.slide_space_scroll_spacing_slider();
},
slide_read_story_delay_slider: function(e, ui) {
slide_days_of_unread_slider: function(e, ui) {
var value = (ui && ui.value) ||
(NEWSBLUR.Preferences.days_of_unread);
if (NEWSBLUR.Preferences.days_of_unread <= 365 || ui) {
$(".NB-tangle-daysofunread", this.$modal).text(value == 1 ? value + ' day' : value + ' days');
$("input[name=daysofunread_input]", this.$modal).val(value);
$("#NB-preference-daysofunread-2", this.$modal).prop('checked', true).val(value);
if (ui) {
this.enable_save();
}
} else {
$("#NB-preference-daysofunread-1", this.$modal).prop('checked', true).val(value);
var default_days_of_unread = NEWSBLUR.Globals.default_days_of_unread;
$(".NB-tangle-daysofunread", this.$modal).text(default_days_of_unread + ' days');
$("input[name=daysofunread_input]", this.$modal).val(default_days_of_unread);
$("#NB-preference-daysofunread-2", this.$modal).val(default_days_of_unread);
$(".NB-tangle-daysofunread-control", this.$modal).slider('value', default_days_of_unread);
}
},
slide_read_story_delay_slider: function (e, ui) {
var value = (ui && ui.value) ||
(NEWSBLUR.Preferences.read_story_delay > 0 ? NEWSBLUR.Preferences.read_story_delay : 1);
$(".NB-tangle-seconds", this.$modal).text(value == 1 ? value + ' second.' : value + ' seconds.');
@ -1324,6 +1382,9 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
if (self.original_preferences['ssl'] != form['ssl']) {
NEWSBLUR.reader.check_and_load_ssl();
}
if (self.original_preferences['days_of_unreads'] != form['days_of_unreads']) {
NEWSBLUR.reader.force_feeds_refresh();
}
self.close();
});
},

View file

@ -20,7 +20,7 @@ SESSION_COOKIE_DOMAIN = 'localhost'
DOCKERBUILD = True
DEBUG = False
# DEBUG = True
DEBUG = True
# DEBUG_ASSETS controls JS/CSS asset packaging. Turning this off requires you to run
# `./manage.py collectstatic` first. Turn this on for development so you can see

View file

@ -30,7 +30,8 @@
{% if user.pk %}'user_id' : {{ user.pk }},{% endif %}
'email' : "{{ user.email|safe }}",
'MEDIA_URL' : "{{ MEDIA_URL }}",
'debug' : {{ debug|yesno:"true,false" }}
'debug' : {{ debug|yesno:"true,false" }},
'default_days_of_unread' : {% settings_value "DAYS_OF_UNREAD" %}
};
NEWSBLUR.Flags = {
};
@ -80,6 +81,7 @@
'story_line_spacing' : 'm',
'hide_public_comments' : false,
'story_button_placement' : "right",
'days_of_unread' : {{ user_profile.days_of_unread }},
'timezone' : "{{ user_profile.timezone }}",
'title_counts' : true,
'show_global_shared_stories': true,

View file

@ -213,6 +213,10 @@ def commify(n):
out += '.' + cents
return out
@register.simple_tag
def settings_value(name):
return getattr(settings, name, "")
@register.filter
def smooth_timedelta(timedeltaobj):
"""Convert a datetime.timedelta object into Days, Hours, Minutes, Seconds."""