src/Flexy/FrontBundle/Themes/CoWorking/templates/reservation/reservation-meeting-step.html.twig line 1
{% extends '@Flexy/FrontBundle/Themes/CoWorking/templates/layout.html.twig' %}{% block stylesheets %}{{ parent() }}<link rel="stylesheet" href="{{ asset('themes/coworking/css/reservation.css') }}" /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.css" /><style>.form-check {min-height: 1.9rem !important;}.modal-backdrop.fade.show {Théâtredisplay: none;}/* css checkbox*//* hide checkbox */input[type="checkbox"] {display: none;}/* if checkbox is checked, then do these things *//*input[type="checkbox"]:checked + label {color: white;background:#FFD86E;border-radius: 5px;padding: 0px 10px 0px 10px;}/* styles when hovering over options */label:hover {cursor: pointer;/* transitions and animations */-webkit-transition: color .5s ease;-moz-transition: color .5s ease;-ms-transition: color .5s ease;-o-transition: color .5s ease;transition: color .5s ease;}.boutton-step{padding:10px;text-decoration:none;width:230px;font-size: 12px;font-family: 'PT Sans', sans-serif;letter-spacing:2px;}input.button {width:130px;height:50px;margin: 20px 0 30px 0;padding: 0px 20px 0px 20px;background: #e6e6e6;border-radius:5px;border: 1px solid #ccc;font-family: OpenSans, sans-serif;font-size:16pt;color:#444;}.Addons label{font-size:12px !important;font-family: 'roboto';font-weight: 500;border: 1px solid #80808024;margin: 2px;padding: 0px 5px 0px 5px;border-radius: 5px;}.multistep-container .active-button li:not(:first-child) .round-btn:before {position: absolute;content: '';width: 141px;height: 3px;background-color: #E9F2FA;left: -120px;}.multistep-container .active-button li {display: inline-block;width: 140px;}.form-check {line-height: 22px;}.col-md-12.col-lg-12.col-sm-12.d-flex.justify-content-end.align-items-end.mb-3{flex: 0 0 86%;}@media (max-width:767px) {html, body {overflow-x: hidden !important;}body {position: relative !important;}.col-sm-8.reservation-steeps {padding:0%;}.multistep-container .mutistep-form-area .form-box{position: relative;top: 33px;left: 0px;}.multistep-container .active-button li{display: inline-block;width: 100px;}.panel-sticky{font-size:12px;}h6.display-6.header-steeps {margin-left: 3%;}h6.datetime{margin-left: 3%;}a#seeDetails {margin-bottom: -11%;}a#seePrice {float: right;margin-right: 52%;}}li.etape1:before {background: #7ED670 !important; /* Change the background color */color: white !important;}.titre-page{margin-top:10px;font-size: 20px;line-height:45.29px;color: #000000;}.radio-buttons {display: flex;}.radio-buttons input[type="radio"] {display: none;}.radio-buttons label {display: block;margin-right: 40px;cursor: pointer;}.radio-buttons label img {border-radius: 10px;width: 100px;height: 110px;box-shadow: rgba(17, 17, 26, 0.05) 0px 1px 0px, rgba(17, 17, 26, 0.1) 0px 0px 8px;}.radio-buttons input[type="radio"]:checked + label img {border: 2px solid #FFCB00 ; /* Style pour indiquer la sélection, vous pouvez personnaliser */}</style>{% endblock %}{% block body %}<img src="{{asset('themes/coworking/front/images/sallereunion.jpg')}}" style="width: 100%;height: 520px;" class="img-fluid" /><div class="container"><div class="row justify-content-between"><div class="col-sm-8 reservation-steeps"><div class="row"><div class="col-sm-8"><h6 class="titre-page">Réservation {{name}}</h6></div><div class="col-sm-4" style="margin-top:10px;"><a href="/themes/coworking/front/images/prixSalles.pdf" class="btn-res text-center text-light text-uppercase bg-dark" style="float: right;padding: 8px;border-radius: 6px;font-size:13px;" target="_blank"> NOS TARIFS</a></div></div><div class="container"><div class="container d-flex justify-content-center align-items-center"><ul id="progressbar"><li class="etape1"> <span> Type</span> </li><li class="active" > Formule </li><li> Dates</li><li> Confirmation</li></ul></div><div class="col-xl-12" style="top: 20px;"><div class="multistep-container"><div class="mutistep-form-area"><div class="form-box"><div class="container" ><div id="form-attribue" style="line-height: 20px;" class="mt-4"><h5>Veuillez choisir une formule </h5>{% for attr in attributValues %}{% if attr.code == "check" %}<div class="form-check"><input class="form-check-input option" data-time="{{attr.attribut.name}}" data-days="{{ attr.attribut.description}}" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" class="option" type="radio" name="radioGroup" id="radio{{ attr.attribut.id}}" value="{{attr.attribut.name}}" /><label class="form-check-label" data-time="{{attr.attribut.name}}" data-days=" {{ attr.attribut.description}}" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" for="radio{{ attr.attribut.id}}"> {% if(attr.attribut.name == "1 Jour") %} Journée entière {% else %} {{attr.attribut.name}} {% endif %} </label><br>{% if(attr.attribut.name == "Demi-Journée") %}<small>Choisir une plage horaire :</small><select class="form-select" id="plage-horaire" style="width: 37%;" name="plage-horaire" disabled><option value=""> Plage horaire</option><option value="matin">Matin (8h00-13h00)</option><option value="apres-midi">Après-midi (13h00-18H00)</option></select>{% endif %}</div>{% endif %}{% endfor %}{% for attr in attributValues %}{% if attr.code == "simple" %}<div class="form-check" ><input class="form-check-input option" data-days="10" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" type="radio" name="radioGroup" class="option" id="radio1" value="{{attr.attribut.name}}" /><label class="form-check-label" data-days="10" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" for="radio1"> {{attr.attribut.name}} </label><br><small>{{attr.attribut.description}}</small></div>{% endif %}{% endfor %}{# {% if attributValues|length > 0 %}<!-- <div class="form-check"><input class="form-check-input" type="radio" name="radioGroup" id="radio2" /><label class="form-check-label" for="radio2">Location “Pass jours”</label><br><small>Cette formule est déclinée comme suit :</small><select style="padding: 4px;" class="col-6 option " id="serviceFormule" ><option value="" data-price="" >Sélectionner un choix</option>{% for attr in attributValues %}{% if attr.code == "multiple" %}<option value="{{attr.attribut.name}}" data-days="{{attr.attribut.description}}" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" >{{attr.attribut.name}}</option>{% endif %}{% endfor %}</select></div>-->{% endif %} #}{% for attr in attributValues %}{% if attr.code == "personalized" %}<div class="form-check"><input class="form-check-input" data-days="30" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" type="radio" name="radioGroup" id="radio{{ attr.attribut.id}}" /><label class="form-check-label" data-days="30" data-id="{{attr.product.id}}" data-name="{{attr.product.name}}" data-price="{{attr.price}}" for="radio{{ attr.attribut.id}}"> {{ attr.attribut.name}} </label><br><small> {{ attr.attribut.description}}</small></div>{% endif %}{% endfor %}{% set room = name|replace({'Meeting room ': ''}) %}{% set targetRooms = ['Omega', 'Beta', 'Epsilon', 'Alpha', 'Delta'] %}{% set isDisabled = room in targetRooms %}<h5 style="font-weight:bold; margin-top: 20px;{% if isDisabled %}opacity: 0.5; pointer-events: none;{% endif %}" >Veuillez choisir une disposition de la salle </h5><!-- <select class="form-select" aria-label="Default select example" name="disposition" id="disposition" style="width: 50%;"><option value="">Sélectionnez un choix</option><option value="u">U</option><option value="Théâtre">Théâtre</option><option value="Ecole">Ecole</option></select>--><div class="radio-buttons"><input type="radio" id="u" name="disposition" value="u" required {% if isDisabled %} disabled{% endif %} ><label for="u"><img src="{{asset('themes/coworking/front/images/U.png')}}" style="width: 110px;height: 100px;{% if isDisabled %}opacity: 0.5; pointer-events: none;{% endif %}" class="img-fluid" title="Disposition U"/><br>{% if dispotionU != 0 %}<div class="text-center mt-1"><small>{{dispotionU}} Personnes max</small> </div>{% endif %}</label><input type="radio" id="theatre" name="disposition" value="Théâtre" {% if isDisabled %}disabled{% endif %} ><label for="theatre"><img src="{{asset('themes/coworking/front/images/theatre.png')}}" style="width: 110px;height: 100px;{% if isDisabled %}opacity: 0.5; pointer-events: none;{% endif %}" class="img-fluid" title="Disposition Théâtre" /><br>{% if dispotionTheatre != 0 %}<div class="text-center mt-1"><small>{{dispotionTheatre}} Personnes max</small></div>{% endif %}</label><input type="radio" id="ecole" name="disposition" value="Ecole" {% if isDisabled %}disabled{% endif %} ><label for="ecole"><img src="{{asset('themes/coworking/front/images/ecole.png')}}" style="width: 110px;height: 100px;{% if isDisabled %}opacity: 0.5; pointer-events: none;{% endif %}" class="img-fluid" title="Disposition École" /><br>{% if dispotionEcole != 0 %}<div class="text-center mt-1"><small>{{dispotionEcole}} Personnes max </small></div>{% endif %}</label></div><div class="row"><div class="col-md-4"><label for="nbr" style="font-size: 12px;{% if isDisabled %}opacity: 0.5; pointer-events: none;{% endif %}">Le nombre approximatif de personnes présentes :</label></div><div class="col-md-4"><input type="number" id="nbr_personne" name="nbr_personne" class="form-control" style="width:40%;{% if isDisabled %}disabled{% endif %}" min="1"/></div></div><h5 style="font-weight:bold; margin-top: 22px;">Services supplémentaires</h5><h6 style="font-weight:bold; margin-top: 22px;">Voulez-vous ajouter des services supplémentaires?</h6><!-- <small style="color:grey">Disponible en location au mois ou à la journée</small>--><div class="row"><div class="col-sm-12 Addons">{% for service in services %}<input id="{{ service.name}}" data-id="{{service.id}}" data-name="{{service.name}}" data-price="{{service.price}}" type="checkbox" class="CK" name="services" value="{{ service.id}} "><label for="service"> {{ service.name}} </label>{% endfor %}<br>{% set isSimple = false %}{% for attr in attributValues %}{% if attr.code == "simple" %}{% set isSimple = true %}{% endif %}{% endfor %}{% for servicesCommun in servicesCommuns %}{% if not isSimple %}{% if servicesCommun.id not in [94, 92, 69] %}<input id="{{ servicesCommun.name }}" data-id="{{ servicesCommun.id }}" data-name="{{ servicesCommun.name }}" data-price="{{ servicesCommun.price }}" type="checkbox" class="CK" name="serviceCommun" value="{{ servicesCommun.id }} "><label for="service"> {{ servicesCommun.name }} </label>{% endif %}{% else %}<input id="{{ servicesCommun.name }}" data-id="{{ servicesCommun.id }}" data-name="{{ servicesCommun.name }}" data-price="{{ servicesCommun.price }}" type="checkbox" class="CK" name="serviceCommun" value="{{ servicesCommun.id }} "><label for="service"> {{ servicesCommun.name }} </label>{% endif %}{% endfor %}{#{% for servicesCommun in servicesCommuns %}<input id="{{ servicesCommun.name}}" data-id="{{servicesCommun.id}}" data-name="{{servicesCommun.name}}" data-price="{{servicesCommun.price}}" type="checkbox" class="CK" name="serviceCommun" value="{{ servicesCommun.id}} "><label for="service"> {{ servicesCommun.name}} </label>{% endfor %}#}</div></div><!--<h6 style="font-weight:bold; margin-top: 10px;">Avez vous des demandes spécifiques ?</h6><textarea class="form-control" name="demande" id="textAreaExample1" rows="1" placeholder="Saisissez votre texte Ici" style="font-size: 12px;"></textarea>--></div></div><div class="button-row"><a href="{{path("reservationsallereuninon")}}" style="border:1px solid #FFCB00 !important; color:black !important;background: #ffff !important;" class="btn-res text-center text-light text-uppercase bg-dark ReserveNext__ boutton-step" >Étape précédente</a> <a href="{{path("reservationMeetingNext",{id:product, 'paramFormule': 'days'})}}" style="background: #FFCB00 !important;" id="reservationLink" class="btn-res text-center text-light text-uppercase bg-dark ReserveNext__ boutton-step">Étape suivante</a></div></div></div></div></div></div></div><div class="col-sm-4 reservation-steeps-panier" style="overflow-y: auto;">{{render(path("ajax_cart"))}}</div></div></div>{% endblock %}{% block javascripts %}<!-- MAIN CONTENT --><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script><script>//recuperer la valeur des jours dans le formulaire .document.getElementById('reservationLink').addEventListener('click', function() {var errors = ""; // Variable pour stocker les messages d'erreurvar days=0;var check=false;var time ="";var isChecked = false;var selectValue = $('#plage-horaire').val();//var disposition = $('#disposition').val();// Obtention de la valeur de l'option de disposition sélectionnéevar disposition = $('input[name="disposition"]:checked').val();var nbrApproximatif = $('input[name="nbr_personne"]').val();var radioButtons = document.getElementsByName('radioGroup');for (var i = 0; i < radioButtons.length; i++) {if (radioButtons[i].checked) {days = parseInt(radioButtons[i].getAttribute('data-days'));time = radioButtons[i].getAttribute('data-time');break;}}if(time == "Horaire" ){check = true;}// Vérification pour la plage horaireif (time == "DEMI JOURNÉE" && selectValue == "") {errors += "Veuillez sélectionner une plage horaire.\n";}if (days === 0 && !isChecked) {errors += "Vous n'avez rien sélectionné, Veuillez sélectionner une option.\n";}// Récupération du texte du titre de la pagevar excludedNames = ["Omega", "Beta", "Epsilon", "Alpha", "Delta"];var pageTitle = document.querySelector('.titre-page').textContent.trim();var titleEndsWithExcludedName = excludedNames.some(name => pageTitle.endsWith(name));// Vérification pour la dispositionif (!disposition && !titleEndsWithExcludedName ) {errors += "Veuillez sélectionner une disposition.\n";}// Affichage des erreurs (s'il y en a)if (errors !== "") {event.preventDefault(); // Empêche le lien de se déclencheralert(errors);}var link = document.getElementById('reservationLink');link.href = "{{ path('reservationMeetingNext', {id: product, 'paramFormule': 'days', 'Horai12': 'VALUE', 'dIS34': 'VALUE2', 'time': 'VALUE3','proxim':'VALUE4'}) }}".replace('days', days).replace('VALUE', selectValue).replace('VALUE2', disposition).replace('VALUE3', check).replace('VALUE4',nbrApproximatif);});$(document).ready(function(){var select= $('#plage-horaire');$('input[name="radioGroup"]').change(function(){if ($(this).attr('id') === 'radio24') {select.prop('disabled', false);} else {select.prop('selectedIndex', 0).prop('disabled', true);}});$('input[type=radio][name=radioGroup]').click(function() {// $('input[type=checkbox]').prop('checked', false);});$('#serviceFormule').change(function(){var radio = document.getElementById('radio2');radio.checked = true;//$('input[type=checkbox]').prop('checked', false);});var radioButtons = document.getElementsByName('radioGroup');var selectElement = document.getElementById('serviceFormule');radioButtons.forEach(function(radio) {radio.addEventListener('click', function() {if (radio.id === 'radio2') {selectElement.disabled = false;var idProduct = $('option:nth-child(2)').attr("data-id");var price = $('option:nth-child(2)').attr("data-price");var name = $('option:nth-child(2)').attr("data-name");var actionType = "add";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});// alert(idProduct);selectElement.val($('option:nth-child(2)').prop('selected', true));} else {selectElement.selectedIndex = 0; // Sélection du premier élémentselectElement.disabled = true;}});});$('body').on("click",".option",function() {var selectedServiceIds = [];var formule ="";if ($(this).is(':checked')) { // Vérifie si la case est cochéevar formule = $(this).val(); // Récupère la valeur de la case cochée}$('.CK:checked').each(function() {// Ajouter l'ID du service sélectionné à la listeselectedServiceIds.push($(this).data('id'));var currentCheckbox = $(this);$.ajax({url: '/reservation/ajax-service-price',type: 'GET', // ou 'GET' en fonction de votre besoindata: {serviceId : $(this).data('id'),formule : formule},success: function(response) {currentCheckbox.attr('data-price', response);var idProduct = currentCheckbox.attr("data-id");var price = currentCheckbox.attr("data-price");var name = currentCheckbox.attr("data-name");if(price != 0){var actionType = "add";currentCheckbox.next('label').css({'color': 'white', 'background': 'rgb(255, 216, 110)'});}else{var actionType = "remove";currentCheckbox.next('label').css({'color': 'white', 'background': '#C7C8CC'});}$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});},error: function(xhr, status, error) {// Gérez les erreurs iciconsole.error(error);}}); });var idProduct = $(this).attr("data-id");var price = $(this).attr("data-price");var name = $(this).attr("data-name");var actionType = "add";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});});$('body').on("change","select.option",function() {var selectedServiceIds = [];formule =$("#serviceFormule").val();// Parcourir toutes les cases cochées avec la classe CK$('.CK:checked').each(function() {// Ajouter l'ID du service sélectionné à la listeselectedServiceIds.push($(this).data('id'));var currentCheckbox = $(this);$.ajax({url: '/reservation/ajax-service-price',type: 'GET', // ou 'GET' en fonction de votre besoindata: {serviceId : $(this).data('id'),formule : formule},success: function(response) {currentCheckbox.attr('data-price', response);var idProduct = currentCheckbox.attr("data-id");var price = currentCheckbox.attr("data-price");var name = currentCheckbox.attr("data-name");var actionType = "add";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});},error: function(xhr, status, error) {// Gérez les erreurs iciconsole.error(error);}});});var idProduct = $(this).find("option:selected").attr("data-id");var price = $(this).find("option:selected").attr("data-price");var name = $(this).find("option:selected").attr("data-name");var actionType = "add";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});});$('body').on("click",".delete-cart-item",function() {var idProduct = $(this).attr("data-id");var price = $(this).attr("data-price");var name = $(this).attr("data-name");var actionType = "remove";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});});// Ajouter la délégation d'événements pour le clic sur le label 'service'$('label[for="service"]').click(function(){var checkBox = $(this).prev();var value = checkBox.val();if (checkBox.is(":checked")) {checkBox.prop('checked', false);console.log("Case à cocher décochée : " + value);checkBox.next('label').css({ 'color': '#626262' ,'background': 'none'});var idProduct = checkBox.attr("data-id");var price = checkBox.attr("data-price");var name = checkBox.attr("data-name");var actionType = "remove";$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});} else {checkBox.prop('checked', true);// console.log("Case à cocher cochée : " + value);var formule = "";if ($('#radio1').is(':checked')) {formule = $("#radio1").val();}else if ($('#radio21').is(':checked')) {formule = $("#radio21").val();}else if ($('#radio24').is(':checked')) {formule = $("#radio24").val();}else if ($('#radio25').is(':checked')) {formule = $("#radio25").val();}else{formule = "";}var serviceId = $(this).prev().data('id');var dataElement = $(this).prev();$.ajax({url: "{{path('ajaxServicePrice')}}",type: 'GET', // ou 'GET' en fonction de votre besoindata: {serviceId : value,formule : formule},success: function(response) {dataElement.attr("data-price", response);var idProduct = dataElement.attr("data-id");var price = dataElement.attr("data-price");var name = dataElement.attr("data-name");var actionType = "add";if(price != 0 ){$.ajax({url:"{{path('ajax_cart')}}",data:{idProduct:idProduct,price:price,name:name,actionType:actionType},success:function(result){console.log(result);$(".reservation-steeps-panier").html(result);}});checkBox.next('label').css({ 'color': 'white' ,'background': '#FFD86E'});}else {// Si le prix est égal à zéro, changer le fond du checkbox en grischeckBox.next('label').css({'color': 'white', 'background': '#C7C8CC'});}},error: function(xhr, status, error) {// Gérez les erreurs iciconsole.error(error);}});}});var radioButtons = document.getElementsByName('radioGroup');for (var i = 0; i < radioButtons.length; i++) {if (radioButtons[i].checked) {var selectedValue = radioButtons[i].value;break;}}console.log(selectedValue); // Vous pouvez utiliser la valeur comme vous le souhaitez ici});</script>{% endblock %}