diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2016-11-16 09:35:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-16 09:35:59 +0100 |
commit | e042a5d78fc7676eb399f61d199e8ec0045fbd1f (patch) | |
tree | 2bc79fda2ca07baf246a36543fd4419a7af7a7a8 /app/Resources/static/themes/material/js/shortcuts/main.js | |
parent | 644b340178136ef9465fdc3cf40f1de0f5f8c3d3 (diff) | |
parent | 94f2057ffefdb164ae388a6971b4ed052082a434 (diff) | |
download | wallabag-e042a5d78fc7676eb399f61d199e8ec0045fbd1f.tar.gz wallabag-e042a5d78fc7676eb399f61d199e8ec0045fbd1f.tar.zst wallabag-e042a5d78fc7676eb399f61d199e8ec0045fbd1f.zip |
Merge pull request #2495 from wallabag/add-shortcuts
Added shortcuts
Diffstat (limited to 'app/Resources/static/themes/material/js/shortcuts/main.js')
-rw-r--r-- | app/Resources/static/themes/material/js/shortcuts/main.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js new file mode 100644 index 00000000..8514f71e --- /dev/null +++ b/app/Resources/static/themes/material/js/shortcuts/main.js | |||
@@ -0,0 +1,70 @@ | |||
1 | import Mousetrap from 'mousetrap'; | ||
2 | import $ from 'jquery'; | ||
3 | |||
4 | function toggleFocus(cardToToogleFocus) { | ||
5 | if (cardToToogleFocus) { | ||
6 | $(cardToToogleFocus).toggleClass('z-depth-4'); | ||
7 | } | ||
8 | } | ||
9 | |||
10 | $(document).ready(() => { | ||
11 | let cardIndex = 0; | ||
12 | const cardNumber = $('#content ul.data > li').length; | ||
13 | let card = $('#content ul.data > li')[cardIndex]; | ||
14 | const pagination = $('.pagination'); | ||
15 | |||
16 | /* Show nothing on quickstart */ | ||
17 | if ($('#content > div.quickstart').length > 0) { | ||
18 | return; | ||
19 | } | ||
20 | |||
21 | /* If we come from next page */ | ||
22 | if (window.location.hash === '#prev') { | ||
23 | cardIndex = cardNumber - 1; | ||
24 | card = $('ul.data > li')[cardIndex]; | ||
25 | } | ||
26 | |||
27 | /* Focus current card */ | ||
28 | toggleFocus(card); | ||
29 | |||
30 | /* Actions */ | ||
31 | Mousetrap.bind('g n', () => { | ||
32 | $('#nav-btn-add').trigger('click'); | ||
33 | }); | ||
34 | |||
35 | Mousetrap.bind('esc', () => { | ||
36 | $('.close').trigger('click'); | ||
37 | }); | ||
38 | |||
39 | /* Select right card. If there's a next page, go to next page */ | ||
40 | Mousetrap.bind('right', () => { | ||
41 | if (cardIndex >= 0 && cardIndex < cardNumber - 1) { | ||
42 | toggleFocus(card); | ||
43 | cardIndex += 1; | ||
44 | card = $('ul.data > li')[cardIndex]; | ||
45 | toggleFocus(card); | ||
46 | return; | ||
47 | } | ||
48 | if (pagination.length > 0 && pagination.find('li.next:not(.disabled)').length > 0 && cardIndex === cardNumber - 1) { | ||
49 | window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href'); | ||
50 | } | ||
51 | }); | ||
52 | |||
53 | /* Select previous card. If there's a previous page, go to next page */ | ||
54 | Mousetrap.bind('left', () => { | ||
55 | if (cardIndex > 0 && cardIndex < cardNumber) { | ||
56 | toggleFocus(card); | ||
57 | cardIndex -= 1; | ||
58 | card = $('ul.data > li')[cardIndex]; | ||
59 | toggleFocus(card); | ||
60 | return; | ||
61 | } | ||
62 | if (pagination.length > 0 && $(pagination).find('li.prev:not(.disabled)').length > 0 && cardIndex === 0) { | ||
63 | window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`; | ||
64 | } | ||
65 | }); | ||
66 | |||
67 | Mousetrap.bind('enter', () => { | ||
68 | window.location.href = window.location.origin + $(card).find('span.card-title a').attr('href'); | ||
69 | }); | ||
70 | }); | ||