diff --git a/resources/assets/javascripts/bootstrap/resources.js b/resources/assets/javascripts/bootstrap/resources.js index c5370dfe0df48f07c348c82756d1ed5e0b0cf906..96c05477fe0ae7b7faa3240556c81e2236afc906 100644 --- a/resources/assets/javascripts/bootstrap/resources.js +++ b/resources/assets/javascripts/bootstrap/resources.js @@ -491,20 +491,17 @@ STUDIP.ready(function () { $("#clipboard-group-container").find('.widget-links').removeClass('invisible'); } - $('.special-item-switch').each(function () { - if ($(this).prop('checked') == false) { - $(this).next('label').children(':not(span)').hide(); - } - }); - jQuery(document).on( - 'click', + 'change', '.special-item-switch', function () { - $(this).next('label').children(':not(span)').toggle(); + let checked = $(this).prop('checked'); + jQuery(this).parent().next('.special-item-content').toggle(checked); } ); + jQuery('.special-item-switch').trigger('change'); + jQuery(document).on( 'change', 'select[name="special__time_range_semester_id"]', diff --git a/resources/assets/javascripts/lib/resources.js b/resources/assets/javascripts/lib/resources.js index 57965cea906283a3ddac59ea67d5d817e625f6d3..78b913b549966203258237d0e15d0ee9db4b11f4 100644 --- a/resources/assets/javascripts/lib/resources.js +++ b/resources/assets/javascripts/lib/resources.js @@ -227,13 +227,13 @@ class Resources let option_type = jQuery(selected_option).data('type'); let option_select_options = jQuery(selected_option).data('select_options').split(';;'); let option_range_search = jQuery(selected_option).data('range-search'); - let template = undefined; + let template; if (option_type === 'bool') { template = jQuery(select_node).parent().parent().find( '.criteria-list .template[data-template-type="' - + option_type - + '"]' + + option_type + + '"]' )[0]; } else if (option_type === 'select') { template = jQuery(select_node).parent().parent().find( diff --git a/resources/assets/stylesheets/scss/resources.scss b/resources/assets/stylesheets/scss/resources.scss index 11eec3d3b0844d613350425276d072ce44950b0d..c7e5d4bae792f72f2ce64d9f245ab542c1cff8e6 100644 --- a/resources/assets/stylesheets/scss/resources.scss +++ b/resources/assets/stylesheets/scss/resources.scss @@ -159,15 +159,7 @@ ul.resource-tree { li { margin-bottom: 0.5em; - img.remove-icon { - margin-right: 5px; - } - - .special-item-switch { - vertical-align: text-bottom; - } - - & > label { + > label { input[type=text], input[type=number], input[type=date], @@ -175,10 +167,6 @@ ul.resource-tree { width: calc(100% - 2em); height: 30px; - &.has-date-picker { - width: calc(100% - 2em - 84px); - } - &[type=number], &[data-time=yes] { width: 4em; } @@ -196,28 +184,21 @@ ul.resource-tree { } } } - } - } -} - -.room-search-widget_criteria-list { - list-style-type: none; - padding-left: 0.5em; - - .item { - margin-bottom: 0.75em; - > label { - display: inline-block; - width: calc(100% - 2em); - } + input[type="number"] { + max-width: 5em; + } - > label.range-search-label { - > .range-input-container { - margin-left: 1em; + .range-input-container { + input { + &.hasDatePicker { + width: 70%; + } - > input[type="number"] { - max-width: 5em; + &.hasTimepicker { + width: 20%; + margin: 5px 0; + } } } } @@ -423,6 +404,7 @@ form#resolve-request, form#decline-request { margin-bottom: 5px; } } + dt { grid-column: 1; } @@ -451,6 +433,7 @@ form#resolve-request, form#decline-request { max-height: 250px; } } + article.assign-dates, div[data-dialog-button] { header { margin: 0; @@ -464,6 +447,7 @@ form#resolve-request, form#decline-request { } } } + &.default { > thead { > tr { @@ -474,6 +458,7 @@ form#resolve-request, form#decline-request { min-width: 180px; left: 0; } + position: sticky; top: 0; z-index: 1; @@ -483,6 +468,7 @@ form#resolve-request, form#decline-request { } } } + > tbody { > tr { > td { @@ -515,6 +501,7 @@ form#resolve-request, form#decline-request { &.left-part { width: 50%; } + &.right-part { width: 40%; padding-left: 1em; diff --git a/templates/sidebar/room-search-criteria-available-range.php b/templates/sidebar/room-search-criteria-available-range.php index aeba82396fe431447fbea8b6620f4889c202be9d..a84cba51b921a47818a2a0e35c4fa40ee114285d 100644 --- a/templates/sidebar/room-search-criteria-available-range.php +++ b/templates/sidebar/room-search-criteria-available-range.php @@ -38,149 +38,80 @@ */ ?> <li class="item"> - <input type="checkbox" class="special-item-switch" value="1" - title="<?= _('Kriterium ausgewählt'); ?>" id="cb_<?= htmlReady($criteria['name']); ?>" - name="<?= htmlReady($criteria['name'] . '_enabled')?>" - <?= $criteria['enabled'] ? 'checked="checked"' : ''?>> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']) ?>"> - <span><?= htmlReady($criteria['title']) ?></span> + <label class="undecorated"> + <input type="checkbox" class="special-item-switch" value="1" + name="<?= htmlReady($criteria['name'] . '_enabled') ?>" + <?= $criteria['enabled'] ? 'checked' : '' ?>> + <?= htmlReady($criteria['title']) ?> + </label> + + <div class="special-item-content"> <? if ($criteria['semester']): ?> - <div><?= _('Semester') ?></div> - <select name="<?= htmlReady($criteria['name'] . '_semester_id') ?>"> - <option value=""><?= _('Bitte wählen') ?></option> - <? if (is_array($semesters)) : ?> - <? foreach ($semesters as $semester): ?> - <option value="<?= htmlReady($semester->id) ?>" + <label> + <?= _('Semester') ?> + <select name="<?= htmlReady($criteria['name'] . '_semester_id') ?>"> + <option value=""><?= _('Bitte wählen') ?></option> + <? if (is_array($semesters)) : ?> + <? foreach ($semesters as $semester): ?> + <option value="<?= htmlReady($semester->id) ?>" <?= ($semester->id == $criteria['semester']['value'] - ? 'selected="selected"' - : '') ?> - data-begin="<?= htmlReady($semester->vorles_beginn) ?>" - data-end="<?= htmlReady($semester->vorles_ende) ?>"> - <?= htmlReady($semester->name) ?> - </option> - <? endforeach ?> - <? endif ?> - </select> + ? 'selected="selected"' + : '') ?> + data-begin="<?= htmlReady($semester->vorles_beginn) ?>" + data-end="<?= htmlReady($semester->vorles_ende) ?>"> + <?= htmlReady($semester->name) ?> + </option> + <? endforeach ?> + <? endif ?> + </select> + </label> <? endif ?> <? if ($criteria['range']): ?> - <div><?= _('Zeitbereich') ?></div> <div class="range-input-container"> - <input type="text" + <input type="text" aria-label="<?= _('Startdatum') ?>" title="<?= _('Startdatum') ?>" id="<?= htmlReady($criteria['name']) ?>_begin_date" name="<?= htmlReady($criteria['name']) ?>_begin_date" value="<?= htmlReady($criteria['range']['begin']->format('d.m.Y')) ?>" - class="has-date-picker"> - <input type="text" data-time="yes" - data-time-picker='{"<":"#<?=htmlReady($criteria['name']) ?>_end_time"}' + class="hasDatePicker" data-date-picker> + <input type="text" data-time="yes" aria-label="<?= _('Startzeitpunkt') ?>" title="<?= _('Startzeitpunkt') ?>" + data-time-picker='{"<":"#<?= htmlReady($criteria['name']) ?>_end_time"}' id="<?= htmlReady($criteria['name']) ?>_begin_time" name="<?= htmlReady($criteria['name']) ?>_begin_time" value="<?= htmlReady($criteria['range']['begin']->format('H:i')) ?>" - class="has-time-picker"> - <?= _('Uhr') ?> - <input type="text" - data-date-picker='{">=":"#<?=htmlReady($criteria['name']) ?>_begin_date"}' + class="hasTimepicker"> + </div> + <div class="range-input-container"> + <input type="text" aria-label="<?= _('Enddatum') ?>" title="<?= _('Enddatum') ?>" + data-date-picker='{">=":"#<?= htmlReady($criteria['name']) ?>_begin_date"}' id="<?= htmlReady($criteria['name']) ?>_end_date" name="<?= htmlReady($criteria['name']) ?>_end_date" value="<?= htmlReady($criteria['range']['end']->format('d.m.Y')) ?>" - class="has-date-picker"> - <input type="text" data-time="yes" - data-time-picker='{">":"#<?=htmlReady($criteria['name']) ?>_begin_time"}' + class="hasDatePicker"> + <input type="text" data-time="yes" aria-label="<?= _('Endzeitpunkt') ?>" title="<?= _('Endzeitpunkt') ?>" + data-time-picker='{">":"#<?= htmlReady($criteria['name']) ?>_begin_time"}' id="<?= htmlReady($criteria['name']) ?>_end_time" name="<?= htmlReady($criteria['name']) ?>_end_time" value="<?= htmlReady($criteria['range']['end']->format('H:i')) ?>" - class="has-time-picker"> - <?= _('Uhr') ?> + class="hasTimepicker"> </div> <? endif ?> <? if ($criteria['day_of_week']): ?> - <div><?= _('Wochentag') ?></div> + <label> + <?= _('Wochentag') ?> <select name="<?= htmlReady($criteria['name'] . '_day_of_week') ?>"> <? if (is_array($criteria['day_of_week']['options'])): ?> <option value=""><?= _('Bitte wählen') ?></option> <? foreach ($criteria['day_of_week']['options'] as $value => $title): ?> <option value="<?= htmlReady($value) ?>" - <?= ($value === (int)$criteria['day_of_week']['value'] - ? 'selected="selected"' - : '') ?>> + <?= ($value === (int)$criteria['day_of_week']['value'] + ? 'selected="selected"' + : '') ?>> <?= htmlReady($title) ?> </option> <? endforeach ?> <? endif ?> </select> - <? endif ?> - </label> + <? endif ?> + </label> + </div> </li> -<script type="text/javascript"> -jQuery(function ($) { - $("#<?= htmlReady($criteria['name']) ?>_begin_date").on('change', function(){ - var selected_beginn_val = $(this).val().split('.'); - var selected_end_val = $("#<?= htmlReady($criteria['name']) ?>_end_date").val().split('.'); - if (selected_beginn_val.length < 3) { - $(this).val(new Date().toLocaleDateString('de-DE')); - } else if (selected_beginn_val[0] > 31 || selected_beginn_val[1] > 12 || selected_beginn_val[2] < 1970) { - var today = new Date(); - if (selected_beginn_val[2] < 1970) { - $(this).val(selected_beginn_val[0] + '.' + selected_beginn_val[1] + '.' + today.getFullYear()); - } else if (selected_beginn_val[1] > 12) { - $(this).val(selected_beginn_val[0] + '.' + (today.getMonth() + 1) + '.' + selected_beginn_val[2]); - } else { - $(this).val(today.getDate() + '.' + selected_beginn_val[1] + '.' + selected_beginn_val[2]); - } - } - if (selected_beginn_val.length == 3 && selected_end_val.length == 3) { - var selected_beginn_date = new Date(selected_beginn_val[2] + '-' + selected_beginn_val[1] + '-' +selected_beginn_val[0]); - var selected_end_date = new Date(selected_end_val[2] + '-' + selected_end_val[1] + '-' +selected_end_val[0]); - if (selected_beginn_date > selected_end_date) { - $("#<?= htmlReady($criteria['name']) ?>_end_date").val($(this).val()); - } - } - }); - - $("#<?= htmlReady($criteria['name']) ?>_end_date").on('change', function(){ - var selected_beginn_val = $(this).val().split('.'); - if (selected_beginn_val.length < 3) { - $(this).val(new Date().toLocaleDateString('de-DE')); - } else if (selected_beginn_val[0] > 31 || selected_beginn_val[1] > 12 || selected_beginn_val[2] < 1970) { - var today = new Date(); - if (selected_beginn_val[2] < 1970) { - $(this).val(selected_beginn_val[0] + '.' + selected_beginn_val[1] + '.' + today.getFullYear()); - } else if (selected_beginn_val[1] > 12) { - $(this).val(selected_beginn_val[0] + '.' + (today.getMonth() + 1) + '.' + selected_beginn_val[2]); - } else { - $(this).val(today.getDate() + '.' + selected_beginn_val[1] + '.' + selected_beginn_val[2]); - } - } - $("#<?= htmlReady($criteria['name']) ?>_begin_date").trigger('change'); - }); - - $("#<?= htmlReady($criteria['name']) ?>_begin_time").on('change', function(){ - var selected_beginn_val = $(this).val().split(':'); - var selected_end_val = $("#<?= htmlReady($criteria['name']) ?>_end_time").val().split(':'); - if (selected_beginn_val.length < 2) { - if (selected_beginn_val[0] == '') { - $(this).val('00'); - } - $(this).val($(this).val() + ':00'); - } - if (selected_beginn_val.length == 2 && selected_end_val.length == 2) { - var selected_beginn_date = new Date('1970-01-01T' + selected_beginn_val[0] + ':' + selected_beginn_val[1] + ':00+00:00'); - var selected_end_date = new Date('1970-01-01T' + selected_end_val[0] + ':' + selected_end_val[1] + ':00+00:00'); - if (selected_beginn_date > selected_end_date) { - $("#<?= htmlReady($criteria['name']) ?>_end_time").val(selected_beginn_val[0] + ':' + (parseInt(selected_beginn_val[1]) + 30)); - } - } - }); - - $("#<?= htmlReady($criteria['name']) ?>_end_time").on('change', function(){ - var selected_end_val = $(this).val().split(':'); - if (selected_end_val.length < 2) { - if (selected_end_val[0] == '') { - $(this).val('00'); - } - $(this).val($(this).val() + ':00'); - } - $("#<?= htmlReady($criteria['name']) ?>_begin_time").trigger('change'); - }); - -}); -</script> diff --git a/templates/sidebar/room-search-criteria-seats.php b/templates/sidebar/room-search-criteria-seats.php new file mode 100644 index 0000000000000000000000000000000000000000..a947bb11366bcf82dbae4115d413147928f8fccb --- /dev/null +++ b/templates/sidebar/room-search-criteria-seats.php @@ -0,0 +1,37 @@ +<?php +/** + * Template documentation: + * + * @param Array $criteria: A search criteria with the following structure: + * [ + * 'name' => The criteria's internal name. + * 'title' => The title of the criteria. + * 'enabled' => Whether this criteria is enabled (true) or not. + * 'value' => The value of the search criteria. + * For range search criteria the values are split by ':'. + * ] + */ +?> +<li class="item"> + <label class="undecorated"> + <input type="checkbox" class="special-item-switch" value="1" + title="<?= _('Kriterium ausgewählt'); ?>" + name="<?= htmlReady($criteria['name'] . '_enabled')?>" + <?= $criteria['enabled'] ? 'checked' : ''?>> + <?= htmlReady($criteria['title']) ?> + </label> + <div class="hgroup special-item-content"> + <label class="undecorated"> + <?= _('von') ?> + <input type="number" + name="<?= htmlReady($criteria['name'])?>_min" + value="<?= empty($criteria['value'][0])?'':intval($criteria['value'][0])?>"> + </label> + <label class="undecorated"> + <?= _('bis') ?> + <input type="number" + name="<?= htmlReady($criteria['name'])?>_max" + value="<?= empty($criteria['value'][1])?'':intval($criteria['value'][1])?>"> + </label> + </div> +</li> diff --git a/templates/sidebar/room-search-criteria-templates.php b/templates/sidebar/room-search-criteria-templates.php index d75ccbd3fa4afea458961691ece13ac7e169e455..d084fa4f7a69a205e236824300f2852edc7e611e 100644 --- a/templates/sidebar/room-search-criteria-templates.php +++ b/templates/sidebar/room-search-criteria-templates.php @@ -1,7 +1,8 @@ -<li class="template invisible" - data-template-type="bool"> - <?= Icon::create('trash')->asImg( +<li class="template invisible" data-template-type="bool"> + <?= Icon::create('trash')->asInput( [ + 'title' => _('Kriterium entfernen'), + 'aria-label' => _('Kriterium entfernen'), 'class' => 'text-bottom remove-icon' ] ) ?> @@ -14,99 +15,60 @@ <span></span> </label> </li> -<li class="template invisible" - data-template-type="range"> +<li class="template invisible" data-template-type="range"> <?= Icon::create('trash')->asImg( [ - 'class' => 'text-bottom remove-icon' + 'class' => 'text-bottom remove-icon', + 'aria-label' => _('Kriterium entfernen'), + 'title' => _('Kriterium entfernen'), ] ) ?> - <label class="range-search-label undecorated"> + <label class="range-search-label undecorated"><span></span></label> <input type="hidden"> - <span></span> - <div class="range-input-container"> - <?= _('von') ?> - <input type="number" value="10" - class="room-search-widget_criteria-list_input"> - <?= _('bis') ?> - <input type="number" value="100" - class="room-search-widget_criteria-list_input"> + <div class="range-input-container hgroup"> + <label> + <?= _('von') ?> + <input type="number" value="10" class="room-search-widget_criteria-list_input"> + </label> + <label> + <?= _('bis') ?> + <input type="number" value="100" class="room-search-widget_criteria-list_input"> + </label> </div> </label> </li> -<li class="template invisible" - data-template-type="num"> +<li class="template invisible" data-template-type="num"> <?= Icon::create('trash')->asImg( [ - 'class' => 'text-bottom remove-icon' + 'class' => 'text-bottom remove-icon', + 'aria-label' => _('Kriterium entfernen'), + 'title' => _('Kriterium entfernen'), ] ) ?> <label class="undecorated"> <span></span> - <input type="number" - class="room-search-widget_criteria-list_input"> + <input type="number" class="room-search-widget_criteria-list_input"> </label> </li> -<li class="template invisible" - data-template-type="select"> - <?= Icon::create('trash')->asImg( - [ - 'class' => 'text-bottom remove-icon' - ] - ) ?> +<li class="template invisible" data-template-type="select"> + <?= Icon::create('trash')->asImg(['class' => 'text-bottom remove-icon']) ?> <label class="undecorated"> <span></span> <select class="room-search-widget_criteria-list_input"> </select> </label> </li> -<li class="template invisible" - data-template-type="date"> - <?= Icon::create('trash')->asImg( - [ - 'class' => 'text-bottom remove-icon' - ] - ) ?> - <label class="undecorated"> - <span></span> - <div class="range-input-container"> - <input type="date"> - <input type="text" data-time="yes"> - <?= _('Uhr') ?> - <input type="text" data-time="yes"> - <?= _('Uhr') ?> - </div> - </label> -</li> -<li class="template invisible" - data-template-type="date_range"> - <?= Icon::create('trash')->asImg( - [ - 'class' => 'text-bottom remove-icon' - ] - ) ?> - <label class="undecorated"> - <span></span> - <div class="range-input-container"> - <input type="date"> - <input type="date"> - <input type="text" data-time="yes"> - <?= _('Uhr') ?> - <input type="text" data-time="yes"> - <?= _('Uhr') ?> - </div> - </label> -</li> <li class="template invisible" data-template-type="other"> <?= Icon::create('trash')->asImg( [ - 'class' => 'text-bottom remove-icon' + 'class' => 'text-bottom remove-icon', + 'aria-label' => _('Kriterium entfernen'), + 'title' => _('Kriterium entfernen'), ] ) ?> <label class="undecorated"> <span></span> - <input type="text" - class="room-search-widget_criteria-list_input"> + <input type="text" class="room-search-widget_criteria-list_input"> </label> </li> diff --git a/templates/sidebar/room-search-criteria.php b/templates/sidebar/room-search-criteria.php index 96c24d8baf3d46a8c4f899bacbdfdec79f8554c2..0f869ad02588f514166376830948f6b691d2d4ba 100644 --- a/templates/sidebar/room-search-criteria.php +++ b/templates/sidebar/room-search-criteria.php @@ -9,8 +9,6 @@ * 'bool', 'num', 'select', 'date' or 'text' * 'range_search' => Whether a range search shall be used or not. * This is only evaluated for the types 'date' and 'num' - * 'switch' => Whether a checkbox shall be added to the criteria - * that enables/disables the input fields of the criteria. * 'value' => The value of the search criteria. * For range search criteria the values are split by ':'. * ] @@ -21,55 +19,49 @@ ?> <li class="item"> <? if ($removable): ?> - <?= Icon::create('trash', 'clickable')->asImg( - '16px', + <?= Icon::create('trash')->asInput( [ + 'title' => _('Kriterium entfernen'), + 'aria-label' => _('Kriterium entfernen'), 'class' => 'text-bottom remove-icon' ] ) ?> <? endif ?> - <? if ($criteria['switch']): ?> - <input type="checkbox" class="special-item-switch" value="1" - title="<?= _('Kriterium ausgewählt'); ?>" id="cb_<?= htmlReady($criteria['name']); ?>" - name="<?= htmlReady($criteria['name'] . '_enabled')?>" - <?= $criteria['enabled'] ? 'checked="checked"' : ''?>> - <? endif ?> - <? if ($criteria['type'] == 'bool'): ?> - <input type="hidden" name="options_<?= htmlReady($criteria['name']) ?>" value="1"> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']) ?>"> + <? if ($criteria['type'] === 'bool'): ?> + <input type="hidden" name="options_<?= htmlReady($criteria['name']) ?>" value="1"> + <label class="undecorated"> <input type="checkbox" value="1" <?= Request::get($criteria['name']) ? 'checked': ''?> name="<?= htmlReady($criteria['name'])?>"> <span><?= htmlReady($criteria['title']) ?></span> </label> - <? elseif ($criteria['type'] == 'num'): ?> + <? elseif ($criteria['type'] === 'num'): ?> <? if ($criteria['range_search']): ?> - <label class="range-search-label undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <input type="hidden" name="<?= htmlReady($criteria['name']) ?>"> - <span><?= htmlReady($criteria['title']) ?></span> - <div class="range-input-container"> + <label class="undecorated"><?= htmlReady($criteria['title']) ?></label> + <div class="hgroup"> + <label class="undecorated"> <?= _('von') ?> <input type="number" name="<?= htmlReady($criteria['name'])?>_min" value="<?= empty($criteria['value'][0])?'':intval($criteria['value'][0])?>"> + </label> + <label class="undecorated"> <?= _('bis') ?> <input type="number" name="<?= htmlReady($criteria['name'])?>_max" value="<?= empty($criteria['value'][1])?'':intval($criteria['value'][1])?>"> - </div> - </label> + </label> + </div> <? else: ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <span><?= htmlReady($criteria['title']) ?></span> - <input type="number" - name="<?= htmlReady($criteria['name'])?>" - value="<?= intval($criteria['value'])?>"> + <label class="undecorated"> + <?= htmlReady($criteria['title']) ?> + <input type="number" name="<?= htmlReady($criteria['name'])?>" value="<?= (int)$criteria['value']?>"> </label> <? endif ?> - <? elseif ($criteria['type'] == 'select'): ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <span><?= htmlReady($criteria['title']) ?></span> + <? elseif ($criteria['type'] === 'select'): ?> + <label class="undecorated"> + <?= htmlReady($criteria['title']) ?> <select name="<?= htmlReady($criteria['name']) ?>"> <? if (is_array($criteria['options'])): ?> <? foreach ($criteria['options'] as $value => $title): ?> @@ -83,90 +75,44 @@ <? endif ?> </select> </label> - <? elseif ($criteria['type'] == 'select2'): ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <span><?= htmlReady($criteria['title']) ?></span> - <div class="wrapper_wrapper"> - <select name="<?= htmlReady($criteria['name']) ?>" - class="nested-select"> - <? if (is_array($criteria['options'])): ?> - <? foreach ($criteria['options'] as $option): ?> - <option value="<?= htmlReady($option['id']) ?>" - <?= ($option['id'] == $criteria['value'] + <? elseif ($criteria['type'] === 'select2'): ?> + <label class="undecorated"> + <?= htmlReady($criteria['title']) ?> + <select name="<?= htmlReady($criteria['name']) ?>" + class="nested-select"> + <? if (is_array($criteria['options'])): ?> + <? foreach ($criteria['options'] as $option): ?> + <option value="<?= htmlReady($option['id']) ?>" + <?= ($option['id'] == $criteria['value'] + ? 'selected="selected"' + : '') ?>> + <?= htmlReady($option['name']) ?> + </option> + <? foreach ($option['sub_options'] as $sub_option): ?> + <option value="<?= htmlReady($sub_option['id']) ?>" + class="nested-item nested-level-1" + <?= ($sub_option['id'] == $criteria['value'] ? 'selected="selected"' : '') ?>> - <?= htmlReady($option['name']) ?> + <?= htmlReady($sub_option['name']) ?> </option> - <? foreach ($option['sub_options'] as $sub_option): ?> - <option value="<?= htmlReady($sub_option['id']) ?>" - class="nested-item nested-level-1" - <?= ($sub_option['id'] == $criteria['value'] - ? 'selected="selected"' - : '') ?>> - <?= htmlReady($sub_option['name']) ?> - </option> - <? endforeach ?> <? endforeach ?> - <? endif ?> - </select> - </div> - </label> - <? elseif ($criteria['type'] == 'date'): ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <span><?= htmlReady($criteria['title']) ?></span> - <? if ($criteria['range_search']): ?> - <div class="range-input-container"> - <input type="text" - name="<?= htmlReady($criteria['name']) ?>_begin_date" - value="<?= htmlReady($criteria['value']['begin']->format('d.m.Y')) ?>" - class="has-date-picker"> - <input type="text" data-time="yes" - name="<?= htmlReady($criteria['name']) ?>_begin_time" - value="<?= htmlReady($criteria['value']['begin']->format('H:i')) ?>" - class="has-time-picker"> - <?= _('Uhr') ?> - <input type="text" - name="<?= htmlReady($criteria['name']) ?>_end_date" - value="<?= htmlReady($criteria['value']['end']->format('d.m.Y')) ?>" - class="has-date-picker"> - <input type="text" data-time="yes" - name="<?= htmlReady($criteria['name']) ?>_end_time" - value="<?= htmlReady($criteria['value']['end']->format('H:i')) ?>" - class="has-time-picker"> - <?= _('Uhr') ?> - </div> - <? else: ?> - <div class="range-input-container"> - <input type="text" - name="<?= htmlReady($criteria['name']) ?>_date" - value="<?= htmlReady($criteria['value']->format('d.m.Y')) ?>" - class="has-date-picker"> - <input type="text" data-time="yes" - name="<?= htmlReady($criteria['name']) ?>_time" - value="<?= htmlReady($criteria['value']->format('H:i')) ?>" - class="has-time-picker"> - <?= _('Uhr') ?> - </div> - <? endif ?> + <? endforeach ?> + <? endif ?> + </select> </label> - <? elseif ($criteria['type'] == 'hidden'): ?> - <input type="hidden" - name="<?= htmlReady($criteria['name'])?>" - value="<?= htmlReady(strval($criteria['value']))?>"> + <? elseif ($criteria['type'] === 'hidden'): ?> + <input type="hidden" name="<?= htmlReady($criteria['name'])?>" value="<?= htmlReady((string)$criteria['value'])?>"> <? elseif ($criteria['type'] == 'disabled_text'): ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> + <label class="undecorated"> <span><?= htmlReady($criteria['title']) ?></span> - <input type="text" - name="<?= htmlReady($criteria['name'])?>" - value="<?= htmlReady(strval($criteria['value']))?>" - disabled="disabled"> + <input type="text" disabled="disabled" + name="<?= htmlReady($criteria['name'])?>" value="<?= htmlReady((string)$criteria['value'])?>"> </label> <? else: ?> - <label class="undecorated" for="cb_<?= htmlReady($criteria['name']); ?>"> - <span><?= htmlReady($criteria['title']) ?></span> - <input type="text" - name="<?= htmlReady($criteria['name'])?>" - value="<?= htmlReady(strval($criteria['value']))?>"> + <label class="undecorated"> + <?= htmlReady($criteria['title']) ?> + <input type="text" name="<?= htmlReady($criteria['name'])?>" value="<?= htmlReady((string)$criteria['value'])?>"> </label> <? endif ?> </li> diff --git a/templates/sidebar/room-search-tree-widget.php b/templates/sidebar/room-search-tree-widget.php index 39f4aa97b06f302e1770cf78e8d9c61d413ca851..008b1bcdf877c86fd9812cfd8f63093ff895501c 100644 --- a/templates/sidebar/room-search-tree-widget.php +++ b/templates/sidebar/room-search-tree-widget.php @@ -8,8 +8,7 @@ <li <?= ((!$resource_path && $resource->level > $max_open_depth) || $hide) ? 'style="display: none;"' : ''; ?> > <? if (count($resource->children)): ?> - <?= Icon::create('arr_1right', 'clickable')->asImg( - '16px', + <?= Icon::create('arr_1right')->asImg( [ 'class' => implode( ' ', @@ -39,8 +38,7 @@ <? endif ?> <span id="<?= $search_object; ?>" style="cursor: pointer;"> - <?= $resource->getIcon('clickable')->asImg( - '16px', + <?= $resource->getIcon()->asImg( [ 'class' => 'text-bottom' ] diff --git a/templates/sidebar/room-search-widget.php b/templates/sidebar/room-search-widget.php index d6a323ce70005cf6317ec57e856565e8f78cce3f..6a0fb919ba290288008147b7013b6ff27da113cc 100644 --- a/templates/sidebar/room-search-widget.php +++ b/templates/sidebar/room-search-widget.php @@ -60,14 +60,12 @@ ) ?> <? endif; ?> <?= $this->render_partial( - 'sidebar/room-search-criteria.php', + 'sidebar/room-search-criteria-seats.php', [ - 'criteria' => ( + 'criteria' => $selected_criteria['special__seats'] ? $selected_criteria['special__seats'] : $criteria['special__seats'] - ), - 'removable' => false ] ) ?> <?= $this->render_partial( diff --git a/templates/sidebar/time-range-filter.php b/templates/sidebar/time-range-filter.php index 1e343b024b6c56ef3ee87797606335c4b417dfb7..793381e4ecf20376a1b714008edfeaf41e1f2142 100644 --- a/templates/sidebar/time-range-filter.php +++ b/templates/sidebar/time-range-filter.php @@ -3,12 +3,12 @@ <label> <?= _('Dateien neuer als') ?>: <input type="text" name="begin" value="<?= htmlReady($begin) ?>" - class="has-date-picker"> + class="hasDatePicker"> </label> <label> <?= _('Dateien älter als') ?>: <input type="text" name="end" value="<?= htmlReady($end) ?>" - class="has-date-picker submit-on-change"> + class="hasDatePicker submit-on-change"> </label> <? if ($course_options) : ?> <label>