{# @var int possibleNights #}
{# @var int possibleAdults #}
{# @var int possibleChildren #}
{% do jsConfig().add('datepicker', true) %}
{% do jsConfig('_initialState').add(demi_getSearchArray()) %}
{% if app.request.get('from') is not empty%}
{% set dateFrom = elements_customDateFormat(app.request.get('from')) %}
{% endif %}
{% if app.request.get('to') is not empty %}
{% set dateTo = elements_customDateFormat(app.request.get('to')) %}
{% endif %}
{% if app.request.get('durationType') is not empty %}
{% set type = app.request.get('durationType') %}
{% endif %}
{% set units = app.request.get('u0') %}
{% set adults = app.request.get('a0') %}
{% set children = app.request.get('c0') %}
{% set setRegions = app.request.get('regions') is not empty ? app.request.get('regions') : [] %}
{% set setTowns = app.request.get('towns') is not empty ? app.request.get('towns') : [] %}
{% set setCategories = app.request.get('categories') is not empty ? app.request.get('categories') : [] %}
{% set setMealTypes = app.request.get('mealtype') is not empty ? [app.request.get('mealtype')] : [] %}
{% set setRoomFacilities = app.request.get('roomFacilities') is not empty ? app.request.get('roomFacilities') : [] %}
{% set setFacilities = app.request.get('facilities') is not empty ? app.request.get('facilities') : [] %}
{% set setStars = app.request.get('stars') is not empty ? app.request.get('stars') : [] %}
{% set setMarketingGroups = app.request.get('marketingGroups') is not empty ? app.request.get('marketingGroups') : [] %}
{% set setHolidayThemes = app.request.get('holidayThemes') is not empty ? app.request.get('holidayThemes') : [] %}
{% set filterTexte = [] %}
{% set minPrice = minPrice is defined ? minPrice : 0 %}
{% set maxPrice = maxPrice is defined ? maxPrice : 3000 %}
<fieldset class="card box-shadow mb-4">
<div class="card-body js-date-range-form">
<h3 class="mb-3 h2 text-primary">{{ 'demi.saving-request.travl-data'|trans }}</h3>
<script data-cookieconsent="ignore">
_config.searchForm = true;
_config.rangeDatepicker = true;
_config.dateRangeForm = true;
</script>
<div class="row row--gutter-width-20 js-search-form js-range-datepicker js-date-range-form__datepicker">
<div class="col col-12">
<h4>
{{ 'demi.search.travel-period'|trans }}
</h4>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<label class="form-box form-box--gray">
{% set date = carbon().create().setTime(0,0,0) %}
{% if isGroupRequest %}
{% do date.addDay(constant("\\Elements\\Bundle\\DemiFrontendBundle\\Service\\SavingRequest::GROUP_REQUEST_MIN_DATE_TO_OFFSET")) %}
{% set fromDatepickerMinDate = '+4d' %}
{% endif %}
{% set date = dateFrom is defined ? dateFrom : date %}
<script data-cookieconsent="ignore">
_initialState.search.from = '{{ elements_customDateFormat(date) }}';
</script>
<span class="form-box__label">{{ 'demi.saving-request.label.arrival'|trans }} *</span>
<input data-alt-field="#arrival" readonly data-date-picker="start" type="text" class="form-box__content form-control js-range-datepicker__picker js-datepicker__picker--from-only"
value=""
name="arrival-datepicker"
required
placeholder="{{ elements_dateFormat(date, 'date-long') }}"
autocomplete="off">
<input class="js-range-datepicker__from" readonly type="hidden" id="arrival" name="arrival" value="">
<span class="demi-icon demi-icon-calendar-insert form-box__icon"
aria-hidden="true"></span>
</label>
<div class="form-errors"></div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<label class="form-box form-box--gray">
<span class="form-box__label">{{ 'demi.saving-request.label.departure'|trans }} *</span>
{% do date.addDay(constant("\\Elements\\Bundle\\DemiFrontendBundle\\Service\\SavingRequest::DEFAULT_DATE_TO_OFFSET")) %}
{% set date = dateTo is defined ? dateTo : date %}
<script data-cookieconsent="ignore">
_initialState.search.to = '{{ elements_customDateFormat(date) }}';
</script>
<input data-alt-field="#departure" readonly data-date-picker="" type="text"
class="form-box__content form-control js-range-datepicker__picker js-datepicker__picker--to-only"
value=""
required
name="departure-datepicker"
placeholder="{{ elements_dateFormat(date, 'date-long') }}"
autocomplete="off">
<input class="js-range-datepicker__to" readonly type="hidden" id="departure" name="departure" value="">
<span class="demi-icon demi-icon-calendar-insert form-box__icon"
aria-hidden="true"></span>
</label>
<div class="form-errors"></div>
</div>
</div>
{% if possibleNights > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
{% if not isGroupRequest %} {# Group Request does not support variable nights #}
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-nights"
aria-expanded="false"
aria-controls="travel-data-nights"
{% else %}
data-content-el="#travel-data-nights"
data-container="body"
data-placement="bottom"
data-popover-class="popover--md"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.flexible-nights'|trans }}</span>
<span class="form-box__content">
<span class="js-search-form__period">{{ 'demi.search.exact-period'|trans }}</span>
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% endif %}
{% if isMobile %}
<script type="text/javascript" data-cookieconsent="ignore">
_config.searchDurationOverlay = true;
</script>
<section id="travel-data-nights" aria-expanded="false" class="collapse js-search-duration-overlay">
<div class="form-box__detail p-3">
<ul class="list-unstyled">
<li>
<div class="row row--gutter-width-10 custom-radio-wrapper">
<div class="col">
<h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-exact">{{ 'demi.search.exact-period'|trans }}</label></h3>
<div class="text-muted">
<label for="search-duration-type-exact">
{{ 'demi.search.results-fix'|trans }}
</label>
</div>
</div>
<div class="col col-auto">
<label class="custom-radio js-search-duration-overlay__type-radio">
<input id="search-duration-type-exact"
class="custom-radio__input"
type="radio"
name="search-duration-type"
value="exact">
<span class="custom-radio__box mr-0"></span>
</label>
</div>
</div>
<hr>
</li>
<li>
<div class="row row--gutter-width-10 custom-radio-wrapper">
<div class="col">
<h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-variable">{{ 'demi.search.variable-period'|trans }}</label></h3>
<div class="text-muted">
<label for="search-duration-type-variable">
{{ 'demi.search.results-flexible'|trans }}
</label>
</div>
</div>
<div class="col col-auto">
<label class="custom-radio js-search-duration-overlay__type-radio">
<input id="search-duration-type-variable"
class="custom-radio__input"
type="radio"
name="search-duration-type"
value="variable">
<span class="custom-radio__box mr-0"></span>
</label>
</div>
</div>
<div class="js-search-duration-overlay__nights collapse" aria-expanded="false">
<div class="row row--gutter-width-10 mt-3">
<div class="text-muted mt-3">
{{ 'demi.search.choose-nights'|trans }}:
</div>
<label class="form-box form-box--gray">
<span class="form-box__label">{{ "demi.nights"|trans }}</span>
<select name="nights" class="form-box__content form-control">
<option value="" disabled selected>{{ 'demi.search.please-choose'|trans }}</option>
<option value="1">1 {{ "demi.night"|trans }}</option>
{% for i in 2..(possibleNights) %}
<option value="{{ i }}">{{ i }} {{ "demi.nights"|trans }}</option>
{% endfor %}
</select>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon" aria-hidden="true"></span>
</label>
</div>
</div>
<hr>
</li>
</ul>
</div>
</section>
{% else %}
<script type="text/javascript" data-cookieconsent="ignore">
_config.searchDurationOverlay = true;
</script>
<div hidden>
<section id="travel-data-nights" class="filter-box js-search-duration-overlay">
<div class="filter-box__content">
<ul class="list-unstyled">
<li>
<div class="row row--gutter-width-10 custom-radio-wrapper">
<div class="col">
<h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-exact">{{ 'demi.search.exact-period'|trans }}</label></h3>
<div class="text-muted">
<label for="search-duration-type-exact">
{{ 'demi.search.results-fix'|trans }}
</label>
</div>
</div>
<div class="col col-auto">
<label class="custom-radio js-search-duration-overlay__type-radio">
<input id="search-duration-type-exact"
class="custom-radio__input"
type="radio"
name="search-duration-type"
value="exact">
<span class="custom-radio__box mr-0"></span>
</label>
</div>
</div>
<hr>
</li>
<li>
<div class="row row--gutter-width-10 custom-radio-wrapper">
<div class="col">
<h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-variable">{{ 'demi.search.variable-period'|trans }}</label></h3>
<div class="text-muted">
<label for="search-duration-type-variable">
{{ 'demi.search.results-flexible'|trans }}
</label>
</div>
</div>
<div class="col col-auto">
<label class="custom-radio js-search-duration-overlay__type-radio">
<input id="search-duration-type-variable"
class="custom-radio__input"
type="radio"
name="search-duration-type"
value="variable">
<span class="custom-radio__box mr-0"></span>
</label>
</div>
</div>
<div class="js-search-duration-overlay__nights collapse" aria-expanded="false">
<div class="text-muted mt-3">
{{ 'demi.search.choose-nights'|trans }}:
</div>
<div class="row row--gutter-width-10 mt-3">
<label class="form-box form-box--gray">
<span class="form-box__label">{{ "demi.nights"|trans }}</span>
<select name="nights" class="form-box__content form-control js-search-duration-overlay__nights-select">
<option value="" disabled selected>{{ 'demi.search.please-choose'|trans }}</option>
<option value="1">1 {{ "demi.night"|trans }}</option>
{% for i in 2..(possibleNights) %}
<option value="{{ i }}">{{ i }} {{ "demi.nights"|trans }}</option>
{% endfor %}
</select>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon" aria-hidden="true"></span>
</label>
</div>
</div>
<hr>
</li>
</ul>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
</div>
<div class="row row--gutter-width-20 mt-3">
<div class="col col-12">
<h4>
{{ isGroupRequest ? 'demi.guests'|trans : 'demi.search.units'|trans }}
</h4>
</div>
</div>
<script type="text/javascript" data-cookieconsent="ignore">
_config.inlineOccupancyForm = true;
{% if isGroupRequest %}
_config.searchFormMaxRooms = 1;
{% endif %}
</script>
<div class="js-inline-occupancy-form">
</div>
<div class="js-filter-form">
<div class="row row--gutter-width-20 mt-3">
{% if editmode %}
<div class="alert alert-success">
<h3>Info zu Filtern</h3>
{% if not isGroupRequest %}
<p>
Folgende Filter unter "Regionen" und "Weitere Optionen" werden aus dem Filter-Snippet des Haupt-Unterkunftslistendokuments abgegriffen.
Hier <strong>mögliche Filter</strong> sind:
<ul>
<li>Regionen</li>
<li>Orte</li>
<li>Preis</li>
<li>Kategorien</li>
<li>Verpflegung</li>
<li>Ausstattung</li>
<li>Sterne</li>
<li>Marketinggruppen</li>
<li>Urlaubsthemen</li>
</ul>
</p>
<p>
Folgende etwaig vorhandenen Filter werden <strong>ignoriert</strong>:
<ul>
<li>Filter bestehend aus Filter-Objeken</li>
<li>Buchbarkeits-Checkbox</li>
<li>Specials/Angebote</li>
<li>Special Types wie Last Minute, Early Booker </li>
<li>Unterkunftsname</li>
</ul>
</p>
{% else %}
<p>Der Verpflegungsfilter unter "Weitere Optionen" wird falls vorhanden aus dem Filter-Snippet des Haupt-Unterkunftslistendokuments abgegriffen. Verpflegung
ist der einzige Filter, der bei Feratel für die Gruppenanfrage möglich ist.</p>
{% endif %}
<p>Soll für dieses Dokument ein anderes, eigenes Filtersnippet verwendet werden und nicht automatisch jenes von der Unterkunftsliste, dann bitte hier zuweisen:</p>
{{ pimcore_relation("requestFilterSnippet", {"reload": true}) }}
</div>
{% endif %}
<script data-cookieconsent="ignore">
_config.filterForm = true;
_config.popover = true;
</script >
{% if regions|length > 0 or towns|length > 0 %}
<div class="col col-12">
<h4>
{{ 'demi.search.regions'|trans }}
</h4>
</div>
{% if regions|length >0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-regions"
aria-expanded="false"
aria-controls="travel-data-regions"
{% else %}
data-content-el="#popover-regions"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.regions'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="regions[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-regions" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for region in regions %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': region.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'regions[]',
'value': region.getId(),
'hasIcon': true,
'checked': region.getId() in setRegions ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'regions[]',
'value': region.getId(),
'text': region.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-regions" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for region in regions %}
{% set options = options|merge([{
'type': 'checkbox',
'text': region.getName(),
'label': region.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'regions[]',
'value': region.getId(),
'noBubbles': true,
'checked': region.getId() in setRegions ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'regions[]',
'value': region.getId(),
'text': region.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.regions'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'regions[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if towns|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-towns"
aria-expanded="false"
aria-controls="travel-data-towns"
{% else %}
data-content-el="#popover-towns"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.towns'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="towns[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-towns" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for town in towns %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': town.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'towns[]',
'value': town.getId(),
'hasIcon': true,
'checked': town.getId() in setTowns ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'towns[]',
'value': town.getId(),
'text': town.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-towns" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for town in towns %}
{% set options = options|merge([{
'type': 'checkbox',
'text': town.getName(),
'label': town.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'towns[]',
'value': town.getId(),
'noBubbles': true,
'checked': town.getId() in setTowns ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'towns[]',
'value': town.getId(),
'text': town.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.towns'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'towns[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% endif %}
</div>
<div class="row row--gutter-width-20 mt-3">
<div class="col col-12">
<h4>
{{ 'demi.search.more.options'|trans }}
</h4>
</div>
{% if not isGroupRequest %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-price"
aria-expanded="false"
aria-controls="travel-data-price"
{% else %}
data-content-el="#popover-price"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.price-up-to'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="price"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<script data-cookieconsent="ignore">
_config.minPrice = 0;
_config.maxPrice = 3000;
</script>
<section id="travel-data-price" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.filter.price'|trans,
'content': minPrice ~ '-' ~ maxPrice,
'name': 'price',
'price': true,
'hideClasses' : ''
}) }}
</div>
</section>
{% else %}
<script data-cookieconsent="ignore">
_config.minPrice = 0;
_config.maxPrice = 3000;
</script>
<div hidden>
<section id="popover-price" class="filter-box">
<div class="filter-box__content">
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.filter.price'|trans,
'content': minPrice ~ '-' ~ maxPrice,
'name': 'price',
'price': true,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if categories|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-categories"
aria-expanded="false"
aria-controls="travel-data-categories"
{% else %}
data-content-el="#popover-categories"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.categories'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="categories[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-categories" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for category in categories %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': category.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'categories[]',
'value': category.getId(),
'hasIcon': true,
'checked': category.getId() in setCategories ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'categories[]',
'value': category.getId(),
'text': category.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-categories" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for category in categories %}
{% set options = options|merge([{
'type': 'checkbox',
'text': category.getName(),
'label': category.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'categories[]',
'value': category.getId(),
'noBubbles': true,
'checked': category.getId() in setCategories ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'categories[]',
'value': category.getId(),
'text': category.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.categories'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'categories[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if mealTypes|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-mealtype"
aria-expanded="false"
aria-controls="travel-data-mealtype"
{% else %}
data-content-el="#popover-mealtype"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.meal-types'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="mealtype"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-mealtype" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for mealType in mealTypes %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'radio',
'text': mealType.getText(),
'styleModifier': ' js-filter-form__default-input ',
'name': 'mealtype',
'value': mealType.getId(),
'hasIcon': true,
'checked': mealType.getId() in setMealTypes ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'mealtype',
'value': mealType.getId(),
'text': mealType.getText(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-mealtype" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for mealType in mealTypes %}
{% set options = options|merge([{
'type': 'radio',
'text': mealType.getText(),
'label': mealType.getText(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'mealtype',
'value': mealType.getId(),
'noBubbles': true,
'checked': mealType.getId() in setMealTypes ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'mealtype',
'value': mealType.getId(),
'text': mealType.getText(),
}) %}
{% set x = 3 %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.meal-types'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'mealtype',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if roomFacilities|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-roomFacilities"
aria-expanded="false"
aria-controls="travel-data-roomFacilities"
{% else %}
data-content-el="#popover-roomFacilities"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.room-facilities'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="roomFacilities[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-roomFacilities" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for facility in roomFacilities %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': facility.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'roomFacilities[]',
'value': facility.getId(),
'hasIcon': true,
'checked': facility.getId() in setRoomFacilities ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'roomFacilities[]',
'value': facility.getId(),
'text': facility.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-roomFacilities" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for facility in roomFacilities %}
{% set options = options|merge([{
'type': 'checkbox',
'text': facility.getName(),
'label': facility.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'roomFacilities[]',
'value': facility.getId(),
'noBubbles': true,
'checked': facility.getId() in setRoomFacilities ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'roomFacilities[]',
'value': facility.getId(),
'text': facility.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.room-facilities'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'roomFacilities[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if facilities|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-facilities"
aria-expanded="false"
aria-controls="travel-data-facilities"
{% else %}
data-content-el="#popover-facilities"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.facilities'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="facilities[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-facilities" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for facility in facilities %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': facility.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'facilities[]',
'value': facility.getId(),
'hasIcon': true,
'checked': facility.getId() in setFacilities ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'facilities[]',
'value': facility.getId(),
'text': facility.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-facilities" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for facility in facilities %}
{% set options = options|merge([{
'type': 'checkbox',
'text': facility.getName(),
'label': facility.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'facilities[]',
'value': facility.getId(),
'noBubbles': true,
'checked': facility.getId() in setFacilities ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'facilities[]',
'value': facility.getId(),
'text': facility.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.facilities'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'facilities[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if stars|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-stars"
aria-expanded="false"
aria-controls="travel-data-stars"
{% else %}
data-content-el="#popover-stars"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.stars'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="stars[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-stars" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for star in stars %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': star.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'stars[]',
'value': star.getId(),
'hasIcon': true,
'checked': star.getId in setStars ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'stars[]',
'value': star.getId(),
'text': star.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-stars" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for star in stars %}
{% set options = options|merge([{
'type': 'checkbox',
'text': star.getName(),
'label': star.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'stars[]',
'value': star.getId(),
'noBubbles': true,
'checked': star.getId() in setStars ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'stars[]',
'value': star.getId(),
'text': star.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.stars'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'stars[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if marketingGroups|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-marketingGroups"
aria-expanded="false"
aria-controls="travel-data-marketingGroups"
{% else %}
data-content-el="#popover-marketingGroups"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.marketing-groups'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="marketingGroups[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-marketingGroups" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for marketingGroup in marketingGroups %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': marketingGroup.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'marketingGroups[]',
'value': marketingGroup.getId(),
'hasIcon': true,
'checked': marketingGroup.getId() in setMarketingGroups ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'marketingGroups[]',
'value': marketingGroup.getId(),
'text': marketingGroup.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-marketingGroups" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for marketingGroup in marketingGroups %}
{% set options = options|merge([{
'type': 'checkbox',
'text': marketingGroup.getName(),
'label': marketingGroup.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'marketingGroups[]',
'value': marketingGroup.getId(),
'noBubbles': true,
'checked': marketingGroup.getId() in setMarketingGroups ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'marketingGroups[]',
'value': marketingGroup.getId(),
'text': marketingGroup.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.marketing-groups'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'marketingGroups[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% if holidayThemes|length > 0 %}
<div class="col-12 col-md-6 col-lg-4">
<div class="form-group">
<button type="button"
class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
{% if isMobile %}
data-toggle="collapse"
data-target="#travel-data-holidayThemes"
aria-expanded="false"
aria-controls="travel-data-holidayThemes"
{% else %}
data-content-el="#popover-holidayThemes"
data-container="body"
data-placement="bottom"
{% endif %}
>
<span class="form-box__label">{{ 'demi.saving-request.holiday-themes'|trans }}</span>
<span class="form-box__content form-control text-truncate js-filter-form__group-label"
data-filter-name="holidayThemes[]"
data-default-text="{{ 'demi.saving-request.all'|trans }}">
{{ 'demi.saving-request.all'|trans }}
</span>
<span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
</button>
{% if isMobile %}
<section id="travel-data-holidayThemes" aria-expanded="false" class="collapse">
<div class="form-box__detail p-3">
<ul class="list-inline list-inline--gutter-6">
{% for holidayTheme in holidayThemes %}
<li class="list-inline-item">
{{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
'type': 'checkbox',
'text': holidayTheme.getName(),
'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
'name': 'holidayThemes[]',
'value': holidayTheme.getId(),
'hasIcon': true,
'checked': holidayTheme.getId() in setHolidayThemes ? true : false
}) }}
</li>
{% set filterTexte = filterTexte|merge({
'name': 'holidayThemes[]',
'value': holidayTheme.getId(),
'text': holidayTheme.getName(),
}) %}
{% endfor %}
</ul>
</div>
</section>
{% else %}
<div hidden>
<section id="popover-holidayThemes" class="filter-box">
<div class="filter-box__content">
{% set options = [] %}
{% for holidayTheme in holidayThemes %}
{% set options = options|merge([{
'type': 'checkbox',
'text': holidayTheme.getName(),
'label': holidayTheme.getName(),
'styleModifier': 'js-filter-form__default-input fz16',
'name': 'holidayThemes[]',
'value': holidayTheme.getId(),
'noBubbles': true,
'checked': holidayTheme.getId() in setHolidayThemes ? true : false
}]) %}
{% set filterTexte = filterTexte|merge({
'name': 'holidayThemes[]',
'value': holidayTheme.getId(),
'text': holidayTheme.getName(),
}) %}
{% endfor %}
{{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
'label': 'demi.saving-request.holiday-themes'|trans,
'content': allFilterName is defined ? allFilterName : '',
'defaultText': allFilterName is defined ? allFilterName : '',
'name': 'holidayThemes[]',
'options': options,
'hideClasses' : ''
}) }}
</div>
<div class="filter-box__action">
<button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
<button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
</div>
</section>
</div>
{% endif %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
</fieldset>
<script type="text/javascript" data-cookieconsent="ignore">
_filterTexte = window['_filterTexte'] || [];
_filterTexte.push.apply( _filterTexte, {{ filterTexte|json_encode }});
</script>