src/Elements/Bundle/DemiFrontendBundle/Resources/views/Includes/cards/travel-data-card.html.twig line 1

Open in your IDE?
  1. {# @var int possibleNights #}
  2. {# @var int possibleAdults #}
  3. {# @var int possibleChildren #}
  4. {% do jsConfig().add('datepicker', true) %}
  5. {% do jsConfig('_initialState').add(demi_getSearchArray()) %}
  6. {%  if app.request.get('from') is not empty%}
  7.     {% set dateFrom = elements_customDateFormat(app.request.get('from')) %}
  8. {% endif %}
  9. {%  if app.request.get('to') is not empty %}
  10.     {% set dateTo = elements_customDateFormat(app.request.get('to')) %}
  11. {% endif %}
  12. {% if app.request.get('durationType') is not empty %}
  13.     {% set type = app.request.get('durationType') %}
  14. {% endif %}
  15. {% set units = app.request.get('u0') %}
  16. {% set adults = app.request.get('a0') %}
  17. {% set children = app.request.get('c0') %}
  18. {% set setRegions = app.request.get('regions') is not empty ? app.request.get('regions') : [] %}
  19. {% set setTowns = app.request.get('towns') is not empty ? app.request.get('towns') : [] %}
  20. {% set setCategories = app.request.get('categories') is not empty ? app.request.get('categories') : [] %}
  21. {% set setMealTypes = app.request.get('mealtype') is not empty ? [app.request.get('mealtype')] : [] %}
  22. {% set setRoomFacilities = app.request.get('roomFacilities') is not empty ? app.request.get('roomFacilities') : [] %}
  23. {% set setFacilities = app.request.get('facilities') is not empty ? app.request.get('facilities') : [] %}
  24. {% set setStars = app.request.get('stars') is not empty ? app.request.get('stars') : [] %}
  25. {% set setMarketingGroups = app.request.get('marketingGroups') is not empty ? app.request.get('marketingGroups') : [] %}
  26. {% set setHolidayThemes = app.request.get('holidayThemes') is not empty ? app.request.get('holidayThemes') : [] %}
  27. {% set filterTexte = [] %}
  28. {% set minPrice = minPrice is defined ? minPrice : 0 %}
  29. {% set maxPrice = maxPrice is defined ? maxPrice : 3000 %}
  30. <fieldset class="card box-shadow mb-4">
  31.     <div class="card-body js-date-range-form">
  32.         <h3 class="mb-3 h2 text-primary">{{ 'demi.saving-request.travl-data'|trans }}</h3>
  33.         <script  data-cookieconsent="ignore">
  34.             _config.searchForm = true;
  35.             _config.rangeDatepicker = true;
  36.             _config.dateRangeForm = true;
  37.         </script>
  38.         <div class="row row--gutter-width-20 js-search-form js-range-datepicker js-date-range-form__datepicker">
  39.             <div class="col col-12">
  40.                 <h4>
  41.                     {{ 'demi.search.travel-period'|trans }}
  42.                 </h4>
  43.             </div>
  44.             <div class="col-12 col-md-6 col-lg-4">
  45.                 <div class="form-group">
  46.                     <label class="form-box form-box--gray">
  47.                         {% set date = carbon().create().setTime(0,0,0) %}
  48.                         {% if isGroupRequest %}
  49.                             {% do date.addDay(constant("\\Elements\\Bundle\\DemiFrontendBundle\\Service\\SavingRequest::GROUP_REQUEST_MIN_DATE_TO_OFFSET")) %}
  50.                             {% set fromDatepickerMinDate = '+4d' %}
  51.                         {% endif %}
  52.                         {% set date = dateFrom is defined ? dateFrom : date %}
  53.                         <script  data-cookieconsent="ignore">
  54.                             _initialState.search.from = '{{ elements_customDateFormat(date) }}';
  55.                         </script>
  56.                         <span class="form-box__label">{{ 'demi.saving-request.label.arrival'|trans }} *</span>
  57.                         <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"
  58.                                value=""
  59.                                name="arrival-datepicker"
  60.                                required
  61.                                placeholder="{{ elements_dateFormat(date, 'date-long') }}"
  62.                                autocomplete="off">
  63.                         <input class="js-range-datepicker__from" readonly type="hidden" id="arrival" name="arrival" value="">
  64.                         <span class="demi-icon demi-icon-calendar-insert form-box__icon"
  65.                               aria-hidden="true"></span>
  66.                     </label>
  67.                     <div class="form-errors"></div>
  68.                 </div>
  69.             </div>
  70.             <div class="col-12 col-md-6 col-lg-4">
  71.                 <div class="form-group">
  72.                     <label class="form-box form-box--gray">
  73.                         <span class="form-box__label">{{ 'demi.saving-request.label.departure'|trans }} *</span>
  74.                         {% do date.addDay(constant("\\Elements\\Bundle\\DemiFrontendBundle\\Service\\SavingRequest::DEFAULT_DATE_TO_OFFSET")) %}
  75.                         {% set date = dateTo is defined ? dateTo : date %}
  76.                         <script data-cookieconsent="ignore">
  77.                             _initialState.search.to = '{{ elements_customDateFormat(date) }}';
  78.                         </script>
  79.                         <input data-alt-field="#departure" readonly data-date-picker="" type="text"
  80.                                class="form-box__content form-control js-range-datepicker__picker js-datepicker__picker--to-only"
  81.                                value=""
  82.                                required
  83.                                name="departure-datepicker"
  84.                                placeholder="{{ elements_dateFormat(date, 'date-long') }}"
  85.                                autocomplete="off">
  86.                         <input class="js-range-datepicker__to" readonly type="hidden" id="departure" name="departure" value="">
  87.                         <span class="demi-icon demi-icon-calendar-insert form-box__icon"
  88.                               aria-hidden="true"></span>
  89.                     </label>
  90.                     <div class="form-errors"></div>
  91.                 </div>
  92.             </div>
  93.             {% if possibleNights > 0 %}
  94.                 <div class="col-12 col-md-6 col-lg-4">
  95.                     <div class="form-group">
  96.                         {%  if not isGroupRequest %} {# Group Request does not support variable nights  #}
  97.                             <button type="button"
  98.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-popover__toggle' }}"
  99.                                 {% if isMobile %}
  100.                                     data-toggle="collapse"
  101.                                     data-target="#travel-data-nights"
  102.                                     aria-expanded="false"
  103.                                     aria-controls="travel-data-nights"
  104.                                 {% else %}
  105.                                     data-content-el="#travel-data-nights"
  106.                                     data-container="body"
  107.                                     data-placement="bottom"
  108.                                     data-popover-class="popover--md"
  109.                                 {% endif %}
  110.                             >
  111.                                 <span class="form-box__label">{{ 'demi.saving-request.flexible-nights'|trans }}</span>
  112.                                 <span class="form-box__content">
  113.                                 <span class="js-search-form__period">{{ 'demi.search.exact-period'|trans }}</span>
  114.                             </span>
  115.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  116.                             </button>
  117.                         {% endif %}
  118.                         {% if isMobile %}
  119.                             <script type="text/javascript" data-cookieconsent="ignore">
  120.                                 _config.searchDurationOverlay = true;
  121.                             </script>
  122.                             <section id="travel-data-nights" aria-expanded="false" class="collapse js-search-duration-overlay">
  123.                                 <div class="form-box__detail p-3">
  124.                                     <ul class="list-unstyled">
  125.                                         <li>
  126.                                             <div class="row row--gutter-width-10 custom-radio-wrapper">
  127.                                                 <div class="col">
  128.                                                     <h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-exact">{{ 'demi.search.exact-period'|trans }}</label></h3>
  129.                                                     <div class="text-muted">
  130.                                                         <label for="search-duration-type-exact">
  131.                                                             {{ 'demi.search.results-fix'|trans }}
  132.                                                         </label>
  133.                                                     </div>
  134.                                                 </div>
  135.                                                 <div class="col col-auto">
  136.                                                     <label class="custom-radio js-search-duration-overlay__type-radio">
  137.                                                         <input id="search-duration-type-exact"
  138.                                                                class="custom-radio__input"
  139.                                                                type="radio"
  140.                                                                name="search-duration-type"
  141.                                                                value="exact">
  142.                                                         <span class="custom-radio__box mr-0"></span>
  143.                                                     </label>
  144.                                                 </div>
  145.                                             </div>
  146.                                             <hr>
  147.                                         </li>
  148.                                         <li>
  149.                                             <div class="row row--gutter-width-10 custom-radio-wrapper">
  150.                                                 <div class="col">
  151.                                                     <h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-variable">{{ 'demi.search.variable-period'|trans }}</label></h3>
  152.                                                     <div class="text-muted">
  153.                                                         <label for="search-duration-type-variable">
  154.                                                             {{ 'demi.search.results-flexible'|trans }}
  155.                                                         </label>
  156.                                                     </div>
  157.                                                 </div>
  158.                                                 <div class="col col-auto">
  159.                                                     <label class="custom-radio js-search-duration-overlay__type-radio">
  160.                                                         <input id="search-duration-type-variable"
  161.                                                                class="custom-radio__input"
  162.                                                                type="radio"
  163.                                                                name="search-duration-type"
  164.                                                                value="variable">
  165.                                                         <span class="custom-radio__box mr-0"></span>
  166.                                                     </label>
  167.                                                 </div>
  168.                                             </div>
  169.                                             <div class="js-search-duration-overlay__nights collapse" aria-expanded="false">
  170.                                                 <div class="row row--gutter-width-10 mt-3">
  171.                                                     <div class="text-muted mt-3">
  172.                                                         {{ 'demi.search.choose-nights'|trans }}:
  173.                                                     </div>
  174.                                                     <label class="form-box form-box--gray">
  175.                                                         <span class="form-box__label">{{ "demi.nights"|trans }}</span>
  176.                                                         <select name="nights" class="form-box__content form-control">
  177.                                                             <option value="" disabled selected>{{ 'demi.search.please-choose'|trans }}</option>
  178.                                                             <option value="1">1 {{ "demi.night"|trans }}</option>
  179.                                                             {% for i in 2..(possibleNights) %}
  180.                                                                 <option value="{{ i }}">{{ i }} {{ "demi.nights"|trans }}</option>
  181.                                                             {% endfor %}
  182.                                                         </select>
  183.                                                         <span class="demi-icon demi-icon-chevron-down form-box__select-icon" aria-hidden="true"></span>
  184.                                                     </label>
  185.                                                 </div>
  186.                                             </div>
  187.                                             <hr>
  188.                                         </li>
  189.                                     </ul>
  190.                                 </div>
  191.                             </section>
  192.                         {% else %}
  193.                             <script type="text/javascript" data-cookieconsent="ignore">
  194.                                 _config.searchDurationOverlay = true;
  195.                             </script>
  196.                             <div hidden>
  197.                                 <section id="travel-data-nights" class="filter-box js-search-duration-overlay">
  198.                                     <div class="filter-box__content">
  199.                                         <ul class="list-unstyled">
  200.                                             <li>
  201.                                                 <div class="row row--gutter-width-10 custom-radio-wrapper">
  202.                                                     <div class="col">
  203.                                                         <h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-exact">{{ 'demi.search.exact-period'|trans }}</label></h3>
  204.                                                         <div class="text-muted">
  205.                                                             <label for="search-duration-type-exact">
  206.                                                                 {{ 'demi.search.results-fix'|trans }}
  207.                                                             </label>
  208.                                                         </div>
  209.                                                     </div>
  210.                                                     <div class="col col-auto">
  211.                                                         <label class="custom-radio js-search-duration-overlay__type-radio">
  212.                                                             <input id="search-duration-type-exact"
  213.                                                                    class="custom-radio__input"
  214.                                                                    type="radio"
  215.                                                                    name="search-duration-type"
  216.                                                                    value="exact">
  217.                                                             <span class="custom-radio__box mr-0"></span>
  218.                                                         </label>
  219.                                                     </div>
  220.                                                 </div>
  221.                                                 <hr>
  222.                                             </li>
  223.                                             <li>
  224.                                                 <div class="row row--gutter-width-10 custom-radio-wrapper">
  225.                                                     <div class="col">
  226.                                                         <h3 class="m-0"><label class="d-block pb-2" for="search-duration-type-variable">{{ 'demi.search.variable-period'|trans }}</label></h3>
  227.                                                         <div class="text-muted">
  228.                                                             <label for="search-duration-type-variable">
  229.                                                                 {{ 'demi.search.results-flexible'|trans }}
  230.                                                             </label>
  231.                                                         </div>
  232.                                                     </div>
  233.                                                     <div class="col col-auto">
  234.                                                         <label class="custom-radio js-search-duration-overlay__type-radio">
  235.                                                             <input id="search-duration-type-variable"
  236.                                                                    class="custom-radio__input"
  237.                                                                    type="radio"
  238.                                                                    name="search-duration-type"
  239.                                                                    value="variable">
  240.                                                             <span class="custom-radio__box mr-0"></span>
  241.                                                         </label>
  242.                                                     </div>
  243.                                                 </div>
  244.                                                 <div class="js-search-duration-overlay__nights collapse" aria-expanded="false">
  245.                                                     <div class="text-muted mt-3">
  246.                                                         {{ 'demi.search.choose-nights'|trans }}:
  247.                                                     </div>
  248.                                                     <div class="row row--gutter-width-10  mt-3">
  249.                                                         <label class="form-box form-box--gray">
  250.                                                             <span class="form-box__label">{{ "demi.nights"|trans }}</span>
  251.                                                             <select name="nights" class="form-box__content form-control js-search-duration-overlay__nights-select">
  252.                                                                 <option value="" disabled selected>{{ 'demi.search.please-choose'|trans }}</option>
  253.                                                                 <option value="1">1 {{ "demi.night"|trans }}</option>
  254.                                                                 {% for i in 2..(possibleNights) %}
  255.                                                                     <option value="{{ i }}">{{ i }} {{ "demi.nights"|trans }}</option>
  256.                                                                 {% endfor %}
  257.                                                             </select>
  258.                                                             <span class="demi-icon demi-icon-chevron-down form-box__select-icon" aria-hidden="true"></span>
  259.                                                         </label>
  260.                                                     </div>
  261.                                                 </div>
  262.                                                 <hr>
  263.                                             </li>
  264.                                         </ul>
  265.                                     </div>
  266.                                 </section>
  267.                             </div>
  268.                         {% endif %}
  269.                     </div>
  270.                 </div>
  271.             {% endif %}
  272.         </div>
  273.         <div class="row row--gutter-width-20 mt-3">
  274.             <div class="col col-12">
  275.                 <h4>
  276.                     {{ isGroupRequest ? 'demi.guests'|trans : 'demi.search.units'|trans }}
  277.                 </h4>
  278.             </div>
  279.         </div>
  280.         <script type="text/javascript" data-cookieconsent="ignore">
  281.             _config.inlineOccupancyForm = true;
  282.             {% if isGroupRequest %}
  283.             _config.searchFormMaxRooms = 1;
  284.             {% endif %}
  285.         </script>
  286.         <div class="js-inline-occupancy-form">
  287.         </div>
  288.         <div class="js-filter-form">
  289.             <div class="row row--gutter-width-20 mt-3">
  290.                 {% if editmode %}
  291.                     <div class="alert alert-success">
  292.                         <h3>Info zu Filtern</h3>
  293.                         {%  if not isGroupRequest %}
  294.                             <p>
  295.                                 Folgende Filter unter "Regionen" und "Weitere Optionen" werden aus dem Filter-Snippet des Haupt-Unterkunftslistendokuments abgegriffen.
  296.                                 Hier <strong>mögliche Filter</strong> sind:
  297.                             <ul>
  298.                                 <li>Regionen</li>
  299.                                 <li>Orte</li>
  300.                                 <li>Preis</li>
  301.                                 <li>Kategorien</li>
  302.                                 <li>Verpflegung</li>
  303.                                 <li>Ausstattung</li>
  304.                                 <li>Sterne</li>
  305.                                 <li>Marketinggruppen</li>
  306.                                 <li>Urlaubsthemen</li>
  307.                             </ul>
  308.                             </p>
  309.                             <p>
  310.                                 Folgende etwaig vorhandenen Filter werden <strong>ignoriert</strong>:
  311.                             <ul>
  312.                                 <li>Filter bestehend aus Filter-Objeken</li>
  313.                                 <li>Buchbarkeits-Checkbox</li>
  314.                                 <li>Specials/Angebote</li>
  315.                                 <li>Special Types wie Last Minute, Early Booker </li>
  316.                                 <li>Unterkunftsname</li>
  317.                             </ul>
  318.                             </p>
  319.                         {% else %}
  320.                             <p>Der Verpflegungsfilter unter "Weitere Optionen" wird falls vorhanden aus dem Filter-Snippet des Haupt-Unterkunftslistendokuments abgegriffen. Verpflegung
  321.                                 ist der einzige Filter, der bei Feratel für die Gruppenanfrage möglich ist.</p>
  322.                         {% endif %}
  323.                         <p>Soll für dieses Dokument ein anderes, eigenes Filtersnippet verwendet werden und nicht automatisch jenes von der Unterkunftsliste, dann bitte hier zuweisen:</p>
  324.                         {{ pimcore_relation("requestFilterSnippet", {"reload": true}) }}
  325.                     </div>
  326.                 {% endif %}
  327.                 <script data-cookieconsent="ignore">
  328.                     _config.filterForm = true;
  329.                     _config.popover = true;
  330.                 </script >
  331.                 {% if regions|length > 0 or towns|length > 0 %}
  332.                     <div class="col col-12">
  333.                         <h4>
  334.                             {{ 'demi.search.regions'|trans }}
  335.                         </h4>
  336.                     </div>
  337.                     {% if regions|length >0 %}
  338.                         <div class="col-12 col-md-6 col-lg-4">
  339.                             <div class="form-group">
  340.                                 <button type="button"
  341.                                         class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  342.                                     {% if isMobile %}
  343.                                         data-toggle="collapse"
  344.                                         data-target="#travel-data-regions"
  345.                                         aria-expanded="false"
  346.                                         aria-controls="travel-data-regions"
  347.                                     {% else %}
  348.                                         data-content-el="#popover-regions"
  349.                                         data-container="body"
  350.                                         data-placement="bottom"
  351.                                     {% endif %}
  352.                                 >
  353.                                     <span class="form-box__label">{{ 'demi.saving-request.regions'|trans }}</span>
  354.                                     <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  355.                                           data-filter-name="regions[]"
  356.                                           data-default-text="{{ 'demi.saving-request.all'|trans }}">
  357.                                         {{ 'demi.saving-request.all'|trans }}
  358.                                     </span>
  359.                                     <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  360.                                 </button>
  361.                                 {% if isMobile %}
  362.                                     <section id="travel-data-regions" aria-expanded="false" class="collapse">
  363.                                         <div class="form-box__detail p-3">
  364.                                             <ul class="list-inline list-inline--gutter-6">
  365.                                                 {% for region in regions %}
  366.                                                     <li class="list-inline-item">
  367.                                                         {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  368.                                                             'type': 'checkbox',
  369.                                                             'text': region.getName(),
  370.                                                             'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  371.                                                             'name':  'regions[]',
  372.                                                             'value': region.getId(),
  373.                                                             'hasIcon': true,
  374.                                                             'checked': region.getId() in setRegions ? true : false
  375.                                                         }) }}
  376.                                                     </li>
  377.                                                     {% set filterTexte = filterTexte|merge({
  378.                                                         'name': 'regions[]',
  379.                                                         'value': region.getId(),
  380.                                                         'text': region.getName(),
  381.                                                     }) %}
  382.                                                 {% endfor %}
  383.                                             </ul>
  384.                                         </div>
  385.                                     </section>
  386.                                 {% else %}
  387.                                     <div hidden>
  388.                                         <section id="popover-regions" class="filter-box">
  389.                                             <div class="filter-box__content">
  390.                                                 {% set options = [] %}
  391.                                                 {% for region in regions %}
  392.                                                     {% set options = options|merge([{
  393.                                                         'type': 'checkbox',
  394.                                                         'text': region.getName(),
  395.                                                         'label': region.getName(),
  396.                                                         'styleModifier': 'js-filter-form__default-input fz16',
  397.                                                         'name':  'regions[]',
  398.                                                         'value': region.getId(),
  399.                                                         'noBubbles': true,
  400.                                                         'checked': region.getId() in setRegions ? true : false
  401.                                                     }]) %}
  402.                                                     {% set filterTexte = filterTexte|merge({
  403.                                                         'name': 'regions[]',
  404.                                                         'value': region.getId(),
  405.                                                         'text': region.getName(),
  406.                                                     }) %}
  407.                                                 {% endfor %}
  408.                                                 {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  409.                                                     'label': 'demi.saving-request.regions'|trans,
  410.                                                     'content':  allFilterName is defined ? allFilterName : '',
  411.                                                     'defaultText':  allFilterName is defined ? allFilterName : '',
  412.                                                     'name': 'regions[]',
  413.                                                     'options': options,
  414.                                                     'hideClasses' : ''
  415.                                                 }) }}
  416.                                             </div>
  417.                                             <div class="filter-box__action">
  418.                                                 <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  419.                                                 <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  420.                                             </div>
  421.                                         </section>
  422.                                     </div>
  423.                                 {% endif %}
  424.                             </div>
  425.                         </div>
  426.                     {% endif %}
  427.                     {% if towns|length > 0 %}
  428.                         <div class="col-12 col-md-6 col-lg-4">
  429.                             <div class="form-group">
  430.                                 <button type="button"
  431.                                         class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  432.                                     {% if isMobile %}
  433.                                         data-toggle="collapse"
  434.                                         data-target="#travel-data-towns"
  435.                                         aria-expanded="false"
  436.                                         aria-controls="travel-data-towns"
  437.                                     {% else %}
  438.                                         data-content-el="#popover-towns"
  439.                                         data-container="body"
  440.                                         data-placement="bottom"
  441.                                     {% endif %}
  442.                                 >
  443.                                     <span class="form-box__label">{{ 'demi.saving-request.towns'|trans }}</span>
  444.                                     <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  445.                                           data-filter-name="towns[]"
  446.                                           data-default-text="{{ 'demi.saving-request.all'|trans }}">
  447.                                         {{ 'demi.saving-request.all'|trans }}
  448.                                     </span>
  449.                                     <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  450.                                 </button>
  451.                                 {% if isMobile %}
  452.                                     <section id="travel-data-towns" aria-expanded="false" class="collapse">
  453.                                         <div class="form-box__detail p-3">
  454.                                             <ul class="list-inline list-inline--gutter-6">
  455.                                                 {% for town in towns %}
  456.                                                     <li class="list-inline-item">
  457.                                                         {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  458.                                                             'type': 'checkbox',
  459.                                                             'text': town.getName(),
  460.                                                             'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  461.                                                             'name':  'towns[]',
  462.                                                             'value': town.getId(),
  463.                                                             'hasIcon': true,
  464.                                                             'checked': town.getId() in setTowns ? true : false
  465.                                                         }) }}
  466.                                                     </li>
  467.                                                     {% set filterTexte = filterTexte|merge({
  468.                                                         'name': 'towns[]',
  469.                                                         'value': town.getId(),
  470.                                                         'text': town.getName(),
  471.                                                     }) %}
  472.                                                 {% endfor %}
  473.                                             </ul>
  474.                                         </div>
  475.                                     </section>
  476.                                 {% else %}
  477.                                     <div hidden>
  478.                                         <section id="popover-towns" class="filter-box">
  479.                                             <div class="filter-box__content">
  480.                                                 {% set options = [] %}
  481.                                                 {% for town in towns %}
  482.                                                     {% set options = options|merge([{
  483.                                                         'type': 'checkbox',
  484.                                                         'text': town.getName(),
  485.                                                         'label': town.getName(),
  486.                                                         'styleModifier': 'js-filter-form__default-input fz16',
  487.                                                         'name':  'towns[]',
  488.                                                         'value': town.getId(),
  489.                                                         'noBubbles': true,
  490.                                                         'checked': town.getId() in  setTowns ? true : false
  491.                                                     }]) %}
  492.                                                     {% set filterTexte = filterTexte|merge({
  493.                                                         'name': 'towns[]',
  494.                                                         'value': town.getId(),
  495.                                                         'text': town.getName(),
  496.                                                     }) %}
  497.                                                 {% endfor %}
  498.                                                 {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  499.                                                     'label': 'demi.saving-request.towns'|trans,
  500.                                                     'content':  allFilterName is defined ? allFilterName : '',
  501.                                                     'defaultText':  allFilterName is defined ? allFilterName : '',
  502.                                                     'name': 'towns[]',
  503.                                                     'options': options,
  504.                                                     'hideClasses' : ''
  505.                                                 }) }}
  506.                                             </div>
  507.                                             <div class="filter-box__action">
  508.                                                 <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  509.                                                 <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  510.                                             </div>
  511.                                         </section>
  512.                                     </div>
  513.                                 {% endif %}
  514.                             </div>
  515.                         </div>
  516.                     {% endif %}
  517.                 {% endif %}
  518.             </div>
  519.             <div class="row row--gutter-width-20 mt-3">
  520.                 <div class="col col-12">
  521.                     <h4>
  522.                         {{ 'demi.search.more.options'|trans }}
  523.                     </h4>
  524.                 </div>
  525.                 {%  if not isGroupRequest %}
  526.                     <div class="col-12 col-md-6 col-lg-4">
  527.                         <div class="form-group">
  528.                             <button type="button"
  529.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  530.                                 {% if isMobile %}
  531.                                     data-toggle="collapse"
  532.                                     data-target="#travel-data-price"
  533.                                     aria-expanded="false"
  534.                                     aria-controls="travel-data-price"
  535.                                 {% else %}
  536.                                     data-content-el="#popover-price"
  537.                                     data-container="body"
  538.                                     data-placement="bottom"
  539.                                 {% endif %}
  540.                             >
  541.                                 <span class="form-box__label">{{ 'demi.saving-request.price-up-to'|trans }}</span>
  542.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  543.                                       data-filter-name="price"
  544.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  545.                               {{ 'demi.saving-request.all'|trans }}
  546.                         </span>
  547.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  548.                             </button>
  549.                             {% if isMobile %}
  550.                                 <script data-cookieconsent="ignore">
  551.                                     _config.minPrice = 0;
  552.                                     _config.maxPrice = 3000;
  553.                                 </script>
  554.                                 <section id="travel-data-price" aria-expanded="false" class="collapse">
  555.                                     <div class="form-box__detail p-3">
  556.                                         {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  557.                                             'label': 'demi.filter.price'|trans,
  558.                                             'content': minPrice ~ '-' ~ maxPrice,
  559.                                             'name': 'price',
  560.                                             'price': true,
  561.                                             'hideClasses' : ''
  562.                                         }) }}
  563.                                     </div>
  564.                                 </section>
  565.                             {% else %}
  566.                                 <script data-cookieconsent="ignore">
  567.                                     _config.minPrice = 0;
  568.                                     _config.maxPrice = 3000;
  569.                                 </script>
  570.                                 <div hidden>
  571.                                     <section id="popover-price" class="filter-box">
  572.                                         <div class="filter-box__content">
  573.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  574.                                                 'label': 'demi.filter.price'|trans,
  575.                                                 'content': minPrice ~ '-' ~ maxPrice,
  576.                                                 'name': 'price',
  577.                                                 'price': true,
  578.                                                 'hideClasses' : ''
  579.                                             }) }}
  580.                                         </div>
  581.                                         <div class="filter-box__action">
  582.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  583.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  584.                                         </div>
  585.                                     </section>
  586.                                 </div>
  587.                             {% endif %}
  588.                         </div>
  589.                     </div>
  590.                 {% endif %}
  591.                 {% if categories|length > 0  %}
  592.                     <div class="col-12 col-md-6 col-lg-4">
  593.                         <div class="form-group">
  594.                             <button type="button"
  595.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  596.                                 {% if isMobile %}
  597.                                     data-toggle="collapse"
  598.                                     data-target="#travel-data-categories"
  599.                                     aria-expanded="false"
  600.                                     aria-controls="travel-data-categories"
  601.                                 {% else %}
  602.                                     data-content-el="#popover-categories"
  603.                                     data-container="body"
  604.                                     data-placement="bottom"
  605.                                 {% endif %}
  606.                             >
  607.                                 <span class="form-box__label">{{ 'demi.saving-request.categories'|trans }}</span>
  608.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  609.                                       data-filter-name="categories[]"
  610.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  611.                                 {{ 'demi.saving-request.all'|trans }}
  612.                             </span>
  613.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  614.                             </button>
  615.                             {% if isMobile %}
  616.                                 <section id="travel-data-categories" aria-expanded="false" class="collapse">
  617.                                     <div class="form-box__detail p-3">
  618.                                         <ul class="list-inline list-inline--gutter-6">
  619.                                             {% for category in categories %}
  620.                                                 <li class="list-inline-item">
  621.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  622.                                                         'type': 'checkbox',
  623.                                                         'text': category.getName(),
  624.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  625.                                                         'name':  'categories[]',
  626.                                                         'value': category.getId(),
  627.                                                         'hasIcon': true,
  628.                                                         'checked': category.getId() in setCategories ? true : false
  629.                                                     }) }}
  630.                                                 </li>
  631.                                                 {% set filterTexte = filterTexte|merge({
  632.                                                     'name': 'categories[]',
  633.                                                     'value': category.getId(),
  634.                                                     'text': category.getName(),
  635.                                                 }) %}
  636.                                             {% endfor %}
  637.                                         </ul>
  638.                                     </div>
  639.                                 </section>
  640.                             {% else %}
  641.                                 <div hidden>
  642.                                     <section id="popover-categories" class="filter-box">
  643.                                         <div class="filter-box__content">
  644.                                             {% set options = [] %}
  645.                                             {% for category in categories %}
  646.                                                 {% set options = options|merge([{
  647.                                                     'type': 'checkbox',
  648.                                                     'text': category.getName(),
  649.                                                     'label': category.getName(),
  650.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  651.                                                     'name':  'categories[]',
  652.                                                     'value': category.getId(),
  653.                                                     'noBubbles': true,
  654.                                                     'checked': category.getId() in setCategories ? true : false
  655.                                                 }]) %}
  656.                                                 {% set filterTexte = filterTexte|merge({
  657.                                                     'name': 'categories[]',
  658.                                                     'value': category.getId(),
  659.                                                     'text': category.getName(),
  660.                                                 }) %}
  661.                                             {% endfor %}
  662.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  663.                                                 'label': 'demi.saving-request.categories'|trans,
  664.                                                 'content':  allFilterName is defined ? allFilterName : '',
  665.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  666.                                                 'name': 'categories[]',
  667.                                                 'options': options,
  668.                                                 'hideClasses' : ''
  669.                                             }) }}
  670.                                         </div>
  671.                                         <div class="filter-box__action">
  672.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  673.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  674.                                         </div>
  675.                                     </section>
  676.                                 </div>
  677.                             {% endif %}
  678.                         </div>
  679.                     </div>
  680.                 {% endif %}
  681.                 {% if mealTypes|length > 0 %}
  682.                     <div class="col-12 col-md-6 col-lg-4">
  683.                         <div class="form-group">
  684.                             <button type="button"
  685.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  686.                                 {% if isMobile %}
  687.                                     data-toggle="collapse"
  688.                                     data-target="#travel-data-mealtype"
  689.                                     aria-expanded="false"
  690.                                     aria-controls="travel-data-mealtype"
  691.                                 {% else %}
  692.                                     data-content-el="#popover-mealtype"
  693.                                     data-container="body"
  694.                                     data-placement="bottom"
  695.                                 {% endif %}
  696.                             >
  697.                                 <span class="form-box__label">{{ 'demi.saving-request.meal-types'|trans }}</span>
  698.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  699.                                       data-filter-name="mealtype"
  700.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  701.                                 {{ 'demi.saving-request.all'|trans }}
  702.                             </span>
  703.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  704.                             </button>
  705.                             {% if isMobile %}
  706.                                 <section id="travel-data-mealtype" aria-expanded="false" class="collapse">
  707.                                     <div class="form-box__detail p-3">
  708.                                         <ul class="list-inline list-inline--gutter-6">
  709.                                             {% for mealType in mealTypes %}
  710.                                                 <li class="list-inline-item">
  711.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  712.                                                         'type': 'radio',
  713.                                                         'text': mealType.getText(),
  714.                                                         'styleModifier': ' js-filter-form__default-input ',
  715.                                                         'name':  'mealtype',
  716.                                                         'value': mealType.getId(),
  717.                                                         'hasIcon': true,
  718.                                                         'checked': mealType.getId() in setMealTypes ? true : false
  719.                                                     }) }}
  720.                                                 </li>
  721.                                                 {% set filterTexte = filterTexte|merge({
  722.                                                     'name': 'mealtype',
  723.                                                     'value': mealType.getId(),
  724.                                                     'text': mealType.getText(),
  725.                                                 }) %}
  726.                                             {% endfor %}
  727.                                         </ul>
  728.                                     </div>
  729.                                 </section>
  730.                             {% else %}
  731.                                 <div hidden>
  732.                                     <section id="popover-mealtype" class="filter-box">
  733.                                         <div class="filter-box__content">
  734.                                             {% set options = [] %}
  735.                                             {% for mealType in mealTypes %}
  736.                                                 {% set options = options|merge([{
  737.                                                     'type': 'radio',
  738.                                                     'text': mealType.getText(),
  739.                                                     'label': mealType.getText(),
  740.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  741.                                                     'name':  'mealtype',
  742.                                                     'value': mealType.getId(),
  743.                                                     'noBubbles': true,
  744.                                                     'checked': mealType.getId() in setMealTypes ? true : false
  745.                                                 }]) %}
  746.                                                 {% set filterTexte = filterTexte|merge({
  747.                                                     'name': 'mealtype',
  748.                                                     'value': mealType.getId(),
  749.                                                     'text': mealType.getText(),
  750.                                                 }) %}
  751.                                                 {% set x = 3 %}
  752.                                             {% endfor %}
  753.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  754.                                                 'label': 'demi.saving-request.meal-types'|trans,
  755.                                                 'content':  allFilterName is defined ? allFilterName : '',
  756.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  757.                                                 'name': 'mealtype',
  758.                                                 'options': options,
  759.                                                 'hideClasses' : ''
  760.                                             }) }}
  761.                                         </div>
  762.                                         <div class="filter-box__action">
  763.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  764.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  765.                                         </div>
  766.                                     </section>
  767.                                 </div>
  768.                             {% endif %}
  769.                         </div>
  770.                     </div>
  771.                 {% endif %}
  772.                 {% if roomFacilities|length > 0 %}
  773.                     <div class="col-12 col-md-6 col-lg-4">
  774.                         <div class="form-group">
  775.                             <button type="button"
  776.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  777.                                 {% if isMobile %}
  778.                                     data-toggle="collapse"
  779.                                     data-target="#travel-data-roomFacilities"
  780.                                     aria-expanded="false"
  781.                                     aria-controls="travel-data-roomFacilities"
  782.                                 {% else %}
  783.                                     data-content-el="#popover-roomFacilities"
  784.                                     data-container="body"
  785.                                     data-placement="bottom"
  786.                                 {% endif %}
  787.                             >
  788.                                 <span class="form-box__label">{{ 'demi.saving-request.room-facilities'|trans }}</span>
  789.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  790.                                       data-filter-name="roomFacilities[]"
  791.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  792.                                 {{ 'demi.saving-request.all'|trans }}
  793.                             </span>
  794.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  795.                             </button>
  796.                             {% if isMobile %}
  797.                                 <section id="travel-data-roomFacilities" aria-expanded="false" class="collapse">
  798.                                     <div class="form-box__detail p-3">
  799.                                         <ul class="list-inline list-inline--gutter-6">
  800.                                             {% for facility in roomFacilities %}
  801.                                                 <li class="list-inline-item">
  802.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  803.                                                         'type': 'checkbox',
  804.                                                         'text': facility.getName(),
  805.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  806.                                                         'name':  'roomFacilities[]',
  807.                                                         'value': facility.getId(),
  808.                                                         'hasIcon': true,
  809.                                                         'checked': facility.getId() in setRoomFacilities ? true : false
  810.                                                     }) }}
  811.                                                 </li>
  812.                                                 {% set filterTexte = filterTexte|merge({
  813.                                                     'name': 'roomFacilities[]',
  814.                                                     'value': facility.getId(),
  815.                                                     'text': facility.getName(),
  816.                                                 }) %}
  817.                                             {% endfor %}
  818.                                         </ul>
  819.                                     </div>
  820.                                 </section>
  821.                             {% else %}
  822.                                 <div hidden>
  823.                                     <section id="popover-roomFacilities" class="filter-box">
  824.                                         <div class="filter-box__content">
  825.                                             {% set options = [] %}
  826.                                             {% for facility in roomFacilities %}
  827.                                                 {% set options = options|merge([{
  828.                                                     'type': 'checkbox',
  829.                                                     'text': facility.getName(),
  830.                                                     'label': facility.getName(),
  831.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  832.                                                     'name':  'roomFacilities[]',
  833.                                                     'value': facility.getId(),
  834.                                                     'noBubbles': true,
  835.                                                     'checked': facility.getId() in setRoomFacilities ? true : false
  836.                                                 }]) %}
  837.                                                 {% set filterTexte = filterTexte|merge({
  838.                                                     'name': 'roomFacilities[]',
  839.                                                     'value': facility.getId(),
  840.                                                     'text': facility.getName(),
  841.                                                 }) %}
  842.                                             {% endfor %}
  843.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  844.                                                 'label': 'demi.saving-request.room-facilities'|trans,
  845.                                                 'content':  allFilterName is defined ? allFilterName : '',
  846.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  847.                                                 'name': 'roomFacilities[]',
  848.                                                 'options': options,
  849.                                                 'hideClasses' : ''
  850.                                             }) }}
  851.                                         </div>
  852.                                         <div class="filter-box__action">
  853.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  854.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  855.                                         </div>
  856.                                     </section>
  857.                                 </div>
  858.                             {% endif %}
  859.                         </div>
  860.                     </div>
  861.                 {% endif %}
  862.                 {% if facilities|length  > 0 %}
  863.                     <div class="col-12 col-md-6 col-lg-4">
  864.                         <div class="form-group">
  865.                             <button type="button"
  866.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  867.                                 {% if isMobile %}
  868.                                     data-toggle="collapse"
  869.                                     data-target="#travel-data-facilities"
  870.                                     aria-expanded="false"
  871.                                     aria-controls="travel-data-facilities"
  872.                                 {% else %}
  873.                                     data-content-el="#popover-facilities"
  874.                                     data-container="body"
  875.                                     data-placement="bottom"
  876.                                 {% endif %}
  877.                             >
  878.                                 <span class="form-box__label">{{ 'demi.saving-request.facilities'|trans }}</span>
  879.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  880.                                       data-filter-name="facilities[]"
  881.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  882.                             {{ 'demi.saving-request.all'|trans }}
  883.                         </span>
  884.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  885.                             </button>
  886.                             {% if isMobile %}
  887.                                 <section id="travel-data-facilities" aria-expanded="false" class="collapse">
  888.                                     <div class="form-box__detail p-3">
  889.                                         <ul class="list-inline list-inline--gutter-6">
  890.                                             {% for facility in facilities %}
  891.                                                 <li class="list-inline-item">
  892.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  893.                                                         'type': 'checkbox',
  894.                                                         'text': facility.getName(),
  895.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  896.                                                         'name':  'facilities[]',
  897.                                                         'value': facility.getId(),
  898.                                                         'hasIcon': true,
  899.                                                         'checked': facility.getId() in setFacilities ? true : false
  900.                                                     }) }}
  901.                                                 </li>
  902.                                                 {% set filterTexte = filterTexte|merge({
  903.                                                     'name': 'facilities[]',
  904.                                                     'value': facility.getId(),
  905.                                                     'text': facility.getName(),
  906.                                                 }) %}
  907.                                             {% endfor %}
  908.                                         </ul>
  909.                                     </div>
  910.                                 </section>
  911.                             {% else %}
  912.                                 <div hidden>
  913.                                     <section id="popover-facilities" class="filter-box">
  914.                                         <div class="filter-box__content">
  915.                                             {% set options = [] %}
  916.                                             {% for facility in facilities %}
  917.                                                 {% set options = options|merge([{
  918.                                                     'type': 'checkbox',
  919.                                                     'text': facility.getName(),
  920.                                                     'label': facility.getName(),
  921.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  922.                                                     'name':  'facilities[]',
  923.                                                     'value': facility.getId(),
  924.                                                     'noBubbles': true,
  925.                                                     'checked': facility.getId() in setFacilities ? true : false
  926.                                                 }]) %}
  927.                                                 {% set filterTexte = filterTexte|merge({
  928.                                                     'name': 'facilities[]',
  929.                                                     'value': facility.getId(),
  930.                                                     'text': facility.getName(),
  931.                                                 }) %}
  932.                                             {% endfor %}
  933.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  934.                                                 'label': 'demi.saving-request.facilities'|trans,
  935.                                                 'content':  allFilterName is defined ? allFilterName : '',
  936.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  937.                                                 'name': 'facilities[]',
  938.                                                 'options': options,
  939.                                                 'hideClasses' : ''
  940.                                             }) }}
  941.                                         </div>
  942.                                         <div class="filter-box__action">
  943.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  944.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  945.                                         </div>
  946.                                     </section>
  947.                                 </div>
  948.                             {% endif %}
  949.                         </div>
  950.                     </div>
  951.                 {% endif %}
  952.                 {% if stars|length > 0 %}
  953.                     <div class="col-12 col-md-6 col-lg-4">
  954.                         <div class="form-group">
  955.                             <button type="button"
  956.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  957.                                 {% if isMobile %}
  958.                                     data-toggle="collapse"
  959.                                     data-target="#travel-data-stars"
  960.                                     aria-expanded="false"
  961.                                     aria-controls="travel-data-stars"
  962.                                 {% else %}
  963.                                     data-content-el="#popover-stars"
  964.                                     data-container="body"
  965.                                     data-placement="bottom"
  966.                                 {% endif %}
  967.                             >
  968.                                 <span class="form-box__label">{{ 'demi.saving-request.stars'|trans }}</span>
  969.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  970.                                       data-filter-name="stars[]"
  971.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  972.                                 {{ 'demi.saving-request.all'|trans }}
  973.                             </span>
  974.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  975.                             </button>
  976.                             {% if isMobile %}
  977.                                 <section id="travel-data-stars" aria-expanded="false" class="collapse">
  978.                                     <div class="form-box__detail p-3">
  979.                                         <ul class="list-inline list-inline--gutter-6">
  980.                                             {% for star in stars %}
  981.                                                 <li class="list-inline-item">
  982.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  983.                                                         'type': 'checkbox',
  984.                                                         'text': star.getName(),
  985.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  986.                                                         'name':  'stars[]',
  987.                                                         'value': star.getId(),
  988.                                                         'hasIcon': true,
  989.                                                         'checked': star.getId in setStars ? true : false
  990.                                                     }) }}
  991.                                                 </li>
  992.                                                 {% set filterTexte = filterTexte|merge({
  993.                                                     'name': 'stars[]',
  994.                                                     'value': star.getId(),
  995.                                                     'text': star.getName(),
  996.                                                 }) %}
  997.                                             {% endfor %}
  998.                                         </ul>
  999.                                     </div>
  1000.                                 </section>
  1001.                             {% else %}
  1002.                                 <div hidden>
  1003.                                     <section id="popover-stars" class="filter-box">
  1004.                                         <div class="filter-box__content">
  1005.                                             {% set options = [] %}
  1006.                                             {% for star in stars %}
  1007.                                                 {% set options = options|merge([{
  1008.                                                     'type': 'checkbox',
  1009.                                                     'text': star.getName(),
  1010.                                                     'label': star.getName(),
  1011.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  1012.                                                     'name':  'stars[]',
  1013.                                                     'value': star.getId(),
  1014.                                                     'noBubbles': true,
  1015.                                                     'checked': star.getId() in setStars ? true : false
  1016.                                                 }]) %}
  1017.                                                 {% set filterTexte = filterTexte|merge({
  1018.                                                     'name': 'stars[]',
  1019.                                                     'value': star.getId(),
  1020.                                                     'text': star.getName(),
  1021.                                                 }) %}
  1022.                                             {% endfor %}
  1023.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  1024.                                                 'label': 'demi.saving-request.stars'|trans,
  1025.                                                 'content':  allFilterName is defined ? allFilterName : '',
  1026.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  1027.                                                 'name': 'stars[]',
  1028.                                                 'options': options,
  1029.                                                 'hideClasses' : ''
  1030.                                             }) }}
  1031.                                         </div>
  1032.                                         <div class="filter-box__action">
  1033.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  1034.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  1035.                                         </div>
  1036.                                     </section>
  1037.                                 </div>
  1038.                             {% endif %}
  1039.                         </div>
  1040.                     </div>
  1041.                 {% endif %}
  1042.                 {% if marketingGroups|length > 0 %}
  1043.                     <div class="col-12 col-md-6 col-lg-4">
  1044.                         <div class="form-group">
  1045.                             <button type="button"
  1046.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  1047.                                 {% if isMobile %}
  1048.                                     data-toggle="collapse"
  1049.                                     data-target="#travel-data-marketingGroups"
  1050.                                     aria-expanded="false"
  1051.                                     aria-controls="travel-data-marketingGroups"
  1052.                                 {% else %}
  1053.                                     data-content-el="#popover-marketingGroups"
  1054.                                     data-container="body"
  1055.                                     data-placement="bottom"
  1056.                                 {% endif %}
  1057.                             >
  1058.                                 <span class="form-box__label">{{ 'demi.saving-request.marketing-groups'|trans }}</span>
  1059.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  1060.                                       data-filter-name="marketingGroups[]"
  1061.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  1062.                                 {{ 'demi.saving-request.all'|trans }}
  1063.                             </span>
  1064.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  1065.                             </button>
  1066.                             {% if isMobile %}
  1067.                                 <section id="travel-data-marketingGroups" aria-expanded="false" class="collapse">
  1068.                                     <div class="form-box__detail p-3">
  1069.                                         <ul class="list-inline list-inline--gutter-6">
  1070.                                             {% for marketingGroup in marketingGroups %}
  1071.                                                 <li class="list-inline-item">
  1072.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  1073.                                                         'type': 'checkbox',
  1074.                                                         'text': marketingGroup.getName(),
  1075.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  1076.                                                         'name':  'marketingGroups[]',
  1077.                                                         'value': marketingGroup.getId(),
  1078.                                                         'hasIcon': true,
  1079.                                                         'checked': marketingGroup.getId() in setMarketingGroups ? true : false
  1080.                                                     }) }}
  1081.                                                 </li>
  1082.                                                 {% set filterTexte = filterTexte|merge({
  1083.                                                     'name': 'marketingGroups[]',
  1084.                                                     'value': marketingGroup.getId(),
  1085.                                                     'text': marketingGroup.getName(),
  1086.                                                 }) %}
  1087.                                             {% endfor %}
  1088.                                         </ul>
  1089.                                     </div>
  1090.                                 </section>
  1091.                             {% else %}
  1092.                                 <div hidden>
  1093.                                     <section id="popover-marketingGroups" class="filter-box">
  1094.                                         <div class="filter-box__content">
  1095.                                             {% set options = [] %}
  1096.                                             {% for marketingGroup in marketingGroups %}
  1097.                                                 {% set options = options|merge([{
  1098.                                                     'type': 'checkbox',
  1099.                                                     'text': marketingGroup.getName(),
  1100.                                                     'label': marketingGroup.getName(),
  1101.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  1102.                                                     'name':  'marketingGroups[]',
  1103.                                                     'value': marketingGroup.getId(),
  1104.                                                     'noBubbles': true,
  1105.                                                     'checked': marketingGroup.getId() in setMarketingGroups ? true : false
  1106.                                                 }]) %}
  1107.                                                 {% set filterTexte = filterTexte|merge({
  1108.                                                     'name': 'marketingGroups[]',
  1109.                                                     'value': marketingGroup.getId(),
  1110.                                                     'text': marketingGroup.getName(),
  1111.                                                 }) %}
  1112.                                             {% endfor %}
  1113.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  1114.                                                 'label': 'demi.saving-request.marketing-groups'|trans,
  1115.                                                 'content':  allFilterName is defined ? allFilterName : '',
  1116.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  1117.                                                 'name': 'marketingGroups[]',
  1118.                                                 'options': options,
  1119.                                                 'hideClasses' : ''
  1120.                                             }) }}
  1121.                                         </div>
  1122.                                         <div class="filter-box__action">
  1123.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  1124.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  1125.                                         </div>
  1126.                                     </section>
  1127.                                 </div>
  1128.                             {% endif %}
  1129.                         </div>
  1130.                     </div>
  1131.                 {% endif %}
  1132.                 {% if holidayThemes|length > 0 %}
  1133.                     <div class="col-12 col-md-6 col-lg-4">
  1134.                         <div class="form-group">
  1135.                             <button type="button"
  1136.                                     class="form-box form-box--gray {{ isMobile ? 'form-box--collapsible collapsed' : 'js-filter-form__popover-toggle js-popover__toggle' }}"
  1137.                                 {% if isMobile %}
  1138.                                     data-toggle="collapse"
  1139.                                     data-target="#travel-data-holidayThemes"
  1140.                                     aria-expanded="false"
  1141.                                     aria-controls="travel-data-holidayThemes"
  1142.                                 {% else %}
  1143.                                     data-content-el="#popover-holidayThemes"
  1144.                                     data-container="body"
  1145.                                     data-placement="bottom"
  1146.                                 {% endif %}
  1147.                             >
  1148.                                 <span class="form-box__label">{{ 'demi.saving-request.holiday-themes'|trans }}</span>
  1149.                                 <span class="form-box__content form-control text-truncate js-filter-form__group-label"
  1150.                                       data-filter-name="holidayThemes[]"
  1151.                                       data-default-text="{{ 'demi.saving-request.all'|trans }}">
  1152.                                 {{ 'demi.saving-request.all'|trans }}
  1153.                             </span>
  1154.                                 <span class="demi-icon demi-icon-chevron-down form-box__select-icon"></span>
  1155.                             </button>
  1156.                             {% if isMobile %}
  1157.                                 <section id="travel-data-holidayThemes" aria-expanded="false" class="collapse">
  1158.                                     <div class="form-box__detail p-3">
  1159.                                         <ul class="list-inline list-inline--gutter-6">
  1160.                                             {%  for holidayTheme in holidayThemes %}
  1161.                                                 <li class="list-inline-item">
  1162.                                                     {{ include('@ElementsDemiFrontend/Includes/elements/buttons/toggle-button.html.twig', {
  1163.                                                         'type': 'checkbox',
  1164.                                                         'text': holidayTheme.getName(),
  1165.                                                         'styleModifier': 'js-additional-search-overlay__default-input js-filter-form__default-input ',
  1166.                                                         'name':  'holidayThemes[]',
  1167.                                                         'value': holidayTheme.getId(),
  1168.                                                         'hasIcon': true,
  1169.                                                         'checked': holidayTheme.getId() in setHolidayThemes ? true : false
  1170.                                                     }) }}
  1171.                                                 </li>
  1172.                                                 {% set filterTexte = filterTexte|merge({
  1173.                                                     'name': 'holidayThemes[]',
  1174.                                                     'value': holidayTheme.getId(),
  1175.                                                     'text': holidayTheme.getName(),
  1176.                                                 }) %}
  1177.                                             {% endfor %}
  1178.                                         </ul>
  1179.                                     </div>
  1180.                                 </section>
  1181.                             {% else %}
  1182.                                 <div hidden>
  1183.                                     <section id="popover-holidayThemes" class="filter-box">
  1184.                                         <div class="filter-box__content">
  1185.                                             {% set options = [] %}
  1186.                                             {%  for holidayTheme in holidayThemes %}
  1187.                                                 {% set options = options|merge([{
  1188.                                                     'type': 'checkbox',
  1189.                                                     'text': holidayTheme.getName(),
  1190.                                                     'label': holidayTheme.getName(),
  1191.                                                     'styleModifier': 'js-filter-form__default-input fz16',
  1192.                                                     'name':  'holidayThemes[]',
  1193.                                                     'value': holidayTheme.getId(),
  1194.                                                     'noBubbles': true,
  1195.                                                     'checked': holidayTheme.getId() in setHolidayThemes ? true : false
  1196.                                                 }]) %}
  1197.                                                 {% set filterTexte = filterTexte|merge({
  1198.                                                     'name': 'holidayThemes[]',
  1199.                                                     'value': holidayTheme.getId(),
  1200.                                                     'text': holidayTheme.getName(),
  1201.                                                 }) %}
  1202.                                             {% endfor %}
  1203.                                             {{ include('@ElementsDemiFrontend/Includes/elements/filter/filter-block.desktop.html.twig', {
  1204.                                                 'label': 'demi.saving-request.holiday-themes'|trans,
  1205.                                                 'content':  allFilterName is defined ? allFilterName : '',
  1206.                                                 'defaultText':  allFilterName is defined ? allFilterName : '',
  1207.                                                 'name': 'holidayThemes[]',
  1208.                                                 'options': options,
  1209.                                                 'hideClasses' : ''
  1210.                                             }) }}
  1211.                                         </div>
  1212.                                         <div class="filter-box__action">
  1213.                                             <button type="button" class="btn-no-styling filter-box__action-item text-muted js-filter-form__close">{{ 'demi.brochures.filter.cancel'|trans }}</button>
  1214.                                             <button type="button" class="btn-no-styling filter-box__action-item text-primary js-filter-form__commit">{{ 'demi.brochures.filter.apply'|trans }}</button>
  1215.                                         </div>
  1216.                                     </section>
  1217.                                 </div>
  1218.                             {% endif %}
  1219.                         </div>
  1220.                     </div>
  1221.                 {% endif %}
  1222.             </div>
  1223.         </div>
  1224.     </div>
  1225. </fieldset>
  1226. <script type="text/javascript" data-cookieconsent="ignore">
  1227.     _filterTexte = window['_filterTexte'] || [];
  1228.     _filterTexte.push.apply( _filterTexte, {{ filterTexte|json_encode }});
  1229. </script>