src/Flexy/FrontBundle/Themes/CoWorking/templates/reservation/reservation-offices-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>.modal-backdrop.fade.show {display: 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;}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;}.message {color: white;background: rgb(199, 200, 204);font-size: 15px;padding: 20px;border-radius: 10px;text-align: center;font-weight: bold;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);height: 100px; /* Adjust the height as necessary */display: flex;align-items: center;justify-content: center;}</style>{% endblock %}{% block body %}<img src="{{asset('themes/coworking/front/images/office.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 style="margin-top:10px">Réservation{% set displayed_categories = [] %}{% for bureau in products %}{% for cat in bureau.categoriesProduct %}{% if cat.id == subcategory and cat.id not in displayed_categories %}{{cat.name }}{% endif%}{% set displayed_categories = displayed_categories|merge([cat.id]) %}{% endfor %}{% endfor %}</h6></div><div class="col-sm-4" style="margin-top:10px;"><a href="/themes/coworking/front/images/BUREAUX.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="row"><div class="container d-flex justify-content-center align-items-center"><ul id="progressbar"><li class="etape1" > <span> Type</span> </li><li class="active" > <span> Formule</span></li><li> Date </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" ><!-- <h5>Veuillez choisir un bureau :</h5><select name="select" id="select" class="form-control selectpiker"><option value="">Sélectionner votre choix </option>{% for bureau in products %}{% for cat in bureau.categoriesProduct %}{% if cat.id == subcategory %}<option value="{{bureau.id }}">BUREAU {{ bureau.name }}</option>{% endif %}{% endfor %}{% endfor %}</select>--><div id="form-attribue" style="line-height: 30px;" class="mt-4"><h5>Veuillez choisir une formule </h5>{% for attr in attributValues %}{% if attr.code == "simple" %}<div class="form-check" ><input class="form-check-input option radio1 " data-days="10" data-id="{{subcategory}}" data-name="{{subcategoryName}}" 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="{{subcategory}}" data-name="{{subcategoryName}}" data-price="{{attr.price}}" for="radio1">{{attr.attribut.name}}</label><br><small>{{attr.attribut.description}}</small></div>{% endif %}{% endfor %}{% set addedValues = [] %}{% 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" %}{% set optionId = attr.attribut.name ~ "-" ~ attr.attribut.description ~ "-" ~ subcategory ~ "-" ~ subcategoryName ~ "-" ~ attr.price %}{% if optionId not in addedValues %}{% set _ = addedValues|merge([optionId]) %}<option value="{{attr.attribut.name}}" data-days="{{attr.attribut.description}}" data-id="{{subcategory}}" data-name="{{subcategoryName}}" data-price="{{attr.price}}" >{{attr.attribut.name}}</option>{% endif %}{% endif %}{% endfor %}</select></div>{% endif %}{% for attr in attributValues %}{% if attr.code == "personalized" %}<div class="form-check"><input class="form-check-input option radio1 " data-days="30" data-id="{{subcategory}}" data-name="{{subcategoryName}}" {% if(attr.price is null) %} data-price="0" {% else %} data-price="{{attr.price}}" {% endif %} type="radio" name="radioGroup" {% if(attr.attribut.name=="Période personnalisée") %} value="Mois" {% else %} value="{{attr.attribut.name}}" {% endif %} id="radioMois" /><label class="form-check-label" data-days="30" data-id="{{subcategory}}" data-name="{{subcategoryName}}" {% if(attr.price is null) %} data-price="0" {% else %} data-price="{{attr.price}}" {% endif %} for="radio{{ attr.attribut.id}}"> {{ attr.attribut.name}} </label><br><small> {{ attr.attribut.description}}</small></div>{% endif %}{% endfor %}<h5 style="font-weight:bold; margin-top: 10px;">Services supplémentaires </h5><h6 style="font-weight:bold; margin-top: 10px;">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 class="col-sm-12"><small style="color:grey; margin-top: 5px;">Autre</small><input type="text" class="form-control" id="information" placeholder="Saisissez votre texte ici" style="height: 30px;border-radius: 4px;"></div>--><!-- <h5 style="font-weight:bold;margin-top: 10px; ">Informations additionnelles </h5><h6 style="font-weight:bold; margin-top: 10px;">Avez vous des demandes spécifiques ? </h6><textarea class="form-control" name="demande_specifique" id="textAreaExample1" rows="1" placeholder="Saisissez votre texte Ici" style="font-size: 12px;"></textarea>--><div class="message" style=" display: none;">Les Services supplémentaires sont indisponibles pour cette sélection.</div></div><div class="button-row"><a href="{{path("reservationbureaux")}}" class="btn-res text-center text-light text-uppercase bg-dark ReserveNext__" style=" border:1px solid #FFCB00 !important; color:black !important;background: #ffff !important;padding:10px; text-decoration:none; width:230px; font-size:12px; font-family:'PT Sans', sans-serif; letter-spacing:2px;">Étape précédente</a> <a href="{{path("reservationstep2office",{id:subcategory})}}" id="reservationLink" class="btn-res text-center text-light text-uppercase bg-dark ReserveNext__" style="background: #FFCB00 !important;padding:10px; text-decoration:none; width:230px; font-size:12px; font-family:'PT Sans', sans-serif; letter-spacing:2px;">Étape suivante</a></div></div></div></div></div></div></div></div></div></div><div id="panier" class="col-sm-4 reservation-steeps-panier" style="overflow-y: auto; ">{{render(path("ajax_cart"))}}</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 days=0;var selectedOption = document.getElementById('serviceFormule');var selected = selectedOption.value;if(selected != ""){days = selectedOption.options[selectedOption.selectedIndex].getAttribute('data-days');}else{var radioButtons = document.getElementsByName('radioGroup');for (var i = 0; i < radioButtons.length; i++) {if (radioButtons[i].checked) {days = parseInt(radioButtons[i].getAttribute('data-days'));break;}} }if (days === 0) {event.preventDefault(); // Empêche le lien de se déclencheralert("Vous n'avez rien sélectionné. Veuillez sélectionner une option.");}var link = document.getElementById('reservationLink');link.href = "{{ path('reservationstep2office', {id: subcategory, 'paramFormule': 'days'}) }}".replace('days', days);});$(document).ready(function(){/*$("#select").change(function(){var selectedValue = $(this).val();$.ajax({url: '/reservation/ajax-formule-reservation',type: 'GET', // ou 'GET' en fonction de votre besoindata: { office : selectedValue },success: function(response) {// Vider le contenu de la div #form-attribue$('#form-attribue').empty();setTimeout(function() {// Cacher la div loader après le délai spécifié (par exemple, 2 secondes)// Afficher le résultat dans la div$('#form-attribue').html(response);}, 1000); // Délai de 2 secondes (2000 millisecondes)},error: function(xhr, status, error) {// Gérez les erreurs iciconsole.error(error);}});});*/$('#serviceFormule').change(function(){var radio = document.getElementById('radio2');radio.checked = true;$('.Addons').show();$('.message').hide();});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;selectElement.val($('option:nth-child(1)').prop('selected', true));$('.Addons').show();$('.message').hide()}else if(radio.id === 'radio1'){$('.Addons').hide();$('.message').show();}else {selectElement.selectedIndex = 0; // Sélection du premier élémentselectElement.disabled = true;$('.Addons').show();$('.message').hide();}});});$('body').on("click",".option",function() {/*var selectedServiceIds = [];var formule ="";formule = $(".radio1").val();*/if ($(this).is(':checked')) {var formule = $(this).val();}$('.CK:checked').each(function() {// Ajouter l'ID du service sélectionné à la liste//selectedServiceIds.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 = [];if($("#serviceFormule").val() != "" || $("#radio3").val() != ""){if($("#serviceFormule").val() != "" ){formule =$("#serviceFormule").val();}else{formule = $(".radio1").val();}}// Parcourir toutes les cases cochées avec la classe CK$('.CK:checked').each(function() {// Ajouter l'ID du service sélectionné à la liste// selectedServiceIds.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).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'$('#form-attribue').on('click', 'label[for="service"]', 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($("#serviceFormule").val() != "" || $("#radio1").val() != ""){if($("#serviceFormule").val() != "" ){formule =$("#serviceFormule").val();}else if ($('#radio1').is(':checked')) {formule = $(".radio1").val();}else if ($('#radio1').is(':checked')) {formule = $("#radio1").val();}else if ($('#radioMois').is(':checked')) {formule = $("#radioMois").val();}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) {// alert(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 %}