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