]>
Commit | Line | Data |
---|---|---|
1 | import $ from 'jquery'; | |
2 | import Mousetrap from 'mousetrap'; | |
3 | ||
4 | /* Allows inline call qr-code call */ | |
5 | import jrQrcode from 'jr-qrcode'; // eslint-disable-line | |
6 | ||
7 | function supportsLocalStorage() { | |
8 | try { | |
9 | return 'localStorage' in window && window.localStorage !== null; | |
10 | } catch (e) { | |
11 | return false; | |
12 | } | |
13 | } | |
14 | ||
15 | function savePercent(id, percent) { | |
16 | if (!supportsLocalStorage()) { return false; } | |
17 | localStorage[`wallabag.article.${id}.percent`] = percent; | |
18 | return true; | |
19 | } | |
20 | ||
21 | function retrievePercent(id) { | |
22 | if (!supportsLocalStorage()) { return false; } | |
23 | ||
24 | const bheight = $(document).height(); | |
25 | const percent = localStorage[`wallabag.article.${id}.percent`]; | |
26 | const scroll = bheight * percent; | |
27 | ||
28 | $('html,body').animate({ scrollTop: scroll }, 'fast'); | |
29 | ||
30 | return true; | |
31 | } | |
32 | ||
33 | function initFilters() { | |
34 | // no display if filters not available | |
35 | if ($('div').is('#filters')) { | |
36 | $('#button_filters').show(); | |
37 | $('.button-collapse-right').sideNav({ edge: 'right' }); | |
38 | $('#clear_form_filters').on('click', () => { | |
39 | $('#filters input').val(''); | |
40 | $('#filters :checked').removeAttr('checked'); | |
41 | return false; | |
42 | }); | |
43 | } | |
44 | } | |
45 | ||
46 | function initExport() { | |
47 | // no display if export not available | |
48 | if ($('div').is('#export')) { | |
49 | $('#button_export').show(); | |
50 | $('.button-collapse-right').sideNav({ edge: 'right' }); | |
51 | } | |
52 | } | |
53 | ||
54 | export { savePercent, retrievePercent, initFilters, initExport }; | |
55 | ||
56 | /** Shortcuts **/ | |
57 | ||
58 | /* Go to */ | |
59 | Mousetrap.bind('g u', () => { window.location.href = Routing.generate('homepage'); }); | |
60 | Mousetrap.bind('g s', () => { window.location.href = Routing.generate('starred'); }); | |
61 | Mousetrap.bind('g r', () => { window.location.href = Routing.generate('archive'); }); | |
62 | Mousetrap.bind('g a', () => { window.location.href = Routing.generate('all'); }); | |
63 | Mousetrap.bind('g t', () => { window.location.href = Routing.generate('tag'); }); | |
64 | Mousetrap.bind('g c', () => { window.location.href = Routing.generate('config'); }); | |
65 | Mousetrap.bind('g i', () => { window.location.href = Routing.generate('import'); }); | |
66 | Mousetrap.bind('g d', () => { window.location.href = Routing.generate('developer'); }); | |
67 | Mousetrap.bind('g h', () => { window.location.href = Routing.generate('howto'); }); | |
68 | Mousetrap.bind('g l', () => { window.location.href = Routing.generate('logout'); }); | |
69 | ||
70 | ||
71 | /* Actions */ | |
72 | Mousetrap.bind('g n', () => { | |
73 | $('#nav-btn-add').trigger('click'); | |
74 | }); | |
75 | ||
76 | Mousetrap.bind('esc', () => { | |
77 | $('.close').trigger('click'); | |
78 | }); | |
79 | ||
80 | // Display the first element of the current view | |
81 | Mousetrap.bind('right', () => { | |
82 | $('ul.data li:first-child span.dot-ellipsis a')[0].click(); | |
83 | }); | |
84 | ||
85 | /* Article view */ | |
86 | Mousetrap.bind('o', () => { | |
87 | $('ul.side-nav li:nth-child(2) a i')[0].click(); | |
88 | }); | |
89 | ||
90 | Mousetrap.bind('s', () => { | |
91 | $('ul.side-nav li:nth-child(5) a i')[0].click(); | |
92 | }); | |
93 | ||
94 | Mousetrap.bind('a', () => { | |
95 | $('ul.side-nav li:nth-child(4) a i')[0].click(); | |
96 | }); | |
97 | ||
98 | Mousetrap.bind('del', () => { | |
99 | $('ul.side-nav li:nth-child(6) a i')[0].click(); | |
100 | }); |