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

Open in your IDE?
  1. {% extends 'admin/baseAdmin.html.twig' %}
  2. {% block page_title %}Modifier Hebergement {% endblock %}
  3. {% block breadcump_main %}Experiences{% endblock %}
  4. {% block breadcump_subtitle %}{{experience.title}}{% 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. {% endblock %}
  13. {% block content %}
  14.     <form id="form-general" class="general-info custom-validation" method="POST" action="{{ path('edit_hebergement',{'id':experience.id, 'heber':hebergement.id}) }}" enctype="multipart/form-data"  >
  15.         <div class="container-fluid">
  16.             <div class="row">
  17.                 <div class="col-xl-12 px-0">
  18.                     <div class="card">
  19.                         <div class="card-body">
  20.                             <div class="sm:p-4 p-2 pb-0 pt-1" >
  21.                                 <h5 class="text-lg font-semibold mt-2 mb-2 ">Image principale de l'Hebergement</h5>
  22.                                 <p class="pb-4 text-gray-700 text-sm">Ajouter L'image principale du l'Hebergement, qui s'affichera en premier </p>
  23.                                 <div  class="space-y-3 ">
  24.                                     <div class="m-auto my-1 relative ">
  25.                                         <label for="avatar-upload" class="relative flex justify-center" style="cursor: pointer;">
  26.                                             <img src="{{ asset(''~hebergement.image)}}" class="rounded-xl h-64 object-cover w-full" id="avatar-img">
  27.                                             <div class="h-10 w-10 bg-orange rounded-full flex  items-center justify-center" style="position: absolute;right: 43%;bottom: 4px;font-size: 43px;">
  28.                                                 <i class="bx bxs-image-alt text-xl text-white"></i>
  29.                                             </div>
  30.                                             <input type="file" id="avatar-upload" name="image" style="display: none;" accept="image/*" onchange="changeAvatar(event)">
  31.                                         </label>
  32.                                     </div>
  33.                                 </div>
  34.                             </div>
  35.                             <h5 class="text-lg font-semibold mt-5 ">Décription de l'hebergement</h5>
  36.                             <p class="text-gray-700 text-sm">Enregistrer les points fort de l'hebergement.</p>
  37.                             <div class="divider w-2/6 mt-1 mb-5"></div>
  38.                             <div class="row mb-4 text-sm  ">
  39.                                 <div class="flex items-center">
  40.                                     <p for="" class="form-label font-semibold col-3">Nom de la chambre</p>
  41.                                     <div class="form-floating mb-3 col-9">
  42.                                         <input value="{{ hebergement.name }}" required="" class="form-control"  id="floatingnameInput" type="text" name="name"  placeholder="Nom et Type de chambre pour l'hebergement">
  43.                                         <label for="floatingnameInput">Nom et Type de chambre de l'hebergement</label>
  44.                                     </div>
  45.                                 </div>
  46.                             </div>
  47.                             <div class="row mb-4 text-sm">
  48.                                 <div class=" flex ">
  49.                                     <p for="" class="form-label font-semibold col-3 "> Description et détails </p>
  50.                                     <div class="relative col-9">
  51.                                         <textarea  required="" class="form-control text-sm px-5" name="description" placeholder="Taper une petite description "
  52.                                                    id="floatingTextarea2" style="height: 100px">{{ hebergement.description }}</textarea>
  53.                                         <div class="absolute" style="top: 8px;left: 11px;color: #a1a1a1;">
  54.                                             <i class="bx bx-notepad text-2xl"></i>
  55.                                         </div>
  56.                                     </div>
  57.                                 </div>
  58.                             </div>
  59.                             <div class="row mb-4 text-sm">
  60.                                 <div class=" flex ">
  61.                                     <p for="autoSizingInputGroup" class="form-label font-semibold col-3 "> Prix d'une nuit </p>
  62.                                     <div class="relative col-9">
  63.                                         <div class="input-group">
  64.                                             <div class="input-group-text"><i class="bx bx-money text-2xl"></i></div>
  65.                                             <input required="" value="{{ hebergement.price }}" type="number" name="price"  class="form-control" id="autoSizingInputGroup" placeholder="Taper le prix de la chambre">
  66.                                         </div>
  67.                                     </div>
  68.                                 </div>
  69.                             </div>
  70.                             <div class="mt-2 gallery " id="form-gallery" action="" >
  71.                                 <h5 class="text-lg font-semibold  my-2 ">Images et medias</h5>
  72.                                 <p class="text-gray-700 text-sm">Ajouter des images de l'héberegement, Photos de la chambre, salle de bain... </p>
  73.                                 <div class="container mx-auto p-4">
  74.                                     <div id="imagePreviewContainer" class="border-2 border-dashed flex flex-wrap gap-4 grid grid-cols-1 lg:grid-cols-4 mb-4 md:grid-cols-3 sm:grid-cols-2 p-3 ">
  75.                                         <div class="text-ini flex flex-col justify-center items-center col-span-12 my-8">
  76.                                             {% if hebergement.medias|length > 0 %}
  77.                                                 <div class="row">
  78.                                                     {% for media in hebergement.medias %}
  79.                                                         <div class="text-center col-md-6">
  80.                                                             <img class="rounded me-2" alt="200x200" width="400" src="{{ asset(''~media.path)}}" data-holder-rendered="true">
  81.                                                             <a class="text-danger" href="javascript: void(0);"><i class="bx bx-trash-alt align-middle me-1"></i></a>
  82.                                                         </div>
  83.                                                     {% endfor %}
  84.                                                 </div>
  85.                                             {% else %}
  86.                                                 <i class="bx bx-image-alt text-gray-500 text-5xl pb-3"></i>
  87.                                                 <p class="col-span-full text-center text-gray-500">Aucune image enregistrer pour l'hebergement</p>
  88.                                             {% endif %}
  89.                                         </div>
  90.                                     </div>
  91.                                     <div class="col-span-12 mb-3">
  92.                                         <input name="medias[]" class="relative m-0 block w-full min-w-0 flex-auto cursor-pointer rounded border border-solid border-neutral-300 bg-clip-padding px-3 py-[0.32rem] font-normal leading-[2.15] text-neutral-700 transition duration-300 ease-in-out file:-mx-3 file:-my-[0.32rem] file:cursor-pointer file:overflow-hidden file:rounded-none file:border-0 file:border-solid file:border-inherit file:bg-neutral-100 file:px-3 file:py-[0.32rem] file:text-neutral-700 file:transition file:duration-150 file:ease-in-out file:[border-inline-end-width:1px] file:[margin-inline-end:0.75rem] hover:file:bg-neutral-200 focus:border-primary focus:text-neutral-700 focus:shadow-te-primary focus:outline-none dark:border-zinc-50 dark:text-zinc-200 dark:file:bg-zinc-50 dark:file:text-zinc-200 dark:focus:border-primary" id="formFileLg" type="file" multiple>
  93.                                     </div>
  94.                                 </div>
  95.                             </div>
  96.                             <div class="divider mt-20 mb-3"></div>
  97.                         </div>
  98.                         <!-- end card body -->
  99.                     </div>
  100.                     <div class="row">
  101.                         <div class="col-lg-12">
  102.                             <div class="card">
  103.                                 <div class="card-body">
  104.                                     <div class="flex mt-4 row">
  105.                                         <div class="col-md-6">
  106.                                             <p class="text-xs  text-gray-900 mb-2">En cliquant sur le bouton d'enregistrement, vous mettez à jours les informations
  107.                                                 enregistrer par ce formulaire </p>                                    </div>
  108.                                         <div class="col-md flex justify-end">
  109.                                             <button type="reset" style=" color: #ffaa00; border: 1px solid;" class="font-medium h-10  py-2.5 rounded-lg text-center text-sm  w-40 me-2">
  110.                                                 Annuler</button>
  111.                                             <button type="submit" style=" background: #ffaa00;" class="font-medium hover:bg-primary-700 h-10  py-2.5 rounded-lg text-center text-sm text-white w-40">Enregistrer</button>
  112.                                         </div>
  113.                                     </div>
  114.                                 </div>
  115.                             </div>
  116.                         </div>
  117.                     </div>
  118.                     <!-- end card -->
  119.                 </div>
  120.                 <!-- end col -->
  121.                 <!-- end col -->
  122.             </div>
  123.         </div> <!-- container-fluid -->
  124.     </form>
  125. {% endblock %}
  126. {% block javascripts %}
  127.     <!-- apexcharts -->
  128.     <script src="{{ asset('admin/libs/parsleyjs/parsley.min.js')}}"></script>
  129.     <script src="{{ asset('admin/libs/select2/js/select2.min.js')}}"></script>
  130.     <script src="{{ asset('admin/libs/bootstrap-maxlength/bootstrap-maxlength.min.js')}}"></script>
  131.     <script src="{{ asset('admin/js/pages/form-validation.init.js')}}"></script>
  132.     <script src="{{ asset('admin/js/app.js')}}"></script>
  133.     <script>
  134.                                                 /*
  135.                                                  Template Name: Skote - Admin & Dashboard Template
  136.                                                  Author: Themesbrand
  137.                                                  Website: https://themesbrand.com/
  138.                                                  Contact: themesbrand@gmail.com
  139.                                                  File: Form Advanced Js File
  140.                                                  */
  141.                                                 !function ($) {
  142.                                                     "use strict";
  143.                                                     var AdvancedForm = function () { };
  144.                                                     AdvancedForm.prototype.init = function () {
  145.                                                         // Select2
  146.                                                         if ($('.select2').length > 0) {
  147.                                                             $(".select2").select2();
  148.                                                         }
  149.                                                         if ($('.select2-tags').length > 0) {
  150.                                                             $(".select2-tags").select2({
  151.                                                                 tags: true
  152.                                                             });
  153.                                                         }
  154.                                                         if ($('.select2-limiting-3').length > 0) {
  155.                                                             $(".select2-limiting-3").select2({
  156.                                                                 maximumSelectionLength: 3
  157.                                                             });
  158.                                                         }
  159.                                                         //Bootstrap-MaxLength
  160.                                                         $('input#defaultconfig').maxlength({
  161.                                                             warningClass: "badge bg-info",
  162.                                                             limitReachedClass: "badge bg-warning"
  163.                                                         });
  164.                                                         $('input#thresholdconfig').maxlength({
  165.                                                             threshold: 20,
  166.                                                             warningClass: "badge bg-info",
  167.                                                             limitReachedClass: "badge bg-warning"
  168.                                                         });
  169.                                                         $('input#moreoptions').maxlength({
  170.                                                             alwaysShow: true,
  171.                                                             warningClass: "badge bg-success",
  172.                                                             limitReachedClass: "badge bg-danger"
  173.                                                         });
  174.                                                         $('input#alloptions').maxlength({
  175.                                                             alwaysShow: true,
  176.                                                             warningClass: "badge bg-success",
  177.                                                             limitReachedClass: "badge bg-danger",
  178.                                                             separator: ' out of ',
  179.                                                             preText: 'You typed ',
  180.                                                             postText: ' chars available.',
  181.                                                             validate: true
  182.                                                         });
  183.                                                         $('textarea#textarea').maxlength({
  184.                                                             alwaysShow: true,
  185.                                                             warningClass: "badge bg-info",
  186.                                                             limitReachedClass: "badge bg-warning"
  187.                                                         });
  188.                                                         $('input#placement').maxlength({
  189.                                                             alwaysShow: true,
  190.                                                             placement: 'top-left',
  191.                                                             warningClass: "badge bg-info",
  192.                                                             limitReachedClass: "badge bg-warning"
  193.                                                         });
  194.                                                     },
  195.                                                             //init
  196.                                                             $.AdvancedForm = new AdvancedForm, $.AdvancedForm.Constructor = AdvancedForm
  197.                                                 }(window.jQuery),
  198.                                                         //Datepicker
  199.                                                                 function ($) {
  200.                                                                     "use strict";
  201.                                                                     $.AdvancedForm.init();
  202.                                                                 }(window.jQuery);
  203.     </script>
  204. {% endblock %}