forked from Archives/Athou_commafeed
spacebar support (fix #219)
This commit is contained in:
@@ -999,6 +999,63 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Mousetrap.bind('space', function(e) {
|
||||||
|
if (!$scope.current) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.navigationMode = 'keyboard';
|
||||||
|
openNextEntry(e);
|
||||||
|
});
|
||||||
|
} else if (!$scope.isOpen) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.navigationMode = 'keyboard';
|
||||||
|
if ($scope.current) {
|
||||||
|
openEntry($scope.current, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
var docTop = $(window).scrollTop();
|
||||||
|
var docBottom = docTop + $(window).height();
|
||||||
|
|
||||||
|
var elem = $('#entry_' + $scope.current.id);
|
||||||
|
var elemTop = elem.offset().top;
|
||||||
|
var elemBottom = elemTop + elem.height();
|
||||||
|
|
||||||
|
var bottomVisible = elemBottom < docBottom;
|
||||||
|
if (bottomVisible) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.navigationMode = 'keyboard';
|
||||||
|
openNextEntry(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Mousetrap.bind('shift+space', function(e) {
|
||||||
|
if (!$scope.current) {
|
||||||
|
return;
|
||||||
|
} else if (!$scope.isOpen) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.navigationMode = 'keyboard';
|
||||||
|
if ($scope.current) {
|
||||||
|
openEntry($scope.current, e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
var docTop = $(window).scrollTop();
|
||||||
|
|
||||||
|
var elem = $('#entry_' + $scope.current.id);
|
||||||
|
var elemTop = elem.offset().top;
|
||||||
|
|
||||||
|
var topVisible = elemTop > docTop;
|
||||||
|
if (topVisible) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.navigationMode = 'keyboard';
|
||||||
|
openPreviousEntry(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Mousetrap.bind('?', function(e) {
|
Mousetrap.bind('?', function(e) {
|
||||||
$scope.$apply(function() {
|
$scope.$apply(function() {
|
||||||
$scope.shortcutsModal = true;
|
$scope.shortcutsModal = true;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<div infinite-scroll="loadMoreEntries()" infinite-scroll-disabled="busy || !settingsService.settings.readingMode" infinite-scroll-distance="1" id="feed-accordion"
|
<div infinite-scroll="loadMoreEntries()" infinite-scroll-disabled="busy || !settingsService.settings.readingMode" infinite-scroll-distance="1" id="feed-accordion"
|
||||||
ng-class="{'expanded' : settingsService.settings.viewMode == 'expanded' }">
|
ng-class="{'expanded' : settingsService.settings.viewMode == 'expanded' }">
|
||||||
<div ng-show="message && errorCount > 10">${view.error_while_loading_feed} : {{message}}</div>
|
<div ng-show="message && errorCount > 10">${view.error_while_loading_feed} : {{message}}</div>
|
||||||
<div ng-repeat="entry in entries" class="entry entry-font-size-{{font_size}}"
|
<div ng-repeat="entry in entries" class="entry entry-font-size-{{font_size}}" id="entry_{{entry.id}}"
|
||||||
scroll-to="navigationMode != 'scroll' && current == entry" scroll-to-force="navigationMode == 'keyboard'" scroll-to-offset="-50"
|
scroll-to="navigationMode != 'scroll' && current == entry" scroll-to-force="navigationMode == 'keyboard'" scroll-to-offset="-50"
|
||||||
on-scroll-middle="onScroll(entry)" on-scroll-middle-offset="50"
|
on-scroll-middle="onScroll(entry)" on-scroll-middle-offset="50"
|
||||||
ng-class="{unread: entry.read == false, current: current==entry, open: isOpen, closed: !isOpen }">
|
ng-class="{unread: entry.read == false, current: current==entry, open: isOpen, closed: !isOpen }">
|
||||||
|
|||||||
Reference in New Issue
Block a user