]> git.immae.eu Git - github/wallabag/wallabag.git/blame - app/Resources/static/themes/material/index.js
Added tests
[github/wallabag/wallabag.git] / app / Resources / static / themes / material / index.js
CommitLineData
af61cb80 1import $ from 'jquery';
5637a26e 2
64f81bc3
TC
3/* Materialize imports */
4import 'materialize-css/dist/css/materialize.css';
5import 'materialize-css/dist/js/materialize';
6
7/* Global imports */
8import '../_global/index';
5637a26e
TC
9
10/* Tools */
136f710d 11import { initExport, initFilters, initRandom, initSort } from './js/tools';
5637a26e
TC
12
13/* Import shortcuts */
64f81bc3
TC
14import './js/shortcuts/main';
15import './js/shortcuts/entry';
6cb364a2 16
64f81bc3
TC
17/* Theme style */
18import './css/index.scss';
5ecdfcd0 19
cfd77d1c
S
20const stickyNav = () => {
21 const nav = $('.js-entry-nav-top');
22 $('[data-toggle="actions"]').click(() => {
23 nav.toggleClass('entry-nav-top--sticky');
24 });
25};
26
dc23bf9f
S
27const articleScroll = () => {
28 const articleEl = $('#article');
29 if (articleEl.length > 0) {
30 $(window).scroll(() => {
31 const s = $(window).scrollTop();
32 const d = $(document).height();
33 const c = $(window).height();
34 const articleElBottom = articleEl.offset().top + articleEl.height();
35 const scrollPercent = (s / (d - c)) * 100;
36 $('.progress .determinate').css('width', `${scrollPercent}%`);
37 const fixedActionBtn = $('.js-fixed-action-btn');
38 const toggleScrollDataName = 'toggle-auto';
39 if ((s + c) > articleElBottom) {
40 fixedActionBtn.data(toggleScrollDataName, true);
41 fixedActionBtn.openFAB();
42 } else if (fixedActionBtn.data(toggleScrollDataName) === true) {
43 fixedActionBtn.data(toggleScrollDataName, false);
44 fixedActionBtn.closeFAB();
45 }
46 });
47 }
48};
49
c146f694 50$(document).ready(() => {
0743287f
TC
51 // sideNav
52 $('.button-collapse').sideNav();
53 $('select').material_select();
54 $('.collapsible').collapsible({
55 accordion: false,
56 });
57 $('.datepicker').pickadate({
58 selectMonths: true,
59 selectYears: 15,
8ee7b160
KD
60 formatSubmit: 'yyyy-mm-dd',
61 hiddenName: false,
62 format: 'yyyy-mm-dd',
64f81bc3 63 container: 'body',
0743287f 64 });
50f35f0d 65
d9a68f6c
NL
66 $('.dropdown-trigger').dropdown({ hover: false });
67
0743287f
TC
68 initFilters();
69 initExport();
50f35f0d 70 initRandom();
cfd77d1c 71 stickyNav();
dc23bf9f 72 articleScroll();
136f710d 73 initSort();
9948d899 74
91f59924
S
75 const toggleNav = (toShow, toFocus) => {
76 $('.nav-panel-actions').hide(100);
77 $(toShow).show(100);
78 $('.nav-panels').css('background', 'white');
79 $(toFocus).focus();
80 };
81
c146f694 82 $('#nav-btn-add-tag').on('click', () => {
0743287f
TC
83 $('.nav-panel-add-tag').toggle(100);
84 $('.nav-panel-menu').addClass('hidden');
85 $('#tag_label').focus();
86 return false;
87 });
a6b242a1 88
c146f694 89 $('#nav-btn-add').on('click', () => {
91f59924 90 toggleNav('.nav-panel-add', '#entry_url');
0743287f
TC
91 return false;
92 });
a6b242a1 93
2831e77c 94 const materialAddForm = $('.nav-panel-add');
3d46eeeb
KD
95 materialAddForm.on('submit', () => {
96 materialAddForm.addClass('disabled');
97 $('input#entry_url', materialAddForm).prop('readonly', true).trigger('blur');
98 });
a6b242a1 99
c146f694 100 $('#nav-btn-search').on('click', () => {
91f59924 101 toggleNav('.nav-panel-search', '#search_entry_term');
0743287f
TC
102 return false;
103 });
a6b242a1 104
91f59924
S
105 $('.close').on('click', (e) => {
106 $(e.target).parent('.nav-panel-item').hide(100);
2831e77c 107 $('.nav-panel-actions').show(100);
0743287f
TC
108 $('.nav-panels').css('background', 'transparent');
109 return false;
110 });
46732777
NL
111
112 const mainCheckboxes = document.querySelectorAll('[data-js="checkboxes-toggle"]');
113 if (mainCheckboxes.length) {
114 [...mainCheckboxes].forEach((el) => {
115 el.addEventListener('click', () => {
116 const checkboxes = document.querySelectorAll(el.dataset.toggle);
117 [...checkboxes].forEach((checkbox) => {
118 const checkboxClone = checkbox;
119 checkboxClone.checked = el.checked;
120 });
121 });
122 });
123 }
d85454fb 124});