templates/admin/experience/edit/editAvailability.html.twig line 1

Open in your IDE?
  1. {% extends 'admin/baseAdmin.html.twig' %}
  2. {% block page_title %}Modifier la Disponibilité {% endblock %}
  3. {% block breadcump_main %}Experience{% endblock %}
  4. {% block breadcump_subtitle %}{% endblock %}
  5. {% block menu_left_sidebar %}
  6.     {% include 'include/menu/menuAdmin.html.twig' with { menu_active_event : '2'} %}
  7. {% endblock %}
  8. {% block stylesheets %}
  9.     <link href="{{ asset('admin/libs/select2/css/select2.min.css') }}" rel="stylesheet" type="text/css">
  10.     <link href="{{ asset('admin/css/tailwind.min.css') }}" rel="stylesheet" type="text/css">
  11.     <link href="{{ asset('admin/css/tailwind2.css') }}" rel="stylesheet" type="text/css">
  12.     <link href="{{ asset('admin/libs/bootstrap-datepicker/css/bootstrap-datepicker.min.css') }}" rel="stylesheet" type="text/css">
  13.     <link href="{{ asset('admin/libs/@chenfengyuan/datepicker/datepicker.min.css') }}" rel="stylesheet" type="text/css">
  14.     <style>div .card-radio-input:checked+.card-radio {
  15.             border-color: #7bc2a8 !important;
  16.         }
  17.         div .text-primary {
  18.             color: #7bc2a8 !important;
  19.         }
  20.     </style>
  21. {% endblock %}
  22. {% block content %}
  23.     <form id="form-general" class="general-info custom-validation" method="POST" action="{{ path('edit_availability',{'id':experience.id}) }}" enctype="multipart/form-data"  >
  24.         <div class="container-fluid">
  25.             <div class="row">
  26.                 <div class="col-xl-12 px-0">
  27.                     <div class="card">
  28.                         <div class="card-body">
  29.                             <div class="card-body">
  30.                                 <div class="text-center">
  31.                                     <div class="avatar-sm mx-auto mb-4">
  32.                                         <span class="avatar-title rounded-circle bg-primary-subtle font-size-24">
  33.                                             <i class="mdi mdi-calendar-check  text-white"></i>
  34.                                         </span>
  35.                                     </div>
  36.                                     <p class="font-16 text-muted mb-2"></p>
  37.                                     <h5><a href="javascript: void(0);" class="text-dark">Disponibilité - <span class="text-muted font-16">Calendrier et dates</span> </a></h5>
  38.                                     <p class="text-muted">Personnaliser la disponilbilité de vos experiences selon vos besoins, cette outils vous permet d'administrer votre calendrier de date de disponiilité en choisissant le type de diponibilité qui vous convient :</p>
  39.                                     <a href="javascript: void(0);" class="text-primary font-16">Learn more <i class="mdi mdi-chevron-right"></i></a>
  40.                                 </div>
  41.                                 <div class="row mt-4">
  42.                                     <div class="col-4">
  43.                                         <div class="social-source text-center mt-3">
  44.                                             <div class="avatar-xs mx-auto mb-3">
  45.                                                 <span class="avatar-title rounded-circle bg-primary font-size-16">
  46.                                                     <i class="mdi mdi-flash text-white"></i>
  47.                                                 </span>
  48.                                             </div>
  49.                                             <h5 class="font-size-15">Réservations instantanés</h5>
  50.                                             <p class="text-muted mb-0">Vous accepter de recevoir des réservations à partir d'une journée avant la date de départ de la réservation.</p>
  51.                                         </div>
  52.                                     </div>
  53.                                     <div class="col-4">
  54.                                         <div class="social-source text-center mt-3">
  55.                                             <div class="avatar-xs mx-auto mb-3">
  56.                                                 <span class="avatar-title rounded-circle bg-info font-size-16">
  57.                                                     <i class="mdi mdi-calendar-start text-white"></i>
  58.                                                 </span>
  59.                                             </div>
  60.                                             <h5 class="font-size-15">Reservation avancée</h5>
  61.                                             <p class="text-muted mb-0">Définir le nombre de jours tolérer pour ouvrir la disponibilité pour accepter les réservation.</p>
  62.                                         </div>
  63.                                     </div>
  64.                                     <div class="col-4">
  65.                                         <div class="social-source text-center mt-3">
  66.                                             <div class="avatar-xs mx-auto mb-3">
  67.                                                 <span class="avatar-title rounded-circle bg-pink font-size-16">
  68.                                                     <i class="mdi mdi-calendar text-white"></i>
  69.                                                 </span>
  70.                                             </div>
  71.                                             <h5 class="font-size-15">Calendrier de disponibilité</h5>
  72.                                             <p class="text-muted mb-0">Enregistrer la durée et les dates de départ de l'éxperience pour metre enligne la disponibilité </p>
  73.                                         </div>
  74.                                     </div>
  75.                                 </div>
  76.                             </div>
  77.                         </div>
  78.                         <!-- end card -->
  79.                     </div>
  80.                     <div class="sm:p-4 p-2 pb-0 pt-1">
  81.                         <form class="disponibilite" id="form-disponibilite" >
  82.                             <div class="card">
  83.                                 <div class="card-body">
  84.                                     <div class="row mt-4">
  85.                                         <div class="col-12">
  86.                                             <div class="social-source px-5 text-center mb-6">
  87.                                                 <div class="avatar-xs mx-auto mb-3">
  88.                                                     <span class="avatar-title rounded-circle bg-primary font-size-16">
  89.                                                         <i class="mdi mdi-calendar-check  text-white"></i>
  90.                                                     </span>
  91.                                                 </div>
  92.                                                 <h5 class="font-size-15">Dates de disponibilités</h5>
  93.                                                 <p class="text-muted mb-6">Séléctionner les dates de disponibiités et choisisser les dates de départ de <br>l'éxperience et le nombre de jours de l'éxperience.</p>
  94.                                             </div>
  95.                                         </div>
  96.                                         <div class="col-8  mb-4  m-auto mt-3">
  97.                                             <label  class="form-label">Durrée de l'éxperience</label>
  98.                                             <input value="{{ experience.availability.duration }}" required="" name="duration" data-toggle="touchspin" type="number" value="1">
  99.                                             <span class="text-muted  mb-8">Nombres de jours, e.g : 3 jours</span>
  100.                                         </div>
  101.                                         <div class="col-8 m-auto mt-3">
  102.                                             <div class="mb-2 row">
  103.                                                 <div class="col-12"  style="background: #edf6f3;border-radius: 4px;">
  104.                                                     <div class="px-4 mt-4">
  105.                                                         <div class="d-flex gap-2 flex-wrap mb-3">
  106.                                                             <div  data-bs-toggle="collapse" href="#availabilitytype" aria-expanded="false" aria-controls="availabilitytype"   class="form-check form-radio-success mb-3">
  107.                                                                 <input {% if experience.availability.availabilitytype =="1"  %}checked="" {% endif %}value="1" class="form-check-input" type="radio" name="availabilitytype" id="formRadioColor3" >
  108.                                                                 <label class="form-check-label" for="formRadioColor3">
  109.                                                                     CALENDRIER DE DISPONIBILITÉ : Dates de départ
  110.                                                                 </label>
  111.                                                             </div>
  112.                                                         </div>
  113.                                                         <div class="collapse {% if experience.availability.availabilitytype =="1"  %}show {% endif %}" id="availabilitytype">
  114.                                                             <div style="background: #edf6f3;"  class="card border shadow-none card-body text-muted mb-0">
  115.                                                                 <label for="formrow-email-input" class="form-label">Dates de départ de l'éxperience</label>
  116.                                                                 <div class="input-group  mb-2" id="datepicker3">
  117.                                                                     <input value="{% for datestart in experience.availability.datesstart %}{{ datestart }}{% endfor %}"  name="availabilities[]" type="text" class="form-control" placeholder="dd M, yyyy"
  118.                                                                            data-provide="datepicker" data-date-container='#datepicker3' data-date-format="dd M, yyyy"
  119.                                                                            data-date-multidate="true">
  120.                                                                     <span class="input-group-text"><i class="mdi mdi-calendar"></i></span>
  121.                                                                 </div>
  122.                                                                 <span class="text-muted  mb-8">Les dates que vous selectionés seront les dates de départ de votre éxperience.</span>                                                
  123.                                                             </div>
  124.                                                         </div>
  125.                                                     </div>
  126.                                                 </div>
  127.                                             </div>
  128.                                             <div class="row">
  129.                                                 <div class="col-12" style="background: #efedf6;border-radius: 4px;" >
  130.                                                     <div class="px-4 mt-4">
  131.                                                         <div class="d-flex gap-2 flex-wrap mb-3">
  132.                                                             <div  data-bs-toggle="collapse" href="#availabilitytype" aria-expanded="false" aria-controls="availabilitytype"   class="form-check form-radio-success mb-3">
  133.                                                                 <input {% if experience.availability.availabilitytype =="2"  %}checked="" {% endif %} value="2" class="form-check-input" type="radio" name="availabilitytype" id="formRadioColor4" >
  134.                                                                 <label class="form-check-label" for="formRadioColor4">
  135.                                                                     CALENDRIER OUVERTE : Dates d'indisponibilité
  136.                                                                 </label>
  137.                                                             </div>
  138.                                                         </div>
  139.                                                         <div class="collapse{% if experience.availability.availabilitytype =="2"  %} show {% endif %}" id="availabilitytype">
  140.                                                             <div style="background: #efedf6;"  class="card border shadow-none card-body text-muted mb-0">
  141.                                                                 <label class="form-label"> Insérer les dates indisponible</label>
  142.                                                                 <div class="input-group  mb-2" id="datepicker4">
  143.                                                                     <input value="{% for unavailability in experience.availability.unavailabilities %}{{ unavailability}}{% endfor %}" name="unavailabilities[]" type="text" class="form-control" placeholder="dd M, yyyy"
  144.                                                                            data-provide="datepicker" data-date-container='#datepicker4' data-date-format="dd M, yyyy"
  145.                                                                            data-date-multidate="true">
  146.                                                                     <span class="input-group-text"><i class="mdi mdi-calendar"></i></span>
  147.                                                                 </div>
  148.                                                                 <span class="text-muted  mb-8">Les autres dates non sélectionnée seront par défaut disponible au calendrier de réservation.</span>                                                   
  149.                                                             </div>
  150.                                                         </div>
  151.                                                     </div>
  152.                                                 </div>
  153.                                             </div>
  154.                                         </div>
  155.                                     </div>
  156.                                 </div>
  157.                             </div>
  158.                             <div class="card">
  159.                                 <div class="card-body">
  160.                                     <div class="row text-center">
  161.                                         <h5 class="font-size-15">Planification de périodes de réservations</h5>
  162.                                         <p class="card-title-desc">
  163.                                             Vous voulez avoir des réservation avant la date de départ <code> à partir de ?</code>
  164.                                         </p>
  165.                                         <div class="row">
  166.                                             <div class="col-xl-3 col-sm-4">
  167.                                                 <div class="mb-3">
  168.                                                     <label class="card-radio-label mb-2">
  169.                                                         <input {% if experience.availability.daysbefore =="1"  %}checked="" {% endif %}  value="1" type="radio" name="daysbefore" id="buycurrencyoption1" class="card-radio-input">
  170.                                                         <div class="card-radio">
  171.                                                             <div>
  172.                                                                 <i class="mdi mdi-flash font-size-24 text-primary align-middle me-2"></i>
  173.                                                                 <span>1 Journée</span>
  174.                                                             </div>
  175.                                                         </div>
  176.                                                         <p><small>Réservations Dérniere minute</small></p>
  177.                                                     </label>
  178.                                                 </div>
  179.                                             </div>
  180.                                             <div class="col-xl-3 col-sm-4">
  181.                                                 <div class="mb-3">
  182.                                                     <label class="card-radio-label mb-2">
  183.                                                         <input {% if experience.availability.daysbefore =="2"  %}checked="" {% endif %} value="2" type="radio" name="daysbefore" id="buycurrencyoption2" class="card-radio-input" >
  184.                                                         <div class="card-radio">
  185.                                                             <div>
  186.                                                                 <i class="mdi mdi-chevron-right font-size-24 text-primary align-middle me-2"></i>
  187.                                                                 <span>2 jours</span>
  188.                                                             </div>
  189.                                                         </div>
  190.                                                     </label>
  191.                                                 </div>
  192.                                             </div>
  193.                                             <div class="col-xl-3 col-sm-4">
  194.                                                 <div class="mb-3">
  195.                                                     <label class="card-radio-label mb-2">
  196.                                                         <input {% if experience.availability.daysbefore =="3"  %}checked="" {% endif %} value="3" type="radio" name="daysbefore" id="buycurrencyoption3" class="card-radio-input">
  197.                                                         <div class="card-radio">
  198.                                                             <div>
  199.                                                                 <i class="mdi mdi-chevron-right font-size-24 text-primary align-middle me-2"></i>
  200.                                                                 <span>3 Jours</span>
  201.                                                             </div>
  202.                                                         </div>
  203.                                                     </label>
  204.                                                 </div>
  205.                                             </div>
  206.                                             <div class="col-xl-3 col-sm-4">
  207.                                                 <div class="mb-3">
  208.                                                     <label class="card-radio-label mb-2">
  209.                                                         <input {% if experience.availability.daysbefore =="7"  %}checked="" {% endif %} value="7" type="radio" name="daysbefore" id="buycurrencyoption4" class="card-radio-input">
  210.                                                         <div class="card-radio">
  211.                                                             <div>
  212.                                                                 <i class="mdi mdi-chevron-right font-size-24 text-primary align-middle me-2"></i>
  213.                                                                 <span>1 semaine</span>
  214.                                                             </div>
  215.                                                         </div>
  216.                                                     </label>
  217.                                                 </div>
  218.                                             </div>
  219.                                             <div class="col-xl-3 col-sm-4">
  220.                                                 <div class="mb-3">
  221.                                                     <label class="card-radio-label mb-2">
  222.                                                         <input {% if experience.availability.daysbefore =="15"  %}checked="" {% endif %} value="15" type="radio" name="daysbefore" id="buycurrencyoption5" class="card-radio-input">
  223.                                                         <div class="card-radio">
  224.                                                             <div>
  225.                                                                 <i class="mdi mdi-chevron-right font-size-24 text-primary align-middle me-2"></i>
  226.                                                                 <span>15 jours</span>
  227.                                                             </div>
  228.                                                         </div>
  229.                                                     </label>
  230.                                                 </div>
  231.                                             </div>
  232.                                             <div class="col-xl-3 col-sm-4">
  233.                                                 <div class="mb-3">
  234.                                                     <label class="card-radio-label mb-2">
  235.                                                         <input {% if experience.availability.daysbefore =="30"  %}checked="" {% endif %} value="30" type="radio" name="daysbefore" id="buycurrencyoption6" class="card-radio-input">
  236.                                                         <div class="card-radio">
  237.                                                             <div>
  238.                                                                 <i class="mdi mdi-chevron-right font-size-24 text-primary align-middle me-2"></i>
  239.                                                                 <span>30 jours</span>
  240.                                                             </div>
  241.                                                         </div>
  242.                                                     </label>
  243.                                                 </div>
  244.                                             </div>
  245.                                         </div>
  246.                                     </div>
  247.                                 </div>
  248.                             </div>
  249.                             <div class="card">
  250.                                 <div class="card-body">
  251.                                     <div class="flex mt-4 row pt-3">
  252.                                         <div class="col-md-6">
  253.                                             <p class="text-xs  text-gray-900 mb-2">En cliquant sur le bouton de Suivant, vous mettez à jours les informations envoyé dans ce formulaire </p>
  254.                                         </div>
  255.                                         <div class="col-md flex justify-end">
  256.                                             <button type="" style=" color: #ffaa00; border: 1px solid;" class="font-medium h-10 cursor-pointer   py-2.5 rounded-lg text-center text-sm  w-40 me-2">
  257.                                                 Précédant</button>
  258.                                             <button type="" style=" background: #ffaa00;" class="font-medium hover:bg-primary-700 h-10 cursor-pointer   py-2.5 rounded-lg text-center text-sm text-white w-40">Enregistrer</button>
  259.                                         </div>
  260.                                     </div>
  261.                                 </div>
  262.                             </div>
  263.                     </div>
  264.                 </div>
  265.                 <!-- end card body -->
  266.                 <!-- end col -->
  267.             </div>
  268.         </div> <!-- container-fluid -->
  269.     </div>
  270.     <!-- End Page-content -->
  271. </form>
  272. {% endblock %}
  273. {% block javascripts %}
  274.     <!-- apexcharts -->
  275.     <script src="{{ asset('admin/libs/parsleyjs/parsley.min.js')}}"></script>
  276.     <script src="{{ asset('admin/libs/select2/js/select2.min.js')}}"></script>
  277.     <script src="{{ asset('admin/libs/bootstrap-maxlength/bootstrap-maxlength.min.js')}}"></script>
  278.     <script src="{{ asset('admin/libs/bootstrap-datepicker/js/bootstrap-datepicker.min.js')}}"></script>
  279.     <script src="{{ asset('admin/libs/@chenfengyuan/datepicker/datepicker.min.js')}}"></script>
  280.     <script src="{{ asset('admin/libs/bootstrap-touchspin/jquery.bootstrap-touchspin.min.js')}}"></script>
  281.     <script src="{{ asset('admin/js/pages/form-validation.init.js')}}"></script>
  282.     <script src="{{ asset('admin/js/app.js')}}"></script>
  283.     <script>
  284.         /*
  285.          Template Name: Skote - Admin & Dashboard Template
  286.          Author: Themesbrand
  287.          Website: https://themesbrand.com/
  288.          Contact: themesbrand@gmail.com
  289.          File: Form Advanced Js File
  290.          */
  291.         !function ($) {
  292.             "use strict";
  293.             var AdvancedForm = function () { };
  294.             AdvancedForm.prototype.init = function () {
  295.                 // Select2
  296.                 if ($('.select2').length > 0) {
  297.                     $(".select2").select2();
  298.                 }
  299.                 if ($('.select2-tags').length > 0) {
  300.                     $(".select2-tags").select2({
  301.                         tags: true
  302.                     });
  303.                 }
  304.                 if ($('.select2-limiting-3').length > 0) {
  305.                     $(".select2-limiting-3").select2({
  306.                         maximumSelectionLength: 3
  307.                     });
  308.                 }
  309.                 //Bootstrap-MaxLength
  310.                 $('input#defaultconfig').maxlength({
  311.                     warningClass: "badge bg-info",
  312.                     limitReachedClass: "badge bg-warning"
  313.                 });
  314.                 $('input#thresholdconfig').maxlength({
  315.                     threshold: 20,
  316.                     warningClass: "badge bg-info",
  317.                     limitReachedClass: "badge bg-warning"
  318.                 });
  319.                 $('input#moreoptions').maxlength({
  320.                     alwaysShow: true,
  321.                     warningClass: "badge bg-success",
  322.                     limitReachedClass: "badge bg-danger"
  323.                 });
  324.                 $('input#alloptions').maxlength({
  325.                     alwaysShow: true,
  326.                     warningClass: "badge bg-success",
  327.                     limitReachedClass: "badge bg-danger",
  328.                     separator: ' out of ',
  329.                     preText: 'You typed ',
  330.                     postText: ' chars available.',
  331.                     validate: true
  332.                 });
  333.                 $('textarea#textarea').maxlength({
  334.                     alwaysShow: true,
  335.                     warningClass: "badge bg-info",
  336.                     limitReachedClass: "badge bg-warning"
  337.                 });
  338.                 $('input#placement').maxlength({
  339.                     alwaysShow: true,
  340.                     placement: 'top-left',
  341.                     warningClass: "badge bg-info",
  342.                     limitReachedClass: "badge bg-warning"
  343.                 });
  344. //Bootstrap-TouchSpin
  345.                 var defaultOptions = {
  346.                 };
  347.                 // touchspin
  348.                 $('[data-toggle="touchspin"]').each(function (idx, obj) {
  349.                     var objOptions = $.extend({}, defaultOptions, $(obj).data());
  350.                     $(obj).TouchSpin(objOptions);
  351.                 });
  352.                 $("input[name='demo3_21']").TouchSpin({
  353.                     initval: 40,
  354.                     buttondown_class: "btn btn-primary",
  355.                     buttonup_class: "btn btn-primary"
  356.                 });
  357.                 $("input[name='demo3_22']").TouchSpin({
  358.                     initval: 40,
  359.                     buttondown_class: "btn btn-primary",
  360.                     buttonup_class: "btn btn-primary"
  361.                 });
  362.                 $("input[name='demo_vertical']").TouchSpin({
  363.                     verticalbuttons: true
  364.                 });
  365.                 //Bootstrap-MaxLength
  366.                 $('input#defaultconfig').maxlength({
  367.                     warningClass: "badge bg-info",
  368.                     limitReachedClass: "badge bg-warning"
  369.                 });
  370.                 $('input#thresholdconfig').maxlength({
  371.                     threshold: 20,
  372.                     warningClass: "badge bg-info",
  373.                     limitReachedClass: "badge bg-warning"
  374.                 });
  375.                 $('input#moreoptions').maxlength({
  376.                     alwaysShow: true,
  377.                     warningClass: "badge bg-success",
  378.                     limitReachedClass: "badge bg-danger"
  379.                 });
  380.                 $('input#alloptions').maxlength({
  381.                     alwaysShow: true,
  382.                     warningClass: "badge bg-success",
  383.                     limitReachedClass: "badge bg-danger",
  384.                     separator: ' out of ',
  385.                     preText: 'You typed ',
  386.                     postText: ' chars available.',
  387.                     validate: true
  388.                 });
  389.                 $('textarea#textarea').maxlength({
  390.                     alwaysShow: true,
  391.                     warningClass: "badge bg-info",
  392.                     limitReachedClass: "badge bg-warning"
  393.                 });
  394.                 $('input#placement').maxlength({
  395.                     alwaysShow: true,
  396.                     placement: 'top-left',
  397.                     warningClass: "badge bg-info",
  398.                     limitReachedClass: "badge bg-warning"
  399.                 });
  400.             },
  401.                     //init
  402.                     $.AdvancedForm = new AdvancedForm, $.AdvancedForm.Constructor = AdvancedForm
  403.         }(window.jQuery),
  404.                 //Datepicker
  405.                         function ($) {
  406.                             "use strict";
  407.                             $.AdvancedForm.init();
  408.                         }(window.jQuery);
  409.     </script>
  410. {% endblock %}