summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-25 12:55:19 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-25 12:55:19 +0200
commitcca3ff47f0c88a6bf77def34a7d6fce11a359063 (patch)
tree1956042927aa68aa45d2efc2a1c26dab9029bde9 /js
parent4ca4b190c831163572491e1afbc42f2799652d76 (diff)
add s and i for starring item, u for keeping it unread, fix #52
Diffstat (limited to 'js')
-rw-r--r--js/app/directives/itemshortcuts.coffee31
-rw-r--r--js/public/app.js31
2 files changed, 61 insertions, 1 deletions
diff --git a/js/app/directives/itemshortcuts.coffee b/js/app/directives/itemshortcuts.coffee
index f80045d42..7c27b281a 100644
--- a/js/app/directives/itemshortcuts.coffee
+++ b/js/app/directives/itemshortcuts.coffee
@@ -59,6 +59,27 @@ angular.module('News').directive 'itemShortcuts', ['$window', ($window) ->
break
+ getCurrentItem = (scrollArea) ->
+ $scrollArea = $(scrollArea)
+ $items = $scrollArea.find('.feed_item')
+ for item in $items
+ $item = $(item)
+ # 130px of the item should be visible
+ if ($item.height() + $item.position().top) > 110
+ return $item
+
+
+ keepUnreadCurrentItem = (scrollArea) ->
+ $item = getCurrentItem(scrollArea)
+ $item.find('.keep_unread').trigger('click')
+
+
+ starCurrentItem = (scrollArea) ->
+ $item = getCurrentItem(scrollArea)
+ $item.find('.star').trigger('click')
+
+
+
$($window.document).keydown (e) ->
# only activate if no input elements is focused
focused = $(':focus')
@@ -78,5 +99,15 @@ angular.module('News').directive 'itemShortcuts', ['$window', ($window) ->
else if e.keyCode == 75 or e.keyCode == 37 or e.keyCode == 80
jumpToPreviousItem(scrollArea)
+ # u
+ else if e.keyCode == 85
+ keepUnreadCurrentItem(scrollArea)
+
+ # s or i
+ else if e.keyCode == 73 or e.keyCode == 83
+ starCurrentItem(scrollArea)
+
+
+
] \ No newline at end of file
diff --git a/js/public/app.js b/js/public/app.js
index 2962731f3..18aadc4c7 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -147,7 +147,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
angular.module('News').directive('itemShortcuts', [
'$window', function($window) {
return function(scope, elm, attr) {
- var jumpTo, jumpToNextItem, jumpToPreviousItem;
+ var getCurrentItem, jumpTo, jumpToNextItem, jumpToPreviousItem, keepUnreadCurrentItem, starCurrentItem;
jumpTo = function($scrollArea, $item) {
var position;
@@ -195,6 +195,31 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
}
return _results;
};
+ getCurrentItem = function(scrollArea) {
+ var $item, $items, $scrollArea, item, _i, _len;
+
+ $scrollArea = $(scrollArea);
+ $items = $scrollArea.find('.feed_item');
+ for (_i = 0, _len = $items.length; _i < _len; _i++) {
+ item = $items[_i];
+ $item = $(item);
+ if (($item.height() + $item.position().top) > 110) {
+ return $item;
+ }
+ }
+ };
+ keepUnreadCurrentItem = function(scrollArea) {
+ var $item;
+
+ $item = getCurrentItem(scrollArea);
+ return $item.find('.keep_unread').trigger('click');
+ };
+ starCurrentItem = function(scrollArea) {
+ var $item;
+
+ $item = getCurrentItem(scrollArea);
+ return $item.find('.star').trigger('click');
+ };
return $($window.document).keydown(function(e) {
var focused, scrollArea;
@@ -205,6 +230,10 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return jumpToNextItem(scrollArea);
} else if (e.keyCode === 75 || e.keyCode === 37 || e.keyCode === 80) {
return jumpToPreviousItem(scrollArea);
+ } else if (e.keyCode === 85) {
+ return keepUnreadCurrentItem(scrollArea);
+ } else if (e.keyCode === 73 || e.keyCode === 83) {
+ return starCurrentItem(scrollArea);
}
}
});