templates/Frontend/Candidat/index.html.twig line 1

Open in your IDE?
  1. {% extends "Frontend/base-recrutement.html.twig" %}
  2. {% block body %}
  3.     <div id="presentationCadre">
  4.         {% if poste_title %}
  5.            {% block title %}<title>Recrutements - {{ poste_title }}</title>{% endblock %}
  6.             <div class="row mt-4 justify-content-end">
  7.                 <div class="col-2 pt-2">
  8.                     <a href="{{ path('frontend_candidat') }}" class="btn btn-warning">
  9.                         <i class="fa fa-home"></i>
  10.                         Accueil
  11.                     </a>
  12.                 </div>
  13.             </div>
  14.         {% endif %}
  15.         {%  if parameters %}
  16.         <div class="row">
  17.             <div class="col">
  18.                 {{ parameters.slogan | raw }}
  19.             </div>
  20.         </div>
  21.         <div class="row">
  22.             <div class="col">
  23.                 {{ parameters.abstract | raw }}
  24.             </div>
  25.         </div>
  26.         {% endif %}
  27.         <div class="row mt-6">
  28.             <div class="col">
  29.                  {% if is_spontane %}
  30.                     <p>Cette plateforme vous permet de proposer  votre <b> candidature spontanée </b></p>
  31.                     <div id="posteDescription">{{ poste_description | raw}}</div>
  32.                     {% if poste_title %}
  33.                         <p>Pour déposer votre candidature, vous devez:
  34.                         <ol>
  35.                             <li>Créer un compte sur cette plateforme si ce n'est pas déjà le cas.</li>
  36.                             <li>Déposer votre cv et votre lettre de motivation sur votre espace personnel dans la rubrique <b>candidature spontanée</b>.</li>
  37.                         </ol>
  38.                         </p>
  39.                     {% endif %}
  40.                 {% elseif poste_title%}
  41.                     <p>Cette plateforme vous permet de proposer votre candidature à {{ site_name }} pour le poste de : </p>
  42.                     <div id="posteTitle">{{ poste_title }}</div>
  43.                     <div id="posteDescription">{{ poste_description | raw}}</div>
  44.                     <div id="posteFiche">{% if poste_fiche %}  <a target="_blank" class="btn btn-primary" href="{{ path('frontend_download_fiche_poste',{'id':poste_fiche.id}) }}"><i class="fa fa-eye"></i> Consulter la fiche du poste</a> {% endif %}
  45.                         {% if poste_annexe %}  <a target="_blank" class="btn btn-info" href="{{ path('frontend_download_fiche_poste',{'id':poste_annexe.id}) }}"><i class="fa fa-eye"></i> Consulter la liste des pièces à joindre</a> {% endif %}</div>
  46.                     <p>Pour candidater, vous devez:
  47.                     <ol>
  48.                         <li>Créer un compte sur ce site si ce n'est pas déjà le cas.</li>
  49.                         <li>Déposer l'ensemble de votre dossier sur votre espace personnel.</li>
  50.                     </ol>
  51.                     </p>
  52.                 {% else %}
  53.                 {% endif %}
  54.             </div>
  55.         </div>
  56.         <div id="msg-success" class="row" {% if message==""%}  style="display: none"      {% endif %}>
  57.             <div class="col">
  58.                 <div  id="msg-success" class="alert alert-{{message_type}}"><i class="fa fa-info-circle"></i>{{ message }}</div>
  59.             </div>
  60.         </div>
  61.         <div class="row mt-4">
  62.             <div id="login" class="col-sm-6 mb-4">
  63.                 {% if not private %}
  64.                 <div class="row">
  65.                     {% if poste_title %}
  66.                         <legend class="border-bottom">Vous avez déjà un compte </legend>
  67.                     {% else %}
  68.                         <legend class="border-bottom"> Accéder à votre espace </legend>
  69.                     {% endif %}
  70.                     <form class="form-horizontal" action="{{ path('frontend_candidat_login_check') }}" method="post">
  71.                         {% if error %}
  72.                             <div id="msg-error" class="alert alert-danger">
  73.                                 <i class="fa fa-info-circle"></i>
  74.                                 {% if error.message=='Bad credentials.' %}Identifiant et/ou mot de passe éronné.
  75.                                 {% elseif error.message=='User account is disabled.' %} Vous n'avez pas activé votre compte via le premier email que vous avez reçu.
  76.                                 {% elseif error.message=='The presented password cannot be empty.'%}Le mot de passe ne peut être vide.
  77.                                 {% elseif error.message=='The presented password is invalid.'%}Le mot de passe est invalide.
  78.                                 {% else %}{{error.message}}{% endif %}
  79.                             </div>
  80.                         {% endif %}
  81.                         <div class="row mb-2">
  82.                             <label class="col-sm-5" for="username">Identifiant :</label>
  83.                             <div class="col-sm-7">
  84.                                 <input type="text" class="form-control" id="username" name="_username" placeholder="adresse de messagerie" value="{{ last_username }}" />
  85.                             </div>
  86.                         </div>
  87.                         <div class="row mb-2">
  88.                             <label class="col-sm-5" for="password">Mot de passe  :</label>
  89.                             <div class="col-sm-7">
  90.                                 <input type="password" class="form-control" id="password" name="_password" />
  91.                             </div>
  92.                         </div>
  93.                         <div class="row">
  94.                             <div class="col-md-12 text-center">
  95.                                 <button type="submit" class="btn btn-success">  <span class="fa fa-sign-in-alt" aria-hidden="true"></span> Connexion</button>
  96.                             </div>
  97.                         </div>
  98.                     </form>
  99.                     <div class="passwordLink">
  100.                         <a id="pwdLink"  data-bs-toggle="modal" data-target="#msgPwdOublie"><i class="fa fa-user-circle"> </i> Mot de passe oublié ?</a><br>
  101.                         <a id="activLink"  data-bs-toggle="modal" data-target="#msgActivSend"><i class="fa fa-user-circle"> </i> Vous n'avez pas reçu le mail d'activation ?</a>
  102.                     </div>
  103.                 </div>
  104.                 {% endif %}
  105.                 <div id="login_cas" class="row {% if not private %}mt-4{% endif %}">
  106.                     <legend class="border-bottom">J'ai un compte universitaire </legend>
  107.                     <div class="col text-center">
  108.                             <a class="btn btn-success" href="{{ path('frontend_candidat_interne_view') }}"><i class="fa fa-sign-in-alt"></i> Connexion avec mon compte <br> {{ site_name }}</a>
  109.                     </div>
  110.                 </div>
  111.             </div>
  112.             <div class="col-sm-6">
  113.                 <div class="row">
  114.                     {% if poste_title %}
  115.                             {% if not private %}
  116.                             <legend>Créer votre compte</legend>
  117.                             <form id="form_create" class="form-horizontal" action="{{ path('frontend_candidat_poste', {'poste': poste})}}" method="post">
  118.                                 {{ form_errors(form) }}
  119.                                 <div class="row mb-2">
  120.                                     <label class="control-label  col-sm-4" for="{{ form.nom.vars.id }}">Nom :</label>
  121.                                     <div class="col-sm-8">
  122.                                         {{ form_widget(form.nom) }}
  123.                                     </div>
  124.                                 </div>
  125.                                 <div class="row mb-2">
  126.                                     <label class="control-label  col-sm-4" for="{{ form.prenom.vars.id }}">Prénom :</label>
  127.                                     <div class="col-sm-8">
  128.                                         {{ form_widget(form.prenom) }}
  129.                                     </div>
  130.                                 </div>
  131.                                 <div class="row mb-2">
  132.                                     <label class="control-label  col-sm-4" for="{{ form.genre.vars.id }}">Genre :</label>
  133.                                     <div class="col-sm-8">
  134.                                         {{ form_widget(form.genre) }}
  135.                                     </div>
  136.                                 </div>
  137.                                 <div class="row mb-2">
  138.                                     <label class="control-label  col-sm-5" for="{{ form.date_naissance.vars.id }}">Date de naissance :</label>
  139.                                     <div class="col-sm-7">
  140.                                         {{ form_widget(form.date_naissance) }}
  141.                                     </div>
  142.                                 </div>
  143.                                 <div class="row mb-2">
  144.                                     <label class="control-label  col-sm-5" for="{{ form.lieu_naissance.vars.id }}">Lieu de naissance :</label>
  145.                                     <div class="col-sm-7">
  146.                                         {{ form_widget(form.lieu_naissance) }}
  147.                                     </div>
  148.                                 </div>
  149.                                 <div class="row mb-2">
  150.                                     <label class="control-label  col-sm-4" for="{{ form.tel.vars.id }}">Tel :</label>
  151.                                     <div class="col-sm-8">
  152.                                         {{ form_widget(form.tel) }}
  153.                                     </div>
  154.                                 </div>
  155.                                 <div class="row mb-2">
  156.                                     <label class="control-label  col-sm-4" for="{{ form.email.vars.id }}">Courriel :</label>
  157.                                     <div class="col-sm-8">
  158.                                         {{ form_widget(form.email) }}
  159.                                     </div>
  160.                                 </div>
  161.                                 <div class="row mb-2">
  162.                                     <label class="control-label  col-sm-4" for="{{ form.adresse.vars.id }}">Adresse :</label>
  163.                                     <div class="col-sm-8">
  164.                                         {{ form_widget(form.adresse) }}
  165.                                     </div>
  166.                                 </div>
  167.                                 <div class="row mb-2">
  168.                                     <label class="control-label  col-sm-4" for="{{ form.cp.vars.id }}">CP :</label>
  169.                                     <div class="col-sm-8">
  170.                                         {{ form_widget(form.cp) }}
  171.                                     </div>
  172.                                 </div>
  173.                                 <div class="row mb-2">
  174.                                     <label class="control-label  col-sm-4" for="{{ form.ville.vars.id }}">Ville :</label>
  175.                                     <div class="col-sm-8">
  176.                                         {{ form_widget(form.ville) }}
  177.                                     </div>
  178.                                 </div>
  179.                                 <div class="row mb-2">
  180.                                     <label class="control-label  col-sm-4" for="{{ form.pays.vars.id }}">Pays :</label>
  181.                                     <div class="col-sm-8">
  182.                                         {{ form_widget(form.pays) }}
  183.                                     </div>
  184.                                 </div>
  185.                                 <div class="row mb-2">
  186.                                     <label class="control-label  col-sm-4" for="{{ form.password.password.vars.id }}">Mot de passe :</label>
  187.                                     <div class="col-sm-8">
  188.                                         {{ form_widget(form.password.password) }}
  189.                                     </div>
  190.                                 </div>
  191.                                 <div class="row mb-2">
  192.                                     <label class="control-label col-sm-4" for="{{ form.password.confirmation.vars.id }}">Confirmation :</label>
  193.                                     <div class="col-sm-8">
  194.                                         {{ form_widget(form.password.confirmation) }}
  195.                                     </div>
  196.                                 </div>
  197.                                 <div class="row mb-2">
  198.                                     <label class="control-label  col-sm-4" for="{{ form.terms.vars.id }}">Termes :</label>
  199.                                     <div class="col-sm-1 terms">
  200.                                         {{ form_widget(form.terms) }}
  201.                                     </div>
  202.                                     <div class="col-sm-offset-7">
  203.                                     </div>
  204.                                 </div>
  205.                                 {{ form_rest(form) }}
  206.                                 <div class="row">
  207.                                     <div class="col-md-12 text-center">
  208.                                         <button type="submit" class="btn btn-success"><i class="fa fa-check-circle" ></i> Valider</button>
  209.                                     </div>
  210.                                 </div>
  211.                             </form>
  212.                             {% else %}
  213.                                 <div class="alert alert-warning">
  214.                                     <i class="fa fa-info-circle"></i> Ce poste est réservé aux personnels de l'établissement.
  215.                                 </div>
  216.                             {% endif %}
  217.                     {% else %}
  218.                             <legend class="border-bottom">Candidater <a class="allPostes" href="{{  path('frontend_postes') }}"><i class="fa fa-hand-point-right"> </i> Postes</a></legend>
  219.                             <ul id="cats" class="nav nav-tabs" role="tablist">
  220.                                 {% for cat in cats %}
  221.                                     <li class="nav-item" role="presentation">
  222.                                         <button id="cat-tab-{{cat.id}}" class="nav-link {% if loop.first %}active{% endif %}" aria-selected="{% if loop.first %}true{% else %}false{% endif %}" aria-controls="cat-{{cat.id}}" data-bs-toggle="tab"  data-bs-target="#cat-{{cat.id}}">{{cat.name}}</button>
  223.                                     </li>
  224.                                 {% endfor %}
  225.                             </ul>
  226.                             <div id="catsContent" class="tab-content">
  227.                                 {% for cat in cats %}
  228.                                     {% set postes = attribute(postesByCategory, cat.id) %}
  229.                                     <div id="cat-{{cat.id}}" class="tab-pane fade  {% if loop.first %}show active{% endif %}" aria-labelledby="cat-tab-{{cat.id}}">
  230.                                         {% include 'Frontend/Candidat/carousel.html.twig' %}
  231.                                     </div>
  232.                                 {% endfor %}
  233.                             </div>
  234.                     {% endif %}
  235.                 </div>
  236.             </div>
  237.         </div>
  238.         <div class="row mt-4">
  239.             <legend class="border-bottom">Candidature spontanéee </legend>
  240.             <div class="col">
  241.                 <p>Cette plateforme vous permet de proposer votre candidature pour un poste en cours de parution ou par le biais d'une <a href="{{ path("frontend_candidat_poste",{"poste":"CAND_SPONT"}) }}"> candidature spontanée</a>. </p>
  242.             </div>
  243.         </div>
  244.     </div>
  245.     <div class="modal fade" id="msgPwdOublie" tabindex="-1" aria-labelledby="msgPwdOublieModalLabel" aria-hidden="true">
  246.         <div class="modal-dialog modal-dialog-centered">
  247.             <div class="modal-content">
  248.                 <div class="modal-header">
  249.                     <h5 class="modal-title" id="msgPwdOublieModalLabel">Générer un nouveau mot de passe</h5>
  250.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  251.                 </div>
  252.                 <div class="modal-body">
  253.                     <div class="row">
  254.                         <div class="col-3">
  255.                             <label for="user_login">Identifiant : </label>
  256.                         </div>
  257.                         <div class="col-9">
  258.                             <input id="user_login" placeholder="adresse de messagerie" class="form-control" type="text" value="" name="user_login">
  259.                         </div>
  260.                     </div>
  261.                 </div>
  262.                 <div class="modal-footer">
  263.                     <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"><i class="fa fa-times-circle"></i> Fermer</button>
  264.                     <button id="submitPwd" class="btn btn-primary"> <i class="fa fa-paper-plane"></i> Générer un mot de passe</button>
  265.                 </div>
  266.             </div>
  267.         </div>
  268.     </div>
  269.     <div class="modal fade" id="msgActivSend" tabindex="-1" aria-labelledby="msgActivSendModalLabel" aria-hidden="true">
  270.         <div class="modal-dialog modal-dialog-centered">
  271.             <div class="modal-content">
  272.                 <div class="modal-header">
  273.                     <h5 class="modal-title" id="msgActivSendModalLabel">Renvoyer le courriel d'activation</h5>
  274.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  275.                 </div>
  276.                 <div class="modal-body">
  277.                     <div class="row">
  278.                         <div class="col-3">
  279.                             <label for="user_login_activ">Identifiant : </label>
  280.                         </div>
  281.                         <div class="col-9">
  282.                             <input id="user_login_activ" placeholder="adresse de messagerie" class="form-control" type="text" value="" name="user_login_activ">
  283.                         </div>
  284.                     </div>
  285.                 </div>
  286.                 <div class="modal-footer">
  287.                     <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"><i class="fa fa-times-circle"></i> Fermer</button>
  288.                     <button id="submitActivSend" class="btn btn-primary"> <i class="fa fa-paper-plane"></i> Envoyer le courriel</button>
  289.                 </div>
  290.             </div>
  291.         </div>
  292.     </div>
  293.     <div class="modal fade" id="msgTermes" tabindex="-1" aria-labelledby="termesModalLabel" aria-hidden="true">
  294.         <div class="modal-dialog">
  295.             <div class="modal-content">
  296.                 <div class="modal-header">
  297.                     <h5 class="modal-title" id="termesModalLabel">Termes et conditions d'utilisation</h5>
  298.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  299.                 </div>
  300.                 <div class="modal-body">
  301.                     {% if is_spontane %}
  302.                         {% include 'Frontend/Candidat/Termes/termes-cand_spont.html.twig' %}
  303.                     {% else %}
  304.                         {% include 'Frontend/Candidat/Termes/termes.html.twig' %}
  305.                     {% endif %}
  306.                 </div>
  307.                 <div class="modal-footer">
  308.                     <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"><i class="fa fa-times-circle"></i> Fermer</button>
  309.                     <button id="validTermes" class="btn btn-primary"><i class="fa fa-user-check"></i> J'accepte</button>
  310.                 </div>
  311.             </div>
  312.         </div>
  313.     </div>
  314.     <script type="text/javascript">
  315.         $(document).ready(function() {
  316.             var msgTermes = new bootstrap.Modal(document.getElementById('msgTermes'));
  317.             var msgPwdOublie = new bootstrap.Modal(document.getElementById('msgPwdOublie'));
  318.             var msgActivSend= new bootstrap.Modal(document.getElementById('msgActivSend'));
  319.             $("#rec_candidat_terms").on('click', function (event){
  320.                 if(this.checked)
  321.                     msgTermes.show();
  322.             });
  323.             $("#activLink").on('click', function (event){
  324.                 event.preventDefault();
  325.                 msgActivSend.show();
  326.             });
  327.             $("#submitActivSend").on('click', function (event){
  328.                 event.preventDefault();
  329.                 msgActivSend.hide();
  330.                 var objData = {};
  331.                 var url = $(this.element).attr('data-url');
  332.                 objData = { mail: $("#user_login_activ").val() };
  333.                 if(validateEmail($("#user_login_activ").val()))
  334.                 {
  335.                     $.ajax({
  336.                         url: '{{  path('candidat_sendMailActivateAccount') }}',
  337.                         dataType: "json",
  338.                         data : objData,
  339.                         type: 'POST',
  340.                         success: function (data)
  341.                         {
  342.                             if(data.success==1)
  343.                             {
  344.                                 $("#msg-success").show();
  345.                                 $("#msg-success").find(".alert").html(data.message);
  346.                                 $("#msg-success").find(".alert").removeClass('alert-');
  347.                                 $("#msg-success").find(".alert").addClass('alert-info');
  348.                             }
  349.                             else
  350.                             {
  351.                                 $("#msg-error").show();
  352.                                 $("#msg-error").html(data.message);
  353.                             }
  354.                         }
  355.                     });
  356.                 }
  357.             });
  358.             $("#pwdLink").on('click', function (event){
  359.                 event.preventDefault();
  360.                 msgPwdOublie.show();
  361.             });
  362.             $("#submitPwd").on('click', function (event){
  363.                 event.preventDefault();
  364.                 msgPwdOublie.hide();
  365.                 var objData = {};
  366.                 var url = $(this.element).attr('data-url');
  367.                 objData = { mail: $("#user_login").val() };
  368.                 if(validateEmail($("#user_login").val()))
  369.                 {
  370.                     $.ajax({
  371.                         url: '{{  path('candidat_resetPwd') }}',
  372.                         dataType: "json",
  373.                         data : objData,
  374.                         type: 'POST',
  375.                         success: function (data)
  376.                         {
  377.                             if(data.success==1)
  378.                             {
  379.                                 $("#msg-success").show();
  380.                                 $("#msg-success").find(".alert").html(data.message);
  381.                                 $("#msg-success").find(".alert").removeClass('alert-');
  382.                                 $("#msg-success").find(".alert").addClass('alert-info');
  383.                             }
  384.                             else
  385.                             {
  386.                                 $("#msg-error").show();
  387.                                 $("#msg-error").html(data.message);
  388.                             }
  389.                         }
  390.                     });
  391.                 }
  392.             });
  393.         });
  394.         function validateEmail(sEmail) {
  395.             var filter = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
  396.             if (filter.test(sEmail)) {
  397.                 return true;
  398.             }
  399.             else {
  400.                 return false;
  401.             }
  402.         }
  403.     </script>
  404. {% endblock %}
  405. {% block contact %}
  406.     <p><a target="_blank" href="mailto:{{ mail_rh_recrutement }}">Contacter les ressources humaines</a></p>
  407. {% endblock %}