src/Elements/Bundle/DemiFrontendBundle/Resources/views/Accommodation/includes/package-details.mobile.html.twig line 1

Open in your IDE?
  1. {% set descriptionTypeMapping = {
  2.     0: "Package",
  3.     1: "PackageContentShort",
  4.     2: "PackageContentLong",
  5.     3: "PackageShortText"
  6. } %}
  7. {% if tvbPackage|default(null) %}
  8.     {% set package = tvbPackage %}
  9. {#    if a description is not visible remove this, probably it is an old package and "PackageContentShort" or "PackageShortText" is still used #}
  10.     {% set descriptionTypeMapping = {
  11.         0: "Package",
  12.         2: "PackageContentLong"
  13.     } %}
  14. {% else %}
  15.     {% set package = housePackageMaster %}
  16.     {% set tvbPackage = null %}
  17. {% endif %}
  18. {% set  fromTvbOverview = fromTvbOverview is defined ? fromTvbOverview : false %}
  19. <section class="container">
  20.     <section class="mt-4" data-track-content data-content-name="package-info">
  21.         {% if not isAffiliate|default(false) and not fromTvbOverview %}
  22.         <h2 class="h3 mb-2">{{ "demi.detail.package.benefits"|trans }}</h2>
  23.         <div class="card box-shadow js-expandable expandable-block">
  24.             <script data-cookieconsent="ignore">
  25.                 _config.expandable = true;
  26.             </script>
  27.             <div class="expandable-block__content-wrapper js-expandable__content-wrapper">
  28.                 <div class="card-body js-expandable__content expandable-block__content">
  29.                     {% endif %}
  30.                     <div class="wysiwyg">
  31.                         {% for type in  descriptionTypeMapping %}
  32.                             {% set text = package.getDescription(type,app.request.locale,dateFrom is defined ? dateFrom : null) %}
  33.                             {% if text is empty and searchParam|default(null) %}
  34.                                 {% set text = package.getDescription(type, demi_core_configuration('getFallbackLanguage',[]), searchParam.getDateFrom()) %}
  35.                             {% endif %}
  36.                             {% if text is not empty %}
  37.                                 {{ text|raw }}<br/><br/>
  38.                             {% endif %}
  39.                         {% endfor %}
  40.                         <section class="mt-3">
  41.                             <div class="h5 mb-1">{{ 'demi.detail.package.validdates'|trans }}</div>
  42.                             {% set validDates = package.getValidDates() %}
  43.                             {% if validDates is not null %}
  44.                                 {% if not tvbPackage is null and tvbPackage.getClassName() == 'demiPackage' %}
  45.                                     {% for item in validDates.getItems() %}
  46.                                         {% if item.getDateTo() > date('now') %}
  47.                                             {{ elements_dateFormatRange(item.getDateFrom(),item.getDateTo(),'daterange-short-long', 'daterange-long-long') }}
  48.                                             <br/>
  49.                                         {% endif %}
  50.                                     {% endfor %}
  51.                                 {% else %}
  52.                                     {% for item in validDates.getItems() %}
  53.                                         {% if item.getTo() > date('now') %}
  54.                                             {{ elements_dateFormatRange(item.getFrom(),item.getTo(),'daterange-short-long', 'daterange-long-long') }}
  55.                                             <br/>
  56.                                         {% endif %}
  57.                                     {% endfor %}
  58.                                 {% endif %}
  59.                             {% endif %}
  60.                         </section>
  61.                         {% if not tvbPackage is null and tvbPackage is instanceof('\\Elements\\Demi\\Model\\Package') and not tvbPackage.hasAccommodationSection() %}
  62.                             <div class="mt-3">
  63.                                 <button type="button"
  64.                                         class="btn btn-success btn-lg btn-block js-overlay__toggle js-add-package-to-cart__btn"
  65.                                         data-target="#search-overlay">
  66.                                     {{ 'demi.detail.package.add-to-cart'|trans }}
  67.                                     <span class="circle-spinner circle-spinner--white circle-spinner--small ml-2 js-add-package-to-cart__loading"
  68.                                           aria-label="{{ 'demi.content-loading'|trans }}"
  69.                                           title="{{ 'demi.content-loading'|trans }}" hidden>
  70.                                     </span>
  71.                                 </button>
  72.                                 <div class="js-add-package-to-cart__error text-danger mt-3 strong" role="alert" hidden>
  73.                                     <div class="row row--gutter-width-6">
  74.                                         <div class="col-auto">
  75.                                     <span class="demi-icon demi-icon-warning icon-in-text"
  76.                                           title="{{ 'demi.warning'|trans }}"
  77.                                           aria-label="{{ 'demi.warning'|trans }}"/>
  78.                                         </div>
  79.                                         <div class="col js-add-package-to-cart__error-text"></div>
  80.                                     </div>
  81.                                 </div>
  82.                                 <div class="js-add-package-to-cart__warning text-warning mt-3 strong" role="alert"
  83.                                      hidden>
  84.                                     <div class="row row--gutter-width-6">
  85.                                         <div class="col-auto">
  86.                                     <span class="demi-icon demi-icon-warning icon-in-text"
  87.                                           title="{{ 'demi.warning'|trans }}"
  88.                                           aria-label="{{ 'demi.warning'|trans }}"/>
  89.                                         </div>
  90.                                         <div class="col js-add-package-to-cart__warning-text"></div>
  91.                                     </div>
  92.                                 </div>
  93.                             </div>
  94.                             {% set addToCartUrl = demi_demiUrl({
  95.                                 'path': demi_core_configuration('getCheckoutPath',[]).getFullPath(),
  96.                                 'controller': 'cart',
  97.                                 'action': 'packagestep1'
  98.                             }, 'demi_checkout', true) %}
  99.                             <script>
  100.                                 _config.addPackageToCart = true;
  101.                                 _config.addToCartUrl = "{{ addToCartUrl }}";
  102.                                 _config.packageId = "{{ tvbPackage.getId() }}";
  103.                             </script>
  104.                         {% else %}
  105.                         {% if not isAffiliate|default(false) %}
  106.                             {% set tvbPackageListUrl = null %}
  107.                             {% if accommodation is not defined and not tvbPackage is null %}
  108.                                 {% if tvbPackage.getClassName() == 'demiPackage' %}
  109.                                     {% set tvbPackageListDocument = demi_findDestinationPackageAccoList(document, tvbPackage) %}
  110.                                 {% elseif tvbPackage.getClassName() == 'demiHousePackageMaster' %}
  111.                                     {% set tvbPackageListDocument = demi_findHousePackageMasterSelfAssignList(document, tvbPackage) %}
  112.                                 {% elseif tvbPackage.getClassName() == "demiHousePackageContainer" %}
  113.                                     {% set tvbPackageListDocument = demi_findHousePackageContainerList(document, tvbPackage) %}
  114.                                 {% endif %}
  115.                                 {% if tvbPackageListDocument is defined and tvbPackageListDocument %}
  116.                                     {% set tvbPackageListUrl = tvbPackageListDocument.getFullPath() %}
  117.                                 {% endif %}
  118.                             {% endif %}
  119.                             {% if not tvbPackage is null and tvbPackage is instanceof('\\Elements\\Demi\\Model\\Package') %}
  120.                                 {{ include('@ElementsDemiFrontend/DestinationPackage/includes/destinationpackageBookingInfos.html.twig',{
  121.                                     'tvbPackage': tvbPackage
  122.                                 }) }}
  123.                             {% endif %}
  124.                         {% if tvbPackageListUrl is not null %}
  125.                             <div class="mt-3 text-center">
  126.                                 <a href="{{ tvbPackageListUrl }}"
  127.                                    data-target="#booking"
  128.                                    aria-controls="booking"
  129.                                    class="btn btn-success btn-block btn-lg js-open-tab-and-scroll">
  130.                                     <script data-cookieconsent="ignore">
  131.                                         _config.openTabAndSroll = true;
  132.                                     </script>
  133.                                     <span class="btn__icon demi-icon demi-icon-cart mr-2" aria-hidden="true"></span>
  134.                                     {{ 'demi.detail.package.booking-button' |trans }}
  135.                                 </a>
  136.                             </div>
  137.                             {% elseif fromTvbOverview %}
  138.                             <div class="mt-3 text-danger">{{ 'demi.destinationpackage.not-bookable'|trans }} </div>
  139.                         {% else %}
  140.                             <div class="mt-3 text-center js-search-data__show-if-submitted" {{ availabilityIsChecked ? '' : 'hidden' }}>
  141.                                 <a href="#booking"
  142.                                    data-target="#booking"
  143.                                    aria-controls="booking"
  144.                                    class="btn btn-success btn-block btn-lg js-open-tab-and-scroll">
  145.                                     <script data-cookieconsent="ignore">
  146.                                         _config.openTabAndSroll = true;
  147.                                     </script>
  148.                                     <span class="btn__icon demi-icon demi-icon-cart mr-2" aria-hidden="true"></span>
  149.                                     {{ "demi.detail.package.booking-button"|trans }}
  150.                                 </a>
  151.                                 <div class="mt-2 text-center text-success small">
  152.                                     {{ "demi.detail.promote-booking-speed"|trans }}
  153.                                 </div>
  154.                             </div>
  155.                         {% endif %}
  156.                         {% endif %}
  157.                         {% if not fromTvbOverview and not document.property("demi_hideVacancySearch") %}
  158.                             <div class="mt-3 text-center js-search-data__hide-if-submitted" {{ availabilityIsChecked ? 'hidden' : '' }}>
  159.                                 <button type="button" class="btn btn-success btn-block btn-lg js-overlay__toggle my-3"
  160.                                         data-target="#search-overlay">
  161.                                     <span class="demi-icon demi-icon-person btn__icon"></span>
  162.                                     {{ "demi.detail.search-vacancies-button"|trans }}
  163.                                 </button>
  164.                             </div>
  165.                         {% endif %}
  166.                         {% endif %}
  167.                     </div>
  168.                     {% if not isAffiliate|default(false) and not fromTvbOverview %}
  169.                 </div>
  170.             </div>
  171.             {{ include('@ElementsDemiFrontend/Includes/elements/read-more.mobile.html.twig') }}
  172.         </div>
  173.         {% endif %}
  174.     </section>
  175. </section>
  176. {% if not tvbPackage is null and tvbPackage.getClassName() == 'demiPackage' and not tvbPackage.hasAccommodationSection() %}
  177.     {{ include('@ElementsDemiFrontend/Includes/overlays/search.html.twig',{
  178.         'searchParam': searchParam is defined ? searchParam : null,
  179.         'isSearch': true
  180.     }) }}
  181. {% endif %}