diff --git a/resources/assets/javascripts/bootstrap/resources.js b/resources/assets/javascripts/bootstrap/resources.js index 9ceb8fa390895f9c6ae18cd30f26e65fb29b39e8..2dc0302ed4e196fd23445c7ae32c55135fcacbd2 100644 --- a/resources/assets/javascripts/bootstrap/resources.js +++ b/resources/assets/javascripts/bootstrap/resources.js @@ -81,6 +81,53 @@ STUDIP.ready(function () { } } + //Room search widget: remove empty form inputs from URL: + jQuery('.sidebar-widget-content form.room-search-form').submit(function() { + //Check if the seats checkbox is checked. Only include "its" input + //fields when it is checked. + let seats_checked = jQuery(this).find('input[name="special__seats_enabled"]').is(':checked'); + if (seats_checked) { + } else { + jQuery(this).find('input[name="special__seats_min"]').attr('disabled', 'disabled'); + jQuery(this).find('input[name="special__seats_max"]').attr('disabled', 'disabled'); + } + + //Check if the time range checkbox is checked. Only include "its" input + //fields when it is checked. + let time_range_checked = jQuery('#cb_special__time_range').is(':checked'); + if (time_range_checked) { + var dow_select = jQuery(this).find('select[name="special__time_range_day_of_week"]')[0]; + if (dow_select) { + if (!jQuery(dow_select).val() || (jQuery(dow_select).val() < 1)) { + jQuery(dow_select).attr('disabled', 'disabled'); + } + } + } else { + jQuery(this).find('select[name="special__time_range_semester_id"]').attr('disabled', 'disabled'); + jQuery('#special__time_range_begin_date').attr('disabled', 'disabled'); + jQuery('#special__time_range_begin_time').attr('disabled', 'disabled'); + jQuery('#special__time_range_end_date').attr('disabled', 'disabled'); + jQuery('#special__time_range_end_time').attr('disabled', 'disabled'); + jQuery(this).find('select[name="special__time_range_day_of_week"]').attr('disabled', 'disabled'); + } + + //Disable all form input fields that don't have a value: + jQuery(this).find(':input').filter( + function(){ + //A list of allowed input fields without values + //(submit buttons): + let empty_inputs = ['room_search', 'room_search_reset']; + if (jQuery.inArray(jQuery(this).prop('name'), empty_inputs) >= 0) { + return false; + } + return !this.value; + } + ).attr('disabled', 'disabled'); + + //The form shall still be submitted. + return true; + }); + //other: jQuery(document).on( diff --git a/templates/sidebar/room-search-widget.php b/templates/sidebar/room-search-widget.php index 317671ac34437537e71ca0477caaa6fdd7ce2e11..8ed292049723d0fb52a0b6ada42b81150865f476 100644 --- a/templates/sidebar/room-search-widget.php +++ b/templates/sidebar/room-search-widget.php @@ -1,6 +1,5 @@ <form class="default room-search-form" action="<?= $action_link ?>" - method="post"> - <input type="hidden" name="extended_search"> + method="get"> <ul class="criteria-list"> <?= $this->render_partial( @@ -125,15 +124,3 @@ </select> </label> </form> -<script type="text/javascript"> -/* jQuery('.room-search-form .criteria-list input[type="date"]').datepicker( - { - dateFormat: 'yy-mm-dd' - } - ); - jQuery('.room-search-form .criteria-list input[type="time"]').timepicker( - { - timeFormat: 'G:i' - } - ); */ -</script>