templates/Commande/domicile.html.twig line 1

Open in your IDE?
  1. {% extends "layout.html.twig" %}
  2. {% block headerCss %}{% endblock %}
  3. {% block navHome %} selected{% endblock %}
  4. {% block navHomeHamburger %} active{% endblock %}
  5. {% block classHome %} class="home"{% endblock %}
  6. {% block contenu %}
  7.     <div class="app-commande-domicile  bg-curve-500">
  8.         {% include 'Commande/subheader.html.twig' %}
  9.         <section class="step1">
  10.             <div class="title">Vos Informations</div>
  11.             {{ form_start(form, {attr:{'class': 'forms' }}) }}
  12.                 <div class="names">
  13.                     <div class="name first">
  14.                         <label for="firstname">Nom <span class="red">*</span></label>
  15.                         {{ form_widget(form.nom) }}
  16.                     </div>
  17.                     <div class="name last">
  18.                         <label for="firstname">Prénom <span class="red">*</span></label>
  19.                         {{ form_widget(form.prenom) }}
  20.                     </div>
  21.                 </div>
  22.                 <div class="number">
  23.                     <label for="phone">Numéro de téléphone <span class="red">*</span></label>
  24.                     {{ form_widget(form.tel) }}
  25.                 </div>
  26.                 <div class="email">
  27.                     <label for="email">Email <span class="red">*</span></label>
  28.                     {{ form_widget(form.email) }}
  29.                 </div>
  30.                 <div class="gender">
  31.                     <label for="sexe">Sexe <span class="red">*</span></label>
  32.                     {{ form_widget(form.sexe) }}
  33.                 </div>
  34.                 <div class="ages">
  35.                     <label for="age">Âge <span class="red">*</span></label>
  36.                     {{ form_widget(form.age) }}
  37.                 </div>
  38.                 <div class="adresse">
  39.                     <label for="age">Adresse <span class="red">*</span></label>
  40.                     {{ form_widget(form.adresse) }}
  41.                 </div>
  42.                 <div class="codePostal">
  43.                     <label for="age">Code Postal <span class="red">*</span></label>
  44.                     {{ form_widget(form.codePostal) }}
  45.                 </div>
  46.                 <div class="code">
  47.                     <label for="age">CODES / ÉTAGE / INTERPHONE / BÂTIMENT <span class="red">*</span></label>
  48.                     {{ form_widget(form.complement) }}
  49.                 </div>
  50.                 <div class="btns">
  51.                     <div class="btn-text">
  52.                         <div class="btn-title">Pourquoi ces informations ?</div>
  53.                         <div class="btn-desc">Afin de permettre la meilleure prise en charge pour votre consultation.</div>
  54.                         <div class="btn-desc">En cliquant sur « Passer à l'étape suivante » vous acceptez nos <a href="{{ URL_URGD }}/fr/conditions-generales">CGV</a> ainsi que nos <a href="{{ URL_URGD }}/fr/conditions-generales">CGU</a>.</div>
  55.                     </div>
  56. {#                    <a class="submit-button" href="">#}
  57. {#                        <div class="button">#}
  58. {#                            <div class="text">Passer à l’étape suivante</div>#}
  59. {#                            <span class="material-icons">#}
  60. {#                                arrow_right_alt#}
  61. {#                            </span>#}
  62. {#                        </div>#}
  63. {#                    </a>#}
  64.                     <button  data-loading-text="En cours de chargement..." id="submit-button" class="submit-button" type="submit" style="border: none" onclick="sendEvent()"><div class="button">
  65.                             <div class="text">Passer à l’étape suivante</div>
  66.                             <span class="material-icons">
  67.                                 arrow_right_alt
  68.                             </span>
  69.                         </div></button>
  70.                 </div>
  71.                 <div class="status">
  72.                     <div class="step">Étape 1/3</div>
  73.                     <div class="bar">
  74.                         <div class="b1"></div>
  75.                     </div>
  76.                 </div>
  77.             {{ form_end(form) }}
  78.         </section>
  79.     </div>
  80.     <style>.button-loading {
  81.             background-color: #ccc; /* Gray color */
  82.             pointer-events: none; /* Prevents clicking while loading */
  83.         }
  84.     </style>
  85. {% endblock %}
  86. {% block javascripts %}
  87.     {{ parent() }}
  88.     <script type="text/javascript"
  89.             src="https://maps.googleapis.com/maps/api/js?libraries=places&amp;key=AIzaSyBJtK198y2pIPcUrZ0ztURy7en0_R3DI60"></script>
  90.     <script type="text/javascript">
  91.         document.addEventListener('DOMContentLoaded', function () {
  92.             var form = document.querySelector('form.forms'); // Adjust the selector to match your form
  93.             var submitButton = document.getElementById('submit-button');
  94.             form.addEventListener('submit', function () {
  95.                 // Change button to loading state
  96.                 submitButton.classList.add('button-loading');
  97.                 submitButton.querySelector('.text').textContent = submitButton.getAttribute('data-loading-text');
  98.                 submitButton.disabled = true; // Disable the button to prevent multiple submissions
  99.             });
  100.         });
  101.         
  102.         function sendEvent() {
  103.             gtag('event', 'confirmation    ', {
  104.                 'event_category': 'medecin_a_domicile',
  105.                 'event_label': 'CTA_confirmer_ma_visite'
  106.             });
  107.         }
  108.         // Google autocomplete
  109.         function initializeAutocomplete(id) {
  110.             var element = document.getElementById(id);
  111.             if (element) {
  112.                 var autocomplete = new google.maps.places.Autocomplete(element, { types: ['geocode'] });
  113.                 google.maps.event.addListener(autocomplete, 'place_changed', onPlaceChanged);
  114.             }
  115.         }
  116.         function onPlaceChanged() {
  117.             var place = this.getPlace();
  118.             console.log('place', place);  // Uncomment this line to view the full object returned by Google API.
  119.             if(place && place.address_components)
  120.                 for(var i = 0; i < place.address_components.length; i++)
  121.                     if(place.address_components[i].types[0] === 'postal_code')
  122.                         $('#commande_codePostal').val(place.address_components[i].short_name);
  123.             if (place && place.geometry && place.geometry.viewport && place.geometry.viewport) {
  124.                 var i = 0;
  125.                 var placeGeometry = place.geometry.viewport;
  126.                 var latitude = 0;
  127.                 var longitude = 0;
  128.                 for (var property in placeGeometry) {
  129.                     if (placeGeometry.hasOwnProperty(property)) {
  130.                         if (i === 0) {
  131.                             for (var subProperty in placeGeometry[property]) {
  132.                                 if (placeGeometry[property].hasOwnProperty(subProperty)) {
  133.                                     longitude = placeGeometry[property][subProperty];
  134.                                 }
  135.                             }
  136.                             i++;
  137.                         }
  138.                         else {
  139.                             for (var subProperty in placeGeometry[property]) {
  140.                                 if (placeGeometry[property].hasOwnProperty(subProperty)) {
  141.                                     latitude = placeGeometry[property][subProperty];
  142.                                 }
  143.                             }
  144.                         }
  145.                     }
  146.                 }
  147.                 console.log('latitude', latitude);
  148.                 console.log('longitude', longitude);
  149.                 $('#commande_latitude').val(latitude);
  150.                 $('#commande_longitude').val(longitude);
  151.             }
  152.         }
  153.         google.maps.event.addDomListener(window, 'load', function () {
  154.             initializeAutocomplete('commande_adresse');
  155.         });
  156.     </script>
  157. {% endblock %}