templates/shop/new.html.twig line 1

  1. {% extends 'base2.html.twig' %}
  2. {% block title %}New Shop{% endblock %}
  3. {% block body %}
  4. {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
  5. {# Début de mon formulaire #}
  6. <div
  7.       class="dark:bg-background lg:ml-42 ml-0 mt-0 min-h-[calc(100vh-80px)] p-7"
  8.     >
  9. <section class="dark:bg-background">
  10. <div class="container mx-auto">
  11. {# templates/author/validation.html.twig #}
  12. {# DEBUT partie création du compte utilisateur #}
  13. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  14.       <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">
  15.         Création du compte utilisateur
  16.       </h4>
  17.       <div class="grid lg:grid-cols-2 grid-cols-1 gap-7">
  18.         {# DEBUT champ Prénom #}
  19.         <div class="lg:col-span-1 col-span-2">
  20.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  21.             {{ form_label(form.users.firstName) }}
  22.           </div>
  23.             {{ form_widget(form.users.firstName) }}
  24.           <div class="text-red-500 text-xs italic">
  25.             {{ form_errors(form.users.firstName) }}
  26.           </div>  
  27.         </div>
  28.         {# DEBUT champ Nom #}
  29.         <div class="lg:col-span-1 col-span-2">
  30.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  31.             {{ form_label(form.users.lastName) }}
  32.           </div>
  33.             {{ form_widget(form.users.lastName) }}
  34.           <div class="text-red-500 text-xs italic">
  35.             {{ form_errors(form.users.lastName) }}
  36.           </div>         
  37.         </div>
  38.         {# DEBUT champ email #}
  39.         <div class="lg:col-span-1 col-span-2">
  40.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  41.             {{ form_label(form.users.email) }}
  42.           </div>
  43.             {{ form_widget(form.users.email) }}
  44.           <div class="text-red-500 text-xs italic">
  45.             {{ form_errors(form.users.email) }}
  46.           </div>  
  47.         </div>
  48.         {# DEBUT champ téléphone #}
  49.         <div class="lg:col-span-1 col-span-2">
  50.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  51.             {{ form_label(form.users.phoneNumber) }}
  52.           </div>
  53.             {{ form_widget(form.users.phoneNumber) }}
  54.           <div class="text-red-500 text-xs italic">
  55.             {{ form_errors(form.users.phoneNumber) }}
  56.           </div>         
  57.         </div>
  58.         {# DEBUT champ password #}
  59.         <div class="lg:col-span-1 col-span-2">
  60.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  61.             {{ form_label(form.users.password) }}
  62.           </div>
  63.             {{ form_widget(form.users.password) }}
  64.           <div class="text-red-500 text-xs italic">
  65.             {{ form_errors(form.users.password) }}
  66.           </div>  
  67.         </div>
  68.         {# DEBUT champ password_confirmed #}
  69.         <div class="lg:col-span-1 col-span-2">
  70.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  71.             {{ form_label(form.users.password_confirmed) }}
  72.           </div>
  73.             {{ form_widget(form.users.password_confirmed) }}
  74.           <div class="text-red-500 text-xs italic">
  75.             {{ form_errors(form.users.password_confirmed) }}
  76.           </div>         
  77.         </div>
  78.         
  79.       </div>
  80. </div>
  81. {# FIN partie création du compte utilisateur #}
  82. {# DEBUT partie informations générales #}
  83. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  84.       <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">
  85.         Informations de base
  86.       </h4>
  87.       <div class="grid lg:grid-cols-2 grid-cols-1 gap-7">
  88.         {# DEBUT champ myBusiness #}
  89.         <div class="col-span-2">
  90.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  91.             {{ form_label(form.myBusiness) }}
  92.           </div>
  93.           {{ form_widget(form.myBusiness, {'id': 'myBusinessField'}) }}
  94.           <p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>
  95.             Cet information permet de renseigner automatiquement certains champs et affiche vos horaires d'ouverture sur votre fiche. </br>
  96.             Pour récupérer votre ID Google My Business : <a href='https://www.google.fr/' target="_blank" class='text-sky-500'> cliquez ici &larr;    </a>
  97.           </p>
  98.           <div class="text-red-500 text-xs italic">
  99.             {{ form_errors(form.myBusiness) }}
  100.           </div>
  101.         </div>
  102.         {# DEBUT champ nom #}
  103.         <div id="shopName" class="col-span-2">
  104.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  105.             {{ form_label(form.name) }}
  106.           </div>
  107.             {{ form_widget(form.name) }}
  108.           <div class="text-red-500 text-xs italic">
  109.             {{ form_errors(form.name) }}
  110.           </div>  
  111.         </div>
  112.         
  113.         {# DEBUT champ sous-titre #}
  114.         <div class="col-span-2">
  115.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  116.             {{ form_label(form.subtitle) }}
  117.           </div>
  118.             {{ form_widget(form.subtitle) }}
  119.           <p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>
  120.           Le sous-titre doit comporter entre 10 et 90 caractères.
  121.           <span id="subtitle-character-color">
  122.               <span id="subtitle-character-count">0</span> caractères
  123.           </span>
  124.           </p>
  125.           <div class="text-red-500 text-xs italic">
  126.             {{ form_errors(form.subtitle) }}
  127.           </div>  
  128.         </div>
  129.         {# DEBUT champ email #}
  130.         <div class="lg:col-span-1 col-span-2">
  131.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  132.             {{ form_label(form.email) }}
  133.           </div>
  134.             {{ form_widget(form.email) }}
  135.           <div class="text-red-500 text-xs italic">
  136.             {{ form_errors(form.email) }}
  137.           </div>  
  138.         </div>
  139.         {# DEBUT champ téléphone #}
  140.         <div id="shopPhone" class="lg:col-span-1 col-span-2">
  141.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  142.             {{ form_label(form.phoneNumber) }}
  143.           </div>
  144.             {{ form_widget(form.phoneNumber) }}
  145.           <div class="text-red-500 text-xs italic">
  146.             {{ form_errors(form.phoneNumber) }}
  147.           </div>         
  148.         </div>
  149.       </div>
  150. </div>
  151. {# FIN partie informations générales #}
  152. {# DEBUT partie localisation du commerce #}
  153. <div id="shopLocation" class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  154.       <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">
  155.         Localiser votre commerce
  156.       </h4>
  157.       <div class="grid lg:grid-cols-2 grid-cols-1 gap-7">
  158.         <div class="col-span-2">
  159.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  160.             {{ form_label(form.adressStreet) }}
  161.           </div>
  162.             {{ form_widget(form.adressStreet) }}
  163.           <div class="text-red-500 text-xs italic">
  164.             {{ form_errors(form.adressStreet) }}
  165.           </div>
  166.         </div>
  167.         <div class="col-span-2">
  168.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  169.             {{ form_label(form.adressStreet2) }}
  170.           </div>
  171.             {{ form_widget(form.adressStreet2) }}
  172.           <div class="text-red-500 text-xs italic">
  173.           </div>
  174.         </div>
  175.         <div class="lg:col-span-1 col-span-2">
  176.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  177.             {{ form_label(form.addressPostalCode) }}
  178.           </div>
  179.             {{ form_widget(form.addressPostalCode) }}
  180.           <div class="text-red-500 text-xs italic">
  181.             {{ form_errors(form.addressPostalCode) }}
  182.           </div>
  183.         </div>
  184.         <div class="lg:col-span-1 col-span-2">
  185.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  186.             {{ form_label(form.addressCity) }}
  187.           </div>
  188.             {{ form_widget(form.addressCity) }}
  189.           <div class="text-red-500 text-xs italic">
  190.             {{ form_errors(form.addressCity) }}
  191.           </div>
  192.         </div>
  193.         <div class="lg:col-span-1 col-span-2">
  194.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  195.             {{ form_label(form.latitude) }}
  196.           </div>
  197.             {{ form_widget(form.latitude) }}
  198.             <p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>
  199.               Pour obtenir les coordonnées GPS de votre adresse : <a href='https://www.coordonnees-gps.fr/' target="_blank" class='text-sky-500'> cliquez ici &larr;    </a>
  200.             </p>
  201.           <div class="text-red-500 text-xs italic">
  202.             {{ form_errors(form.latitude) }}
  203.           </div>
  204.         </div>
  205.         <div class="lg:col-span-1 col-span-2">
  206.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  207.             {{ form_label(form.longitude) }}
  208.           </div>
  209.             {{ form_widget(form.longitude) }}
  210.             <p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>
  211.               Pour obtenir les coordonnées GPS de votre adresse : <a href='https://www.coordonnees-gps.fr/' target="_blank" class='text-sky-500'> cliquez ici &larr;    </a>
  212.             </p>
  213.           <div class="text-red-500 text-xs italic">
  214.             {{ form_errors(form.longitude) }}
  215.           </div>
  216.         </div>
  217.       </div>
  218. </div>
  219. {# FIN partie localisation du commerce #}
  220. {# DEBUT partie à propos du commerce #}
  221. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  222.       <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">
  223.         Les détails de votre commerce
  224.       </h4>
  225.       <div class="grid lg:grid-cols-2 grid-cols-1 gap-7">
  226.         <div class="col-span-2">
  227.                       <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  228.             {{ form_label(form.about) }}
  229.           </div>
  230.             {{ form_widget(form.about) }}
  231.             <p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>
  232.               Votre texte de description peut comporter 1000 caractères maximum.
  233.                 <span id="about-character-color">
  234.                   <span id="character-count">0</span> caractères
  235.                 </span>
  236.             </p>
  237.           <div class="text-red-500 text-xs italic">
  238.             {{ form_errors(form.about) }}
  239.           </div>
  240.         </div>
  241.         
  242.         <div class="lg:col-span-1 col-span-2">
  243.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  244.             {{ form_label(form.facebook) }}
  245.           </div>
  246.             {{ form_widget(form.facebook) }}
  247.           <div class="text-red-500 text-xs italic">
  248.             {{ form_errors(form.facebook) }}
  249.           </div>
  250.         </div>
  251.         <div class="lg:col-span-1 col-span-2">
  252.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  253.             {{ form_label(form.twitter) }}
  254.           </div>
  255.             {{ form_widget(form.twitter) }}
  256.           <div class="text-red-500 text-xs italic">
  257.             {{ form_errors(form.twitter) }}
  258.           </div>
  259.         </div>
  260.         <div class="lg:col-span-1 col-span-2">
  261.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  262.             {{ form_label(form.linkedin) }}
  263.           </div>
  264.             {{ form_widget(form.linkedin) }}
  265.           <div class="text-red-500 text-xs italic">
  266.             {{ form_errors(form.linkedin) }}
  267.           </div>
  268.         </div>
  269.         <div class="lg:col-span-1 col-span-2">
  270.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  271.             {{ form_label(form.instagram) }}
  272.           </div>
  273.             {{ form_widget(form.instagram) }}
  274.           <div class="text-red-500 text-xs italic">
  275.             {{ form_errors(form.instagram) }}
  276.           </div>
  277.         </div>
  278.         <div id="shopWebsite" class="lg:col-span-1 col-span-2">
  279.           {{ form_row(form.website) }}
  280.         </div>
  281.       </div>
  282.     </div>
  283. {# FIN partie à propos du commerce #}
  284. {# DEBUT partie photos du commerce #}
  285. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  286.       <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">
  287.         Les photos de votre commerce
  288.       </h4>
  289.       
  290.       <div class="grid lg:grid-cols-2 grid-cols-1 gap-7">
  291.         <div class="lg:col-span-1 col-span-2">
  292.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  293.             {{ form_label(form.picture1) }}
  294.           </div>
  295.             {{ form_widget(form.picture1) }}
  296.           <div class="text-red-500 text-xs italic">
  297.             {{ form_errors(form.picture1) }}
  298.           </div>
  299.         </div>
  300.         <div class="lg:col-span-1 col-span-2">
  301.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  302.             {{ form_label(form.picture2) }}
  303.           </div>
  304.             {{ form_widget(form.picture2) }}
  305.           <div class="text-red-500 text-xs italic">
  306.             {{ form_errors(form.picture2) }}
  307.           </div>
  308.         </div>
  309.         <div class="lg:col-span-1 col-span-2">
  310.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  311.             {{ form_label(form.picture3) }}
  312.           </div>
  313.             {{ form_widget(form.picture3) }}
  314.           <div class="text-red-500 text-xs italic">
  315.             {{ form_errors(form.picture3) }}
  316.           </div> 
  317.         </div>
  318.         <div class="lg:col-span-1 col-span-2">
  319.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  320.             {{ form_label(form.picture4) }}
  321.           </div>
  322.             {{ form_widget(form.picture4) }}
  323.           <div class="text-red-500 text-xs italic">
  324.             {{ form_errors(form.picture4) }}
  325.           </div>
  326.         </div>
  327.         <div class="lg:col-span-1 col-span-2">
  328.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  329.             {{ form_label(form.picture5) }}
  330.           </div>
  331.             {{ form_widget(form.picture5) }}
  332.           <div class="text-red-500 text-xs italic">
  333.             {{ form_errors(form.picture5) }}
  334.           </div>
  335.         </div>
  336.         <div class="lg:col-span-1 col-span-2">
  337.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  338.             {{ form_label(form.picture6) }}
  339.           </div>
  340.             {{ form_widget(form.picture6) }}
  341.           <div class="text-red-500 text-xs italic">
  342.             {{ form_errors(form.picture6) }}
  343.           </div>
  344.         </div>
  345.       </div>
  346.     </div>
  347. {# FIN partie photos du commerce #}
  348. {# DEBUT partie categories #}
  349. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  350.       <div class="flex justify-between items-center mb-7">
  351.         <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">
  352.           Catégories du commerce
  353.         </h4>
  354.       </div>
  355.       
  356.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  357.             {{ form_label(form.categories) }}
  358.           </div>
  359.             {{ form_widget(form.categories) }}
  360.           <div class="text-red-500 text-xs italic">
  361.             {{ form_errors(form.categories) }}
  362.           </div>
  363.     </div>
  364. {# FIN partie categories #}
  365. {# DEBUT partie tags #}
  366. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  367.       <div class="flex justify-between items-center mb-7">
  368.         <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">
  369.           Petits plus du commerce
  370.         </h4>
  371.       </div>
  372.       
  373.           <div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>
  374.             {{ form_label(form.tags) }}
  375.           </div>
  376.             {{ form_widget(form.tags) }}
  377.           <div class="text-red-500 text-xs italic">
  378.             {{ form_errors(form.tags) }}
  379.           </div>
  380.     </div>
  381. {# FIN partie tags #}
  382. {# DEBUT partie informations cachées #}
  383. <div class="hidden">
  384.       <div class="flex justify-between items-center mb-7">
  385.         <h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">
  386.           Hidden info
  387.         </h4>
  388.       </div>
  389.       
  390.         <div class="lg:col-span-1 col-span-2">
  391.           {{ form_row(form.available) }}
  392.         </div>
  393.         <div class="lg:col-span-1 col-span-2">
  394.           {{ form_row(form.verified) }}
  395.         </div>        
  396.         <div class="lg:col-span-1 col-span-2">
  397.           {{ form_row(form.createdAt) }}
  398.         </div>
  399.         <div class="lg:col-span-1 col-span-2">
  400.           {{ form_row(form.users.roles) }}
  401.         </div>
  402.         <div class="lg:col-span-1 col-span-2">
  403.           {{ form_row(form.users.picture) }}
  404.         </div>
  405.         <div class="lg:col-span-1 col-span-2">
  406.           {{ form_row(form.users.about) }}
  407.         </div>
  408.     </div>
  409. {# FIN partie informations cachées #}
  410. {# DEBUT mention légale #}
  411. <div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7">
  412.     <div class="flex items-center mb-7">
  413.         {{ form_widget(form.legalCheck) }}
  414.         <label for="legalCheck" class="text-gray-700 dark:text-gray-300 text-base font-semibold ml-3">
  415.             J'ai pris connaissance des 
  416.             <a class="underline text-blue-500" href="#">conditions générales d'utilisation</a> 
  417.             du site et des 
  418.             <a class="underline text-blue-500" href="#">mentions légales</a>
  419.    
  420.           <div class="text-red-500 text-xs italic">
  421.             {{ form_errors(form.legalCheck) }}
  422.           </div>
  423.         </label>
  424.     </div>
  425. </div>
  426. {# FIN mention légale #}
  427. {# DEBUT submit #}
  428. <div class="flex flex-wrap sm:justify-start justify-center">
  429.       {{ form_row(form.submit) }}
  430.     </div>
  431. {# FIN submit #}
  432.   </div>
  433. </section>
  434. </div>  
  435.   {# FIN de mon formulaire #}
  436. {{ form_end(form) }}
  437. <script>
  438.   // Sélectionner le champ "myBusiness"
  439.   var myBusinessField = document.getElementById('myBusinessField');
  440.   // Sélectionner les champs "name" et "shopLocation"
  441.   var nameField = document.getElementById('shopName');
  442.   var shopLocationField = document.getElementById('shopLocation');
  443.   var shopPhoneField = document.getElementById('shopPhone');
  444.     var shopWebsiteField = document.getElementById('shopWebsite');
  445.   // Fonction pour masquer ou afficher les champs "name" et "shopLocation" en fonction de la valeur de "myBusiness"
  446.   function toggleFields() {
  447.     if (myBusinessField.value !== '') {
  448.       //nameField.classList.add('hidden'); // Masquer le champ "name"
  449.       shopLocationField.classList.add('hidden'); // Masquer le champ "shopLocation"
  450.       shopPhoneField.classList.add('hidden'); // Masquer le champ "shopLocation"
  451.       shopWebsiteField.classList.add('hidden'); // Masquer le champ "shopLocation"
  452.     } else {
  453.       //nameField.classList.remove('hidden'); // Afficher le champ "name"
  454.       shopPhoneField.classList.remove('hidden'); // Afficher le champ "shopLocation"
  455.       shopLocationField.classList.remove('hidden'); // Masquer le champ "shopLocation"
  456.       shopWebsiteField.classList.remove('hidden'); // Masquer le champ "shopLocation"
  457.     }
  458.   }
  459.   // Appeler la fonction une première fois au chargement de la page
  460.   toggleFields();
  461.   // Ajouter un écouteur d'événement pour détecter les changements de valeur dans "myBusiness"
  462.   myBusinessField.addEventListener('input', toggleFields);
  463. </script>
  464. {% endblock %}