src/Aviatur/TwigBundle/Resources/views/aval/Flux/Flight/Default/availability.html.twig line 1

Open in your IDE?
  1. {% extends twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/App/front.html.twig') %}
  2. {% block head_title %}Reserva vuelos baratos | Tiquetes en Viajestuplus.com.co{% endblock %}
  3. {% block head_description_content %}Reserva tus vuelos y disfruta de una experiencia inolvidable con Viajes tuplús{% endblock head_description_content %}
  4. {#{% block stylesheets %}
  5.     {{ parent() }}
  6.     <link type="text/css" rel="stylesheet" href="{{ asset('assets/'~ agency_folder.assetStyle() ~'/css/dispo.min.css') }}" />
  7. {% endblock %}#}
  8. {% set showCalendar = false %}
  9. {% if urlDescription['providerInfo'] and not urlDescription['multi'] %}
  10.     {% set showCalendar = true %}
  11. {% endif %}
  12. {% block javascripts %}
  13.     {{ parent() }}
  14.     {# JS USING TWIG VARIABLES #}
  15.     <script type="text/javascript">
  16.         var ajaxUrlFlightAvail = '{{ ajaxUrl | raw }}';
  17.         var detailUrl = '{{ safeUrl }}{{ path('aviatur_flight_detail_secure') }}';
  18.         var availabilityDetailUrlPlain = '{{ path('aviatur_flight_availability_detail_plain') }}';
  19.         var availabilityGetFlightResultsPlain = '{{ path('aviatur_flight_availability_get_results_plain') }}';
  20.         var asyncScripts = {
  21.             price: '{{ script('FlightBundle//_avail-price-async.js') }}',
  22.             fare: '{{ script('FlightBundle//_avail-fare-async.js') }}',
  23.             horary: '{{ script('FlightBundle//_avail-horary-async.js') }}'
  24.         };
  25.         {% if showCalendar %}
  26.             var availabilityGetCalendar = '{{ calendarUrl | raw }}';
  27.         {% endif %}
  28.             var providerInfo = '{{ urlDescription['providerInfo'] }}';
  29.             var calendar = false;
  30.     </script>
  31.     {# JS ASSETS COMPILED FROM BUNDLES #}
  32.     <script src="{{ script('common-avail.js') }}"></script>
  33.     <script src="{{ script('FlightBundle//flight_availability.js') }}"></script>
  34.     {% if availabilityFront %}
  35.         <script src="{{ script('FlightBundle//flight_availability_front.js') }}"></script>
  36.         {# {% else %}
  37.             <script src="{{ script('GeneralBundle//component_socialNetwork.js') }}"></script>
  38.             <script src="{{ script('GeneralBundle//component_shared-avail.js') }}"></script> #}
  39.     {% endif %}
  40. {% endblock %}
  41. {% if inlineEngine is defined %}
  42.     {# if NOT desktop hompage, var from controller #}
  43.     {% set dispoEngine = true %}
  44. {% else %}
  45.     {% set dispoEngine = false %}
  46. {% endif %}
  47. {% block body %}
  48.     {#{% if parameters['aviatur_ff_enabled'] == 1 %}
  49.         <div class="dispo-shared__socialNetwork--left hide-portable">
  50.             {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Components/component_socialNetwork.html.twig') %}
  51.         </div>
  52.     {% endif %}#}
  53.     <div class="wrapper">
  54.         {% set passengers = AvailabilityArray.adults + AvailabilityArray.children + AvailabilityArray.infants %}
  55.         {% set s = '' %}
  56.         {% if passengers > 1 %}
  57.             {% set s = 's' %}
  58.         {% endif %}
  59.         {% set multi = false %}
  60.         {% if AvailabilityArray.route == 'aviatur_flight_round' %}
  61.             {% set roundtrip = true %}
  62.             {% set search_entities =
  63.                 [{'blocks': [
  64.                     {'title':AvailabilityArray.origin1, 'label':cityOriginName, 'tooltip':AvailabilityArray.originLabel1},
  65.                     {'title':AvailabilityArray.origin2, 'label':cityDestinationName, 'tooltip':AvailabilityArray.originLabel2}
  66.                 ]},
  67.                 {'blocks': [
  68.                     {'title':AvailabilityArray.date1|localizeddate('medium','none',null,null,'d MMM'), 'label':AvailabilityArray.date1|localizeddate('medium','none',null,null,'eeee'), 'tooltip':'Fecha de ida'},
  69.                     {'title':AvailabilityArray.date2|localizeddate('medium','none',null,null,'d MMM'), 'label':AvailabilityArray.date2|localizeddate('medium','none',null,null,'eeee'), 'tooltip':'Fecha de vuelta'}
  70.                 ]},
  71.                 {'blocks': [
  72.                     {'title':passengers, 'label':'Pasajero' ~ s, 'type':'passenger'}
  73.                 ]}]
  74.             %}
  75.         {% else %}
  76.             {% set roundtrip = false %}
  77.             {% if AvailabilityArray.route == 'aviatur_flight_oneway' %}
  78.                 {% set search_entities =
  79.                     [{'blocks': [
  80.                         {'title':AvailabilityArray.origin1, 'label':cityOriginName, 'tooltip':AvailabilityArray.originLabel1},
  81.                         {'title':AvailabilityArray.destination1, 'label':cityDestinationName, 'tooltip':AvailabilityArray.destinationLabel1}
  82.                     ]},
  83.                     {'blocks': [
  84.                         {'title':AvailabilityArray.date1|localizeddate('medium','none',null,null,'d MMM'), 'label':AvailabilityArray.date1|localizeddate('medium','none',null,null,'eeee'), 'tooltip':'Fecha de vuelo'}
  85.                     ]},
  86.                     {'blocks': [
  87.                         {'title':passengers, 'label':'Pasajero' ~ s, 'type':'passenger'}
  88.                     ]}]
  89.                 %}
  90.             {% else %}
  91.                 {% set multi = true %}
  92.                 {% set flightBlocks = [] %}
  93.                 {% set inner_separator = false %}
  94.                 {% for i in 1..flights %}
  95.                     {% if inner_separator %}
  96.                         {% set flightBlocks = flightBlocks|merge([
  97.                             {'separator':1}
  98.                         ]) %}
  99.                         {% set inner_separator = false %}
  100.                     {% endif %}
  101.                     {% set flightBlocks = flightBlocks|merge([
  102.                         {'title':attribute(AvailabilityArray, 'origin' ~ i), 'label':attribute(AvailabilityArray, 'date' ~ i)|localizeddate('medium','none',null,null,'d MMM'), 'tooltip':attribute(AvailabilityArray, 'originLabel' ~ i), 'type':'multi'}
  103.                     ]) %}
  104.                     {% if i < flights and attribute(AvailabilityArray, 'destinationLabel' ~ i) != attribute(AvailabilityArray, 'originLabel' ~ (i + 1)) %}
  105.                         {% set flightBlocks = flightBlocks|merge([
  106.                             {'title':attribute(AvailabilityArray, 'destination' ~ i), 'label':'', 'tooltip':attribute(AvailabilityArray, 'destinationLabel' ~ i), 'type':'multi'}
  107.                         ]) %}
  108.                         {% set inner_separator = true %}
  109.                     {% elseif i == flights %}
  110.                         {% set flightBlocks = flightBlocks|merge([
  111.                             {'title':attribute(AvailabilityArray, 'destination' ~ i), 'label':'', 'tooltip':attribute(AvailabilityArray, 'destinationLabel' ~ i), 'type':'multi'}
  112.                         ]) %}
  113.                     {% endif %}
  114.                 {% endfor %}
  115.                 {% set search_entities =
  116.                     [{'blocks':flightBlocks},
  117.                     {'blocks': [
  118.                         {'title':passengers, 'label':'Pasajero' ~ s, 'type':'passenger'}
  119.                     ]}]
  120.                 %}
  121.             {% endif %}
  122.         {% endif %}
  123.         {% embed twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Components/component_resumeSearch.html.twig') with {'entities': search_entities, 'roundtrip': roundtrip, 'multi': multi} %}
  124.             {% block resume_id %}resumeSearchFlight{% endblock %}
  125.             {% block resume_custom_class %}resume-search--flight{% endblock %}
  126.             {% block resume_content %}
  127.                 {{ parent() }}
  128.                 <div class="resume-search__engine js-newSearchEngine hidden-all">
  129.                     <!--i class="icon icon_search_close"></i-->
  130.                     <span class="resume-search__engine__close js-closeSearchEngine material-symbols-outlined mt-3">close</span>
  131.                     {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/Search/Flight/flightSearch_engine.html.twig') %}
  132.                 </div>
  133.             {% endblock %}
  134.         {% endembed %}
  135.         <div class="wrapper-susy">
  136.             <div class="dispo-shared__topbar js-topbarOptions" style="display:none">
  137.                 {% if showCalendar == true %}
  138.                     <div class="dispo-calendar__toogle-btn btn inline-block sp-stack pull-right hide-palm js-toogleCalendar" data-toogle="0" style="display:none;">Ver Calendario +/- 3 días</div>
  139.                     <div id="CalendarWidget" class="dispo-calendar__widget hide-palm" style="display:none;">
  140.                         <div class="dispo-calendar__container frame clearfix js-calendarFrame" style="display:none;">
  141.                             <div id="js-targetCalendar" class="dispo-calendar__table-wrapper" data-state="init"></div>
  142.                         </div>
  143.                     </div>
  144.                 {% endif %}
  145.                 {% if parameters['aviatur_ff_enabled'] == 1 %}
  146.                     <div class="dispo-shared__ff-options pull-left js-ffOptions" data-state="loading" style="display:none;">
  147.                         <div class="nav-option js-ffOption" data-fftype="price">Por precio</div>
  148.                         {#<div class="nav-option js-ffOption" data-fftype="fare">Por aerolínea</div>#}
  149.                         {#<div class="nav-option js-ffOption" data-fftype="horary">Por horario</div>#}
  150.                     </div>
  151.                 {% endif %}
  152.                 {% if((urlDescription.short != '') and (urlDescription.long != '')) %}
  153.                     <div class="clearfix">
  154.                         <div class="js-showDescription justify" style="display:none">{{ urlDescription.short|raw }}...</div>
  155.                         <div class="js-showDescription">{{ urlDescription.long|raw }}</div>
  156.                         <span class="link-span js-toogleInfoDisplay js-resultFlDesc resultFlDesc-showMore" data-target=".js-showDescription" style="display:none">ver menos</span>
  157.                     </div>
  158.                 {% endif %}
  159.                 {#<div class="dispo-flight__title-wrapper type-main">
  160.                     <p class="dispo-flight__title hidden-palm">
  161.                         ¡Encontramos <b class="js-availOptions">xxx</b> opciones de tarifas para tu viaje!
  162.                     </p>
  163.                     <p class="dispo-flight__title hidden-lap-and-up">
  164.                         ¡Te presentamos las <b class="js-availOptions">xxx</b> mejores opciones de tarifas para tu viaje!
  165.                     </p>
  166.                 </div>#}
  167.                 {% if parameters['aviatur_ff_enabled'] == 1 %}
  168.                     <div class="btn btn--full sp-stack js-toggleFilters js-toggleFilterAvail hidden-lap-and-up" data-state="0">Ver filtros</div>
  169.                     <div class="wrapper-susy js-availFilters js-toggleFilterAvail hidden-palm" style="display:none">
  170.                         {#<span class="resume-search__engine__close js-closeFilters hidden-lap-and-up">
  171.                             <i class="icon icon_search_close"></i>
  172.                         </span>#}
  173.                         <div class="col-3 sm-12 sp-stack relative">
  174.                             <div class="dispo-shared__filter-container--full">
  175.                                 <div class="dispo-shared__filter-order js-orderResults" data-order="price" data-state="asc" role="button" tabindex="0">Precio<i class="icon icon_order-asc sp-inline" data-icon1="icon_order-asc" data-icon2="icon_order-desc"></i></div>
  176.                                 <span class="dispo-shared__filter-options js-filterOptions" data-slidetoggle="js-priceFilters" role="button" tabindex="0"><small><i class="icon icon_arrow_down" data-icon1="icon_arrow_up" data-icon2="icon_arrow_down"></i></small></span>
  177.                             </div>
  178.                             <div class="dispo-shared__filter-options__picker picker js-priceFilters" style="display:none;">
  179.                                 <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  180.                                 <div class="js-filterUnit" style="display: none;">
  181.                                     <input type="text" id="js-price" class="dispo-flight__filter__input" readonly="">
  182.                                     <div id="js-slider-price" class="dispo-flight__filter__slider ui-slider"></div>
  183.                                 </div>
  184.                             </div>
  185.                         </div>
  186.                         <div class="col-3 sm-12 sp-stack relative">
  187.                             <div class="dispo-shared__filter-container--full">
  188.                                 <div class="dispo-shared__filter-order js-orderResults" data-order="dephour" data-state="asc" role="button" tabindex="0">Hora de salida<i class="icon icon_order-asc sp-inline" data-icon1="icon_order-asc" data-icon2="icon_order-desc"></i></div>
  189.                                 <span class="dispo-shared__filter-options js-filterOptions" data-slidetoggle="js-deptimeFilters" role="button" tabindex="0"><small><i class="icon icon_arrow_down" data-icon1="icon_arrow_up" data-icon2="icon_arrow_down"></i></small></span>
  190.                             </div>
  191.                             <div class="dispo-shared__filter-options__picker picker js-deptimeFilters" style="display:none;">
  192.                                 <h3>Hora</h3>
  193.                                 {% for i in 1..flights %}
  194.                                     <p class="dispo-flight__filter__title">Salida Vuelo {{i}}</p>
  195.                                     <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  196.                                     <div class="js-filterUnit" style="display: none;">
  197.                                         <input type="text" id="js-hour-dephour-{{i - 1}}" class="dispo-flight__filter__input" readonly>
  198.                                         <div id="js-slider-hour-dephour-{{i - 1}}" class="dispo-flight__filter__slider ui-slider"></div>
  199.                                     </div>
  200.                                     <p class="dispo-flight__filter__title">Llegada Vuelo {{i}}</p>
  201.                                     <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  202.                                     <div class="js-filterUnit" style="display: none;">
  203.                                         <input type="text" id="js-hour-arrhour-{{i - 1}}" class="dispo-flight__filter__input" readonly>
  204.                                         <div id="js-slider-hour-arrhour-{{i - 1}}" class="dispo-flight__filter__slider ui-slider"></div>
  205.                                     </div>
  206.                                 {% endfor %}
  207.                             </div>
  208.                         </div>
  209.                         <div class="col-3 sm-12 sp-stack relative">
  210.                             <div class="dispo-shared__filter-container--full">
  211.                                 <div class="dispo-shared__filter-order js-orderResults" data-order="duration" data-state="asc" role="button" tabindex="0">Duraci&oacute;n<i class="icon icon_order-asc sp-inline" data-icon1="icon_order-asc" data-icon2="icon_order-desc"></i></div>
  212.                                 <span class="dispo-shared__filter-options js-filterOptions" data-slidetoggle="js-durationFilters" role="button" tabindex="0"><small><i class="icon icon_arrow_down" data-icon1="icon_arrow_up" data-icon2="icon_arrow_down"></i></small></span>
  213.                             </div>
  214.                             <div class="dispo-shared__filter-options__picker picker js-durationFilters" style="display:none;">
  215.                                 <h3>Tiempo de Vuelo</h3>
  216.                                 {% for i in 1..flights %}
  217.                                     <p class="dispo-flight__filter__title">Vuelo {{i}}</p>
  218.                                     <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  219.                                     <div class="js-filterUnit" style="display: none;">
  220.                                         <input type="text" id="js-flight-time-{{i - 1}}" class="dispo-flight__filter__input" readonly>
  221.                                         <div id="js-slider-flight-time-{{i - 1}}" class="dispo-flight__filter__slider ui-slider"></div>
  222.                                     </div>
  223.                                 {% endfor %}
  224.                             </div>
  225.                         </div>
  226.                         <div class="col-3 sm-12 sp-stack relative">
  227.                             <div class="dispo-shared__filter-container">
  228.                                 <div class="dispo-shared__filter-more js-slidePicker" data-slidetoggle="js-miscFilters" role="button" tabindex="0">Otros filtros<i class="icon icon_options sp-inline"></i></div>
  229.                             </div>
  230.                             <div class="dispo-shared__filter-options__picker picker js-miscFilters" style="display:none;">
  231.                                 <h3 class="condensed">Aerolineas</h3>
  232.                                 <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  233.                                 <div class="sp-stack js-filterUnit" data-entity="airlines" style="display: none;"></div>
  234.                                 <h3 class="condensed">Escalas</h3>
  235.                                 <div class="js-ajaxLoader"><div class="dispo-shared__filter-loader circularG"></div></div>
  236.                                 <div class="sp-stack js-filterUnit" data-entity="stops" style="display: none;"></div>
  237.                                 <h3 class="condensed">Aeropuertos</h3>
  238.                                 <div class="js-miscFiltersAirports">
  239.                                     <div class="js-ajaxLoader" style="display:none;">
  240.                                         <div class="dispo-shared__filter-loader circularG"></div>
  241.                                     </div>
  242.                                     <div class="js-filterUnit" data-entity="airports"></div>
  243.                                 </div>
  244.                             </div>
  245.                         </div>
  246.                     </div>
  247.                 {% endif %}
  248.             </div>
  249.             {% if parameters['aviatur_ff_enabled'] == 0 %}
  250.                 <div class="dispo-shared__sidebar hide-portable">
  251.                     {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/Flight/Default/availability_filter.html.twig') %}
  252.                 </div>
  253.             {% endif %}
  254.             <div class="relative {% if parameters['aviatur_ff_enabled'] == 1 %}dispo-shared__content-full-width{% else %}dispo-shared__content{% endif %}">
  255.                 <div class="js-flightLoader">
  256.                     {% set loading = twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Components/component_loadingWorld.html.twig') %}
  257.                     {{ include (loading, {'spinText':"Buscando vuelos " ~ cityOriginName ~ " - " ~ cityDestinationName ~ "..."}) }}
  258.                 </div>
  259.                 <div class="dispo-shared__results dispo__flight">
  260.                     <div class="dispo-shared__results-spinner js-resultsSpinner" style="display:none;">
  261.                         <svg class="mat-loader--200 center-block" height="200" width="200">
  262.                         <circle class="mat-loader--200__path" cx="100" cy="100" r="80" fill="none" stroke-width="6" stroke-miterlimit="10" />
  263.                         </svg>
  264.                     </div>
  265.                     <input type="" value="" name="PD[js-pdpoint]" id="js-prueba" class="text-input--inline js-pdpoint hidden-all"  readonly>
  266.                 <!--    <script>
  267.             jQuery(document).ready(function () {
  268.                 {#utag.view({
  269.                     "tealium_event": "SCREEN_VIEW",
  270.                     "pagePath": location.pathname,
  271.                     "origen1": jQuery("#origin1").val(),
  272.                     "destino1": jQuery("#destination1").val(),
  273.                     "fechaIda1": jQuery("#date1").val(), /*AAMMDD*/
  274.                     "fechaVuelta1": jQuery("#date-return1").val() /*Opcional AAMMDD*/,
  275.                     "resultado": jQuery('.dispo-flight__frame').length>0?"SI":"NO"
  276.                 });#}
  277.             });
  278.                     </script>-->
  279.                     <div id="results">
  280.                         {% if pointRedemption is defined and pointRedemption is not null and pointRedemption|length > 0 %}
  281.                             <div id="js-pointRedemption-mobile" class=" col-12"></div>
  282.                             {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Templates/redemptionPointWidged.html.twig') %}
  283.                         {% endif %}
  284.                         <script type="text/javascript">
  285.                             jQuery('#js-pointRedemption-mobile').hide();
  286.                         </script>
  287.                         <div id="flight-results" class="dispo-shared__recommendations" style="display:none;"></div>
  288.                         <div class="clearfix js-paginatorTarget" style="display:none;"></div>
  289.                     </div>
  290.                 </div>
  291.             </div>
  292.         </div>
  293.     </div>
  294.     <div id="js-panel-detailAvailability" class="slidePanel slidePanel--right">
  295.         <div class="slidePanel-header">
  296.             <button type="button" class="btn btn--accent close-slidePanel"  data-panel="#js-panel-detailAvailability">
  297.                 <i class="icon icon_chevron_left">&lt;&nbsp;</i>
  298.                 Volver
  299.             </button>
  300.         </div>
  301.         <div class="slidePanel-body is-withHeader">
  302.             <div id="js-spinner-detailAvailability" class="overlay overlay--inDiv" style="display: none;">
  303.                 <div class="overlay-center">
  304.                     <div id="js-spinOverlay-detailAvailability" class="spinOverlayLoading"></div>
  305.                     <p class="spin-text js-globalOverlay-text">Al finalizar tu compra podrás seleccionar la cantidad de puntos a redimir</p>
  306.                 </div>
  307.             </div>
  308.             <div id="js-body-detailAvailability"></div>
  309.         </div>
  310.     </div>
  311.     <div id="js-scrollTopBtn" class="btn--scroll-top pointer" role="button">▲</div>
  312.     {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/Search/General/search_datepickerContainer.html.twig') %}
  313.     {#{% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Templates/modalRedemptionPoints.html.twig')%}#}
  314. {% endblock %}
  315. {% block javascripts_bottom %}
  316.     {{ parent() }}
  317.     <script src="{{ script('AgencyBundle//tuplusFlightBundle.js' ) }}"></script>
  318.     <script type="text/javascript">
  319.         var dateEndCencosud = '2018-06-30';
  320.         var originIATA = ['BOG', 'CLO', 'SMR', 'BGA', 'BAQ', 'CTG', 'CUC', 'LET', 'MDE', 'MTR', 'PEI', 'ADZ', 'VUP'];
  321.         var destinationIATA = ['ANF', 'CJC', 'COR', 'PMC', 'SCL', 'AQP', 'CUZ', 'JUL', 'LIM', 'BUE', 'FTE', 'IGR', 'ANF', 'RIO', 'SAO', 'IGU', 'CWB', 'POA', 'SYD', 'MEL', 'BNE', 'AKL', 'LPB', 'ASU', 'MVD', 'VVI', 'USH', 'FOR', 'REC', 'BSB', 'SSA', 'IGR', 'IQQ', 'PUQ', 'MAO', 'RGL', 'PPT', 'FLN', 'UIO', 'GYE', 'LSC', 'TUC', 'CCP', 'PCL', 'ZCO', 'ARI', 'AUA', 'CUN', 'MIA'].concat(originIATA);
  322.     </script>
  323.     {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/Search/General/search_js.html.twig') %}
  324.     {% if parameters['aviatur_xtreme_search_enabled'] is defined and parameters['aviatur_xtreme_search_enabled'] == 1 %}
  325.         <script type="text/javascript">
  326.             var xtremeSearchUrl = '{{ parameters['aviatur_xtreme_search_url'] }}';
  327.         </script>
  328.     {% else %}
  329.         <script src="{{ script('GeneralBundle//component_paginator.js') }}"></script>
  330.     {% endif %}
  331. {% endblock javascripts_bottom %}