]>
git.immae.eu Git - github/wallabag/wallabag.git/blob - themes/_global/js/keyboard.js
2 * @desc Navigate with Keyboard from an article to another on an article's page
3 * @param string leftURL - URL of the article on the left
4 * @param string rightURL - URL of the article on the right
7 function navigateKeyboard(leftURL
, rightURL
) {
8 window
.addEventListener("keydown", function (event
) {
9 var key
= event
.which
|| event
.keyCode
; // event.keyCode is used for IE8 and earlier versions
12 goLeft(leftURL
); // left arrow
15 goLeft(leftURL
); // h letter (vim style)
19 goRight(rightURL
); // right arrow
22 goRight(rightURL
); // l letter (vim style)
25 window
.history
.back();
32 function goLeft(leftURL
) {
33 if (leftURL
!= "?view=view&id=") {
34 window
.location
= window
.location
.origin
+ window
.location
.pathname
+ leftURL
;
38 function goRight(rightURL
) {
39 if (rightURL
!= "?view=view&id=") {
40 window
.location
= window
.location
.origin
+ window
.location
.pathname
+ rightURL
;
46 * @desc Do actions with Keyboard on an article's page
47 * @param number id - ID of the current article
50 function actionArticle(id
) {
51 window
.addEventListener("keydown", function (event
) {
52 var key
= event
.which
|| event
.keyCode
; // event.keyCode is used for IE8 and earlier versions
55 deleteArticle(id
); // delete key
58 deleteArticle(id
); // d key letter
61 favoriteArticle(id
); // f key letter
64 markReadArticle(id
); // m key letter
71 function deleteArticle(id
) {
73 window
.location
= window
.location
.origin
+ window
.location
.pathname
+ '?action=delete&id=' + id
;
77 function favoriteArticle(id
) {
79 window
.location
= window
.location
.origin
+ window
.location
.pathname
+ '?action=toggle_fav&id=' + id
;
83 function markReadArticle(id
) {
85 window
.location
= window
.location
.origin
+ window
.location
.pathname
+ '?action=toggle_archive&id=' + id
;
89 function homeNavigation() {
90 selectedArticle
= $('.entrie:first');
91 window
.addEventListener("keydown", function (event
) {
92 var key
= event
.which
|| event
.keyCode
; // event.keyCode is used for IE8 and earlier versions
94 case 37: // left arrow
95 selectedArticle
= goSelectPrev(selectedArticle
,1);
97 case 72: // h letter (vim style)
98 selectedArticle
= goSelectPrev(selectedArticle
,1);
101 case 39: // right arrow
102 selectedArticle
= goSelectNext(selectedArticle
,1);
104 case 76: // l letter (vim style)
105 selectedArticle
= goSelectNext(selectedArticle
,1);
107 case 13: // enter into article
108 enterArticle(selectedArticle
);
110 case 74: // j letter key
111 selectedArticle
= goSelectNext(selectedArticle
,3);
113 case 40: // down arrow
114 selectedArticle
= goSelectNext(selectedArticle
,3);
116 case 75: // k letter key
117 selectedArticle
= goSelectNext(selectedArticle
,3);
120 selectedArticle
= goSelectNext(selectedArticle
,3);
127 function goSelectNext(selectedArticle
,number
) {
128 if (selectedArticle
.next().length
) {
129 selectedArticle
.removeClass("eselected");
130 selectedArticle
= selectedArticle
.next();
131 selectedArticle
.addClass("eselected");
133 return selectedArticle
;
137 function goSelectPrev(selectedArticle
,number
) {
138 if (selectedArticle
.prev().length
) {
139 selectedArticle
.removeClass("eselected");
140 selectedArticle
= selectedArticle
.prev();
141 selectedArticle
.addClass("eselected");
143 return selectedArticle
;
146 function enterArticle(selectedArticle
) {
147 if (!$("#bagit").hasClass("current")) {
148 window
.location
= selectedArticle
.find('a:first').attr('href');