summaryrefslogtreecommitdiff
path: root/resources/assets/js/forms.js
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2019-09-06 03:45:56 +0200
committerIgor Scheller <igor.scheller@igorshp.de>2019-09-18 13:25:35 +0200
commit368604bd967de241757b3def5363e44c9c3135ca (patch)
treee5fc60287c0bb89af7d09097874b3b86c9c6e803 /resources/assets/js/forms.js
parenta02f5e61be0357bf56306a7177339ad4e9e3999a (diff)
Shifts view: Persist hidden filters
Diffstat (limited to 'resources/assets/js/forms.js')
-rw-r--r--resources/assets/js/forms.js35
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);
+});