Compare commits

...

15 Commits

Author SHA1 Message Date
llaniau f84d8ed73b Bug date relance 2021-04-12 14:03:08 +02:00
llaniau 22db9a6da4 Bug inscription date relance 2021-04-12 12:59:51 +02:00
llaniau 1b3a0cb606 V2.9.1 2021-04-12 10:17:31 +02:00
llaniau 634fb412fe Mail auto (US 436) 2021-04-12 10:11:03 +02:00
llaniau 0a0db67654 US 436 2021-04-08 13:02:29 +02:00
llaniau 7cc701eb1e US 436 : Suite 2021-04-06 19:35:44 +02:00
llaniau bd0cda922e US 436 : RElance j+3 2021-04-06 14:41:38 +02:00
devtt cdfb763466 Modifications pages recruteurs Bénédicte (part 2) 2021-04-01 17:54:22 +02:00
devtt 57412e353b Modifications page d'accueil (Bénédicte) 2021-04-01 09:43:12 +02:00
llaniau 87b337a126 Init V2.9.1 pre prod 2021-03-30 15:31:25 +02:00
llaniau 086d456746 Desactiver nofollow 2021-03-30 09:54:34 +02:00
llaniau a2466d344f Batch candidature 520 2021-03-29 17:07:59 +02:00
llaniau 9c5dc1466b V2.8.3 2021-03-29 14:31:44 +02:00
llaniau d28a6cfc1b Menu et header de la pages recruteur 2021-03-29 12:17:43 +02:00
llaniau e6409a6124 image page accueil recruteur 2021-03-29 11:47:06 +02:00
54 changed files with 1470 additions and 182 deletions
@@ -6,3 +6,9 @@ SELECT id FROM "ad" WHERE competences::jsonb @> '{ "id1" : "libelle 1"}'::json
SELECT id FROM "ad" WHERE competences::jsonb ? 'id1' LIMIT 10;
SELECT competences::jsonb @> '{ "id1" : "libelle 1"}'::jsonb FROM "ad" WHERE id=1 LIMIT 1;
SELECT * FROM "ad" WHERE id = 1 or id=31 or id =29;
SELECT id, location->'gmap_address'->'geometry'->'location'->'lat', location->'gmap_address'->'geometry'->'location'->'lng' FROM "ad" LIMIT 100;
SELECT firstname, lastname, geoloc::json->0->'route' FROM "fos_user" wHERE email='laniau2@yahoo.fr' LIMIT 1000;
SELECT location::json->'gmap_address'->'formatted_address' FROM "ad" WHERE id=66 LIMIT 1000;
@@ -49,7 +49,7 @@
</div>
<div class="row">
<div class="col-xs-12">
<button class="btn btn-success" type="submit">Enregistrer</button>
<button class="btn btn-success" type="submit" onclick="envoyerMail()">Enregistrer</button>
</div>
</div>
{{ form_end(form) }} {% endblock %} {% block javascripts %}
@@ -70,4 +70,46 @@
}
}
});
function envoyerMail(){
if($("#ad_status").val()=="PUBLISHED"){
if(window.confirm("Souhaitez-vous envoyer un email au(x) utilisateur(s) de lentreprise pour informer que loffre demploi est en ligne sur Talents Tube ?")){
//envoi de mail
$.ajax({
//L'URL de la requête
url: "/app_dev.php/api/validerOffreMail?adId={{ ad.id }}" ,
method: "GET",
//La méthode d'envoi (type de requête)
//Le format de réponse attendu
dataType: "json",
})
//Ce code sera exécuté en cas de succès - La réponse du serveur est passée à done()
/*On peut par exemple convertir cette réponse en chaine JSON et insérer
* cette chaine dans un div id="res"*/
.done(function (response) {
console.log("Requête envoi mail suite validation offre done");
})
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
//On peut afficher les informations relatives à la requête et à l'erreur
.fail(function (error) {
console.log("Requête envoi mail suite validation offre fail");
console.log(error);
})
//Ce code sera exécuté que la requête soit un succès ou un échec
.always(function () {
console.log("Requête envoi mail suite validation offre effectuée");
});
}
}else{
}
}
</script> {% endblock %}
@@ -20,7 +20,7 @@
<thead>
<tr>
<th class="col-xs-2">Date de création</th>
<th>Référence TT</th>
<th>Référence TT.</th>
<th>Titre</th>
<th>Entreprise</th>
<th>Status</th>
@@ -0,0 +1,80 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Dashboard
<small>TalentsTube</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li>
{#<li class="active">Here</li>#}
</ol>
{% endblock %}
{% block content %}
<b>Relance J3</b><br>
<table id="media_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th width="15%">Id</th>
<th width="15%">Nom</th>
<th width="15%">Prénom</th>
<th width="15%">Mail</th>
<th width="15%">Annonce?</th>
<th width="15%">Mail Envoyé</th>
</tr>
</thead>
<tbody>
{% for u in listeUsersRelanceJ3 %}
<tr>
<td>{{ u.id }}</td>
<td>{{ u.nom }}</td>
<td>{{ u.prenom }}</td>
<td>{{ u.email }}</td>
<td>{{ u.annonce }}</td>
<td>X</td>
</tr>
{% endfor %}
{% if listeUsersRelanceJ3|length < 1 %}
<tr>
<td colspan="6">Aucune relance pour cette fois-ci</td>
</tr>
{% endif %}
</tbody>
</table>
<b>Relance J7</b><br>
<table id="media_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th width="15%">Id</th>
<th width="15%">Nom</th>
<th width="15%">Prénom</th>
<th width="15%">Mail</th>
<th width="15%">Annonce?</th>
<th width="15%">Mail Envoyé</th>
</tr>
</thead>
<tbody>
{% for u in listeUsersRelanceJ7 %}
<tr>
<td>{{ u.id }}</td>
<td>{{ u.nom }}</td>
<td>{{ u.prenom }}</td>
<td>{{ u.email }}</td>
<td>{{ u.annonce }}</td>
<td>X</td>
</tr>
{% endfor %}
{% if listeUsersRelanceJ7|length < 1 %}
<tr>
<td colspan="6">Aucune relance pour cette fois-ci</td>
</tr>
{% endif %}
</tbody>
</table>
{% endblock %}
@@ -13,6 +13,93 @@
{% endblock %}
{% block content %}
{# <b>Relance J3</b><br>
<table id="media_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th width="15%">Id</th>
<th width="15%">Nom</th>
<th width="15%">Prénom</th>
<th width="15%">Mail</th>
<th width="15%">Annonce?</th>
<th width="15%">Mail Envoyé</th>
</tr>
</thead>
<tbody>
{% for u in listeUsersRelanceJ3 %}
<tr>
<td>{{ u.id }}</td>
<td>{{ u.nom }}</td>
<td>{{ u.prenom }}</td>
<td>{{ u.email }}</td>
<td>{{ u.annonce }}</td>
<td>X</td>
</tr>
{% endfor %}
{% if listeUsersRelanceJ3|length < 1 %}
<tr>
<td colspan="6">Aucune relance pour cette fois-ci</td>
</tr>
{% endif %}
</tbody>
</table>
<b>Relance J7</b><br>
<table id="media_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th width="15%">Id</th>
<th width="15%">Nom</th>
<th width="15%">Prénom</th>
<th width="15%">Mail</th>
<th width="15%">Annonce?</th>
<th width="15%">Mail Envoyé</th>
</tr>
</thead>
<tbody>
{% for u in listeUsersRelanceJ7 %}
<tr>
<td>{{ u.id }}</td>
<td>{{ u.nom }}</td>
<td>{{ u.prenom }}</td>
<td>{{ u.email }}</td>
<td>{{ u.annonce }}</td>
<td>X</td>
</tr>
{% endfor %}
{% if listeUsersRelanceJ7|length < 1 %}
<tr>
<td colspan="6">Aucune relance pour cette fois-ci</td>
</tr>
{% endif %}
</tbody>
</table> #}
<b>Etat des annonces</b><br>
<table id="media_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th width="15%">Id</th>
<th width="15%">Entreprise</th>
<th width="15%">Titre de l'annonce</th>
<th width="15%">Nb de candidatures vidéo</th>
<th width="15%">Nb de candidatures récentes <br>(mois glissant)</th>
<th width="15%">Statut</th>
</tr>
</thead>
<tbody>
{% for a in ads %}
<tr>
<td>{{ a.id }}</td>
<td>{{ a.entreprise }}</td>
<td>{{ a.title }}</td>
<td>{{ a.nbAnswers }}</td>
<td>{{ a.nbAnswersRecentes }}</td>
<td>{{ a.statut }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
@@ -80,7 +80,7 @@
</span>
</a>
<ul class="treeview-menu">
<li><a href="{{ path('admin_batch_mailauto') }}">Mail auto <br>(US 436)</a></li>
<li><a href="{{ path('admin_batch_candidatures') }}">Statuts des anciennes candidatures <br>(US 520)</a></li>
<li><a href="{{ path('admin_batch_message') }}">Basculer les anciens messages <br>(US 200)</a></li>
<li><a href="{{ path('admin_batch_geoloc') }}">Transformer adresse Talent en geoloc <br>(US 489)</a></li>
@@ -19,7 +19,7 @@
{% if app.environment == "dev" %}
<meta name="robots" content="noindex,nofollow">
{% else %}
{# <meta name="robots" content="noindex,nofollow"> #}
<meta name="robots" content="noindex,nofollow">
{% endif %}
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% block meta %}
@@ -184,7 +184,7 @@
</div>
<div class="col-sm">
<span class="fs-12">30 derniers jours</span>
<h4 class="bold no-margin" style="opacity:0.75">+{{ records30days.totalRecordsCompany }}
<h4 class="bold no-margin" style="opacity:0.75">+{{ records30days.totalRecords-records30days.totalRecordsCompany }}
</h4>
</div>
</div>
@@ -1,18 +1,42 @@
<!-- Ils nous font confiance DEBUT -->
<div class="container space-2 space-3--lg accueilFondBlanc">
<div class=" text-center mx-md-auto mb-12">
<!-- Title -->
<h2 class="h3"> Ils nous font confiance</h2>
</div>
<div class="align-right justify-content-sm-center row text-center">
<div class="col-lg-9 col-xl-8">
<div class="row justify-content-lg-between">
<div class="w-md-80 w-lg-60 text-center mx-md-auto mb-9">
<!-- Title -->
<h2 class="h3">Ils ont trouvé leurs candidats avec Talents Tube</h2>
</div>
<div class="col-md-6 col-lg-5 order-md-2 mb-7 mb-md-0">
<!-- Review -->
<div class="media">
<div class="media-body">
<h4 class="h6 mb-0">Delphine F.</h4>
<p class="text-muted">"Je n'avais pratiquement plus de CV. Talents Tube est devenu l'outil de recrutement qui génère le plus de candidatures"</p>
</div>
</div>
<!-- End Review -->
<!-- Review -->
<div class="media">
<div class="media-body">
<h4 class="h6 mb-0">Emmanuelle G</h4>
<p class="text-muted">"Nous n'avions plus de CV papier et grâce à Talents Tube, nous avons recruté de nouveaux collaborateurs en préparation de commandes"</p>
</div>
</div>
<!-- End Review -->
<!-- Review -->
<div class="media">
<div class="media-body">
<h4 class="h6 mb-0">Adrien</h4>
<p class="text-muted">"Nous avons recruté grâce à la vidéo ! On a des personnes qui ont postulé et qui n'auraient pas postulé sans la vidéo."</p>
</div>
</div>
<!-- End Review -->
</div>
<!-- Video Block -->
<div class="col-md-6 order-md-1">
<div id="youTubeVideoPlayer" class="u-video-player mb-7">
<!-- Cover Image -->
<img class="img-fluid u-video-player__preview" src="/v2/png/recrutement-video-temoignage.jpg"
alt="Image">
<img class="img-fluid u-video-player__preview" src="/v2/png/recrutement-video-temoignage.jpg" alt="Image">
<!-- End Cover Image -->
<!-- Play Button -->
@@ -34,4 +58,5 @@
</div>
</div>
</div>
</div>
<!-- Ils nous font confiance FIN -->
@@ -13,7 +13,7 @@
<div class="col-sm-6 col-lg-4 mb-7">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/recrutement-long-et-difficile.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Recrutements longs et difficiles ?</p>
</div>
@@ -24,7 +24,7 @@
<div class="col-sm-6 col-lg-4 mb-7">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/metier-en-tension.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Métier en tension, méconnu, dévalorisé ?</p>
</div>
@@ -35,7 +35,7 @@
<div class="col-sm-6 col-lg-4 mb-7">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/penurie-main-oeuvre.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Développement menacé par une pénurie de main-d'œuvre ?</p>
</div>
@@ -46,7 +46,7 @@
<div class="col-sm-6 col-lg-4 mb-7 mb-lg-0">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/trop-candidats-non-cibles.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Trop de candidats non ciblés ?</p>
</div>
@@ -57,7 +57,7 @@
<div class="col-sm-6 col-lg-4 mb-7 mb-md-0">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/talents-introuvables.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Talents introuvables ?</p>
</div>
@@ -68,9 +68,9 @@
<div class="col-sm-6 col-lg-4">
<!-- Icon Block -->
<div class="media align-items-center pr-lg-4">
<img class="max-width-9 mr-3" src="../v2/svg/components/adn-entreprise-recrutement.svg" alt="Image Description">
<img class="max-width-9 mr-3" src="../v2/svg/components/methode-de-recrutement-traditionnel.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Méthodes de recrutement traditionnelles sans résultats ?</p>
<p class="mb-0">Méthodes de recrutement traditionnelles sans résultat ?</p>
</div>
</div>
<!-- End Icon Block -->
@@ -0,0 +1,81 @@
<div class=" space-1-bottom accueilFondBlanc">
<div class="container space-2 ">
<div class="row mx-gutters-2 text-center">
<div class="col-lg-9">
<!-- Collapse -->
<div id="faqAccordionOne">
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionOneHeadingOne">
<h5 class="mb-0">
<button
class="btn btn-sm btn-link btn-block d-flex justify-content-between card-collapse__btn p-3 collapsed"
data-toggle="collapse" data-target="#faqAccordionOneCollapseOne" aria-expanded="false"
aria-controls="faqAccordionOneCollapseOne">
Jy arrive pas pourquoi jy arriverais avec la vidéo ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionOneCollapseOne" class="collapse" aria-labelledby="faqAccordionOneHeadingOne"
data-parent="#faqAccordionOne" style="">
<div class="card-body card-collapse__body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf
moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod.
</div>
</div>
</div>
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionOneHeadingTwo">
<h5 class="mb-0">
<button
class="btn btn-sm btn-link btn-block d-flex justify-content-between card-collapse__btn collapsed p-3"
data-toggle="collapse" data-target="#faqAccordionOneCollapseTwo" aria-expanded="false"
aria-controls="faqAccordionOneCollapseTwo">
Je publie déjà mes offres vidéo sur mon site, sur Youtube,… en quoi Talents Tube peut faire mieux ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionOneCollapseTwo" class="collapse" aria-labelledby="faqAccordionOneHeadingTwo"
data-parent="#faqAccordionOne">
<div class="card-body card-collapse__body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf
moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod.
</div>
</div>
</div>
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionOneHeadingTwo">
<h5 class="mb-0">
<button
class="btn btn-sm btn-link btn-block d-flex justify-content-between card-collapse__btn collapsed p-3"
data-toggle="collapse" data-target="#faqAccordionOneCollapseTwo" aria-expanded="false"
aria-controls="faqAccordionOneCollapseTwo">
Quelle différence entre une vidéo « marque employeur », « métier » et « offre demploi » ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionOneCollapseTwo" class="collapse" aria-labelledby="faqAccordionOneHeadingTwo"
data-parent="#faqAccordionOne">
<div class="card-body card-collapse__body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf
moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod.
</div>
</div>
</div>
</div>
<!-- End Collapse -->
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,60 @@
<!-- Ils nous font confiance DEBUT -->
<div class="container accueilFondBlanc">
<div class="row justify-content-center text-center">
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-intermarche.jpg') }}" alt="Offres d'emploi intermarché">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-lactalis.jpg') }}" alt="Offres d'emploi Lactalis">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-groupe-mousset.jpg') }}" alt="Offres d'emploi Groupe Mousset">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-admr.jpg') }}" alt="Offres d'emploi ADMR">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-tpc-ouest-btp.jpg') }}" alt="Offres d'emploi TPC Ouest">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-eiffage.jpg') }}" alt="Offres d'emploi Eiffage">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-opticultures.jpg') }}" alt="Offres d'emploi Opticultures">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-mma-assurances.jpg') }}" alt="Offres d'emploi MMA assurances">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-actual.jpg') }}" alt="Offres d'emploi Actual">
</div>
<div class="col-4 col-md-2">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-jpa.jpg') }}" alt="Offres d'emploi JPA">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-groupe-rocher.jpg') }}" alt="Offres d'emploi Groupe Rocher">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-pro-fermetures.jpg') }}" alt="Offres d'emploi Pro Fermetures">
</div>
<div class="col-4 col-md-2 mb-8">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-top-selling.jpg') }}" alt="Offres d'emploi Top Selling">
</div>
<div class="col-4 col-md-2 mb-8 mb-md-0">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-medaviz.jpg') }}" alt="Offres d'emploi Medaviz">
</div>
<div class="col-4 col-md-2 mb-8 mb-md-0">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-faurecia.jpg') }}" alt="Offres d'emploi Faurecia">
</div>
<div class="col-4 col-md-2 mb-8 mb-md-0">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-francas.jpg') }}" alt="Offres d'emploi Les Francas">
</div>
<div class="col-4 col-md-2 mb-8 mb-md-0">
<img class="u-clients" src="{{ asset('v2/logos/recrutement-video-nachos.jpg') }}" alt="Offres d'emploi Nachos">
</div>
</div>
<p class="lead text-center"><strong>Ces secteurs qui recrutent déjà grâce à la vidéo :</strong><br>
Logistique et Transport > Services à la personne > BTP > Agriculture > Administration > Industrie > Commerce > Informatique > Automobile > Animation > Hôtellerie Restauration</p>
</div>
<!-- Ils nous font confiance FIN -->
@@ -7,7 +7,7 @@
</div>
<div class="col-md-6 col-lg-5 mb-2 mb-md-0">
<img class="img-fluid"
src="{{ asset('v2/png/marque-employeur-en-video.png') }}" alt="Marque employeur vidéo">
src="{{ asset('v2/png/offre-emploi-en-video.jpg') }}" alt="Marque employeur vidéo">
</div>
<div class="col-md-6">
<h3 class="h5">Publiez une offre demploi vidéo :</h3>
@@ -0,0 +1,20 @@
<!-- Accueil Photo Haut Section -->
<div class="bg-img-hero-center" style="background-image: url({{ asset(urlImage)}} ">
<div class="container space-2 space-5-top--lg space-4-bottom--lg">
<div class="w-md-75">
<!-- Title -->
<div class="mb-7">
{# <span class="d-block text-white text-uppercase mb-2">Talents tube</span> #}
<h1 class="display-4 font-size-48--md-down text-white mb-4">
<strong class="">{{textParDefaut}}</strong>
<br>{{textVideo}}
</h1>
</div>
<!-- End Title -->
</div>
</div>
</div>
<!-- End Accueil Photo Haut Section -->
@@ -30,40 +30,40 @@
<div class="cbp-wrapper-outer">
<div class="cbp-wrapper">
<!-- Item -->
<div class="cbp-item" style="width: 262px; left: 0px; top: 0px;">
<div class="cbp-item" style="width: 220px; left: 0px; top: 0px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<img src="../v2/img/380x227/talentstube-recrutement-video-equipe.jpg" alt="Image Description">
<img src="{{ asset('v2/img/380x227/talentstube-recrutement-video-equipe.jpg') }}" alt="Image Description">
</div>
</div>
</div>
<!-- End Item -->
<!-- Item -->
<div class="cbp-item" style="width: 262px; left: 277px; top: 0px;">
<div class="cbp-item" style="width: 220px; left: 235px; top: 0px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<img src="../v2/img/380x360/recrutement-video-franck-delalande.jpg" alt="Image Description">
<img src="{{ asset('v2/img/380x360/recrutement-video-franck-delalande.jpg') }}" alt="Image Description">
</div>
</div>
</div>
<!-- End Item -->
<!-- Item -->
<div class="cbp-item" style="width: 262px; left: 0px; top: 172px;">
<div class="cbp-item" style="width: 220px; left: 0px; top: 146px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<img src="../v2/img/380x360/plateforme-recrutement-video-morbihan.jpg" alt="Image Description">
<img src="{{ asset('v2/img/380x360/plateforme-recrutement-video-morbihan.jpg') }}" alt="Image Description">
</div>
</div>
</div>
<!-- End Item -->
<!-- Item -->
<div class="cbp-item" style="width: 262px; left: 277px; top: 263px;">
<div class="cbp-item" style="width: 220px; left: 235px; top: 223px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<img src="../v2/img/380x227/recrutement-video-equipe.jpg" alt="Image Description">
<img src="{{ asset('v2/img/380x227/recrutement-video-equipe.jpg') }}" alt="Image Description">
</div>
</div>
</div>
@@ -0,0 +1,44 @@
<div class="accueilFondNoir">
<div class="container space-2">
<div class="card-deck d-block d-lg-flex card-lg-gutters-2">
<div class="card border-0 mb-3">
<!-- Works -->
<div class="card-body border border-bottom-0 rounded-top text-center p-5">
<h4 class="h5 mb-1">Vous avez déjà des vidéos ou un prestataire vidéo ?</h4>
<p class="mb-0">Vous pouvez les publier directement sur Talents Tube ! Profitez de vos supports pour les faire rayonner largement, vers vos futurs candidats</p>
</div>
<div class="card-footer text-center border rounded-bottom p-5">
<a class="btn btn-sm btn-primary btn-wide" href="https://recruteur.talentstube.com/register/">Inscription</a>
</div>
<!-- End Works -->
</div>
<div class="card border-0 mb-3">
<!-- Works -->
<div class="card-body border border-bottom-0 rounded-top text-center p-5">
<h4 class="h5 mb-1">Vous voulez réaliser des vidéos vous-même ?</h4>
<p class="mb-0">Créez des vidéos doffres demploi simplement grâce à nos conseils</p>
</div>
<div class="card-footer text-center border rounded-bottom p-5">
<a class="btn btn-sm btn-primary btn-wide" href="https://recruteur.talentstube.com/offre-emploi-originale">En savoir plus</a>
</div>
<!-- End Works -->
</div>
<div class="card border-0 mb-3">
<!-- Works -->
<div class="card-body border border-bottom-0 rounded-top text-center p-5">
<h4 class="h5 mb-1">Vous cherchez un prestataire pour produire vos vidéos RH ?</h4>
<p class="mb-0">Contactez-nous, nous saurons vous mettre en relation avec des prestataires qualifiés et expérimentés.</p>
</div>
<div class="card-footer text-center border rounded-bottom p-5">
<a class="btn btn-sm btn-primary btn-wide" href="https://blog.talentstube.com/contact/">Contactez-nous</a>
</div>
<!-- End Works -->
</div>
</div>
</div>
</div>
</div>
@@ -1,13 +1,13 @@
<div class="accueilFondBleute">
<div class="container">
<div class="row justify-content-md-between align-items-md-center">
<div class="w-md-80 w-lg-60 text-center mx-md-auto ">
<div class="w-md-80 w-lg-60 text-center mx-md-auto ">
<h2 class="h3">Grâce au recrutement vidéo, <br>vous allez enfin trouver les talents<br> au service de vos
ambitions !</h2>
<p class="lead"></p>
</div>
<div class="col-lg-6 order-md-1 pb-5">
<img class="img-fluid" src="{{ asset('v2/png/marque-employeur-en-video.png') }}" alt="Marque employeur vidéo">
<div class="row justify-content-md-between align-items-md-center">
<div class="col-lg-6 order-md-1">
<img class="img-fluid" src="{{ asset('v2/png/trouver-les-candidats-avec-offre-emploi-video.jpg') }}" alt="Marque employeur vidéo">
</div>
<div class="col-lg-6 order-md-2">
<h3 class="h5"></h3>
@@ -1,14 +1,23 @@
<div class="accueilFondBleute">
<div class="container">
<div class="w-md-80 w-lg-60 text-center mx-md-auto mb-5">
<div class="w-md-80 w-lg-60 text-center mx-md-auto">
<h2 class="h3">Adoptez dès maintenant le recrutement vidéo</h2>
<p class="lead">Plus personnel, plus impliquant et plus authentique</p>
</div>
<div class="bg-gray-100 shadow-lg rounded">
<div class="bg-white shadow-lg rounded card-body p-5">
<h5 class="text-center">Offre : abonnement mensuel sans engagement, comprenant :</h5>
<ul>
<li> Administration autonome de votre espace recruteur (page entreprise, publication et renouvellement des
vidéos, statistiques,…)</li>
<li>Visibilité de vos vidéos sur le site Talents Tube pour attirer vos futurs candidats</li>
<li>Boost visibilité de vos vidéos sur les réseaux Talents Tube (YouTube, Facebook, Linkedin, Newsletter...)
</li>
<li>Réception de candidatures vidéo et gestion en ligne</li>
</ul>
<!-- Individual -->
<div id="pricingIndividual" data-target-group="idPricing">
<div class="js-slick-carousel u-slick u-slick--gutters" data-slides-show="3" data-slides-scroll="1"
<div class="js-slick-carousel u-slick u-slick--gutters" data-slides-show="4" data-slides-scroll="1"
data-pagi-classes="d-lg-none text-center u-slick__pagination mt-7 mb-0" data-responsive='[{
"breakpoint": 1200,
"settings": {
@@ -30,12 +39,31 @@
"slidesToShow": 1
}
}]'>
<div class="js-slide">
<!-- Pricing -->
<div class="card border-0">
<!-- Header -->
<header class="card-header text-center p-5">
<h4 class="h4">Jusqu'à 3 vidéos</h4>
<h4 class="h4">Pack découverte<br>1 vidéo</h4>
<span class="d-block">
<span class="display-4 text-dark">
Gratuit
</span>
<span class="d-block text-secondary font-size-14">pendant 1 mois</span>
</span>
</header>
<!-- End Header -->
</div>
<!-- End Pricing -->
</div>
<div class="js-slide">
<!-- Pricing -->
<div class="card border-0">
<!-- Header -->
<header class="card-header text-center p-5">
<h4 class="h4">Pack 3 vidéos <br>renouvelables</h4>
<span class="d-block">
<span class="display-4 text-dark">
@@ -45,32 +73,17 @@
</span>
</header>
<!-- End Header -->
<!-- Content -->
<div class="card-body p-5">
<ul class="list-unstyled mb-4">
<li class="font-size-14 py-2">- Création page entreprise</li>
<li class="font-size-14 py-2">- Accès espace recruteur</li>
<li class="font-size-14 py-2">- Mise en ligne de 1 à 3 vidéos
offre demploi et Marque employeur</li>
<li class="font-size-14 py-2">- Réception des candidatures en vidéo</li>
<li class="font-size-14 py-2">- Gestion des candidatures</li>
<li class="font-size-14 py-2">- Échanges vidéos avec les candidats</li>
<li class="font-size-14 py-2">- Suivi Statistiques</li>
</ul>
</div>
<!-- End Content -->
</div>
<!-- End Pricing -->
</div>
<div class="js-slide">
<!-- Pricing -->
<div class="card border-0">
<!-- Header -->
<header class="card-header text-center p-5">
<h4 class="h4">De 4 à 9 vidéos</h4>
<h4 class="h4">Pack 10 vidéos <br>renouvelables</h4>
<span class="d-block">
<span class="display-4 text-dark">
@@ -80,22 +93,6 @@
</span>
</header>
<!-- End Header -->
<!-- Content -->
<div class="card-body p-5">
<ul class="list-unstyled mb-4">
<li class="font-size-14 py-2">- Création page entreprise</li>
<li class="font-size-14 py-2">- Accès espace recruteur</li>
<li class="font-size-14 py-2">- Mise en ligne de 4 à 9 vidéos
offre demploi et Marque employeur</li>
<li class="font-size-14 py-2">- Réception des candidatures en vidéo</li>
<li class="font-size-14 py-2">- Gestion des candidatures</li>
<li class="font-size-14 py-2">- Échanges vidéos avec les candidats</li>
<li class="font-size-14 py-2">- Suivi Statistiques</li>
</ul>
</div>
<!-- End Content -->
</div>
<!-- End Pricing -->
</div>
@@ -105,31 +102,16 @@
<div class="card border-0">
<!-- Header -->
<header class="card-header text-center p-5">
<h4 class="h4">Plus de 10 vidéos</h4>
<h4 class="h4">Pack PRO<br>Plus de 10 vidéos</h4>
<span class="d-block">
<span class="display-4 text-dark">
Sur devis
<a class="btn btn-sm btn-primary" href="#signupModal" role="button"
data-modal-target="#signupModal" data-overlay-color="#151b26">Connexion recruteurs</a>
</span>
<span class="d-block text-secondary font-size-14">&nbsp;</span>
<span class="d-block text-secondary font-size-14">&nbsp</span>
</span>
</header>
<!-- End Header -->
<!-- Content -->
<div class="card-body p-5">
<ul class="list-unstyled mb-4">
<li class="font-size-14 py-2">- Création page entreprise</li>
<li class="font-size-14 py-2">- Accès espace recruteur</li>
<li class="font-size-14 py-2">- Mise en ligne de 10 vidéos
offre demploi et Marque employeur</li>
<li class="font-size-14 py-2">- Réception des candidatures en vidéo</li>
<li class="font-size-14 py-2">- Gestion des candidatures</li>
<li class="font-size-14 py-2">- Échanges vidéos avec les candidats</li>
<li class="font-size-14 py-2">- Suivi Statistiques</li>
</ul>
</div>
<!-- End Content -->
</div>
<!-- End Pricing -->
</div>
@@ -0,0 +1,44 @@
<div class="col-md-6 order-md-1 space-2-top">
<!-- Slick Carousel - Testimonials -->
<div class="js-slick-carousel u-slick slick-initialized slick-slider slick-dotted" data-fade="true" data-autoplay="true" data-speed="7500" data-pagi-classes="u-slick__pagination justify-content-start mt-7">
<div class="slick-list draggable"><div class="slick-track" style="opacity: 1; width: 1620px;"><div class="js-slide slick-slide" data-slick-index="0" aria-hidden="true" style="width: 540px; position: relative; left: 0px; top: 0px; z-index: 998; opacity: 0; height: auto; transition: opacity 500ms ease 0s;" tabindex="-1" role="tabpanel" id="slick-slide00" aria-describedby="slick-slide-control00">
<!-- Testimonials -->
<blockquote class="lead mb-5">"I love Space! I love the ease of use, I love the fact that I have total creative freedom. The template is really nice and offers quite a large set of options. It's beautiful and the coding is done quickly and seamlessly."</blockquote>
<div class="media">
<img class="u-avatar rounded-circle mr-3" src="../../assets/img/100x100/img1.jpg" alt="Image Description">
<div class="media-body">
<h3 class="h6 mb-0">Maria Muszynska</h3>
<span class="text-secondary">Senior developer at <a href="#" tabindex="-1">Google</a></span>
</div>
</div>
<!-- End Testimonials -->
</div><div class="js-slide slick-slide" data-slick-index="1" aria-hidden="true" style="width: 540px; position: relative; left: -540px; top: 0px; z-index: 998; opacity: 0; height: auto; transition: opacity 500ms ease 0s;" tabindex="-1" role="tabpanel" id="slick-slide01" aria-describedby="slick-slide-control01">
<!-- Testimonials -->
<blockquote class="lead mb-5">"We are incredibly impressed with Space and how well it supports its customers with amazing products and services. One simple subscription gives you access to all our tools, plus so much more."</blockquote>
<div class="media">
<img class="u-avatar rounded-circle mr-3" src="../../assets/img/100x100/img4.jpg" alt="Image Description">
<div class="media-body">
<h3 class="h6 mb-0">Mark McManus</h3>
<span class="text-secondary">Software engineer at <a href="#" tabindex="-1">Slack</a></span>
</div>
</div>
<!-- End Testimonials -->
</div><div class="js-slide slick-slide slick-current slick-active" data-slick-index="2" aria-hidden="false" style="width: 540px; position: relative; left: -1080px; top: 0px; z-index: 999; opacity: 1; height: auto;" tabindex="0" role="tabpanel" id="slick-slide02" aria-describedby="slick-slide-control02">
<!-- Testimonials -->
<blockquote class="lead mb-5">"One simple subscription gives you access to all our tools, plus so much more. Space brings so many benefits to any team that does anything following a process. It is the easiest way for teams to build cool things work—and get results."</blockquote>
<div class="media">
<img class="u-avatar rounded-circle mr-3" src="../../assets/img/100x100/img14.jpg" alt="Image Description">
<div class="media-body">
<h3 class="h6 mb-0">Ella Brown</h3>
<span class="text-secondary">Head of IT department at <a href="#" tabindex="0">Apple</a></span>
</div>
</div>
<!-- End Testimonials -->
</div></div></div>
<ul class="js-pagination u-slick__pagination justify-content-start mt-7" style="" role="tablist"><li class="" role="presentation"><span></span></li><li role="presentation" class=""><span></span></li><li role="presentation" class="slick-active slick-current"><span></span></li></ul></div>
<!-- End Slick Carousel - Testimonials -->
</div>
@@ -2,22 +2,26 @@
{% block title %}Espace recruteur - Solution de recrutement en vidéo | Talents Tube{% endblock %}
{% block meta %}
<meta name="description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos doffres demploi et marque employeur pour attirer les meilleurs talents en vidéo.">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@TalentsTube">
<meta name="twitter:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube">
<meta name="twitter:description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos doffres demploi et marque employeur pour attirer les meilleurs talents en vidéo.">
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
<meta name="description"
content="Osez le recrutement vidéo ! Diffusez vos offres d'emploi vidéo et marque employeur pour attirer, trouver et recruter les meilleurs candidats en vidéo.">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@TalentsTube">
<meta name="twitter:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube">
<meta name="twitter:description"
content="Osez le recrutement vidéo ! Diffusez vos offres d'emploi vidéo et marque employeur pour attirer, trouver et recruter les meilleurs candidats en vidéo.">
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
<meta property="og:title" content="Espace recruteur - Adoptez le recrutement vidéo | Talents Tube" />
<meta property="og:type" content="article" />
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
<meta property="og:description"
content="Osez le recrutement vidéo ! Diffusez vos offres d'emploi vidéo et marque employeur pour attirer, trouver et recruter les meilleurs candidats en vidéo." />
<meta property="og:site_name" content="Talents Tube" />
<meta property="og:url"
content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
<meta property="og:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube" />
<meta property="og:type" content="article" />
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
<meta property="og:description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos doffres demploi et marque employeur pour attirer les meilleurs talents en vidéo." />
<meta property="og:site_name" content="Talents Tube" />
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
{% endblock %}
{% block content %}
<main id="content">
@@ -32,14 +36,17 @@
{% include 'defaultv2/accueil/blocDifficultes.html.twig' %}
{% include 'defaultv2/accueil/blocMieuxQueDuTexte.html.twig' %}
{% include 'defaultv2/accueil/blocConfiance.html.twig' %}
{% include 'defaultv2/accueil/blocLogo.html.twig' %}
{% include 'defaultv2/accueil/blocLogoSecteurs.html.twig' %}
{% include 'defaultv2/accueil/blocNotreMission.html.twig' %}
{% include 'defaultv2/accueil/blocPourquoiNous.html.twig' %}
{% include 'defaultv2/accueil/blocRecap.html.twig' %}
{% include 'defaultv2/accueil/blocFAQ.html.twig' %}
{% include 'defaultv2/accueil/blocTarifs.html.twig' %}
{% include 'defaultv2/accueil/blocRealisation.html.twig' %}
{% include 'defaultv2/accueil/blocPourquoiNous.html.twig' %}
{% include 'defaultv2/accueil/blocAction.html.twig' %}
</main>
<!-- ========== END MAIN CONTENT ========== -->
@@ -93,17 +100,9 @@ with {
<script src="{{ asset('v2/js/components/hs.g-map.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.go-to.js') }}"></script>
<!-- JS Plugins Init. -->
<script>
// initialization of google map
{# function initMap() {
$.HSCore.components.HSGMap.init('.js-g-map');
} #}
$(window).on('load', function () {
// initialization of HSMegaMenu component
$('.js-mega-menu').HSMegaMenu({
@@ -158,7 +157,13 @@ with {
$('.u-text-animation.u-text-animation').html("");
// initialization of text animation (typing)
var typed = new Typed(".u-text-animation.u-text-animation--typing", {
strings: ["Recrutez les candidats", "Boostez vos recrutements", "Valorisez vos collaborateurs"],
typeSpeed: 60,
loop: true,
backSpeed: 25,
backDelay: 3000
});
// initialization of cubeportfolio
$.HSCore.components.HSCubeportfolio.init('.cbp');
@@ -166,24 +171,22 @@ with {
// initialization of go to
$.HSCore.components.HSGoTo.init('.js-go-to');
});
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
$("#logoAndNav").css("background-color",
"transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color", "#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
$("#sidebarNavToggler").css("color", "#000");
}
});
});
</script>
{% endblock %}
@@ -191,10 +194,7 @@ with {
{% block javascripts %}
{{ parent() }}
<script>
// initialization of google map
{# function initMap() {
$.HSCore.components.HSGMap.init('.js-g-map');
} #}
function demanderDiag(formulaire){
if(formulaire=="formDemandeDiag1"){
nomprenom = $("#nomPrenomForm1").val();
@@ -1,12 +1,12 @@
<!-- Plateforme DEBUT -->
<div class=" accueilFondBlanc">
<div class="">
<div class=" ">
<!-- Video Section -->
<div class="">
<div class="gradient-overlay-half-dark-v1 bg-img-hero"
style="background-image: url({{ asset('v2/img/1920x800/tutoriel-video-de-motivation-cv-video.jpg')}});">
style="background-image: url({{ asset('v2/img/1920x800/tutoriel-video-de-motivation-cv-video.jpg') }});">
<div class="d-lg-flex align-items-lg-center flex-lg-column">
<div class="container space-3 space-4-top--lg">
<!-- Title -->
@@ -21,7 +21,7 @@
{% block content %}
<main id="content">
{% include 'defaultv2/accueil/blocPhoto.html.twig'
{% include 'defaultv2/accueil/blocPhotoPagesHeader.html.twig'
with {
'urlImage': 'v2/img/1920x800/candidature-offre-emploi-video.jpg',
'textParDefaut' : 'Recevez des candidatures',
@@ -182,7 +182,7 @@ with {
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#logoAndNav").css("background-color","transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
@@ -21,7 +21,7 @@
{% endblock %}
{% block content %}
<main id="content">
{% include 'defaultv2/concept/blocPhoto.html.twig'
{% include 'defaultv2/accueil/blocPhotoPagesHeader.html.twig'
with {
'urlImage': 'v2/img/1920x800/recrutement-video.jpg',
'textParDefaut' : 'Recrutez les candidats',
@@ -180,7 +180,7 @@ with {
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#logoAndNav").css("background-color","transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
@@ -6,12 +6,14 @@
</a>
<!-- End Skippy -->
<!-- ========== HEADER ========== -->
<header id="header" class="u-header u-header--modern u-header--bordered u-header--bg-transparent u-header--white-nav-links u-header--sticky-top-lg">
<div class="u-header__section">
<div class="u-header__section headerrecruteur">
<div id="logoAndNav" class="container-fluid">
<!-- Nav -->
<nav class="js-mega-menu navbar navbar-expand-lg u-header__navbar">
<nav class=" js-mega-menu navbar navbar-expand-lg u-header__navbar hs-menu-initialized hs-menu-horizontal hs-mobile-state">
<!-- Logo -->
<div class="u-header__navbar-brand-wrapper">
<a class="navbar-brand u-header__navbar-brand" href="/" aria-label="TT">
@@ -45,7 +47,7 @@
data-animation-in="fadeInUp"
data-animation-out="fadeOut">
<a id="homeMegaMenu" class="nav-link u-header__nav-link" href="{{ path('concept') }}">
Le concept
Concept
</a>
</li>
<!-- End Home -->
@@ -55,7 +57,7 @@
data-animation-in="fadeInUp"
data-animation-out="fadeOut">
<a id="homeMegaMenu" class="nav-link u-header__nav-link" href="{{ path('offresVideo') }}">
L'Offre d'emploi
Offre d'emploi
</a>
</li>
@@ -64,9 +66,9 @@
<!-- Pages -->
<li class="nav-item u-header__nav-item">
<a id="PagesMegaMenu" class="nav-link u-header__nav-link" href="{{ path('employeurVideo') }}"
aria-haspopup="true"
aria-expanded="false">
La Marque employeur
aria-haspopup="true"
aria-expanded="false">
Marque employeur
</a>
</li>
@@ -78,7 +80,7 @@
data-animation-in="fadeInUp"
data-animation-out="fadeOut">
<a id="worksMegaMenu" class="nav-link u-header__nav-link" href="{{ path('candidaturesVideo') }}">
La Candidature
Candidature
</a>
@@ -93,7 +95,7 @@
data-animation-out="fadeOut">
<a id="blogMegaMenu" class="nav-link u-header__nav-link" href="https://blog.talentstube.com/" target="_blank">
Blog
</a>
@@ -101,19 +103,19 @@
<!-- End Blog -->
<!-- Button -->
<li class="nav-item u-header__nav-item-btn">
<!-- Button -->
<!--<li class="nav-item u-header__nav-item-btn">
<a class="btn btn-sm btn-contact" href="https://blog.talentstube.com/contact" target="_blank" role="button">
{# <i class="fa fa-user-circle mr-1"></i> #}
Contactez-nous
</a>
</li>
</li>-->
<!-- End Button -->
<!-- Button -->
<li class="nav-item u-header__nav-item-btn">
<a class="btn btn-sm btn-primary" href="#signupModal" role="button"
data-modal-target="#signupModal"
data-overlay-color="#151b26">
data-modal-target="#signupModal"
data-overlay-color="#151b26">
{# <i class="fa fa-user-circle mr-1"></i> #}
Connexion recruteurs
</a>
@@ -24,7 +24,7 @@
{% block content %}
<main id="content">
{% include 'defaultv2/accueil/blocPhoto.html.twig'
{% include 'defaultv2/accueil/blocPhotoPagesHeader.html.twig'
with {
'urlImage': 'v2/img/1920x800/video-marque-employeur.jpg',
'textParDefaut' : 'Révélez votre marque employeur ',
@@ -184,7 +184,7 @@ with {
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#logoAndNav").css("background-color","transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
@@ -21,7 +21,7 @@
{% block content %}
<main id="content">
{% include 'defaultv2/accueil/blocPhoto.html.twig'
{% include 'defaultv2/accueil/blocPhotoPagesHeader.html.twig'
with {
'urlImage': 'v2/img/1920x800/attirer-les-candidats-avec-une-offre-emploi-video.jpg',
'textParDefaut' : 'Attirez des talents',
@@ -180,7 +180,7 @@ with {
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#logoAndNav").css("background-color","transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
@@ -346,7 +346,7 @@ with {
$(document).ready(function () {
$(window).scroll(function () { // check if scroll event happened
if ($(document).scrollTop() > 50) { // check if user scrolled more than 50 from top of the browser window
$("#logoAndNav").css("background-color","#000"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#logoAndNav").css("background-color","transparent"); // if yes, then change the color of class "navbar-fixed-top" to white (#f8f8f8)
$("#sidebarNavToggler").css("color","#fff");
} else {
$("#logoAndNav").css("background-color", "transparent"); // if not, change it back to transparent
+1 -1
View File
@@ -80,7 +80,7 @@ twig:
globals:
push_public_key: "%push_params.public_key%"
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
version: '2.8.2'
version: '2.9.1'
@@ -8,11 +8,162 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Entity\Message;
use Symfony\Component\HttpFoundation\RedirectResponse;
//MAILJET
use AppBundle\Entity\Mailjet;
// use AppBundle\Entity\Response;
use AppBundle\Entity\Resources;
use AppBundle\Entity\Config;
use AppBundle\Entity\Client;
use DateTime;
use DateInterval;
class BatchController extends Controller
{
/**
* @Route("/admin/config/batch/mailauto", name="admin_batch_mailauto")
*/
public function mailAutoAction()
{
//recuperer les messages qui ont un comment
$em = $this->getDoctrine()->getManager();
// requete pour les relance J+3
$usersJ3 = $em->getRepository('AppBundle:User')->findUsersRelance("j3");
// requete pour les relance J+7
$usersJ7 = $em->getRepository('AppBundle:User')->findUsersRelance("j7");
$listeUsersRelanceJ3 = array();
$listeUsersRelanceJ7 = array();
//relance J+7 avec stockage des talents à qui on a envoyé un mail
$listeUsersRelanceJ3 = $this->relanceTalents($usersJ3, "J3");
//relance J+7 avec stockage des talents à qui on a envoyé un mail
$listeUsersRelanceJ7 = $this->relanceTalents($usersJ7, "J7");
return $this->render('admin/batch_mailauto.html.twig', [
"listeUsersRelanceJ3" => $listeUsersRelanceJ3,
"listeUsersRelanceJ7" => $listeUsersRelanceJ7,
]);
}
private function relanceTalents($users, $type){
$listeUsersRelance = array();
$em = $this->getDoctrine()->getManager();
foreach ($users as $u) {
$arrayAdId = $pieces = explode(":", $u->getCompany()->getDescription());
$adId = null;
if(count($arrayAdId)>1){
$adId= intval($arrayAdId[1]);
}
//dump($adId);
//Envoi d'un mail de premiere relance
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
$contactMail = $u->getEmail();
// if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
// $contactMail = "l.laniau@talentstube.com";
// }
$annonceTitle =null;
if($adId){
// recuperer le title de l'annonce
$ad = $em->getRepository('AppBundle:Ad')->find($adId);
$annonceTitle= $ad->getAlias();
if($type=="J3"){
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Lancez-vous, votre futur emploi vous attend" ,
'MJ-TemplateID' =>2725372 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
'intituleOffre' => $ad->getTitle(),
'lienOffre' =>$ad->getAlias(),
'entreprise' => $ad->getCompany()->getBrandName()
]
]
]
];
}else{
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Besoin d'aide pour réaliser votre candidature vidéo ?" ,
'MJ-TemplateID' =>2725437 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
'intituleOffre' => $ad->getTitle(),
'lienOffre' =>$ad->getAlias(),
'entreprise' => $ad->getCompany()->getBrandName()
]
]
]
];
}
}else{
if($type=="J3"){
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Vous ne savez pas comment postuler ?" ,
'MJ-TemplateID' =>2716934 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
]
]
]
];
}else{
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Besoin d'aide pour réaliser une candidature vidéo ?" ,
'MJ-TemplateID' =>2725599 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
]
]
]
];
}
}
//TODO mettre un flag pour le mail de relance J+3. Mettre la date du jour
if($type=="J3"){
$u->setDatePremiereRelance(new Datetime());
}else{
$u->setDateDeuxiemeRelance(new Datetime());
}
$em->persist($u);
$em->flush();
//$response = $mj->post(Resources::$Email, ['body' => $body]);
//$response->success() && var_dump($response->getData());
$listeUsersRelance[]=array(
'id' => $u->getId(),
'nom' => $u->getLastname(),
'prenom' => $u->getFirstname(),
'email' => $u->getEmail(),
'annonce' => $annonceTitle
);
}
return $listeUsersRelance;
}
/**
* @Route("/admin/config/batch/message", name="admin_batch_message")
@@ -87,6 +238,7 @@ class BatchController extends Controller
$zipCode="";
$city="";
$country="";
$address="";
if($addr && $addr['billing']){
$addr1 = $addr['billing'];
@@ -213,7 +365,7 @@ class BatchController extends Controller
foreach ($messages as $m) {
$answer = $m->getAnswer();
if(!$answer->getStatusReponse() ){
if(!$answer->getStatusReponse() || $answer->getStatusReponse()=="A_TRAITER"){
$answer->setStatusReponse("CONTACTE");
$em->persist($answer);
$em->flush();
@@ -4,7 +4,15 @@ namespace AppBundle\Controller\Admin;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
//MAILJET
use AppBundle\Entity\Mailjet;
// use AppBundle\Entity\Response;
use AppBundle\Entity\Resources;
use AppBundle\Entity\Config;
use AppBundle\Entity\Client;
use DateTime;
use DateInterval;
class DefaultController extends Controller
{
@@ -13,7 +21,184 @@ class DefaultController extends Controller
*/
public function adminAction()
{
return $this->render('admin/dashboard.html.twig', array());
$em = $this->getDoctrine()->getManager();
// requete pour les relance J+3
// $usersJ3 = $em->getRepository('AppBundle:User')->findUsersRelance("j3");
// // requete pour les relance J+7
// $usersJ7 = $em->getRepository('AppBundle:User')->findUsersRelance("j7");
// $listeUsersRelanceJ3 = array();
// $listeUsersRelanceJ7 = array();
// //relance J+7 avec stockage des talents à qui on a envoyé un mail
// $listeUsersRelanceJ3 = $this->relanceTalents($usersJ3, "J3");
// //relance J+7 avec stockage des talents à qui on a envoyé un mail
// $listeUsersRelanceJ7 = $this->relanceTalents($usersJ7, "J7");
//Stats sur les annonces publiée et closes
$adsClose = $em->getRepository('AppBundle:Ad')->findByStatus("CLOSED", array('id' => 'DESC'));
$adsPublish = $em->getRepository('AppBundle:Ad')->findByStatus("PUBLISHED", array('id' => 'DESC'));
//$ads = $em->getRepository('AppBundle:Ad')->findUsersRelance("j7");
$ads=array();
$date = new DateTime();
$date->sub(new DateInterval('P30D'));
foreach ($adsPublish as $ad){
$nbAnswers=0;
$nbAnswersRecente=0;
foreach ($ad->getAnswers() as $a){
if($a->getStatus()!="DRAFT"){
$nbAnswers++;
if($a->getSendtime() > $date){
$nbAnswersRecente++;
}
}
}
$ads[] = array("id"=>$ad->getId(), "title"=>$ad->getTitle(), "entreprise"=>$ad->getCompany()->getBrandname(), "nbAnswers"=>$nbAnswers,"nbAnswersRecentes"=>$nbAnswersRecente, "statut"=> "Publié");
}
foreach ($adsClose as $ad){
$nbAnswers=0;
$nbAnswersRecente=0;
foreach ($ad->getAnswers() as $a){
if($a->getStatus()!="DRAFT"){
$nbAnswers++;
if($a->getSendtime() > $date){
$nbAnswersRecente++;
}
}
}
$ads[] = array("id"=>$ad->getId(), "title"=>$ad->getTitle(), "entreprise"=>$ad->getCompany()->getBrandname(), "nbAnswers"=>$nbAnswers,"nbAnswersRecentes"=>$nbAnswersRecente, "statut"=> "Close");
}
return $this->render('admin/dashboard.html.twig', array(
// "listeUsersRelanceJ3" => $listeUsersRelanceJ3,
// "listeUsersRelanceJ7" => $listeUsersRelanceJ7,
"ads" => $ads
));
}
private function relanceTalents($users, $type){
$listeUsersRelance = array();
$em = $this->getDoctrine()->getManager();
foreach ($users as $u) {
$arrayAdId = $pieces = explode(":", $u->getCompany()->getDescription());
$adId = null;
if(count($arrayAdId)>1){
$adId= intval($arrayAdId[1]);
}
//dump($adId);
//Envoi d'un mail de premiere relance
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
$contactMail = $u->getEmail();
// if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
// $contactMail = "l.laniau@talentstube.com";
// }
$annonceTitle =null;
if($adId){
// recuperer le title de l'annonce
$ad = $em->getRepository('AppBundle:Ad')->find($adId);
$annonceTitle= $ad->getAlias();
if($type=="J3"){
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Lancez-vous, votre futur emploi vous attend" ,
'MJ-TemplateID' =>2725372 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
'intituleOffre' => $ad->getTitle(),
'lienOffre' =>$ad->getAlias(),
'entreprise' => $ad->getCompany()->getBrandName()
]
]
]
];
}else{
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Besoin d'aide pour réaliser votre candidature vidéo ?" ,
'MJ-TemplateID' =>2725437 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
'intituleOffre' => $ad->getTitle(),
'lienOffre' =>$ad->getAlias(),
'entreprise' => $ad->getCompany()->getBrandName()
]
]
]
];
}
}else{
if($type=="J3"){
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Vous ne savez pas comment postuler ?" ,
'MJ-TemplateID' =>2716934 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
]
]
]
];
}else{
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Besoin d'aide pour réaliser une candidature vidéo ?" ,
'MJ-TemplateID' =>2725599 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $u->getFirstname(),
]
]
]
];
}
}
//TODO mettre un flag pour le mail de relance J+3. Mettre la date du jour
if($type=="J3"){
$u->setDatePremiereRelance(new Datetime());
}else{
$u->setDateDeuxiemeRelance(new Datetime());
}
$em->persist($u);
$em->flush();
//$response = $mj->post(Resources::$Email, ['body' => $body]);
//$response->success() && var_dump($response->getData());
$listeUsersRelance[]=array(
'id' => $u->getId(),
'nom' => $u->getLastname(),
'prenom' => $u->getFirstname(),
'email' => $u->getEmail(),
'annonce' => $annonceTitle
);
}
return $listeUsersRelance;
}
/**
@@ -355,7 +355,7 @@ class CompanyController extends FOSRestController
// $link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = "contact@talentstube.com";
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
$contactMail = "contact@talentstube.com";
}
$body = [
'FromEmail' => "noreply@talentstube.io",
@@ -383,6 +383,53 @@ class CompanyController extends FOSRestController
return new JsonResponse(array('retour' => "true"));
}
/**
* @Rest\Get(path="/api/validerOffreMail", name="api_validerOffreMail")
* @Rest\View
*/
public function validerOffreMailAction(Request $request)
{
//APPEL de l'api Pole emploi pour recuperer Token
$adId=$request->query->get('adId');
$em = $this->getDoctrine()->getManager();
$ad = $em->getRepository('AppBundle:Ad')->findOneBy(array('id' => $adId));
$users = $ad->getCompany()->getUsers();
$retour ="résultat ";
foreach ($users as $user){
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
// $link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = "contact@talentstube.com";
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "contact@talentstube.com";
}
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Votre offre d'emploi vidéo est en ligne ",
'MJ-TemplateID' =>2659410 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'nomRecruteur' => $user->getLastname(),
'prenomRecruteur' => $user->getFirstname(),
'offre' => $ad->getTitle(),
'lienOffreEmploi' => $ad->getAlias(),
]
]
]
];
$response = $mj->post(Resources::$Email, ['body' => $body]);
$retour .= $user->getFirstname()." ".$user->getId()." OK ";
}
return new JsonResponse(array('retour' => $retour));
}
/**
* @Rest\Get(path="/api/demanderDiagnostic", name="api_demanderDiagnostic")
@@ -402,7 +449,7 @@ class CompanyController extends FOSRestController
// $link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = "contact@talentstube.com";
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
$contactMail = "contact@talentstube.com";
}
$body = [
'FromEmail' => "noreply@talentstube.io",
@@ -23,6 +23,7 @@ use AppBundle\Form\CareersType;
use AppBundle\Form\FormationsType;
use AppBundle\Form\LanguagesType;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use \DateTime;
class SecurityController extends FOSRestController
{
@@ -129,6 +130,91 @@ class SecurityController extends FOSRestController
return new JsonResponse($status);
}
/**
* @Rest\Get(path="/api/test", name="api_test")
* @Rest\View
*/
public function test(Request $request)
{
$status = array('status' => "success", 'message' => "Ok2");
// $curl = curl_init();
// curl_setopt($curl, CURLOPT_HTTPHEADER, array(
// 'Content-Type: application/json',
// 'Accept : application/json',
// ));
$url="https://recruteur.talentstube.com/api/getDetailAppelation?q=10944";
// curl_setopt_array($curl, array(
// CURLOPT_URL => "http://localhost/app_dev.php/api/getDetailAppelation?q=10944",
// CURLOPT_RETURNTRANSFER => true,
// CURLOPT_ENCODING => "",
// CURLOPT_MAXREDIRS => 10,
// CURLOPT_TIMEOUT => 0,
// CURLOPT_FOLLOWLOCATION => true,
// CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
// CURLOPT_CUSTOMREQUEST => "GET",
// CURLOPT_HTTPHEADER => array(
// "Accept: application/json",
// ),
// ));
//curl_setopt_array();
// create & initialize a curl session
// Optional Authentication:
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept : application/json',
));
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
),
));
$response = curl_exec($curl);
$parsed_json = json_decode($response);
$competencesDeBase = $parsed_json->{'competencesDeBase'};
//dump($competencesDeBase);
echo "competencesDeBase!!2 --------------- <br>";
foreach ($parsed_json->{'competencesDeBase'} as $json){
echo( $json->{'code'})." / ";
echo( $json->{'libelle'});
echo "<br>";
}
echo "<br>";
foreach ($parsed_json->{'groupesCompetencesSpecifiques'} as $json){
foreach ($json->{'competences'} as $json2){
echo( $json2->{'code'})." / ";
echo( $json2->{'libelle'});
echo "<br>";
}
}
$err = curl_error($curl);
if (!$err)
{
}
curl_close($curl);
//return new JsonResponse($status);
}
/**
* @Rest\post(path="/api/update_user", name="api_update_user")
* @Rest\View
@@ -195,7 +281,67 @@ class SecurityController extends FOSRestController
$formatted_address = str_replace('"', '', $request->get('formatted_address'));
$lat = stripslashes($request->get('lat'));
$lng = stripslashes($request->get('lng'));
$appellationId="";
$appellationLibelle="";
$competences =null;
$codeRome=null;
if ($request->get('appellationId')){
$appellationId = $request->get('appellationId');
$appellationLibelle = $request->get('appellationLibelle');
$url="https://recruteur.talentstube.com/api/getDetailAppelation?q=".$appellationId;
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept : application/json',
));
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
),
));
//TODO transformer en array comme dans AdController
$detailMetier = curl_exec($curl);
$parsed_json = json_decode($detailMetier);
$codeRome = $parsed_json->{'metier'}->{'code'};
//dump($competencesDeBase);
//echo "competencesDeBase!!2 --------------- <br>";
foreach ($parsed_json->{'competencesDeBase'} as $json){
//echo( $json->{'code'})." / ";
//echo( $json->{'libelle'});
$competences[] = Array (
intval($json->{'code'}) => $json->{'libelle'}
);
//echo "<br>";
}
//echo "<br>";
foreach ($parsed_json->{'groupesCompetencesSpecifiques'} as $json){
foreach ($json->{'competences'} as $json2){
//echo( $json2->{'code'})." / ";
//echo( $json2->{'libelle'});
//echo "<br>";
$competences[] = Array (
intval($json2->{'code'}) => $json2->{'libelle'}
);
}
}
$err = curl_error($curl);
if (!$err)
{
}
curl_close($curl);
}
//
$newLinkedin = htmlspecialchars($request->get('linkedin'));
@@ -245,7 +391,11 @@ class SecurityController extends FOSRestController
);
$addrs['billing'] = $billing;
$talent->setAddresses($addrs);
$usr->setAppellationId($appellationId);
$usr->setAppellationLibelle($appellationLibelle);
$usr->setCompetences($competences);
$usr->setCodeRome($codeRome);
$companyManager->updateTalent($usr);
$status = array('status' => "success!!!!!!!!!!!!!!!!!!");
@@ -14,6 +14,7 @@ use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\Type;
use AppBundle\Utils\Traits\CareerJsonTrait;
use \DateTime;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
@@ -213,7 +214,7 @@ class User extends BaseUser
/**
* @var int
*
* @ORM\Column(name="appellationId", type="integer", nullable=true)
* @ORM\Column(name="appellation_id", type="integer", nullable=true)
*
*/
private $appellationId;
@@ -221,7 +222,7 @@ class User extends BaseUser
/**
* @var string
*
* @ORM\Column(name="appellationLibelle", type="text", nullable=true)
* @ORM\Column(name="appellation_libelle", type="text", nullable=true)
*
*/
private $appellationLibelle;
@@ -229,7 +230,7 @@ class User extends BaseUser
/**
* @var string
*
* @ORM\Column(name="codeRome", type="text", nullable=true)
* @ORM\Column(name="code_rome", type="text", nullable=true)
*
*/
private $codeRome;
@@ -241,6 +242,20 @@ class User extends BaseUser
*/
private $competences;
/**
* @var \DateTime
*
* @ORM\Column(name="date_premiere_relance", type="datetime", length=255, nullable=true, options={"default" : "2021-01-01"})
*/
private $datePremiereRelance;
/**
* @var \DateTime
*
* @ORM\Column(name="date_deuxieme_relance", type="datetime", length=255, nullable=true, options={"default" : "2021-01-01"})
*/
private $dateDeuxiemeRelance;
/***********************
* Constructor
***********************/
@@ -257,6 +272,8 @@ class User extends BaseUser
$this->products = new ArrayCollection();
$this->recommendations = new ArrayCollection();
$this->sendedRecommendations = new ArrayCollection();
$this->datePremiereRelance = null;
$this->dateDeuxiemeRelance = null;
}
/***********************
@@ -494,6 +511,12 @@ class User extends BaseUser
"currentJob" => $this->getCompany()->getExtra()["titleTalent"],
"geoloc" => $this->getGeoloc(),
"website" => $this->getCompany()->getWebsite(),
"appellationId" => $this->getAppellationId(),
"appellationLibelle" => $this->getAppellationLibelle(),
"codeRome" => $this->getCodeRome(),
"competences" => $this->getCompetences(),
"datePremiereRelance" => $this->getDatePremiereRelance(),
"dateDeuxiemeRelance" => $this->getDateDeuxiemeRelance(),
);
return $card;
}
@@ -1388,4 +1411,53 @@ class User extends BaseUser
{
return $this->competences;
}
/**
* Set datePremiereRelance.
*
* @param \DateTime|null $datePremiereRelance
*
* @return User
*/
public function setDatePremiereRelance($datePremiereRelance = null)
{
$this->datePremiereRelance = $datePremiereRelance;
return $this;
}
/**
* Get datePremiereRelance.
*
* @return \DateTime|null
*/
public function getDatePremiereRelance()
{
return $this->datePremiereRelance->format('d/m/Y');
}
/**
* Set dateDeuxiemeRelance.
*
* @param \DateTime|null $dateDeuxiemeRelance
*
* @return User
*/
public function setDateDeuxiemeRelance($dateDeuxiemeRelance = null)
{
$this->dateDeuxiemeRelance = $dateDeuxiemeRelance;
return $this;
}
/**
* Get dateDeuxiemeRelance.
*
* @return \DateTime|null
*/
public function getDateDeuxiemeRelance()
{
return $this->dateDeuxiemeRelance->format('d/m/Y');
}
}
@@ -398,11 +398,33 @@ class AnswerRepository extends AbstractRepository
->createQueryBuilder('a')
->select(['a'])
->where('a.comment IS NOT NULL');
$answers = $qb->getQuery()->getResult();
return $answers;
}
public function findUsersRelanceJ3()
{
$qb = $this
->createQueryBuilder('a')
->select('a', 'u', 'c')
->leftjoin('a.user', 'u')
->join('u.company', 'c')
->where('u.roles LIKE :roleT')
->andWhere('u.enabled = true')
// ->andWhere('c.cTime > CURRENT_TIMESTAMP()')
// ->andWhere('u.datePremiereRelance <> :dateInit')
// ->andWhere('u.dateDeuxiemeRelance <> :dateInit')
->andWhere('u.datePremiereRelance is NULL')
->andWhere('c.cTime <= :begin')
->setParameter('roleT', '%ROLE_TALENT%')
->setParameter('begin', new \DateTime('-3 days'));
// ->setParameter('dateInit', new \DateTime('2021-01-01'));
;
return $qb->getQuery()->getResult();
}
}
@@ -33,7 +33,6 @@ class MessageRepository extends \Doctrine\ORM\EntityRepository
->select('m', 'a')
->join('m.answer', 'a')
->where('m.status <> :status')
->andWhere('a.comment is null')
->setParameter(':status', 'DRAFT')
;
@@ -70,9 +70,45 @@ class UserRepository extends EntityRepository
return $qb->getQuery()->getResult();
}
public function findUsersRelance($type)
{
$qb = $this
->createQueryBuilder('u')
->select('u', 'c', 'a')
->join('u.company', 'c')
->leftjoin('u.answers', 'a')
->where('u.roles LIKE :roleT')
->andWhere('u.enabled = true')
->andWhere('a.id is NULL');
if($type=="j3"){
$qb->andWhere('u.datePremiereRelance is NULL');
}else{
$qb->andWhere('u.datePremiereRelance is not NULL');
$qb->andWhere('u.dateDeuxiemeRelance is NULL');
}
//->andWhere('u.datePremiereRelance <> :dateInit')
$qb->andWhere('c.cTime <= :begin')
->andWhere('c.presentationVideo is NULL')
->setParameter('roleT', '%ROLE_TALENT%');
if($type=="j3"){
$qb->setParameter('begin', new \DateTime('-3 days'));
}else{
$qb->setParameter('begin', new \DateTime('-7 days'));
}
//->setParameter('dateInit', new \DateTime('2021-01-01'));
//presentationVideo
;
return $qb->getQuery()->getResult();
}
public function findUserAvecAdresse()
{
$qb = $this->_em->createQueryBuilder();
$qb->select('u', 'c')
->from($this->_entityName, 'u')
+24 -14
View File
@@ -4853,7 +4853,7 @@ input[type="button"].btn-block {
display: flex;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 100px;
padding-left: 0 !important;
margin-bottom: 0;
list-style: none;
}
@@ -13069,8 +13069,8 @@ button:focus {
.u-header__section {
z-index: 1;
background-image: linear-gradient(to bottom, rgba(30,35,39,0.7), rgba(30,35,39,0));
/* background-color: f8f8f8; */
/*background-image: linear-gradient(to bottom, rgba(30,35,39,0.7), rgba(30,35,39,0)); */
background-color: #313940;
font-size: 19px;
color:#fff
@@ -13093,7 +13093,8 @@ button:focus {
}
.u-header__navbar-brand-mobile {
width: 3.125rem;
/*width: 3.125rem;*/
width: auto;
}
.u-header__navbar-nav {
@@ -13124,9 +13125,9 @@ button:focus {
/* Nav Link */
.u-header__nav-link {
color: #D2D3D3;
font-size : 19px;
font-size: 1rem;
font-weight: 600;
font-size : 16px;
/*font-size: 1rem;*/
font-weight: 400;
}
.u-header__nav-link-icon {
@@ -13806,8 +13807,8 @@ button:focus {
flex: 0 0 auto;
width: auto;
max-width: none;
-ms-flex-order: 3;
order: 3;
-ms-flex-order: 1;
order: 1;
}
.navbar-expand-lg .u-header__navbar-brand {
padding-top: 1rem;
@@ -13822,10 +13823,14 @@ button:focus {
margin-left: auto;
}
.navbar-expand-lg .u-header__navbar-nav .u-header__nav-link {
padding-top: 1.375rem;
padding-bottom: 1.375rem;
padding-right: 0.875rem;
padding-left: 0.875rem;
padding-top: 1rem;
padding-bottom: 1rem;
padding-right: 0.6rem;
padding-left: 0.6rem;
/*padding-right: 0.875rem;
padding-left: 0.875rem;*
padding-top: 1.375rem;
padding-bottom: 1.375rem;*/
}
.navbar-expand-lg .u-header__navbar-nav .u-header__sub-menu {
border: 1px solid #e3e6f0;
@@ -14170,6 +14175,11 @@ button:focus {
}
}
.headerrecruteur{
padding-top:.3125rem;
padding-bottom:.3125rem;
}
@media (max-width: 767.98px) {
.u-header--modern .navbar-expand-md.u-header__navbar {
padding-top: 0;
@@ -18126,7 +18136,7 @@ button:focus {
Clients
------------------------------------*/
.u-clients {
width: 5rem;
width: 6rem;
margin-left: auto;
margin-right: auto;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -0,0 +1,57 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-methode-de-recrutement-traditionnel">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="methode-de-recrutement-traditionnel" clip-path="url(#clip-methode-de-recrutement-traditionnel)">
<rect width="115" height="115" fill="#fff"/>
<g id="_007-approved" data-name="007-approved" transform="translate(24.211 17.861)">
<g id="Groupe_8410" data-name="Groupe 8410" transform="translate(0 25.859)">
<g id="Groupe_8409" data-name="Groupe 8409">
<path id="Tracé_782" data-name="Tracé 782" d="M46.643,167.454a1.547,1.547,0,1,0,.454,1.095A1.559,1.559,0,0,0,46.643,167.454Z" transform="translate(-44 -167)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8412" data-name="Groupe 8412" transform="translate(0)">
<g id="Groupe_8411" data-name="Groupe 8411">
<path id="Tracé_783" data-name="Tracé 783" d="M105.008,0H73.678a1.548,1.548,0,1,0,0,3.1h31.33a1.55,1.55,0,0,1,1.548,1.548V74.634a1.55,1.55,0,0,1-1.548,1.548H48.645A1.55,1.55,0,0,1,47.1,74.634V33.188a1.548,1.548,0,1,0-3.1,0V74.634a4.651,4.651,0,0,0,4.645,4.645h56.362a4.651,4.651,0,0,0,4.645-4.645V4.645A4.651,4.651,0,0,0,105.008,0Z" transform="translate(-44)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8414" data-name="Groupe 8414" transform="translate(12.495 6.194)">
<g id="Groupe_8413" data-name="Groupe 8413">
<path id="Tracé_784" data-name="Tracé 784" d="M145.027,40a20.843,20.843,0,0,0-3.147.239,1.548,1.548,0,0,0,.469,3.061,17.711,17.711,0,0,1,2.678-.2A17.487,17.487,0,0,1,158.41,71.853a15.514,15.514,0,0,0-8.083-6.765,7.564,7.564,0,0,0,2.288-5.423v-1.51a7.587,7.587,0,1,0-15.174,0v1.51a7.563,7.563,0,0,0,2.288,5.423,15.517,15.517,0,0,0-8.1,6.792,17.44,17.44,0,0,1-3.857-8.369,1.548,1.548,0,0,0-3.054.512A20.6,20.6,0,1,0,145.027,40Zm-4.49,18.155a4.49,4.49,0,1,1,8.981,0v1.51a4.49,4.49,0,1,1-8.981,0Zm4.49,19.936a17.476,17.476,0,0,1-11.1-3.946,12.385,12.385,0,0,1,22.189-.026A17.416,17.416,0,0,1,145.027,78.091Z" transform="translate(-124.696 -40)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8416" data-name="Groupe 8416" transform="translate(23.591 61.627)">
<g id="Groupe_8415" data-name="Groupe 8415">
<path id="Tracé_785" data-name="Tracé 785" d="M219.893,398H197.905a1.548,1.548,0,1,0,0,3.1h21.988a1.548,1.548,0,1,0,0-3.1Z" transform="translate(-196.357 -398.002)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8418" data-name="Groupe 8418" transform="translate(16.977 52.956)">
<g id="Groupe_8417" data-name="Groupe 8417">
<path id="Tracé_786" data-name="Tracé 786" d="M156.283,342.454a1.547,1.547,0,1,0,.454,1.095A1.559,1.559,0,0,0,156.283,342.454Z" transform="translate(-153.64 -342)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8420" data-name="Groupe 8420" transform="translate(16.977 61.627)">
<g id="Groupe_8419" data-name="Groupe 8419">
<path id="Tracé_787" data-name="Tracé 787" d="M156.283,398.454a1.547,1.547,0,1,0,.454,1.095A1.557,1.557,0,0,0,156.283,398.454Z" transform="translate(-153.64 -398)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8422" data-name="Groupe 8422" transform="translate(23.591 52.956)">
<g id="Groupe_8421" data-name="Groupe 8421">
<path id="Tracé_788" data-name="Tracé 788" d="M219.893,342H197.905a1.548,1.548,0,1,0,0,3.1h21.988a1.548,1.548,0,0,0,0-3.1Z" transform="translate(-196.357 -342.002)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8424" data-name="Groupe 8424" transform="translate(6.614 8.47)">
<g id="Groupe_8423" data-name="Groupe 8423">
<path id="Tracé_789" data-name="Tracé 789" d="M98.315,55.154a1.549,1.549,0,0,0-2.19,0L91.083,60.2,89.36,58.474a1.549,1.549,0,1,0-2.19,2.19l2.818,2.818a1.549,1.549,0,0,0,2.19,0l6.138-6.138A1.549,1.549,0,0,0,98.315,55.154Z" transform="translate(-86.716 -54.701)" fill="#1789fb"/>
</g>
</g>
<g id="Groupe_8426" data-name="Groupe 8426" transform="translate(0)">
<g id="Groupe_8425" data-name="Groupe 8425">
<path id="Tracé_790" data-name="Tracé 790" d="M56.7,0a12.7,12.7,0,1,0,12.7,12.7A12.711,12.711,0,0,0,56.7,0Zm0,22.3a9.6,9.6,0,1,1,9.6-9.6A9.611,9.611,0,0,1,56.7,22.3Z" transform="translate(-44 0)" fill="#1789fb"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-metier-en-tension">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="metier-en-tension" clip-path="url(#clip-metier-en-tension)">
<rect width="115" height="115" fill="#fff"/>
<g id="_001-high-voltage" data-name="001-high-voltage" transform="translate(20.27 22.373)">
<g id="Groupe_8431" data-name="Groupe 8431" transform="translate(0 0)">
<g id="Groupe_8430" data-name="Groupe 8430">
<path id="Tracé_795" data-name="Tracé 795" d="M73.651,79.969,43.1,24.68a6.488,6.488,0,0,0-5.675-3.346h-.388a6.487,6.487,0,0,0-5.675,3.348L.809,79.969a6.483,6.483,0,0,0,5.675,9.619H67.976a6.484,6.484,0,0,0,5.675-9.619Zm-5.675,6.517H6.484a3.383,3.383,0,0,1-2.96-5.017L34.076,26.183a3.386,3.386,0,0,1,2.96-1.747h.388a3.387,3.387,0,0,1,2.96,1.745L70.936,81.469a3.383,3.383,0,0,1-2.96,5.017Z" transform="translate(0 -21.334)" fill="#1789fb"/>
<path id="Tracé_796" data-name="Tracé 796" d="M193.939,186.178h-7.017l5.354-13.386a1.55,1.55,0,0,0-1.439-2.127H179.978a1.552,1.552,0,0,0-1.46,1.03l-7.756,21.717a1.549,1.549,0,0,0,1.46,2.072h7.017l-5.354,13.386a1.551,1.551,0,0,0,2.618,1.585l18.615-21.717a1.552,1.552,0,0,0-1.179-2.56Zm-13.695,15.144,2.724-6.812a1.55,1.55,0,0,0-1.439-2.127h-7.1l6.647-18.615h7.474l-5.354,13.386a1.55,1.55,0,0,0,1.439,2.127h5.935Z" transform="translate(-145.85 -148.948)" fill="#1789fb"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-penurie-main-oeuvre">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="penurie-main-oeuvre" clip-path="url(#clip-penurie-main-oeuvre)">
<rect width="115" height="115" fill="#fff"/>
<g id="_002-puzzle" data-name="002-puzzle" transform="translate(24.035 17.34)">
<path id="Tracé_797" data-name="Tracé 797" d="M178.729,288.893,176.052,299.6a1.338,1.338,0,0,0,1.622,1.622l5.354-1.339a1.339,1.339,0,1,0-.648-2.6l-3.191.8,2.142-8.545a1.339,1.339,0,1,0-2.6-.648Zm0,0" transform="translate(-146.562 -239.688)" fill="#1789fb"/>
<path id="Tracé_798" data-name="Tracé 798" d="M100.382,272.032a1.329,1.329,0,0,0-1.626.967c-.011.043-1.143,4.344-4.056,4.344s-4.045-4.3-4.056-4.344a1.339,1.339,0,0,0-2.6.652c.064.261,1.649,6.369,6.653,6.369s6.588-6.108,6.653-6.369A1.339,1.339,0,0,0,100.382,272.032Zm0,0" transform="translate(-73.282 -226.476)" fill="#1789fb"/>
<path id="Tracé_799" data-name="Tracé 799" d="M238.7,280.021c5,0,6.588-6.108,6.653-6.369a1.339,1.339,0,0,0-2.6-.652c-.011.043-1.143,4.344-4.056,4.344s-4.045-4.3-4.056-4.344a1.339,1.339,0,0,0-2.6.652C232.111,273.913,233.7,280.021,238.7,280.021Zm0,0" transform="translate(-193.187 -226.476)" fill="#1789fb"/>
<path id="Tracé_800" data-name="Tracé 800" d="M61.584,38.982V30.788c0-3.711-8.461-5.377-16.063-6.127V20.079a1.339,1.339,0,0,0-1.339-1.339,2.677,2.677,0,0,1,0-5.354,1.339,1.339,0,0,0,1.339-1.339V5.354a1.339,1.339,0,0,0-1.339-1.339H38.658a5.355,5.355,0,0,0-10.369,0H22.764a1.339,1.339,0,0,0-1.339,1.339v5.524a5.355,5.355,0,0,0,0,10.369v3.413c-7.6.75-16.063,2.416-16.063,6.127v8.194c-3.05.747-5.354,3.988-5.354,7.87,0,3.933,2.369,7.207,5.488,7.9a28.1,28.1,0,0,0,55.965,0c3.108-.69,5.477-3.965,5.477-7.9C66.938,42.97,64.634,39.729,61.584,38.982ZM5.362,51.876a5.467,5.467,0,0,1-2.677-5.025,5.468,5.468,0,0,1,2.677-5.025ZM20.087,16.063a2.677,2.677,0,0,1,2.677-2.677A1.339,1.339,0,0,0,24.1,12.048V6.693h5.354A1.339,1.339,0,0,0,30.8,5.354a2.677,2.677,0,1,1,5.354,0,1.339,1.339,0,0,0,1.339,1.339h5.354v4.186a5.355,5.355,0,0,0,0,10.369v4.186H37.489a1.339,1.339,0,0,0-1.339,1.339,2.677,2.677,0,0,1-5.354,0,1.339,1.339,0,0,0-1.339-1.339H24.1V20.079a1.339,1.339,0,0,0-1.339-1.339A2.677,2.677,0,0,1,20.087,16.063Zm38.82,36.143a25.434,25.434,0,0,1-50.867,0V33.95c6.839,3.479,24.509,3.531,25.434,3.531s18.595-.052,25.434-3.531ZM33.473,34.8c-15.8,0-24.8-2.6-25.434-3.939v-.027c.342-.764,4.084-2.543,13.52-3.5a1.337,1.337,0,0,0,1.2.771h5.524a5.355,5.355,0,0,0,10.369,0h5.524a1.337,1.337,0,0,0,1.2-.771c9.494.958,13.227,2.75,13.533,3.384C58.324,32.188,49.318,34.8,33.473,34.8ZM61.584,51.876V41.826a5.468,5.468,0,0,1,2.677,5.025A5.467,5.467,0,0,1,61.584,51.876Zm0,0" transform="translate(-0.008)" fill="#1789fb"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-recrutement-long-et-difficile">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="recrutement-long-et-difficile" clip-path="url(#clip-recrutement-long-et-difficile)">
<rect width="115" height="115" fill="#fff"/>
<g id="_001-timer" data-name="001-timer" transform="translate(-19.855 15.919)">
<g id="Groupe_8428" data-name="Groupe 8428" transform="translate(42.711 0)">
<g id="Groupe_8427" data-name="Groupe 8427" transform="translate(0 0)">
<path id="Tracé_791" data-name="Tracé 791" d="M109.922,54.307a1.624,1.624,0,0,0-1.944,1.224,31.346,31.346,0,1,1-.007-13.96,1.624,1.624,0,0,0,3.167-.723,34.705,34.705,0,0,0-9.918-17.361l2.187-2.448,1.335,1.189A1.624,1.624,0,0,0,106.9,19.8l-5.093-4.535a1.624,1.624,0,0,0-2.16,2.426l1.332,1.186-2.219,2.484a34.743,34.743,0,0,0-15.16-6.82,8.622,8.622,0,1,0-12.494-.006,34.535,34.535,0,0,0-15.144,6.837l-2.229-2.495,1.332-1.186a1.624,1.624,0,0,0-2.16-2.426L47.813,19.8a1.624,1.624,0,0,0,2.16,2.426l1.335-1.189,2.2,2.459a34.612,34.612,0,1,0,57.641,32.753,1.624,1.624,0,0,0-1.224-1.944ZM77.358,3.249a5.361,5.361,0,0,1,1.624,10.474V9.868a1.624,1.624,0,0,0-3.249,0v3.855A5.361,5.361,0,0,1,77.358,3.249Z" transform="translate(-42.711 0)" fill="#1789fb"/>
<path id="Tracé_792" data-name="Tracé 792" d="M452.09,289.506a1.625,1.625,0,1,0,.186,2.072A1.642,1.642,0,0,0,452.09,289.506Z" transform="translate(-383.272 -242.087)" fill="#1789fb"/>
<path id="Tracé_793" data-name="Tracé 793" d="M119.483,136.242a26.438,26.438,0,1,0,26.477,26.439A26.488,26.488,0,0,0,119.483,136.242Zm23.172,24.814h-2a1.624,1.624,0,1,0,0,3.249h2A23.075,23.075,0,0,1,137,177.9l-1.4-1.4a1.624,1.624,0,0,0-2.3,2.3l1.393,1.393a23.153,23.153,0,0,1-13.589,5.623V183.85a1.624,1.624,0,0,0-3.249,0v1.964a23.153,23.153,0,0,1-13.589-5.623l1.393-1.393a1.624,1.624,0,0,0-2.3-2.3l-1.4,1.4A23.074,23.074,0,0,1,96.311,164.3h2a1.624,1.624,0,1,0,0-3.249h-2a23.074,23.074,0,0,1,5.658-13.593l1.4,1.4a1.624,1.624,0,0,0,2.3-2.3l-1.393-1.393a23.153,23.153,0,0,1,13.589-5.623v1.964a1.624,1.624,0,0,0,3.249,0v-1.964A23.245,23.245,0,0,1,142.656,161.056Z" transform="translate(-84.837 -114.113)" fill="#1789fb"/>
<path id="Tracé_794" data-name="Tracé 794" d="M221.985,223.446a6.93,6.93,0,0,0-9.572,9.572l-1.007,1.007a1.624,1.624,0,1,0,2.3,2.3l1.052-1.052a6.93,6.93,0,0,0,9.482-9.482l7.25-7.25a1.624,1.624,0,1,0-2.3-2.3Zm-3.731,9.524a3.684,3.684,0,1,1,3.684-3.684A3.688,3.688,0,0,1,218.253,232.97Z" transform="translate(-183.607 -180.718)" fill="#1789fb"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-talents-introuvables">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="talents-introuvables" clip-path="url(#clip-talents-introuvables)">
<rect width="115" height="115" fill="#fff"/>
<g id="_004-job-seeker" data-name="004-job-seeker" transform="translate(16.883 16.883)">
<path id="Tracé_760" data-name="Tracé 760" d="M188.442,85.018a1.583,1.583,0,0,0,.277.263,22.367,22.367,0,0,0,30.4.143,1.587,1.587,0,0,0,.542-.515,22.409,22.409,0,1,0-31.216.109Zm2.906-1.614a8.875,8.875,0,0,1,8.736-7.18h2.333v5.965a1.579,1.579,0,0,0,3.157,0V76.224h2.332a8.869,8.869,0,0,1,8.736,7.179,19.213,19.213,0,0,1-25.294,0Zm7.883-16.272h1.522a8.524,8.524,0,0,0,5.6-2.089l2.405,1.413V68.3a4.764,4.764,0,1,1-9.528,0Zm9.528-4.337-1.865-1.1a1.578,1.578,0,0,0-2.01.347,5.376,5.376,0,0,1-4.131,1.928h-1.522v-1.51a4.764,4.764,0,0,1,9.528,0ZM204,49.649a19.242,19.242,0,0,1,15.158,31.107,12.008,12.008,0,0,0-9-7.482,7.881,7.881,0,0,0,1.761-4.972V62.465a7.921,7.921,0,1,0-15.842,0V68.3a7.882,7.882,0,0,0,1.761,4.972,12.023,12.023,0,0,0-9,7.483A19.242,19.242,0,0,1,204,49.649Zm0,0" transform="translate(-152.921 -39.153)" fill="#1789fb"/>
<path id="Tracé_761" data-name="Tracé 761" d="M50.84,59.966A29.984,29.984,0,0,0,54.018.167,30.1,30.1,0,0,0,34.876,4.595a1.579,1.579,0,1,0,1.683,2.671,26.83,26.83,0,0,1,33.25,41.686A26.83,26.83,0,0,1,28.123,15.7a1.579,1.579,0,0,0-2.671-1.683,29.974,29.974,0,0,0-.723,30.693L18.3,51.143,2.357,67.084A8.048,8.048,0,0,0,13.739,78.465L29.679,62.525h0L36.1,56.107A29.815,29.815,0,0,0,50.84,59.966ZM11.506,76.232A4.891,4.891,0,0,1,4.59,69.316L19.414,54.492l6.916,6.917ZM28.563,59.176,21.646,52.26l4.82-4.82a29.867,29.867,0,0,0,3.171,3.745,30.428,30.428,0,0,0,3.739,3.178Zm0,0" transform="translate(0 -0.001)" fill="#1789fb"/>
<path id="Tracé_762" data-name="Tracé 762" d="M186.4,55.852a1.578,1.578,0,0,0,1.116-2.695h0a1.579,1.579,0,1,0-1.116,2.7Zm0,0" transform="translate(-155.648 -44.376)" fill="#1789fb"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="115" viewBox="0 0 115 115">
<defs>
<clipPath id="clip-trop-candidats-non-cibles">
<rect width="115" height="115"/>
</clipPath>
</defs>
<g id="trop-candidats-non-cibles" clip-path="url(#clip-trop-candidats-non-cibles)">
<rect width="115" height="115" fill="#fff"/>
<g id="_003-target" data-name="003-target" transform="translate(14.965 14.965)">
<g id="Groupe_8407" data-name="Groupe 8407" transform="translate(0 0)">
<path id="Tracé_758" data-name="Tracé 758" d="M96.8,52.08H91.095A37.414,37.414,0,0,0,55.9,16.726V11H52.063v5.709A37.4,37.4,0,0,0,16.709,52.08H11v3.835h5.709a37.428,37.428,0,0,0,35.354,35.2V96.8H55.9V91.095A37.427,37.427,0,0,0,91.077,55.915H96.8ZM52.08,81.464v5.8a33.249,33.249,0,0,1-16.793-5.621V77.086a11.457,11.457,0,0,1,11.5-11.5H60.853a11.457,11.457,0,0,1,11.5,11.5v4.675a33.223,33.223,0,0,1-16.425,5.5V81.481H52.08Zm24.27-2.854V77.068a15.313,15.313,0,0,0-15.34-15.339H46.95A15.138,15.138,0,0,0,31.8,77.068v1.874A33.368,33.368,0,0,1,20.543,55.9h5.779V52.063H20.543A33.443,33.443,0,0,1,52.08,20.526v5.8h3.835V20.543A33.425,33.425,0,0,1,87.26,52.063h-5.8V55.9h5.779A33.263,33.263,0,0,1,76.35,78.609Z" transform="translate(-11 -11)" fill="#1789fb"/>
<path id="Tracé_759" data-name="Tracé 759" d="M199.247,127.8a12.047,12.047,0,1,0,12.047,12.047A12.161,12.161,0,0,0,199.247,127.8Zm0,20.067a8.213,8.213,0,1,1,8.213-8.213A8.18,8.18,0,0,1,199.247,147.867Z" transform="translate(-156.346 -107.347)" fill="#1789fb"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB