Merge pull request #592 from aledeg/more-shortcuts

Add shortcuts
This commit is contained in:
Alexandre Alapetite
2014-09-04 18:58:08 +02:00
8 changed files with 78 additions and 4 deletions

View File

@@ -45,6 +45,8 @@ class FreshRSS_Configuration {
'load_more' => 'm',
'auto_share' => 's',
'focus_search' => 'a',
'user_filter' => 'u',
'help' => 'f1',
),
'topline_read' => true,
'topline_favorite' => true,

View File

@@ -180,6 +180,9 @@ return array (
'auto_share' => 'Share',
'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.',
'focus_search' => 'Access search box',
'user_filter' => 'Access user filters',
'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.',
'help' => 'Display documentation',
'file_to_import' => 'File to import<br />(OPML, Json or Zip)',
'file_to_import_no_zip' => 'File to import<br />(OPML or Json)',

View File

@@ -180,6 +180,9 @@ return array (
'auto_share' => 'Partager',
'auto_share_help' => 'Sil ny a quun mode de partage, celui ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
'focus_search' => 'Accéder à la recherche',
'user_filter' => 'Accéder aux filtres utilisateur',
'user_filter_help' => 'Sil ny a quun filtre utilisateur, celui ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
'help' => 'Afficher la documentation',
'file_to_import' => 'Fichier à importer<br />(OPML, Json ou Zip)',
'file_to_import_no_zip' => 'Fichier à importer<br />(OPML ou Json)',

View File

@@ -96,7 +96,7 @@
<li class="dropdown-header"><?php echo Minz_Translate::t('queries'); ?> <a class="no-mobile" href="<?php echo _url('configure', 'queries'); ?>"><?php echo FreshRSS_Themes::icon('configure'); ?></a></li>
<?php foreach ($this->conf->queries as $query) { ?>
<li class="item">
<li class="item query">
<a href="<?php echo $query['url']; ?>"><?php echo $query['name']; ?></a>
</li>
<?php } ?>

View File

@@ -103,6 +103,21 @@
</div>
</div>
<div class="form-group">
<label class="group-name" for="user_filter_shortcut"><?php echo Minz_Translate::t ('user_filter'); ?></label>
<div class="group-controls">
<input type="text" id="user_filter_shortcut" name="shortcuts[user_filter]" list="keys" value="<?php echo $s['user_filter']; ?>" />
<?php echo Minz_Translate::t ('user_filter_help'); ?>
</div>
</div>
<div class="form-group">
<label class="group-name" for="help_shortcut"><?php echo Minz_Translate::t ('help'); ?></label>
<div class="group-controls">
<input type="text" id="help_shortcut" name="shortcuts[help]" list="keys" value="<?php echo $s['help']; ?>" />
</div>
</div>
<div class="form-group form-actions">
<div class="group-controls">
<button type="submit" class="btn btn-important"><?php echo Minz_Translate::t ('save'); ?></button>

View File

@@ -4,7 +4,8 @@ echo '"use strict";', "\n";
$mark = $this->conf->mark_when;
echo 'var ',
'hide_posts=', ($this->conf->display_posts || Minz_Request::param('output') === 'reader') ? 'false' : 'true',
'help_url="', FRESHRSS_WIKI, '"',
',hide_posts=', ($this->conf->display_posts || Minz_Request::param('output') === 'reader') ? 'false' : 'true',
',display_order="', Minz_Request::param('order', $this->conf->sort_order), '"',
',auto_mark_article=', $mark['article'] ? 'true' : 'false',
',auto_mark_site=', $mark['site'] ? 'true' : 'false',
@@ -25,7 +26,9 @@ echo ',shortcuts={',
'collapse_entry:"', $s['collapse_entry'], '",',
'load_more:"', $s['load_more'], '",',
'auto_share:"', $s['auto_share'], '",',
'focus_search:"', $s['focus_search'], '"',
'focus_search:"', $s['focus_search'], '",',
'user_filter:"', $s['user_filter'], '",',
'help:"', $s['help'], '"',
"},\n";
if (Minz_Request::param ('output') === 'global') {

View File

@@ -1,6 +1,7 @@
<?php
define('FRESHRSS_VERSION', '0.8-dev');
define('FRESHRSS_WEBSITE', 'http://freshrss.org');
define('FRESHRSS_WIKI', 'http://doc.freshrss.org');
// PHP text output compression http://php.net/ob_gzhandler (better to do it at Web server level)
define('PHP_COMPRESSION', false);

View File

@@ -378,6 +378,36 @@ function collapse_entry() {
}
}
function user_filter(key) {
console.log('user filter');
console.warn(key);
var filter = $('#dropdown-query');
var filters = filter.siblings('.dropdown-menu').find('.item.query a');
if (typeof key === "undefined") {
if (!filter.length) {
return;
}
// Display the filter div
window.location.hash = filter.attr('id');
// Force scrolling to the filter div
var scroll = needsScroll($('.header'));
if (scroll !== 0) {
$('html,body').scrollTop(scroll);
}
// Force the key value if there is only one action, so we can trigger it automatically
if (filters.length === 1) {
key = 1;
} else {
return;
}
}
// Trigger selected share action
key = parseInt(key);
if (key <= filters.length) {
filters[key - 1].click();
}
}
function auto_share(key) {
var share = $(".flux.current.active").find('.dropdown-target[id^="dropdown-share"]');
var shares = share.siblings('.dropdown-menu').find('.item a');
@@ -531,9 +561,19 @@ function init_shortcuts() {
}, {
'disable_in_input': true
});
shortcut.add(shortcuts.user_filter, function () {
user_filter();
}, {
'disable_in_input': true
});
for(var i = 1; i < 10; i++){
shortcut.add(i.toString(), function (e) {
auto_share(String.fromCharCode(e.keyCode));
if ($('#dropdown-query').siblings('.dropdown-menu').is(':visible')) {
user_filter(String.fromCharCode(e.keyCode));
} else {
auto_share(String.fromCharCode(e.keyCode));
}
}, {
'disable_in_input': true
});
@@ -618,6 +658,13 @@ function init_shortcuts() {
}, {
'disable_in_input': true
});
shortcut.add(shortcuts.help, function () {
redirect(help_url, true);
}, {
'disable_in_input': true
});
}
function init_stream(divStream) {