src/Aviatur/TwigBundle/Resources/views/octopus/Flux/App/base.html.twig line 1

Open in your IDE?
  1. {% set parameters = json_decode(app.session.get(app.request.server.get('HTTP_HOST') ~ '[parameters]'), true) %}
  2. {% set agencyDataInfo = app.session.get('agencyDataInfo') %}
  3. <!DOCTYPE html>
  4. <html>
  5.     <head>
  6.         <meta charset="utf-8">
  7.         <meta http-equiv="X-UA-Compatible" content="IE=edge">
  8.         {% block head_viewport %}
  9.             <meta name="viewport" content="width=device-width, initial-scale=1">
  10.         {% endblock head_viewport %}
  11.         <title>{% block head_title %}{% endblock head_title %}</title>
  12.         <meta name="description" content="{% block head_description_content %}{% endblock head_description_content %}">
  13.         <meta name="title" content="{% block head_meta_title %}{% endblock head_meta_title %}">
  14.         <meta name="keywords" content="{% block head_keywords %}{% endblock head_keywords %}">
  15.         <link rel="icon" type="image/x-icon" href="https://aviaturcdndev.z5.web.core.windows.net/assets/octopus_assets/img/favicon.png"/>
  16.         {# Librerías leaflet para los marcadores de agrupación #}
  17.         <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" />
  18.         <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css" />
  19.         <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css" />
  20.         <script defer src="https://unpkg.com/leaflet.markercluster@1.3.0/dist/leaflet.markercluster-src.js" integrity="sha384-NAOEbWFcjnXc7U9GkULPhupHZNAbqru9dS3c+4ANYAwtFoVAWuVuMVDH0DIy4ESp" crossorigin="anonymous"></script>
  21.         {# styles #}
  22.         {% block stylesheets %}
  23.             <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,600,400" />
  24.             <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
  25. <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0" />
  26. <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" />
  27. <link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel="stylesheet">
  28.             <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0" />
  29.             {# <link type="text/css" rel="stylesheet" href="{{ absolute_url(asset('assets/common_assets/css/main.css')) }}" /> #}
  30.         <link type="text/css" rel="stylesheet" href="{{ style('default_assets/css/main.css') }}" />
  31.             {# <link type="text/css" rel="stylesheet" href="{{ absolute_url(asset('assets/'~ agency_folder.assetStyle() ~'/css/main.css')) }}" /> #}
  32.             {# <link type="text/css" rel="stylesheet" href="{{ absolute_url(asset('assets/'~ agency_folder.assetStyle() ~'/css/special.css')) }}" /> #}
  33.             <script src="https://cdn.tailwindcss.com"></script>
  34.             <script>
  35.                 // completely responsive
  36.                 tailwind.config = {
  37.                     theme: {
  38.                         container: {
  39.                             center: false,
  40.                         },
  41.                         extend: {
  42.                             screens: {
  43.                                 xs: { max:"575px" }, // mini-mobile
  44.                                 s: { min: "575px", max: "768px" }, // mobile
  45.                                 m: { min: "768px", max: "992px" }, // tablet
  46.                                 l: { min: "993px" }, // desktop
  47.                             },
  48.                         },
  49.                     },
  50.                     plugins: [],
  51.                 }
  52.     
  53.             </script>
  54.             <style>
  55.                 // Material icons
  56.                 @font-face {
  57.                 font-family: 'Material Icons Round';
  58.                 font-style: normal;
  59.                 font-weight: 400;
  60.                 src: url(/assets/common_assets/font/material-icons/Material-icons-round.woff2) format('woff2');
  61.                 }
  62.                 .material-icons-round {
  63.                     font-family: 'Material Icons Round';
  64.                     font-weight: normal;
  65.                     font-style: normal;
  66.                     font-size: 24px;
  67.                     line-height: 1;
  68.                     letter-spacing: normal;
  69.                     text-transform: none;
  70.                     display: inline-block;
  71.                     white-space: nowrap;
  72.                     word-wrap: normal;
  73.                     direction: ltr;
  74.                     -webkit-font-feature-settings: 'liga';
  75.                     -webkit-font-smoothing: antialiased;
  76.                 }
  77.                 /* fallback */
  78.                 @font-face {
  79.                     font-family: 'Material Symbols Outlined';
  80.                     font-style: normal;
  81.                     font-weight: 100 700;
  82.                     src: url(/assets/aviatur_assets/font/material-icons/MaterialIconsRound.woff2) format('woff2');
  83.                 }
  84.                 .material-symbols-outlined {
  85.                     font-family: 'Material Symbols Outlined';
  86.                     font-weight: normal;
  87.                     font-style: normal;
  88.                     font-size: 24px;
  89.                     line-height: 1;
  90.                     letter-spacing: normal;
  91.                     text-transform: none;
  92.                     display: inline-block;
  93.                     white-space: nowrap;
  94.                     word-wrap: normal;
  95.                     direction: ltr;
  96.                     -webkit-font-feature-settings: 'liga';
  97.                     -webkit-font-smoothing: antialiased;
  98.                 }
  99.                 .material-symbols-outlined {
  100.                 font-variation-settings:
  101.                 'FILL' 1,
  102.                 'wght' 400,
  103.                 'GRAD' 0,
  104.                 'opsz' 24
  105.                 }
  106.                 .grid{
  107.                     padding:0px !important;
  108.                 }
  109.             </style>
  110.         {% endblock stylesheets %}
  111.         {# end styles #}
  112.         {# scripts #}
  113.         <script src="{{ script('common.js') }}"></script>
  114.         <script src="https://apis.google.com/js/api:client.js" integrity="sha384-R3cKxtuopa7SvP7Eurqu6qcGSTAScYtN7bA1Zk4Am30QRG55dXdQ677YmW8Z3O82" crossorigin="anonymous"></script>
  115.         <script async defer crossorigin="anonymous" integrity="sha384-ZpXqi0Nh2+j/KN13sAnrHvrMs28RjAigy/q5fJ7ms3VGiH3x0r+DqvkstQxKcFmS" src="https://connect.facebook.net/es_LA/sdk.js#xfbml=1&version=v6.0&appId=#xfbml=1&version=v7.0&appId={{facebook_appid_login}}&autoLogAppEvents=1"></script>
  116.         {% if app.session.get('WorldChangeCoin') is defined and app.session.get('WorldChangeCoin') == 'true' %}
  117.             {% include twig_exists('@AviaturTwig/'~ agency_folder.twigFlux() ~'/General/Components/worldpayFunction.html.twig') %}
  118.         {% endif %}
  119.         {% if pdfGenerator is not defined %}
  120.             <script type="text/javascript">
  121.                 var clientId;
  122.                 var domain = '{{ app.session.get('domain') }}';
  123.                 var domainsecure = '{{ app.session.get('domainsecure') }}';
  124.                 (function (i, s, o, g, r, a, m) {
  125.                     i['GoogleAnalyticsObject'] = r;
  126.                     i[r] = i[r] || function () {
  127.                         (i[r].q = i[r].q || []).push(arguments)
  128.                     }, i[r].l = 1 * new Date();
  129.                     a = s.createElement(o),
  130.                             m = s.getElementsByTagName(o)[0];
  131.                     a.async = 1;
  132.                     a.src = g;
  133.                     m.parentNode.insertBefore(a, m)
  134.                 })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
  135.                 ga('create', 'UA-56766884-1', 'auto', {cookieDomain: '{{app.request.server.get("HTTP_HOST")|replace({'www.':''})}}', allowLinker: true});
  136.                 ga('require', 'displayfeatures');
  137.                 ga('require', 'linkid', 'linkid.js');
  138.                 ga('require', 'linker');
  139.                 ga('require', 'ec');
  140.                 ga('linker:autoLink', [domain, domainsecure, 'octopus.com.co', 'grupoaviatur.com']);
  141.                 ga('linker:autoLink', [domain, domainsecure, 'octopus.com.co', 'grupoaviatur.com'], false, true);
  142.                 var dimensionValue = '{{ app.request.server.get("REMOTE_ADDR") }}';
  143.                 {% if (app.session.has('transactionId')) %}
  144.                 var dimensionValue2 = '{{ app.session.get('transactionId') }}';
  145.                 {% else %}
  146.                     var dimensionValue2 = '';
  147.                 {% endif %}
  148.                     var dimensionValue3 = '';
  149.                     var dimensionValue4 = '';
  150.                     var dimensionValue5 = '';
  151.                     var dimensionValue6 = '';
  152.                     ga('send', 'pageview', {
  153.                         'dimension1': dimensionValue,
  154.                         'dimension2': dimensionValue2,
  155.                         'dimension3': dimensionValue3,
  156.                         'dimension4': dimensionValue4,
  157.                         'dimension5': dimensionValue5,
  158.                         'dimension6': dimensionValue6}
  159.                     );
  160.             </script>
  161.         {% endif %}
  162.         {% if parameters['firebasescripts'] == 'true' %}
  163.             <link rel="stylesheet" href="https://firebasestorage.googleapis.com/v0/b/aviaturapp-82d62.appspot.com/o/main-octopus.css?alt=media&token=e00a43e4-59ac-4f47-8fd9-599264ba1fcf">
  164.             <script src="https://firebasestorage.googleapis.com/v0/b/aviaturapp-82d62.appspot.com/o/script-octopus.js?alt=media&token=bbc44879-6c85-4692-9c60-32e3c11b9c38" type="text/javascript"></script>
  165.         {% endif %}
  166.         {% if parameters['aviatur_close_modal_login'] is defined %}
  167.             {% set activate_login = json_decode(parameters['aviatur_close_modal_login'], true) %}
  168.             {% if activate_login[app.session.get('agencyId')] is defined %}
  169.                 {% set swLoginClose = activate_login[app.session.get('agencyId')] %}
  170.             {% else %}
  171.                 {% set swLoginClose = activate_login['all'] %}
  172.             {% endif %}
  173.         {% endif %}
  174.             {# Parametrización boton continuar sin iniciar sesión #}
  175.         {% if parameters['aviatur_continue_without_logging'] is defined %}
  176.             {% set continue_without_logging = json_decode(parameters['aviatur_continue_without_logging'], true) %}
  177.             {% if continue_without_logging[app.session.get('agencyId')] is defined %}
  178.                 {% set continueWithoutLogging = continue_without_logging[app.session.get('agencyId')] %}
  179.             {% else %}
  180.                 {% set continueWithoutLogging = continue_without_logging['all'] %}
  181.             {% endif %}
  182.         {% endif %}
  183.             <script>
  184.                 var continueWithoutLogging = '{{continueWithoutLogging}}';
  185.                 var swLoginClose = '{{swLoginClose}}';
  186.                 var clicked = false;
  187.                 var pathname = window.location.pathname.split( '/' );
  188.                 var googleUser = {};
  189.                 var startApp = function() {
  190.                     gapi.load('auth2', function(){
  191.                     // Retrieve the singleton for the GoogleAuth library and set up the client.
  192.                     auth2 = gapi.auth2.init({
  193.                         client_id: '{{google_idclient_login}}',
  194.                         cookiepolicy: 'single_host_origin'
  195.                     });
  196.                     attachSignin(document.getElementById('customBtn'));
  197.                     });
  198.                 };
  199.                 function attachSignin(element) {
  200.                     auth2.attachClickHandler(element, {},
  201.                     function(googleUser) {
  202.                         var profile = googleUser.getBasicProfile();
  203.                         var $modalLogin = jQuery('#js-modalLogin');
  204.                         var id_token = googleUser.getAuthResponse().id_token;
  205.                         jQuery(".js-globalOverlay").attr("style", "z-index: 1200 !important;");
  206.                         jQuery(".js-globalOverlay-text").text("Iniciando sesión");
  207.                         jQuery(".js-globalOverlay").show();
  208.                         jQuery.ajax({
  209.                             url: '/customer/social-networks-callback',
  210.                             type: 'POST',
  211.                             data: {idtoken: id_token, red: "google"},
  212.                             crossDomain: true,
  213.                             beforeSend: function() {
  214.                                 jQuery(".js-globalOverlay-text").text("Iniciando sesión");
  215.                                 jQuery(".js-globalOverlay").show();
  216.                             },
  217.                             success: function (data) {
  218.                                 if(data.status == "redirect") {
  219.                                     signOut();
  220.                                     if(pathname[2] == "detalle" || pathname[2] == "pasajeros-reserva" || pathname[2] == "formulario") {
  221.                                         location.reload();
  222.                                     } else {
  223.                                         window.location.replace("/");
  224.                                     }
  225.                                 }
  226.                             },
  227.                             error: function () {
  228.                                 $modalLogin.find('.close[data-dismiss="modal"]').trigger('click');
  229.                                 jQuery(".js-globalOverlay").hide();
  230.                             },
  231.                             complete: function () {}
  232.                         });
  233.                         /*document.getElementById('name').innerText = "Signed in: " +
  234.                         googleUser.getBasicProfile().getName();*/
  235.                     }, function(error) {
  236.                         //alert(JSON.stringify(error, undefined, 2));
  237.                     });
  238.                 }
  239.                 function signOut() {
  240.                     var auth2 = gapi.auth2.getAuthInstance();
  241.                     auth2.signOut().then(function () {});
  242.                 }
  243.             </script>
  244.             <script>
  245.                 var fbid = '{{facebook_appid_login}}';
  246.                 window.fbAsyncInit = function() {
  247.                     FB.init({
  248.                         appId      : fbid,
  249.                         cookie     : true,
  250.                         xfbml      : true,
  251.                         version    : 'v7.0',
  252.                         oauth   : true,
  253.                         status  : true
  254.                     });
  255.                     FB.AppEvents.logPageView();
  256.                 };
  257.                 (function(d, s, id){
  258.                     var js, fjs = d.getElementsByTagName(s)[0];
  259.                     if (d.getElementById(id)) {return;}
  260.                     js = d.createElement(s); js.id = id;
  261.                     js.src = "https://connect.facebook.net/en_US/sdk.js";
  262.                     fjs.parentNode.insertBefore(js, fjs);
  263.                 }(document, 'script', 'facebook-jssdk'));
  264.                 /*function checkLoginState() {
  265.                     FB.getLoginStatus(function(response) {
  266.                         statusChangeCallback(response);
  267.                     });
  268.                 }*/
  269.                 function loginFace(){
  270.                     FB.login(function(response) {
  271.                         if (response.authResponse) {
  272.                             var $modalLogin = jQuery('#js-modalLogin');
  273.                             //console.log('Welcome!  Fetching your information.... ');
  274.                             FB.api('/me', {fields: 'first_name, last_name, email, picture'}, function (response2) {
  275.                                 response2.picture2 = "http://graph.facebook.com/" + response2.id + "/picture?type=normal";
  276.                                 jQuery(".js-globalOverlay").attr("style", "z-index: 1200 !important;");
  277.                                 jQuery(".js-globalOverlay-text").text("Iniciando sesión");
  278.                                 jQuery(".js-globalOverlay").show();
  279.                                 jQuery.ajax({
  280.                                     url: '/customer/social-networks-callback',
  281.                                     type: 'POST',
  282.                                     crossDomain: true,
  283.                                     data: {data: response2, red: "facebook"},
  284.                                     //async: true,
  285.                                     success: function (data) {
  286.                                         if(data.status == "redirect") {
  287.                                             FB.logout();
  288.                                             if(pathname[2] == "detalle" || pathname[2] == "pasajeros-reserva" || pathname[2] == "formulario") {
  289.                                                 location.reload();
  290.                                             } else {
  291.                                                 window.location.replace("/");
  292.                                             }
  293.                                         }
  294.                                     },
  295.                                     error: function () {
  296.                                         $modalLogin.find('.close[data-dismiss="modal"]').trigger('click');
  297.                                         jQuery(".js-globalOverlay").hide();
  298.                                     },
  299.                                     complete: function () {}
  300.                                 });
  301.                             });
  302.                         } else {
  303.                             console.log('User cancelled login or did not fully authorize.');
  304.                         }
  305.                     },{scope: 'email,public_profile'});
  306.                 }
  307.             </script>
  308.             {% if app.user %}
  309.             <script>
  310.                 var customerLogged = true;
  311.                 var documentNum = '{{app.user.documentNumber}}';
  312.                 var documentType = '{{app.user.documentType}}';
  313.                 {% if parameters['switch_login_agencies'] is defined %}
  314.                     {% set login_agencies = json_decode(parameters['switch_login_agencies'], true) %}
  315.                     {% if login_agencies[app.session.get('agencyId')] is defined %}
  316.                         {% set login_is_on = login_agencies[app.session.get('agencyId')] %}
  317.                     {% else %}
  318.                         {% set login_is_on = login_agencies['all'] %}
  319.                     {% endif %}
  320.                 {% else %}
  321.                     {% set login_is_on = '0' %}
  322.                 {% endif %}
  323.                 var login_is_on = "{{login_is_on}}";
  324.             </script>
  325.         {% else %}
  326.             <script>var customerLogged = false;</script>
  327.         {% endif %}
  328.         {% if 'aviatur_general_homepage' in app.request.get('_route') %}
  329.             {% if app.user.username is defined %}
  330.                 <script>
  331.                     jQuery(document).ready(function () {
  332.                         var dtCustomerFacebook = '{{app.user.facebookId}}';
  333.                         var dtCustomerGoogle = '{{app.user.googleId}}';
  334.                         var address = '{{app.user.address}}';
  335.                         var documentNum = '{{app.user.documentNumber}}';
  336.                         if(dtCustomerFacebook || dtCustomerGoogle){
  337.                             if(documentNum.length == 0 && address.length == 0) {
  338.                                  window.location.replace("/customer/edit");
  339.                             }
  340.                         }
  341.                     });
  342.                 </script>
  343.             {% else %}
  344.                 <script>
  345.                     sessionStorage.setItem('countDialogLogin', 0);
  346.                     var countDialogLogin = 0;
  347.                     jQuery(document).ready(function () {
  348.                         jQuery("#close-dialog-login").on('click', function(){
  349.                             jQuery("#dialog-login-home").hide();
  350.                         });
  351.                     });
  352.                 </script>
  353.             {% endif %}
  354.         {% endif %}
  355.         {% if 'aviatur_customer_edit_info' in app.request.get('_route') %}
  356.             {% if app.user.username is defined %}
  357.                 <script>
  358.                     jQuery(document).ready(function () {
  359.                         var dtCustomerFacebook = '{{app.user.facebookId}}';
  360.                         var dtCustomerGoogle = '{{app.user.googleId}}';
  361.                         jQuery("#customer_edit_form_email").attr("type","email");
  362.                         jQuery("#customer_edit_form_CivilStatus").parent().parent().parent().hide();
  363.                         if(dtCustomerFacebook || dtCustomerGoogle){
  364.                             if(jQuery("#customer_edit_form_DocumentNumber").val() == "") {
  365.                                 jQuery("#customer_edit_form_DocumentNumber").removeAttr("readonly");
  366.                             }
  367.                             jQuery(".js-reserva-submit-password").hide();
  368.                             jQuery("#customer_edit_form_email").hide();
  369.                             jQuery('[for^="customer_edit_form_email"]').hide();
  370.                         }
  371.                     });
  372.                 </script>
  373.             {% endif %}
  374.         {% endif %}
  375.         {% if app.session.get('AnonymousEmail') is not null %}
  376.             {# When user set email on "See Booking", this JS set email in input after redirection #}
  377.             {% set anonymousEmail = app.session.get('AnonymousEmail') %}
  378.             <script type="text/javascript">
  379.                 jQuery(document).ready(function () {
  380.                     var anonymousEmail = "{{ anonymousEmail }}";
  381.                     jQuery("#username").val(anonymousEmail);
  382.                     jQuery("#fos_user_registration_form_email").val(anonymousEmail);
  383.                 });
  384.             </script>
  385.         {% endif %}
  386.         {# end scripts  #}
  387.         {% if "payment_success_secure" in app.request.attributes.get('_route') %}
  388.         {% endif %}
  389.         {% block javascripts_header %}
  390.            {# {% if cards is defined and cybersource.org_id is defined %}
  391.                 {% set src = "https://h.online-metrix.net/fp/tags.js?org_id="~cybersource.org_id~"&session_id=aviaturcom"~ app.session.get('transactionId') %}
  392.                 <script type="text/javascript" src="{{src}}"></script>
  393.             {% endif %} #}
  394.         {% endblock %}
  395.     </head>
  396.     <body ontouchstart="">
  397.         {% if agencyDataInfo['agency_phones'] %}
  398.             {% set agencyWhat = agencyDataInfo['agency_phones']['what']%}
  399.             {% set agencyPhones = agencyDataInfo['agency_phones']['all']%}
  400.         {% endif %}
  401.         <p class="not_app"></p>
  402.         {% block body_scripts %}
  403.               {% if cards is defined and cybersource.org_id is defined %}
  404.                 {% set src = "https://h.online-metrix.net/fp/tags?org_id="~cybersource.org_id~"&session_id=aviaturcom"~ app.session.get('transactionId') %}
  405.                 <noscript>
  406.                 <iframe style="width: 100px; height: 100px; border: 0; position:absolute; top: -5000px;" src="{{src}}"></iframe>
  407.                 </noscript>
  408.             {% endif %}
  409.         {% endblock %}
  410.         {% for flashMessage in app.session.flashbag.get('notice') %}
  411.             <div class="flash-notice">
  412.                 {{ flashMessage }}
  413.             </div>
  414.         {% endfor %}
  415.         {% block overlay %}
  416. <script>
  417.     document.addEventListener("DOMContentLoaded", function () {
  418.         const overlay = document.querySelector(".js-globalOverlay");
  419.         if (overlay) {
  420.             overlay.style.display = "none";
  421.             window.addEventListener("load", function () {
  422.                 overlay.style.display = "none";
  423.             });
  424.             window.addEventListener("pageshow", function () {
  425.                 overlay.style.display = "none";
  426.             });
  427.         }
  428.     });
  429. </script>
  430.             <div class="overlay js-globalOverlay" style="display: none;">
  431.                 <div class="overlay-center">
  432.                     <svg class="mat-loader--200 center-block" height="200" width="200">
  433.                         <circle class="mat-loader--200__path" cx="100" cy="100" r="80" fill="none" stroke-width="6" stroke-miterlimit="10" />
  434.                     </svg>
  435.                     <p class="spin-text js-globalOverlay-text">Cargando...</p>
  436.                 </div>
  437.             </div>
  438.             <div class="responsive-js"></div>
  439.         {% endblock %}
  440.         {% block base_content %}
  441.             {% block header %}
  442.             {% endblock %}
  443.             {% block body %}
  444.             {% endblock body %}
  445.             {% block content %}
  446.             {% endblock content %}
  447.             {% block footer %}
  448.             {% endblock footer %}
  449.             {% block modal %}
  450.                 <div id="js-globalModal" class="modal fade">
  451.                     <div class="modal-dialog">
  452.                         <div class="modal-content">
  453.                             <div class="modal-header">
  454.                                 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
  455.                                 <h4 id="js-globalModal-title" class="modal-title">Modal title</h4>
  456.                             </div>
  457.                             <div class="modal-body">
  458.                                 <div id="js-globalModal-illustration" {# class="modal-illustration" #}></div>
  459.                                 <p id="js-globalModal-text" class="modal-text modal-text--error"></p>
  460.                             </div>
  461.                         </div>
  462.                     </div>
  463.                 </div>
  464.             {% endblock modal %}
  465.         {% endblock base_content %}
  466.         {% block javascripts %}
  467. {% endblock %}
  468. {% block javascripts_bottom %}
  469.      {# end Script emblue emails #}
  470.     <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet-src.js" integrity="sha512-IkGU/uDhB9u9F8k+2OsA6XXoowIhOuQL1NTgNZHY1nkURnqEGlDZq3GsfmdJdKFe1k1zOc6YU2K7qY+hF9AodA==" crossorigin="anonymous"></script>
  471. <script src="https://unpkg.com/leaflet.markercluster@1.3.0/dist/leaflet.markercluster-src.js" integrity="sha384-NAOEbWFcjnXc7U9GkULPhupHZNAbqru9dS3c+4ANYAwtFoVAWuVuMVDH0DIy4ESp" crossorigin="anonymous"></script>
  472. <script src="{{ asset('assets/common_assets/js/vendor/leaflet.bezier.js') }}"></script>
  473.         {% endblock javascripts_bottom %}
  474.     </body>
  475. </html>