Adding space keyboard shortcut. Premium only.

This commit is contained in:
Samuel Clay 2013-05-22 16:40:56 -07:00
parent 1f349779a2
commit 9737905b5d
4 changed files with 167 additions and 41 deletions

View file

@ -7920,7 +7920,8 @@ form.opml_import_form input {
.NB-modal-preferences .NB-preference {
overflow: hidden;
margin: 12px 0 12px;
margin: 12px 0 0;
border-bottom: 1px solid rgba(0, 0, 0, .05);
padding: 12px;
background-color: #F7F7F5;
border-radius: 4px;
@ -7968,6 +7969,14 @@ form.opml_import_form input {
font-weight: bold;
}
.NB-modal-preferences .NB-preferences-notpremium {
padding: 6px 12px;
background-color: #FEF4D9;
text-align: center;
margin: 12px 0;
border-radius: 3px;
border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.NB-modal-preferences .NB-preference-view {
padding-bottom: 4px;
}
@ -8067,7 +8076,8 @@ form.opml_import_form input {
-webkit-box-shadow:2px 2px 0 #D0D0D0;
box-shadow:2px 2px 0 #D0D0D0;
}
.NB-modal-preferences .NB-preference-readstorydelay .NB-tangle-readstorydelay {
.NB-modal-preferences .NB-preference-readstorydelay .NB-tangle-readstorydelay,
.NB-modal-preferences .NB-preference-slider {
display: inline-block;
margin: 0 16px 0 8px;
top: 2px;

View file

@ -784,37 +784,45 @@
},
page_in_story: function(amount, direction) {
amount = parseInt(amount, 10) / 100.0;
var page_height = this.$s.$story_pane.height();
if (NEWSBLUR.assets.preference('story_layout') == 'list') {
page_height = this.$s.$story_titles.height();
}
var scroll_height = parseInt(page_height * amount, 10);
this.scroll_in_story(scroll_height, direction);
},
scroll_in_story: function(amount, direction) {
var dir = '+';
if (direction == -1) {
dir = '-';
}
// NEWSBLUR.log(['page_in_story', this.$s.$story_pane, direction, page_height, scroll_height]);
// NEWSBLUR.log(['scroll_in_story', this.$s.$story_pane, direction, amount]);
if (NEWSBLUR.assets.preference('story_layout') == 'list') {
scroll_height = parseInt(this.$s.$story_titles.height() * amount, 10);
this.$s.$story_titles.scrollTo({
top: dir+'='+scroll_height,
top: dir+'='+amount,
left:'+=0'
}, 130, {queue: false});
} else if (this.story_view == 'page' &&
!this.flags['page_view_showing_feed_view'] &&
!this.flags['temporary_story_view']) {
this.$s.$feed_iframe.scrollTo({
top: dir+'='+scroll_height,
top: dir+'='+amount,
left:'+=0'
}, 130, {queue: false});
} else if ((this.story_view == 'feed' &&
!this.flags['temporary_story_view']) ||
this.flags['page_view_showing_feed_view']) {
this.$s.$feed_stories.scrollTo({
top: dir+'='+scroll_height,
top: dir+'='+amount,
left:'+=0'
}, 130, {queue: false});
} else if (this.story_view == 'text' ||
this.flags['temporary_story_view']) {
this.$s.$text_view.scrollTo({
top: dir+'='+scroll_height,
top: dir+'='+amount,
left:'+=0'
}, 130, {queue: false});
}
@ -5350,11 +5358,21 @@
});
$document.bind('keydown', 'down', function(e) {
e.preventDefault();
self.show_next_story(1);
if (NEWSBLUR.assets.preference('keyboard_verticalarrows') == 'scroll') {
var amount = NEWSBLUR.assets.preference('arrow_scroll_spacing');
self.scroll_in_story(amount, 1);
} else {
self.show_next_story(1);
}
});
$document.bind('keydown', 'up', function(e) {
e.preventDefault();
self.show_next_story(-1);
if (NEWSBLUR.assets.preference('keyboard_verticalarrows') == 'scroll') {
var amount = NEWSBLUR.assets.preference('arrow_scroll_spacing');
self.scroll_in_story(amount, -1);
} else {
self.show_next_story(-1);
}
});
$document.bind('keydown', 'j', function(e) {
e.preventDefault();
@ -5382,11 +5400,19 @@
});
$document.bind('keydown', 'left', function(e) {
e.preventDefault();
self.switch_taskbar_view_direction(-1);
if (NEWSBLUR.assets.preference('keyboard_horizontalarrows') == 'site') {
self.show_next_feed(-1);
} else {
self.switch_taskbar_view_direction(-1);
}
});
$document.bind('keydown', 'right', function(e) {
e.preventDefault();
self.switch_taskbar_view_direction(1);
if (NEWSBLUR.assets.preference('keyboard_horizontalarrows') == 'site') {
self.show_next_feed(1);
} else {
self.switch_taskbar_view_direction(1);
}
});
$document.bind('keydown', 'h', function(e) {
e.preventDefault();
@ -5418,11 +5444,13 @@
});
$document.bind('keydown', 'space', function(e) {
e.preventDefault();
self.page_in_story(0.4, 1);
var amount = NEWSBLUR.assets.preference('space_scroll_spacing');
self.page_in_story(amount, 1);
});
$document.bind('keydown', 'shift+space', function(e) {
e.preventDefault();
self.page_in_story(0.65, -1);
var amount = NEWSBLUR.assets.preference('space_scroll_spacing');
self.page_in_story(amount, -1);
});
$document.bind('keydown', 'shift+u', function(e) {
e.preventDefault();

View file

@ -608,11 +608,43 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
])
]),
$.make('div', { className: 'NB-tab NB-tab-keyboard' }, [
(NEWSBLUR.Globals.is_premium && $.make('div', { className: 'NB-preferences-notpremium' }, [
(!NEWSBLUR.Globals.is_premium && $.make('div', { className: 'NB-preferences-notpremium' }, [
'You must have a ',
$.make('div', { className: 'NB-splash-link NB-premium-link' }, 'premium account'),
$.make('span', { className: 'NB-splash-link NB-premium-link' }, 'premium account'),
' to change keyboard shortcuts.'
])),
$.make('div', { className: 'NB-preference NB-preference-keyboard-horizontalarrows' }, [
$.make('div', { className: 'NB-preference-options' }, [
$.make('div', [
$.make('input', {
id: 'NB-preference-keyboard-horizontalarrows-1',
type: 'radio',
name: 'keyboard_horizontalarrows',
value: 'view',
disabled: !NEWSBLUR.Globals.is_premium
}),
$.make('label', { 'for': 'NB-preference-keyboard-horizontalarrows-1' }, 'Switch between views (original, feed, text, story)')
]),
$.make('div', [
$.make('input', {
id: 'NB-preference-keyboard-horizontalarrows-2',
type: 'radio',
name: 'keyboard_horizontalarrows',
value: 'site',
disabled: !NEWSBLUR.Globals.is_premium
}),
$.make('label', { 'for': 'NB-preference-keyboard-horizontalarrows-2' }, 'Open the next site/folder')
])
]),
$.make('div', { className: 'NB-preference-label'}, [
$.make('div', { className: 'NB-keyboard-shortcut-key' }, [
'←'
]),
$.make('div', { className: 'NB-keyboard-shortcut-key' }, [
'→'
])
])
]),
$.make('div', { className: 'NB-preference NB-preference-keyboard-verticalarrows' }, [
$.make('div', { className: 'NB-preference-options' }, [
$.make('div', [
@ -633,7 +665,13 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
value: 'scroll',
disabled: !NEWSBLUR.Globals.is_premium
}),
$.make('label', { 'for': 'NB-preference-keyboard-verticalarrows-2' }, 'Scroll up/down in story')
$.make('label', { 'for': 'NB-preference-keyboard-verticalarrows-2' }, [
'Scroll up/down in story by ',
$.make('span', { className: 'NB-tangle-arrowscrollspacing-control NB-preference-slider', 'data-var': 'arrow' }),
$.make('span', { className: 'NB-tangle-arrowscrollspacing' }, '100'),
'px.',
$.make('input', { name: 'arrow_scroll_spacing', value: NEWSBLUR.Preferences.arrow_scroll_spacing, type: 'hidden' })
])
])
]),
$.make('div', { className: 'NB-preference-label'}, [
@ -645,35 +683,20 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
])
])
]),
$.make('div', { className: 'NB-preference NB-preference-keyboard-horizontalarrows' }, [
$.make('div', { className: 'NB-preference NB-preference-keyboard-spacebar' }, [
$.make('div', { className: 'NB-preference-options' }, [
$.make('div', [
$.make('input', {
id: 'NB-preference-keyboard-horizontalarrows-1',
type: 'radio',
name: 'keyboard_horizontalarrows',
value: 'view',
disabled: !NEWSBLUR.Globals.is_premium
}),
$.make('label', { 'for': 'NB-preference-keyboard-horizontalarrows-1' }, 'Switch views (original, feed, text, story)')
]),
$.make('div', [
$.make('input', {
id: 'NB-preference-keyboard-horizontalarrows-2',
type: 'radio',
name: 'keyboard_horizontalarrows',
value: 'site',
disabled: !NEWSBLUR.Globals.is_premium
}),
$.make('label', { 'for': 'NB-preference-keyboard-horizontalarrows-2' }, 'Open the next site/folder')
'Page down by ',
$.make('span', { className: 'NB-tangle-spacescrollspacing-control NB-preference-slider', 'data-var': 'space' }),
' ',
$.make('span', { className: 'NB-tangle-spacescrollspacing' }, '40%'),
' of the screen',
$.make('input', { name: 'space_scroll_spacing', value: NEWSBLUR.Preferences.space_scroll_spacing, type: 'hidden' })
])
]),
$.make('div', { className: 'NB-preference-label'}, [
$.make('div', { className: 'NB-keyboard-shortcut-key' }, [
'←'
]),
$.make('div', { className: 'NB-keyboard-shortcut-key' }, [
'→'
'space'
])
])
])
@ -823,6 +846,9 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
return false;
}
});
$('input[name=arrow_scroll_spacing]', $modal).val(NEWSBLUR.Preferences.arrow_scroll_spacing);
$('input[name=space_scroll_spacing]', $modal).val(NEWSBLUR.Preferences.space_scroll_spacing);
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');
@ -846,7 +872,27 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
value: NEWSBLUR.Preferences.read_story_delay > 0 ? NEWSBLUR.Preferences.read_story_delay : 1,
slide: _.bind(this.slide_read_story_delay_slider, this)
});
$(".NB-tangle-arrowscrollspacing-control", $modal).slider({
range: 'min',
min: 20,
max: 500,
step: 20,
value: NEWSBLUR.Preferences.arrow_scroll_spacing,
slide: _.bind(this.slide_arrow_scroll_spacing_slider, this),
disabled: !NEWSBLUR.Globals.is_premium
});
$(".NB-tangle-spacescrollspacing-control", $modal).slider({
range: 'min',
min: 10,
max: 100,
step: 10,
value: NEWSBLUR.Preferences.space_scroll_spacing,
slide: _.bind(this.slide_space_scroll_spacing_slider, this),
disabled: !NEWSBLUR.Globals.is_premium
});
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) {
@ -860,7 +906,34 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
}
}
},
slide_arrow_scroll_spacing_slider: function(e, ui) {
var value = (ui && ui.value) || NEWSBLUR.Preferences.arrow_scroll_spacing;
if (!NEWSBLUR.Globals.is_premium) {
value = NEWSBLUR.Preferences.arrow_scroll_spacing;
}
$(".NB-tangle-arrowscrollspacing", this.$modal).text(value);
$("input[name=arrow_scroll_spacing]", this.$modal).val(value);
if (NEWSBLUR.Preferences.keyboard_verticalarrows == 'scroll' || ui) {
$("#NB-preference-keyboard-verticalarrows-2", this.$modal).attr('checked', true);
if (ui) {
this.enable_save();
}
}
},
slide_space_scroll_spacing_slider: function(e, ui) {
var value = (ui && ui.value) || NEWSBLUR.Preferences.space_scroll_spacing;
if (!NEWSBLUR.Globals.is_premium) {
value = NEWSBLUR.Preferences.space_scroll_spacing;
}
$(".NB-tangle-spacescrollspacing", this.$modal).text(value + "%");
$("input[name=space_scroll_spacing]", this.$modal).val(value);
if (ui) {
this.enable_save();
}
},
serialize_preferences: function() {
var preferences = {};
@ -873,6 +946,9 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
$('input[type=checkbox]', this.$modal).each(function() {
preferences[$(this).attr('name')] = $(this).is(':checked');
});
$('input[type=hidden]', this.$modal).each(function() {
preferences[$(this).attr('name')] = $(this).val();
});
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';
@ -912,6 +988,12 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
});
},
close_and_load_feedchooser: function() {
this.close(function() {
NEWSBLUR.reader.open_feedchooser_modal();
});
},
change_view_setting: function(view, setting) {
if (view == 'order') {
$('.NB-preference-view-setting-order-oldest').toggleClass('NB-active', setting == 'oldest');
@ -969,6 +1051,10 @@ _.extend(NEWSBLUR.ReaderPreferences.prototype, {
self.close();
});
$.targetIs(e, { tagSelector: '.NB-premium-link' }, function($t, $p) {
e.preventDefault();
self.close_and_load_feedchooser();
});
$.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';

View file

@ -50,6 +50,8 @@
'feed_order' : 'ALPHABETICAL',
'keyboard_verticalarrows' : 'story',
'keyboard_horizontalarrows': 'view',
'space_scroll_spacing' : 40,
'arrow_scroll_spacing' : 100,
'ssl' : 0,
'open_feed_action' : 0,
'read_story_delay' : 0,