templates/themesWebsite/cvs/website/category.html.twig line 1

Open in your IDE?
  1. {% extends 'themesWebsite/blog_cvs/base.html.twig' %}
  2. {% block title %}{{ category.shortTitle }}{% endblock title %}
  3. {% block description %}{{ category.shortDescription }}{% endblock description %}
  4. {% block robots %}index,follow{% endblock robots %}
  5. {#% block meta_social %}{{ parent() }}{% include "/themesWebsite/blog_cpn/components/socialmedia.html.twig" with { 'page':page,'social_type':'website' } %}{% endblock meta_social %}
  6. {% block meta %}{{ parent() }}{% include "/themesWebsite/blog_cpn/components/author.html.twig" with {'page':page } %}{% endblock meta %#}
  7. {% block body %}
  8.     <div class="image-cover hero-header">
  9.         <div class="container">
  10.             <div class="row justify-content-between align-items-center">
  11.                 <div class="col-xl-7 col-lg-7 col-md-12 col-sm-12 pe-xl-5 pe-lg-4">
  12.                     <h6 class="text-primary bg-light-primary py-2 px-3 rounded-5 fw-medium d-inline-flex align-items-center mb-3">
  13.                         <span class="bg-primary w-5 h-05 me-2"></span>
  14.                         La sélection de nos candidats
  15.                     </h6>
  16.                     <h1 class="mb-4">{{ category.title }}</h1>
  17.                     <p class="fs-5">{{  category.description }}</p>
  18.                     <div class="position-relative mt-4">
  19.                         <div class="bg-dot light w-100 h-2 position-relative">
  20.                             <span class="escolls square--30 circle d-inline-flex align-items-center justify-content-center bg-white fw-medium text-primary position-absolute start-50 top-5">
  21.                                 OU
  22.                             </span>
  23.                         </div>
  24.                     </div>
  25.                     <div class="upload-box">
  26.                         <div class="filedrop_box">
  27.                             <header>
  28.                                 <h4>Lancez la création de votre CV anonyme</h4>
  29.                             </header>
  30.                             <p>Créez gratuitement votre CV anonyme et entamez la discussion avec les recruteurs et entreprises.</p>
  31.                             <a href="{{ path('cvs_website_customer_deposer_un_cv') }}" class="btn btn-md btn-primary fw-medium rounded-1">Commencer</a>
  32.                         </div>
  33.                     </div>
  34.                 </div>
  35.                 <div class="col-xl-5 col-lg-5 col-md-12 col-sm-12">
  36.                     <div class="exluo-bg bg-cover p-xl-5 p-3 rounded-5 position-relative mt-lg-0 mt-4" style="background:url(assets/img/form-bg-2.png)no-repeat;">
  37.                         <div class="hero-search-wrap shadow">
  38.                             <div class="hero-search">
  39.                                 <div>Pour les recruteurs</div>
  40.                                 <h1>Rechercher un CV</h1>
  41.                                 <p>Trouvez le candidat idéal parmi notre vaste sélection de profils.</p>
  42.                             </div>
  43.                             <div class="hero-search-content verticle-space">
  44.                                 {{ form_start(form) }}
  45.                                 <div class="row">
  46.                                     <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12">
  47.                                         <div class="form-group">
  48.                                             {{ form_widget(form.title,{'attr':{'placeholder':'Mot clef','class':'form-control border'},'value':queryKeyword}) }}
  49.                                         </div>
  50.                                     </div>
  51.                                     <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12">
  52.                                         {% if errorLocalisation == 1 %}
  53.                                             <span style="color:red;">Merci de saisir une adresse postale</span>
  54.                                         {% endif %}
  55.                                         <div class="form-group">
  56.                                             {{ form_widget(form.localisation,{'attr':{'placeholder':'Localisation','class':'form-control border','data-init-text':queryLocalisation},'value':queryLocalisation}) }}
  57.                                         </div>
  58.                                     </div>
  59.                                     <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12">
  60.                                         <button type="submit" class="btn btn-primary full-width"><i class="fa fa-search"></i> &nbsp; Lancer la recherche</button>
  61.                                     </div>
  62.                                 </div>
  63.                                 <div style="text-align:center; padding-top:15px;">
  64.                                     <a href="{{ path('cvs_website_candidates') }}">Explorer toutes les catégories</a>
  65.                                 </div>
  66.                                 {{ form_rest(form) }}
  67.                                 {{ form_end(form) }}
  68.                             </div>
  69.                         </div>
  70.                         <div class="position-absolute start-0 top-0"><div class="square--50 bg-white shadow circle text-info fs-4 animate-bounce"><i class="fa-brands fa-algolia"></i></div></div>
  71.                         <div class="position-absolute start-0 bottom-0 pb-4 ps-4"><div class="square--50 shadow circle bg-white text-danger fs-4 animate-leftright"><i class="fa-solid fa-fire"></i></div></div>
  72.                         <div class="position-absolute end-0 top-0 pt-5 pe-4"><div class="square--50 shadow circle bg-white text-warning fs-4 animate-leftright"><i class="fa-solid fa-business-time"></i></div></div>
  73.                         <div class="position-absolute end-0 bottom-0"><div class="square--50 shadow circle bg-white text-primary fs-4 animate-bounce"><i class="fa-solid fa-layer-group"></i></div></div>
  74.                     </div>
  75.                 </div>
  76.             </div>
  77.             {% if candidates is not empty %}
  78.                 <div class="row" style="margin-top:100px;">
  79.                     {% for candidate in candidates %}
  80.                         {% set distance = candidate['distance'] %}
  81.                         {% set candidate = candidate[0] %}
  82.                         <div class="col-xl-12 col-lg-12 col-md-12 col-12">
  83.                             <div class="jbs-list-box border">
  84.                                 <div class="jbs-list-head m-0">
  85.                                     <div class="jbs-list-head-thunner">
  86.                                         <div class="jbs-list-job-caption">
  87.                                             <div class="jbs-job-title-wrap"><h4><a href="#" class="jbs-job-title">{{ candidate.slugAnonyme }}</a></h4></div>
  88.                                             <div class="jbs-job-mrch-lists">
  89.                                                 <div class="single-mrch-lists">
  90.                                                     <span>{{ candidate.titleJob }}</span> &nbsp; &nbsp; <span><i class="fa-solid fa-location-dot me-1"></i> {{ candidate.city }} &nbsp; &nbsp; ~ {{ distance|round(2) }}m</span>
  91.                                                 </div>
  92.                                             </div>
  93.                                             {% set skills = getCvsCandidateSkills(candidate.id,4) %}
  94.                                             {% if skills is not null %}
  95.                                                 <div class="jbs-grid-job-edrs-group mt-1">
  96.                                                     {% for sk in skills %}
  97.                                                         <span>{{ sk.title|lower|capitalize }}</span>
  98.                                                     {% endfor %}
  99.                                                 </div>
  100.                                             {% endif %}
  101.                                         </div>
  102.                                     </div>
  103.                                     {% if candidate.expYears is not empty %}
  104.                                         <div class="jbs-list-head-middle">
  105.                                             <div class="elsocrio-jbs sm">
  106.                                                 <div class="ilop-tr"><i class="fa-solid fa-coins"></i></div>
  107.                                                 <h5 class="jbs-list-pack">{{ candidate.expYears }} Année{% if candidate.expYears > 1 %}s{% endif %} Exp.</h5>
  108.                                             </div>
  109.                                         </div>
  110.                                     {% endif %}
  111.                                     <div class="jbs-list-head-last">
  112.                                         <a href="{{ path('cvs_application_cv_discussion_anonyme',{'slug':candidate.slugAnonyme}) }}" target="_blank" class="btn btn-md px-3 m-2">
  113.                                             Engager la discussion
  114.                                         </a>
  115.                                         <a href="{{ path('cvs_application_cv_anonyme',{'slug':candidate.slugAnonyme}) }}" target="_blank" class="btn btn-md btn-primary px-3">
  116.                                             Voir le CV
  117.                                         </a>
  118.                                     </div>
  119.                                 </div>
  120.                             </div>
  121.                         </div>
  122.                     {% endfor %}
  123.                 </div>
  124.                 {{ knp_pagination_render(candidates,'components/pagination/pagination.html.twig') }}
  125.             {% else %}
  126.                 <div class="primary-bg-dark" style="margin-top:100px;">
  127.                     <div class="hired-box-slack">
  128.                         <div class="hired-box-caption">
  129.                             <h2 class="text-light">Aucun candidat trouvé autour de vous</h2>
  130.                             <p class="text-light fw-light fs-5 opacity-75">
  131.                                 Effectuez une recherche avancée (ou explorez une autre catégorie), ou bien invitez des utilisateurs à créer leur CV afin de pouvoir les contacter par la suite. C'est entièrement gratuit pour les candidats.
  132.                             </p>
  133.                         </div>
  134.                         {#<div class="hired-box-btns">
  135.                             <a href="#" class="btn btn-lg btn-whites font--bold px-5 text-primary m-2">Recherche avancée</a>
  136.                             <a href="#" class="btn btn-lg btn-whites font--bold px-5 text-primary">Invitez un utilisateur</a>
  137.                         </div>#}
  138.                     </div>
  139.                 </div>
  140.             {% endif  %}
  141.         </div>
  142.     </div>
  143. {% endblock body %}
  144. {% block footerjs %}
  145.     <script>
  146.     $('#search_category_form_localisation').select2({
  147.         theme: 'bootstrap-5',
  148.         minimumInputLength: 2,
  149.         placeholder: 'Adresse postale',
  150.         ajax: {
  151.             url: Routing.generate('cvs_website_localisation'),
  152.             dataType: 'json',
  153.             delay: 500,
  154.             data: function(params) {
  155.                 return {
  156.                     term: params.term
  157.                 };
  158.             },
  159.             processResults: function(data) {
  160.                 return {
  161.                     results: data.map(function(item) {
  162.                         return {
  163.                             id: item.display_name,
  164.                             text: item.display_name
  165.                         };
  166.                     })
  167.                 };
  168.             }
  169.         },
  170.         templateResult: function(data) {
  171.             return $('<span>' + data.text + '</span>');
  172.         },
  173.         templateSelection: function(data) {
  174.             return $('<span>' + data.text + '</span>');
  175.         },
  176.         initSelection: function (element, callback) {
  177.             var initText = $(element).data('init-text');
  178.             if (initText) {
  179.                 callback({ id: initText, text: initText });
  180.             }
  181.         }
  182.     });
  183.     // Initialisation de la sélection au chargement
  184.     var initText = $('#search_category_form_localisation').data('init-text');
  185.     if (initText) {
  186.         var option = new Option(initText, initText, true, true);
  187.         $('#search_category_form_localisation').append(option).trigger('change');
  188.     }
  189.     // Gestionnaire d'événement pour mettre à jour data-init-text
  190.     $('#search_category_form_localisation').on('select2:select', function(e) {
  191.         var selectedText = e.params.data.text;
  192.         $(this).attr('data-init-text', selectedText);
  193.         var $select2Container = $(this).data('select2').$container.find('.select2-selection__rendered');
  194.         $select2Container.html('<span>' + selectedText + '</span>');
  195.     });
  196.     </script>
  197. {% endblock footerjs %}