diff options
author | msquare <msquare@notrademark.de> | 2019-10-08 19:14:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-08 19:14:37 +0200 |
commit | 503c479e8648050cec52510be5b49bbeb8fcc7ca (patch) | |
tree | 63319494cc566951650b9954984b9e3a62c84ee6 /resources/assets/js/forms.js | |
parent | 24bfc292208082513fd1159cb3176e08b1686c11 (diff) | |
parent | 368604bd967de241757b3def5363e44c9c3135ca (diff) |
Merge pull request #650 from MyIgel/persistent-hidden-filters
Shifts view: Persist hidden filters
Diffstat (limited to 'resources/assets/js/forms.js')
-rw-r--r-- | resources/assets/js/forms.js | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/resources/assets/js/forms.js b/resources/assets/js/forms.js index f5818e97..9970b907 100644 --- a/resources/assets/js/forms.js +++ b/resources/assets/js/forms.js @@ -16,7 +16,7 @@ global.checkAll = (id, checked) => { * Sets the checkboxes according to the given type * * @param {string} id The elements ID - * @param {list} shifts_list A list of numbers + * @param {list} shiftsList A list of numbers */ global.checkOwnTypes = (id, shiftsList) => { $('#' + id + ' input[type="checkbox"]').each(function () { @@ -144,10 +144,10 @@ $(function () { elem.children('input').on('click', function (ev) { ev.stopImmediatePropagation(); if (typeof elem.data('DateTimePicker') === 'undefined') { - elem.datetimepicker(opts); - elem.data('DateTimePicker').show(); + elem.datetimepicker(opts); + elem.data('DateTimePicker').show(); } else { - elem.data('DateTimePicker').toggle(); + elem.data('DateTimePicker').toggle(); } }); }); @@ -173,3 +173,30 @@ $(function () { }); }); }); + +/** + * Set the filter selects to latest state + * + * Uses DOMContentLoaded to prevent flickering + */ +window.addEventListener('DOMContentLoaded', () => { + const filter = document.getElementById('collapseShiftsFilterSelect'); + if (!filter || localStorage.getItem('collapseShiftsFilterSelect') !== 'hidden') { + return; + } + + filter.classList.remove('in'); +}); +$(() => { + if (typeof (localStorage) === 'undefined') { + return; + } + + const onChange = (e) => { + localStorage.setItem('collapseShiftsFilterSelect', e.type); + }; + + $('#collapseShiftsFilterSelect') + .on('hidden.bs.collapse', onChange) + .on('shown.bs.collapse', onChange); +}); |