]>
Commit | Line | Data |
---|---|---|
1 | import $ from 'jquery'; | |
2 | import annotator from 'annotator'; | |
3 | import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools'; | |
4 | import './shortcuts/main.js'; | |
5 | import './shortcuts/entry.js'; | |
6 | ||
7 | require('materialize'); // eslint-disable-line | |
8 | ||
9 | global.jQuery = $; | |
10 | ||
11 | $(document).ready(() => { | |
12 | // sideNav | |
13 | $('.button-collapse').sideNav(); | |
14 | $('select').material_select(); | |
15 | $('.collapsible').collapsible({ | |
16 | accordion: false, | |
17 | }); | |
18 | $('.datepicker').pickadate({ | |
19 | selectMonths: true, | |
20 | selectYears: 15, | |
21 | formatSubmit: 'dd/mm/yyyy', | |
22 | hiddenName: true, | |
23 | format: 'dd/mm/yyyy', | |
24 | }); | |
25 | initFilters(); | |
26 | initExport(); | |
27 | ||
28 | $('#nav-btn-add-tag').on('click', () => { | |
29 | $('.nav-panel-add-tag').toggle(100); | |
30 | $('.nav-panel-menu').addClass('hidden'); | |
31 | $('#tag_label').focus(); | |
32 | return false; | |
33 | }); | |
34 | $('#nav-btn-add').on('click', () => { | |
35 | $('.nav-panel-buttom').hide(100); | |
36 | $('.nav-panel-add').show(100); | |
37 | $('.nav-panels .action').hide(100); | |
38 | $('.nav-panel-menu').addClass('hidden'); | |
39 | $('.nav-panels').css('background', 'white'); | |
40 | $('#entry_url').focus(); | |
41 | return false; | |
42 | }); | |
43 | $('#nav-btn-search').on('click', () => { | |
44 | $('.nav-panel-buttom').hide(100); | |
45 | $('.nav-panel-search').show(100); | |
46 | $('.nav-panels .action').hide(100); | |
47 | $('.nav-panel-menu').addClass('hidden'); | |
48 | $('.nav-panels').css('background', 'white'); | |
49 | $('#searchfield').focus(); | |
50 | return false; | |
51 | }); | |
52 | $('.close').on('click', () => { | |
53 | $('.nav-panel-add').hide(100); | |
54 | $('.nav-panel-search').hide(100); | |
55 | $('.nav-panel-buttom').show(100); | |
56 | $('.nav-panels .action').show(100); | |
57 | $('.nav-panel-menu').removeClass('hidden'); | |
58 | $('.nav-panels').css('background', 'transparent'); | |
59 | return false; | |
60 | }); | |
61 | $(window).scroll(() => { | |
62 | const s = $(window).scrollTop(); | |
63 | const d = $(document).height(); | |
64 | const c = $(window).height(); | |
65 | const scrollPercent = (s / (d - c)) * 100; | |
66 | $('.progress .determinate').css('width', `${scrollPercent}%`); | |
67 | }); | |
68 | ||
69 | /* ========================================================================== | |
70 | Annotations & Remember position | |
71 | ========================================================================== */ | |
72 | ||
73 | if ($('article').length) { | |
74 | const app = new annotator.App(); | |
75 | const x = JSON.parse($('#annotationroutes').html()); | |
76 | ||
77 | app.include(annotator.ui.main, { | |
78 | element: document.querySelector('article'), | |
79 | }); | |
80 | ||
81 | app.include(annotator.storage.http, x); | |
82 | ||
83 | app.start().then(() => { | |
84 | app.annotations.load({ entry: x.entryId }); | |
85 | }); | |
86 | ||
87 | $(window).scroll(() => { | |
88 | const scrollTop = $(window).scrollTop(); | |
89 | const docHeight = $(document).height(); | |
90 | const scrollPercent = (scrollTop) / (docHeight); | |
91 | const scrollPercentRounded = Math.round(scrollPercent * 100) / 100; | |
92 | savePercent(x.entryId, scrollPercentRounded); | |
93 | }); | |
94 | ||
95 | retrievePercent(x.entryId); | |
96 | ||
97 | $(window).resize(() => { | |
98 | retrievePercent(x.entryId); | |
99 | }); | |
100 | } | |
101 | }); |