X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=app%2FResources%2Fstatic%2Fthemes%2Fmaterial%2Findex.js;h=2414c0fcc87e6d7908c96f62344c959c05d7d0e6;hb=a5ac6046838766eb888180b4f1d0717631ed8f14;hp=d6afbb8a32eba702d7a68e255608e02c30889e2c;hpb=873f6b8e03079d11fab541aa5b0bc6f8fe2d645e;p=github%2Fwallabag%2Fwallabag.git diff --git a/app/Resources/static/themes/material/index.js b/app/Resources/static/themes/material/index.js index d6afbb8a..2414c0fc 100755 --- a/app/Resources/static/themes/material/index.js +++ b/app/Resources/static/themes/material/index.js @@ -8,7 +8,7 @@ import 'materialize-css/dist/js/materialize'; import '../_global/index'; /* Tools */ -import { initExport, initFilters } from './js/tools'; +import { initExport, initFilters, initRandom } from './js/tools'; /* Import shortcuts */ import './js/shortcuts/main'; @@ -17,6 +17,38 @@ import './js/shortcuts/entry'; /* Theme style */ import './css/index.scss'; +const mobileMaxWidth = 993; + +const stickyNav = () => { + const nav = $('.js-entry-nav-top'); + $('[data-toggle="actions"]').click(() => { + nav.toggleClass('entry-nav-top--sticky'); + }); +}; + +const articleScroll = () => { + const articleEl = $('#article'); + if (articleEl.length > 0) { + $(window).scroll(() => { + const s = $(window).scrollTop(); + const d = $(document).height(); + const c = $(window).height(); + const articleElBottom = articleEl.offset().top + articleEl.height(); + const scrollPercent = (s / (d - c)) * 100; + $('.progress .determinate').css('width', `${scrollPercent}%`); + const fixedActionBtn = $('.js-fixed-action-btn'); + const toggleScrollDataName = 'toggle-auto'; + if ((s + c) > articleElBottom) { + fixedActionBtn.data(toggleScrollDataName, true); + fixedActionBtn.openFAB(); + } else if (fixedActionBtn.data(toggleScrollDataName) === true) { + fixedActionBtn.data(toggleScrollDataName, false); + fixedActionBtn.closeFAB(); + } + }); + } +}; + $(document).ready(() => { // sideNav $('.button-collapse').sideNav(); @@ -27,52 +59,70 @@ $(document).ready(() => { $('.datepicker').pickadate({ selectMonths: true, selectYears: 15, - formatSubmit: 'dd/mm/yyyy', - hiddenName: true, - format: 'dd/mm/yyyy', + formatSubmit: 'yyyy-mm-dd', + hiddenName: false, + format: 'yyyy-mm-dd', container: 'body', }); + + $('.dropdown-trigger').dropdown({ hover: false }); + initFilters(); initExport(); + initRandom(); + stickyNav(); + articleScroll(); + + const toggleNav = (toShow, toFocus) => { + $('.nav-panel-actions').hide(100); + $(toShow).show(100); + $('.nav-panels').css('background', 'white'); + $(toFocus).focus(); + }; $('#nav-btn-add-tag').on('click', () => { $('.nav-panel-add-tag').toggle(100); $('.nav-panel-menu').addClass('hidden'); + if (window.innerWidth < mobileMaxWidth) { + $('.side-nav').sideNav('hide'); + } $('#tag_label').focus(); return false; }); + $('#nav-btn-add').on('click', () => { - $('.nav-panel-buttom').hide(100); - $('.nav-panel-add').show(100); - $('.nav-panels .action').hide(100); - $('.nav-panel-menu').addClass('hidden'); - $('.nav-panels').css('background', 'white'); - $('#entry_url').focus(); + toggleNav('.nav-panel-add', '#entry_url'); return false; }); + + const materialAddForm = $('.nav-panel-add'); + materialAddForm.on('submit', () => { + materialAddForm.addClass('disabled'); + $('input#entry_url', materialAddForm).prop('readonly', true).trigger('blur'); + }); + $('#nav-btn-search').on('click', () => { - $('.nav-panel-buttom').hide(100); - $('.nav-panel-search').show(100); - $('.nav-panels .action').hide(100); - $('.nav-panel-menu').addClass('hidden'); - $('.nav-panels').css('background', 'white'); - $('#search_entry_term').focus(); + toggleNav('.nav-panel-search', '#search_entry_term'); return false; }); - $('.close').on('click', () => { - $('.nav-panel-add').hide(100); - $('.nav-panel-search').hide(100); - $('.nav-panel-buttom').show(100); - $('.nav-panels .action').show(100); - $('.nav-panel-menu').removeClass('hidden'); + + $('.close').on('click', (e) => { + $(e.target).parent('.nav-panel-item').hide(100); + $('.nav-panel-actions').show(100); $('.nav-panels').css('background', 'transparent'); return false; }); - $(window).scroll(() => { - const s = $(window).scrollTop(); - const d = $(document).height(); - const c = $(window).height(); - const scrollPercent = (s / (d - c)) * 100; - $('.progress .determinate').css('width', `${scrollPercent}%`); - }); + + const mainCheckboxes = document.querySelectorAll('[data-js="checkboxes-toggle"]'); + if (mainCheckboxes.length) { + [...mainCheckboxes].forEach((el) => { + el.addEventListener('click', () => { + const checkboxes = document.querySelectorAll(el.dataset.toggle); + [...checkboxes].forEach((checkbox) => { + const checkboxClone = checkbox; + checkboxClone.checked = el.checked; + }); + }); + }); + } });