diff options
Diffstat (limited to 'app/Resources/static')
17 files changed, 332 insertions, 30 deletions
diff --git a/app/Resources/static/themes/_global/img/icons/unmark-icon--black.png b/app/Resources/static/themes/_global/img/icons/unmark-icon--black.png new file mode 100644 index 00000000..45f679ee --- /dev/null +++ b/app/Resources/static/themes/_global/img/icons/unmark-icon--black.png | |||
Binary files differ | |||
diff --git a/app/Resources/static/themes/_global/img/list.png b/app/Resources/static/themes/_global/img/list.png new file mode 100755 index 00000000..bd5aff5a --- /dev/null +++ b/app/Resources/static/themes/_global/img/list.png | |||
Binary files differ | |||
diff --git a/app/Resources/static/themes/_global/img/table.png b/app/Resources/static/themes/_global/img/table.png new file mode 100755 index 00000000..859c4cd8 --- /dev/null +++ b/app/Resources/static/themes/_global/img/table.png | |||
Binary files differ | |||
diff --git a/app/Resources/static/themes/_global/js/bookmarklet.js b/app/Resources/static/themes/_global/js/bookmarklet.js index 5174ff47..a497628b 100644 --- a/app/Resources/static/themes/_global/js/bookmarklet.js +++ b/app/Resources/static/themes/_global/js/bookmarklet.js | |||
@@ -1,4 +1,3 @@ | |||
1 | |||
2 | top['bookmarklet-url@wallabag.org'] = | 1 | top['bookmarklet-url@wallabag.org'] = |
3 | '<!DOCTYPE html><html><head><title>bag it!</title>' + | 2 | '<!DOCTYPE html><html><head><title>bag it!</title>' + |
4 | '<link rel="icon" href="tpl/img/favicon.ico" />' + | 3 | '<link rel="icon" href="tpl/img/favicon.ico" />' + |
diff --git a/app/Resources/static/themes/_global/js/shortcuts/entry.js b/app/Resources/static/themes/_global/js/shortcuts/entry.js new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/app/Resources/static/themes/_global/js/shortcuts/entry.js | |||
diff --git a/app/Resources/static/themes/_global/js/shortcuts/main.js b/app/Resources/static/themes/_global/js/shortcuts/main.js new file mode 100644 index 00000000..c81bf869 --- /dev/null +++ b/app/Resources/static/themes/_global/js/shortcuts/main.js | |||
@@ -0,0 +1,15 @@ | |||
1 | import Mousetrap from 'mousetrap'; | ||
2 | |||
3 | /** Shortcuts **/ | ||
4 | |||
5 | /* Go to */ | ||
6 | Mousetrap.bind('g u', () => { window.location.href = Routing.generate('homepage'); }); | ||
7 | Mousetrap.bind('g s', () => { window.location.href = Routing.generate('starred'); }); | ||
8 | Mousetrap.bind('g r', () => { window.location.href = Routing.generate('archive'); }); | ||
9 | Mousetrap.bind('g a', () => { window.location.href = Routing.generate('all'); }); | ||
10 | Mousetrap.bind('g t', () => { window.location.href = Routing.generate('tag'); }); | ||
11 | Mousetrap.bind('g c', () => { window.location.href = Routing.generate('config'); }); | ||
12 | Mousetrap.bind('g i', () => { window.location.href = Routing.generate('import'); }); | ||
13 | Mousetrap.bind('g d', () => { window.location.href = Routing.generate('developer'); }); | ||
14 | Mousetrap.bind('?', () => { window.location.href = Routing.generate('howto'); }); | ||
15 | Mousetrap.bind('g l', () => { window.location.href = Routing.generate('fos_user_security_logout'); }); | ||
diff --git a/app/Resources/static/themes/_global/js/tools.js b/app/Resources/static/themes/_global/js/tools.js index ab30deb1..568b2dce 100644 --- a/app/Resources/static/themes/_global/js/tools.js +++ b/app/Resources/static/themes/_global/js/tools.js | |||
@@ -1,4 +1,9 @@ | |||
1 | const $ = require('jquery'); | 1 | import $ from 'jquery'; |
2 | import './shortcuts/main'; | ||
3 | import './shortcuts/entry'; | ||
4 | |||
5 | /* Allows inline call qr-code call */ | ||
6 | import jrQrcode from 'jr-qrcode'; // eslint-disable-line | ||
2 | 7 | ||
3 | function supportsLocalStorage() { | 8 | function supportsLocalStorage() { |
4 | try { | 9 | try { |
diff --git a/app/Resources/static/themes/baggy/css/main.css b/app/Resources/static/themes/baggy/css/main.css index 4dfa8790..e16846ea 100755 --- a/app/Resources/static/themes/baggy/css/main.css +++ b/app/Resources/static/themes/baggy/css/main.css | |||
@@ -297,18 +297,14 @@ h2::after { | |||
297 | text-decoration: none; | 297 | text-decoration: none; |
298 | } | 298 | } |
299 | 299 | ||
300 | #listmode a:hover { | ||
301 | opacity: 1; | ||
302 | } | ||
303 | |||
304 | #listmode.tablemode { | 300 | #listmode.tablemode { |
305 | background-image: url("../img/baggy/table.png"); | 301 | background-image: url("../../_global/img/table.png"); |
306 | background-repeat: no-repeat; | 302 | background-repeat: no-repeat; |
307 | background-position: bottom; | 303 | background-position: bottom; |
308 | } | 304 | } |
309 | 305 | ||
310 | #listmode.listmode { | 306 | #listmode.listmode { |
311 | background-image: url("../img/baggy/list.png"); | 307 | background-image: url("../../_global/img/list.png"); |
312 | background-repeat: no-repeat; | 308 | background-repeat: no-repeat; |
313 | background-position: bottom; | 309 | background-position: bottom; |
314 | } | 310 | } |
@@ -352,9 +348,9 @@ footer a { | |||
352 | letter-spacing: -5px; | 348 | letter-spacing: -5px; |
353 | } | 349 | } |
354 | 350 | ||
355 | .listmode .entry { | 351 | .listmode.entry { |
356 | width: 100% !important; | 352 | width: 100%; |
357 | margin-left: 0 !important; | 353 | height: inherit; |
358 | } | 354 | } |
359 | 355 | ||
360 | .card-entry-labels { | 356 | .card-entry-labels { |
@@ -588,6 +584,7 @@ div.pagination ul { | |||
588 | text-align: left; | 584 | text-align: left; |
589 | font-style: italic; | 585 | font-style: italic; |
590 | color: #999; | 586 | color: #999; |
587 | display: inline-flex; | ||
591 | } | 588 | } |
592 | 589 | ||
593 | div.pagination ul > * { | 590 | div.pagination ul > * { |
@@ -620,6 +617,10 @@ div.pagination ul .current { | |||
620 | background-color: #ccc; | 617 | background-color: #ccc; |
621 | } | 618 | } |
622 | 619 | ||
620 | .hide { | ||
621 | display: none; | ||
622 | } | ||
623 | |||
623 | /* ========================================================================== | 624 | /* ========================================================================== |
624 | 2.1 = "save a link" related styles | 625 | 2.1 = "save a link" related styles |
625 | ========================================================================== */ | 626 | ========================================================================== */ |
@@ -936,6 +937,11 @@ a.add-to-wallabag-link-after::after { | |||
936 | background-image: url("../../_global/img/icons/diaspora-icon--black.png"); | 937 | background-image: url("../../_global/img/icons/diaspora-icon--black.png"); |
937 | } | 938 | } |
938 | 939 | ||
940 | /* Unmark.it */ | ||
941 | .icon-image--unmark { | ||
942 | background-image: url("../../_global/img/icons/unmark-icon--black.png"); | ||
943 | } | ||
944 | |||
939 | /* shaarli */ | 945 | /* shaarli */ |
940 | .icon-image--shaarli { | 946 | .icon-image--shaarli { |
941 | background-image: url("../../_global/img/icons/shaarli.png"); | 947 | background-image: url("../../_global/img/icons/shaarli.png"); |
diff --git a/app/Resources/static/themes/baggy/js/autoCompleteTags.js b/app/Resources/static/themes/baggy/js/autoCompleteTags.js index f287ebfa..64fdaa92 100755 --- a/app/Resources/static/themes/baggy/js/autoCompleteTags.js +++ b/app/Resources/static/themes/baggy/js/autoCompleteTags.js | |||
@@ -5,4 +5,4 @@ function extractLast(term) { | |||
5 | return split(term).pop(); | 5 | return split(term).pop(); |
6 | } | 6 | } |
7 | 7 | ||
8 | export { split, extractLast }; | 8 | export default { split, extractLast }; |
diff --git a/app/Resources/static/themes/baggy/js/init.js b/app/Resources/static/themes/baggy/js/init.js index dc11043a..05360a28 100755 --- a/app/Resources/static/themes/baggy/js/init.js +++ b/app/Resources/static/themes/baggy/js/init.js | |||
@@ -1,11 +1,26 @@ | |||
1 | import { savePercent, retrievePercent } from '../../_global/js/tools'; | 1 | /* jQuery */ |
2 | import { toggleSaveLinkForm } from './uiTools'; | 2 | import $ from 'jquery'; |
3 | |||
4 | /* eslint-disable no-unused-vars */ | ||
5 | /* jquery has default scope */ | ||
6 | import cookie from 'jquery.cookie'; | ||
7 | import ui from 'jquery-ui-browserify'; | ||
8 | /* eslint-enable no-unused-vars */ | ||
9 | |||
10 | /* Annotations */ | ||
11 | import annotator from 'annotator'; | ||
3 | 12 | ||
4 | const $ = global.jquery = require('jquery'); | 13 | /* Shortcuts */ |
5 | require('jquery.cookie'); | 14 | import './shortcuts/main'; |
6 | require('jquery-ui-browserify'); | 15 | import './shortcuts/entry'; |
7 | const annotator = require('annotator'); | 16 | import '../../_global/js/shortcuts/main'; |
17 | import '../../_global/js/shortcuts/entry'; | ||
18 | |||
19 | /* Tools */ | ||
20 | import { savePercent, retrievePercent } from '../../_global/js/tools'; | ||
21 | import toggleSaveLinkForm from './uiTools'; | ||
8 | 22 | ||
23 | global.jquery = $; | ||
9 | 24 | ||
10 | $.fn.ready(() => { | 25 | $.fn.ready(() => { |
11 | const $listmode = $('#listmode'); | 26 | const $listmode = $('#listmode'); |
diff --git a/app/Resources/static/themes/baggy/js/shortcuts/entry.js b/app/Resources/static/themes/baggy/js/shortcuts/entry.js new file mode 100644 index 00000000..c87408b9 --- /dev/null +++ b/app/Resources/static/themes/baggy/js/shortcuts/entry.js | |||
@@ -0,0 +1,26 @@ | |||
1 | import Mousetrap from 'mousetrap'; | ||
2 | import $ from 'jquery'; | ||
3 | |||
4 | $(document).ready(() => { | ||
5 | if ($('#article').length > 0) { | ||
6 | /* Article view */ | ||
7 | Mousetrap.bind('o', () => { | ||
8 | $('div#article_toolbar ul.links a.original')[0].click(); | ||
9 | }); | ||
10 | |||
11 | /* mark as favorite */ | ||
12 | Mousetrap.bind('f', () => { | ||
13 | $('div#article_toolbar ul.links a.favorite')[0].click(); | ||
14 | }); | ||
15 | |||
16 | /* mark as read */ | ||
17 | Mousetrap.bind('a', () => { | ||
18 | $('div#article_toolbar ul.links a.markasread')[0].click(); | ||
19 | }); | ||
20 | |||
21 | /* delete */ | ||
22 | Mousetrap.bind('del', () => { | ||
23 | $('div#article_toolbar ul.links a.delete')[0].click(); | ||
24 | }); | ||
25 | } | ||
26 | }); | ||
diff --git a/app/Resources/static/themes/baggy/js/shortcuts/main.js b/app/Resources/static/themes/baggy/js/shortcuts/main.js new file mode 100644 index 00000000..aed09aee --- /dev/null +++ b/app/Resources/static/themes/baggy/js/shortcuts/main.js | |||
@@ -0,0 +1,7 @@ | |||
1 | $(document).ready(() => { | ||
2 | Mousetrap.bind('s', () => { | ||
3 | $('#search').trigger('click'); | ||
4 | $('#search_entry_term').focus(); | ||
5 | return false; | ||
6 | }); | ||
7 | }); | ||
diff --git a/app/Resources/static/themes/baggy/js/uiTools.js b/app/Resources/static/themes/baggy/js/uiTools.js index 900b2707..713c53f7 100644 --- a/app/Resources/static/themes/baggy/js/uiTools.js +++ b/app/Resources/static/themes/baggy/js/uiTools.js | |||
@@ -1,4 +1,4 @@ | |||
1 | const $ = require('jquery'); | 1 | import $ from 'jquery'; |
2 | 2 | ||
3 | function toggleSaveLinkForm(url, event) { | 3 | function toggleSaveLinkForm(url, event) { |
4 | $('#add-link-result').empty(); | 4 | $('#add-link-result').empty(); |
@@ -32,4 +32,4 @@ function toggleSaveLinkForm(url, event) { | |||
32 | plainUrl.focus(); | 32 | plainUrl.focus(); |
33 | } | 33 | } |
34 | 34 | ||
35 | export { toggleSaveLinkForm }; | 35 | export default toggleSaveLinkForm; |
diff --git a/app/Resources/static/themes/material/css/main.css b/app/Resources/static/themes/material/css/main.css index 408fe14c..8f7b7a3d 100755 --- a/app/Resources/static/themes/material/css/main.css +++ b/app/Resources/static/themes/material/css/main.css | |||
@@ -150,6 +150,11 @@ | |||
150 | background-image: url("../../_global/img/icons/diaspora-icon--black.png"); | 150 | background-image: url("../../_global/img/icons/diaspora-icon--black.png"); |
151 | } | 151 | } |
152 | 152 | ||
153 | /* Unmark.it */ | ||
154 | .icon-image--unmark { | ||
155 | background-image: url("../../_global/img/icons/unmark-icon--black.png"); | ||
156 | } | ||
157 | |||
153 | /* Shaarli */ | 158 | /* Shaarli */ |
154 | .icon-image--shaarli { | 159 | .icon-image--shaarli { |
155 | background-image: url("../../_global/img/icons/shaarli.png"); | 160 | background-image: url("../../_global/img/icons/shaarli.png"); |
@@ -159,7 +164,7 @@ body { | |||
159 | display: flex; | 164 | display: flex; |
160 | min-height: 100vh; | 165 | min-height: 100vh; |
161 | flex-direction: column; | 166 | flex-direction: column; |
162 | background: #f0f0f0; | 167 | background: #fafafa; |
163 | } | 168 | } |
164 | 169 | ||
165 | body.login main { | 170 | body.login main { |
@@ -189,7 +194,6 @@ main, | |||
189 | 194 | ||
190 | .results { | 195 | .results { |
191 | height: 1em; | 196 | height: 1em; |
192 | line-height: 30px; | ||
193 | } | 197 | } |
194 | 198 | ||
195 | .results .nb-results, | 199 | .results .nb-results, |
@@ -198,6 +202,14 @@ main, | |||
198 | margin-bottom: 0; | 202 | margin-bottom: 0; |
199 | } | 203 | } |
200 | 204 | ||
205 | .results .nb-results { | ||
206 | display: inline-flex; | ||
207 | } | ||
208 | |||
209 | .results a { | ||
210 | color: #444; | ||
211 | } | ||
212 | |||
201 | .pagination { | 213 | .pagination { |
202 | float: right; | 214 | float: right; |
203 | } | 215 | } |
@@ -317,11 +329,13 @@ nav input { | |||
317 | color: #444; | 329 | color: #444; |
318 | } | 330 | } |
319 | 331 | ||
320 | .input-field.nav-panel-add label { | 332 | .input-field.nav-panel-add label, |
333 | .input-field.nav-panel-search label { | ||
321 | left: 1rem; | 334 | left: 1rem; |
322 | } | 335 | } |
323 | 336 | ||
324 | .input-field.nav-panel-add .close { | 337 | .input-field.nav-panel-add .close, |
338 | .input-field.nav-panel-search .close { | ||
325 | position: absolute; | 339 | position: absolute; |
326 | top: 0; | 340 | top: 0; |
327 | right: 1rem; | 341 | right: 1rem; |
@@ -340,7 +354,9 @@ nav input { | |||
340 | } | 354 | } |
341 | 355 | ||
342 | .input-field.nav-panel-add, | 356 | .input-field.nav-panel-add, |
343 | .input-field.nav-panel-add form { | 357 | .input-field.nav-panel-add form, |
358 | .input-field.nav-panel-search, | ||
359 | .input-field.nav-panel-search form { | ||
344 | height: 100%; | 360 | height: 100%; |
345 | } | 361 | } |
346 | 362 | ||
@@ -535,6 +551,18 @@ a.original { | |||
535 | line-height: 24px; | 551 | line-height: 24px; |
536 | } | 552 | } |
537 | 553 | ||
554 | .card .card-action ul.tools li a.tool { | ||
555 | margin-right: 5px !important; | ||
556 | } | ||
557 | |||
558 | .card-stacked:hover ul.tools-list { | ||
559 | display: block; | ||
560 | } | ||
561 | |||
562 | .card-stacked ul.tools-list { | ||
563 | display: none; | ||
564 | } | ||
565 | |||
538 | .card .card-action a { | 566 | .card .card-action a { |
539 | color: #fff; | 567 | color: #fff; |
540 | margin: 0; | 568 | margin: 0; |
@@ -587,7 +615,55 @@ a.original { | |||
587 | #article { | 615 | #article { |
588 | font-size: 20px; | 616 | font-size: 20px; |
589 | margin: 0 auto; | 617 | margin: 0 auto; |
590 | max-width: 40em; | 618 | max-width: 45em; |
619 | } | ||
620 | |||
621 | #article article { | ||
622 | color: #424242; | ||
623 | font-size: 18px; | ||
624 | line-height: 1.7em; | ||
625 | } | ||
626 | |||
627 | #article article h1, | ||
628 | #article article h2, | ||
629 | #article article h3, | ||
630 | #article article h4, | ||
631 | #article article h5, | ||
632 | #article article h6 { | ||
633 | color: #212121; | ||
634 | } | ||
635 | |||
636 | #article article h1 strong, | ||
637 | #article article h2 strong, | ||
638 | #article article h3 strong, | ||
639 | #article article h4 strong, | ||
640 | #article article h5 strong, | ||
641 | #article article h6 strong { | ||
642 | font-weight: 500; | ||
643 | } | ||
644 | |||
645 | #article article h6 { | ||
646 | font-size: 1.2rem; | ||
647 | } | ||
648 | |||
649 | #article article h5 { | ||
650 | font-size: 1.6rem; | ||
651 | } | ||
652 | |||
653 | #article article h4 { | ||
654 | font-size: 1.9rem; | ||
655 | } | ||
656 | |||
657 | #article article h3 { | ||
658 | font-size: 2.2rem; | ||
659 | } | ||
660 | |||
661 | #article article h2 { | ||
662 | font-size: 2.5rem; | ||
663 | } | ||
664 | |||
665 | #article article h1 { | ||
666 | font-size: 2.7rem; | ||
591 | } | 667 | } |
592 | 668 | ||
593 | #article img, | 669 | #article img, |
@@ -596,6 +672,46 @@ a.original { | |||
596 | height: auto; | 672 | height: auto; |
597 | } | 673 | } |
598 | 674 | ||
675 | #article article a { | ||
676 | border-bottom: 1px dotted #03a9f4; | ||
677 | text-decoration: none; | ||
678 | } | ||
679 | |||
680 | #article article a:hover { | ||
681 | border-bottom-style: solid; | ||
682 | } | ||
683 | |||
684 | #article article ul { | ||
685 | padding-left: 30px; | ||
686 | } | ||
687 | |||
688 | #article article ul, | ||
689 | #article article ul li { | ||
690 | list-style-type: disc; | ||
691 | } | ||
692 | |||
693 | #article article blockquote { | ||
694 | font-style: italic; | ||
695 | } | ||
696 | |||
697 | #article article strong { | ||
698 | font-weight: bold; | ||
699 | } | ||
700 | |||
701 | #article article pre { | ||
702 | box-sizing: border-box; | ||
703 | margin: 0 0 1.75em; | ||
704 | border: #e3f2fd 1px solid; | ||
705 | width: 100%; | ||
706 | padding: 10px; | ||
707 | font-family: monospace; | ||
708 | font-size: 0.8em; | ||
709 | white-space: pre; | ||
710 | overflow: auto; | ||
711 | background: #f5f5f5; | ||
712 | border-radius: 3px; | ||
713 | } | ||
714 | |||
599 | #article > header > h1 { | 715 | #article > header > h1 { |
600 | font-size: 2em; | 716 | font-size: 2em; |
601 | margin: 2.1rem 0 0.68rem; | 717 | margin: 2.1rem 0 0.68rem; |
diff --git a/app/Resources/static/themes/material/js/init.js b/app/Resources/static/themes/material/js/init.js index a68269e0..0b2832c0 100755 --- a/app/Resources/static/themes/material/js/init.js +++ b/app/Resources/static/themes/material/js/init.js | |||
@@ -1,10 +1,21 @@ | |||
1 | /* jQuery */ | ||
2 | import $ from 'jquery'; | ||
3 | |||
4 | /* Annotations */ | ||
5 | import annotator from 'annotator'; | ||
6 | |||
7 | /* Tools */ | ||
1 | import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; | 8 | import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; |
2 | 9 | ||
3 | const $ = require('jquery'); | 10 | /* Import shortcuts */ |
11 | import './shortcuts/main'; | ||
12 | import './shortcuts/entry'; | ||
13 | import '../../_global/js/shortcuts/main'; | ||
14 | import '../../_global/js/shortcuts/entry'; | ||
4 | 15 | ||
5 | global.jQuery = $; | ||
6 | require('materialize'); // eslint-disable-line | 16 | require('materialize'); // eslint-disable-line |
7 | const annotator = require('annotator'); | 17 | |
18 | global.jQuery = $; | ||
8 | 19 | ||
9 | $(document).ready(() => { | 20 | $(document).ready(() => { |
10 | // sideNav | 21 | // sideNav |
@@ -44,7 +55,7 @@ $(document).ready(() => { | |||
44 | $('.nav-panels .action').hide(100); | 55 | $('.nav-panels .action').hide(100); |
45 | $('.nav-panel-menu').addClass('hidden'); | 56 | $('.nav-panel-menu').addClass('hidden'); |
46 | $('.nav-panels').css('background', 'white'); | 57 | $('.nav-panels').css('background', 'white'); |
47 | $('#searchfield').focus(); | 58 | $('#search_entry_term').focus(); |
48 | return false; | 59 | return false; |
49 | }); | 60 | }); |
50 | $('.close').on('click', () => { | 61 | $('.close').on('click', () => { |
diff --git a/app/Resources/static/themes/material/js/shortcuts/entry.js b/app/Resources/static/themes/material/js/shortcuts/entry.js new file mode 100644 index 00000000..e19800bd --- /dev/null +++ b/app/Resources/static/themes/material/js/shortcuts/entry.js | |||
@@ -0,0 +1,26 @@ | |||
1 | import Mousetrap from 'mousetrap'; | ||
2 | import $ from 'jquery'; | ||
3 | |||
4 | $(document).ready(() => { | ||
5 | if ($('#article').length > 0) { | ||
6 | /* open original article */ | ||
7 | Mousetrap.bind('o', () => { | ||
8 | $('ul.side-nav a.original i')[0].click(); | ||
9 | }); | ||
10 | |||
11 | /* mark as favorite */ | ||
12 | Mousetrap.bind('f', () => { | ||
13 | $('ul.side-nav a.favorite i')[0].click(); | ||
14 | }); | ||
15 | |||
16 | /* mark as read */ | ||
17 | Mousetrap.bind('a', () => { | ||
18 | $('ul.side-nav a.markasread i')[0].click(); | ||
19 | }); | ||
20 | |||
21 | /* delete */ | ||
22 | Mousetrap.bind('del', () => { | ||
23 | $('ul.side-nav a.delete i')[0].click(); | ||
24 | }); | ||
25 | } | ||
26 | }); | ||
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..ad4ca80a --- /dev/null +++ b/app/Resources/static/themes/material/js/shortcuts/main.js | |||
@@ -0,0 +1,76 @@ | |||
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 | return false; | ||
34 | }); | ||
35 | |||
36 | Mousetrap.bind('s', () => { | ||
37 | $('#nav-btn-search').trigger('click'); | ||
38 | return false; | ||
39 | }); | ||
40 | |||
41 | Mousetrap.bind('esc', () => { | ||
42 | $('.close').trigger('click'); | ||
43 | }); | ||
44 | |||
45 | /* Select right card. If there's a next page, go to next page */ | ||
46 | Mousetrap.bind('right', () => { | ||
47 | if (cardIndex >= 0 && cardIndex < cardNumber - 1) { | ||
48 | toggleFocus(card); | ||
49 | cardIndex += 1; | ||
50 | card = $('ul.data > li')[cardIndex]; | ||
51 | toggleFocus(card); | ||
52 | return; | ||
53 | } | ||
54 | if (pagination.length > 0 && pagination.find('li.next:not(.disabled)').length > 0 && cardIndex === cardNumber - 1) { | ||
55 | window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href'); | ||
56 | } | ||
57 | }); | ||
58 | |||
59 | /* Select previous card. If there's a previous page, go to next page */ | ||
60 | Mousetrap.bind('left', () => { | ||
61 | if (cardIndex > 0 && cardIndex < cardNumber) { | ||
62 | toggleFocus(card); | ||
63 | cardIndex -= 1; | ||
64 | card = $('ul.data > li')[cardIndex]; | ||
65 | toggleFocus(card); | ||
66 | return; | ||
67 | } | ||
68 | if (pagination.length > 0 && $(pagination).find('li.prev:not(.disabled)').length > 0 && cardIndex === 0) { | ||
69 | window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`; | ||
70 | } | ||
71 | }); | ||
72 | |||
73 | Mousetrap.bind('enter', () => { | ||
74 | window.location.href = window.location.origin + $(card).find('span.card-title a').attr('href'); | ||
75 | }); | ||
76 | }); | ||