summaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2019-09-06 03:45:56 +0200
committermsquare <msquare@notrademark.de>2019-10-13 13:15:08 +0200
commitc9ebaa972cb2a16e16ffc78080f03342eae5d874 (patch)
tree1449c4f78c6aa03af4b94343805171fddafb8cf2 /resources
parentdd0366296893a0e8da8ae0365387dd4823d53451 (diff)
Shifts view: Persist hidden filters
Diffstat (limited to 'resources')
-rw-r--r--resources/assets/js/forms.js35
-rw-r--r--resources/views/pages/user-shifts.html8
2 files changed, 35 insertions, 8 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);
+});
diff --git a/resources/views/pages/user-shifts.html b/resources/views/pages/user-shifts.html
index 9ac501da..d5a98f80 100644
--- a/resources/views/pages/user-shifts.html
+++ b/resources/views/pages/user-shifts.html
@@ -55,12 +55,12 @@
<div class="col-md-6">
<button class="btn btn-info btn-sm hidden-print" style="margin-top: 20px; margin-bottom:10px" type="button"
data-toggle="collapse"
- data-target="#collapseRoomSelect" aria-expanded="false"
- aria-controls="collapseRoomSelect"
+ data-target="#collapseShiftsFilterSelect" aria-expanded="true"
+ aria-controls="collapseShiftsFilterSelect"
>
collapse/show filters
</button>
- <div class="collapse in" id="collapseRoomSelect">
+ <div class="collapse in" id="collapseShiftsFilterSelect">
<div class="row">
<div class="col-xs-4 col-xxs-12">%room_select%</div>
<div class="col-xs-4 col-xxs-12">%type_select%</div>
@@ -79,5 +79,5 @@
%shifts_table%
<div class="hidden-print">
-%ical_text%
+ %ical_text%
</div> \ No newline at end of file