Compare commits

...

66 Commits

Author SHA1 Message Date
devtt 4453020638 Modification version config 2021-07-05 17:05:12 +02:00
devtt b2c430c377 Modifications page recruteur 2021-07-05 16:53:37 +02:00
devtt 662348f6c5 Bascule preprod v2.12.1 2021-06-28 12:12:52 +02:00
devtt eb01f1d4f6 BUG Page Talent 2021-06-28 11:28:11 +02:00
devtt 0f42b821e4 MEP v2.11.2_prod 2021-06-28 10:26:02 +02:00
devtt cf78529385 Error de config 2021-06-28 10:22:21 +02:00
devtt 0002b814c0 MEP v2.11.2 2021-06-28 10:10:39 +02:00
llaniau 8ca69f778c Epuration code avant MEP 2021-06-28 08:46:31 +02:00
llaniau 6ae87a487a Correction bugs suite recette 14 06 2021-06-14 16:07:52 +02:00
llaniau f52dcc7c96 ... 2021-06-14 12:52:43 +02:00
llaniau 639e1b2bcd Page talent referencement 2021-06-14 12:50:07 +02:00
llaniau 991e04dbaf talent show, metier 2021-06-14 12:43:53 +02:00
llaniau 09e021f02e Résolution de bugs 2021-06-14 12:28:03 +02:00
llaniau 3adfbb57e1 BaseTalent referencement 2021-06-07 17:05:42 +02:00
llaniau 195ec8c4bd US 558 2021-06-07 16:59:56 +02:00
devtt 4ba368ea27 Modif page partage profil public 2021-06-07 15:35:15 +02:00
devtt 1491178bd8 Nouvelle page partage profil public (candidat) 2021-06-03 08:40:17 +02:00
devtt ce8301bfc6 Init V2.11.1 2021-05-31 15:54:31 +02:00
llaniau 264e97dbaf Config vimeo pre prod 2021-05-31 12:52:09 +02:00
llaniau a26841091c media manager 2021-05-31 12:20:36 +02:00
llaniau 8c797c884a V2.10.4 2021-05-25 18:09:28 +02:00
llaniau 96c4c726b4 Changement tel 2021-05-25 17:43:48 +02:00
llaniau a20990ec04 Suppression talent 2021-05-17 16:07:55 +02:00
llaniau 684ecd94b1 MEP V2.10.3 2021-05-17 10:52:50 +02:00
llaniau b6b473d54f US 549 /550 2021-05-03 16:45:16 +02:00
llaniau 1616739b78 Init V2.10.1 2021-04-26 11:30:15 +02:00
llaniau af032886ef Bloc FAQ 2021-04-26 10:27:43 +02:00
llaniau 29445cd4a3 MEP V2.9.2 2021-04-19 10:01:24 +02:00
llaniau 925410dfe8 Merge branch 'V2.9.2' of https://git.e-declic.net/talents-tube/website into V2.9.2 2021-04-16 09:20:18 +02:00
llaniau 2cec912442 Mail auto 2021-04-16 09:20:00 +02:00
devtt 2bcf221d2a Mise à jour du sitemap 2021-04-15 10:07:12 +02:00
devtt 322c770d62 Ajout landing Informatique + Modif landing 2021-04-14 15:32:32 +02:00
llaniau b473869726 Merge branch 'V2.9.2' of https://git.e-declic.net/talents-tube/website into V2.9.2 2021-04-12 20:16:33 +02:00
llaniau 53bcf6e02a Bug 239 2021-04-12 20:12:25 +02:00
devtt 2ccb5cf08a Mise en commentaires FAQ 2021-04-12 14:59:55 +02:00
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
llaniau 42ef149f41 V2.8.2 2021-03-25 14:35:03 +01:00
llaniau 5112da2f40 Page accueil Recruteur 2021-03-25 14:33:41 +01:00
llaniau dc5c50dd49 Automatisation referencement MEP 2021-03-25 10:09:48 +01:00
llaniau 9f076c4423 batch et landing page 2021-03-23 18:18:58 +01:00
llaniau 987c78f5be retour recette V2.8.1 2021-03-22 18:29:44 +01:00
llaniau 078a62e588 test laurent pour corentin 2021-03-17 13:12:30 +01:00
llaniau 73e709c6c9 Batch + envoi mail apres offre 2021-03-16 22:28:40 +01:00
llaniau ec71b87747 candidatures d'une offre 2021-03-15 19:45:07 +01:00
llaniau a5636bf2b5 Bug candidatures (sF v1 et web app) 2021-03-10 14:12:46 +01:00
llaniau c0e25f5d10 Bug liste candidatures dashboar tt et entreprise 2021-03-10 12:59:38 +01:00
llaniau fc860c32ad Bug presta 2021-03-10 12:23:37 +01:00
llaniau 69522b4836 Bug prestashop 2021-03-10 12:21:25 +01:00
llaniau 1aea17557e MEP V2.7.5 2021-03-10 11:33:09 +01:00
llaniau ab74dae813 MEP V2.7.5 2021-03-10 11:32:30 +01:00
llaniau c46f0c29a3 V2.7.5 2021-03-10 10:29:39 +01:00
llaniau 5b1d296817 Amélioration candidatures dashboard entre 2021-03-10 10:27:50 +01:00
156 changed files with 8333 additions and 1391 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;
@@ -301,7 +301,11 @@
</trans-unit>
<trans-unit id="ad.company.list.title">
<source>ad.company.list.title</source>
<target>Intitulé de l'annonce</target>
<target>Intitulé de l'offre</target>
</trans-unit>
<trans-unit id="ad.company.list.location">
<source>ad.company.list.location</source>
<target>Localisation</target>
</trans-unit>
<trans-unit id="ad.company.list.answers">
<source>ad.company.list.answers</source>
@@ -315,6 +319,10 @@
<source>ad.company.list.actions</source>
<target>Actions</target>
</trans-unit>
<trans-unit id="ad.company.list.statut">
<source>ad.company.list.statut</source>
<target>Statut</target>
</trans-unit>
<trans-unit id="ad.company.list.status">
<source>ad.company.list.status</source>
<target>Statut</target>
@@ -367,6 +375,10 @@
<source>profile.talent.firstname</source>
<target>Prénom</target>
</trans-unit>
<trans-unit id="profile.talent.video">
<source>profile.talent.video</source>
<target>Vidéo</target>
</trans-unit>
<trans-unit id="profile.talent.lastname">
<source>profile.talent.lastname</source>
<target>Nom</target>
@@ -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>
@@ -1,30 +1,35 @@
{% extends 'admin/base_admin.html.twig' %}
{% block js %}
{# <link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
{# <link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.4.1/css/buttons.dataTables.min.css"> #}
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
{# <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script>
{# <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
@@ -35,13 +40,13 @@
{% endblock %}
{% block contentHeader %}
<h1>
Liste des Candidatures
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Annonces</li>
</ol>
<h1>
Liste des Candidatures
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Annonces</li>
</ol>
{% endblock %}
{% block content %}
@@ -50,51 +55,54 @@
.dataTables_filter {
display: none;
}
</style>
<div class="box box-primary">
<div class="box-body">
<table width="100%" class="table " style="background-color: #3c8dbc">
<thead>
<tr>
<th colspan="5" class="text-center">RECHERCHE</th>
</tr>
<div class="box box-primary">
<div class="box-body">
<table width="100%" class="table " style="background-color: #3c8dbc">
<thead>
<tr>
<th colspan="5" class="text-center">RECHERCHE</th>
</thead>
<tr>
<th width="4%"><input id='input1' type='text' class='form-control' placeholder='par id' style='font-family:Arial, FontAwesome; width:100%'/></th>
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='par nom' style='font-family:Arial, FontAwesome; width:100%'/></th>
<th width="11%"><input id='input4' type='text' class='form-control' placeholder='par prénom' style='font-family:Arial, FontAwesome; width:100%'/></th>
<th width="25%"><input id='input5' type='text' class='form-control' placeholder='par entreprise / offre' style='font-family:Arial, FontAwesome; width:100%'/></th>
<th width="15%">
<select id='input7'>
<option value="sended">Envoyé</option>
<option value="draft">Brouillon</option>
</select>
</th>
</tr>
</table>
<br/>
<table id="towns_dt_table" width="100%" class="table table-hover table-bordered">
{# Add a tfoot which will actually be used to place the individual search boxes #}
<tfoot>
<tr>
<th width="4%">id</th>
<th width="6%">Date d'envoi</th>
<th width="11%">Nom</th>
<th width="11%">Prénom</th>
<th width="25%">Annonce / entreprise</th>
<th width="28%">Vidéo</th>
<th width="15%">Statut</th>
<th width="10%">Actions</th>
</tr>
{# <tr>
</tr>
</thead>
<tr>
<th width="4%"><input id='input1' type='text' class='form-control' placeholder='par id'
style='font-family:Arial, FontAwesome; width:100%' /></th>
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='par nom'
style='font-family:Arial, FontAwesome; width:100%' /></th>
<th width="11%"><input id='input4' type='text' class='form-control' placeholder='par prénom'
style='font-family:Arial, FontAwesome; width:100%' /></th>
<th width="25%"><input id='input5' type='text' class='form-control' placeholder='par entreprise / offre'
style='font-family:Arial, FontAwesome; width:100%' /></th>
<th width="15%">
<select id='input7'>
<option value="sended">Tous les statuts</option>
<option value="sended">Envoyé</option>
<option value="draft">Brouillon</option>
</select>
</th>
</tr>
</table>
<br />
<table id="towns_dt_table" width="100%" class="table table-hover table-bordered">
{# Add a tfoot which will actually be used to place the individual search boxes #}
<tfoot>
<tr>
<th width="4%">id</th>
<th width="6%">Date d'envoi</th>
<th width="11%">Nom</th>
<th width="11%">Prénom</th>
<th width="25%">Annonce / entreprise</th>
<th width="28%">Vidéo</th>
<th width="15%">Statut</th>
<th width="10%">Actions</th>
</tr>
{# <tr>
<th><input id='input1' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
<th></th>
<th><input id='input3' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
@@ -102,25 +110,25 @@
<th></th>
<th><input id='input5' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
</tr> #}
</tfoot>
<thead>
<tr>
<th>Id</th>
<th>Date d'envoi</th>
<th>Nom</th>
<th>Prénom</th>
<th>Annonce / entreprise</th>
<th>Vidéo</th>
<th>Statut</th>
<th>Actions</th>
</tr>
</thead>
<tbody></tbody>
</table>
</tfoot>
<thead>
<tr>
<th>Id</th>
<th>Date d'envoi</th>
<th>Nom</th>
<th>Prénom</th>
<th>Annonce / entreprise</th>
<th>Vidéo</th>
<th>Statut</th>
<th>Actions</th>
</tr>
</thead>
<tbody></tbody>
</table>
{# <table id="answer_list_table" class="table table-hover table-bordered">
{# <table id="answer_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-xs-2">Date d'envoi</th>
@@ -169,118 +177,152 @@
{% endfor %}
</tbody>
</table> #}
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
$(document).ready(function(){
<script>
$(document).ready(function () {
// Add a text input to each footer cell
var pos = 1;
$('#towns_dt_table tfoot th').each( function () {
var title = $(this).text();
//$(this).html( "<input id='input" + pos + "' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/>" );
// Add a text input to each footer cell
pos ++;
});
var table = $('#towns_dt_table').DataTable({
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
"columnDefs": [
{ "name": "ad_id", "targets": 0 , "searchable": true, "orderable": true},
{ "name": "date_envoi", "targets": 1 , "searchable": true, "orderable": true},
{ "name": "nom", "targets": 2 , "searchable": true, "orderable": true},
{ "name": "prenom", "targets": 3 , "searchable": true, "orderable": true},
{ "name": "entreprise", "targets": 4, "searchable": true, "orderable": true },
{ "name": "video", "targets": 5 },
{ "name": "status", "targets": 6 , "searchable": true, "orderable": true},
{ "name": "actions", "targets": 7 },
],
"processing": true,
"serverSide": true,
"ajax": {
"url": '{{ path('alimenterCandidatures') }}',
"type": 'POST'
var table = $('#towns_dt_table').DataTable({
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
"columnDefs": [{
"name": "ad_id",
"targets": 0,
"searchable": true,
"orderable": true
},
"paging" : true,
"info" : true,
"searching": true,
"bFilter":true,
"responsive": true,
"pageLength": 10,
"order": [[0, 'desc']],
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
{
"name": "date_envoi",
"targets": 1,
"searchable": true,
"orderable": true
},
});
{
"name": "nom",
"targets": 2,
"searchable": true,
"orderable": true
},
{
"name": "prenom",
"targets": 3,
"searchable": true,
"orderable": true
},
{
"name": "entreprise",
"targets": 4,
"searchable": true,
"orderable": true
},
{
"name": "video",
"targets": 5
},
{
"name": "status",
"targets": 6,
"searchable": true,
"orderable": true
},
{
"name": "actions",
"targets": 7
},
],
"processing": true,
"serverSide": true,
// Apply the search
pos = 1;
table.columns().every( function () {
var that = this;
$("#input"+pos).on( 'keyup change', function () {
if ( that.search() !== this.value )
{
that
.search( this.value )
.draw();
}
});
pos++;
});
$('#towns_dt_table_filter').hide();
"ajax": {
"url": '{{ path('alimenterCandidatures') }}',
"type": 'POST'
},
"paging": true,
"info": true,
"searching": true,
"bFilter": true,
"responsive": true,
"pageLength": 10,
"order": [
[0, 'desc']
],
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
});
function changerStatut(value, id){
var idAnswer = id;
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
var select = $(this);
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log("ok");
$("#status_"+id).text(value);
}
});
}
function verifierDelete(id){
console.log(id);
var r = confirm("Êtes vous sûr de supprimer cette candidature ?\nSupprimer cette candidature supprimera le média associé\n");
if (r == true) {
txt = "You pressed OK!";
location.href = "/app_dev.php/admin/config/answer/"+id+"/delete";
return true;
} else {
txt = "You pressed Cancel!";
// Apply the search
pos = 1;
table.columns().every(function () {
var that = this;
$("#input" + pos).on('keyup change', function () {
if (that.search() !== this.value) {
that
.search(this.value)
.draw();
}
});
pos++;
});
$('#towns_dt_table_filter').hide();
});
function changerStatut(value, id) {
var idAnswer = id;
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
var select = $(this);
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log("ok");
$("#status_" + id).text(value);
}
console.log(txt);
});
}
function verifierDelete(id) {
console.log(id);
var r = confirm(
"Êtes vous sûr de supprimer cette candidature ?\nSupprimer cette candidature supprimera le média associé\n"
);
if (r == true) {
txt = "You pressed OK!";
location.href = "/app_dev.php/admin/config/answer/" + id + "/delete";
return true;
} else {
txt = "You pressed Cancel!";
}
</script>
console.log(txt);
}
</script>
{% endblock %}
@@ -24,7 +24,7 @@
{% block css %}
{% endblock %}
<!--[if lt IE 9]>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
@@ -65,7 +65,7 @@
©2017-2021 Talents Tube
</p>
<p class="small no-margin pull-right sm-pull-reset">
Besoin d'aide ? 02 30 05 06 31
Besoin d'aide ? 07 56 85 27 36
</p>
<div class="clearfix"></div>
</div>
@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<meta charset="utf-8" />
<title>Pages - Admin Dashboard UI Kit - Dashboard</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta content="Meet pages - The simplest and fastest way to build web UI for your dashboard or app."
name="description" />
<meta content="Ace" name="author" />
<link href="{{ asset('dashboard/plugins/pace/pace-theme-flash.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('dashboard/plugins/bootstrap/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="{{ asset('dashboard/plugins/jquery-scrollbar/jquery.scrollbar.css') }}" rel="stylesheet" type="text/css"
media="screen" />
<link href="{{ asset('dashboard/plugins/select2/css/select2.min.css') }}" rel="stylesheet" type="text/css"
media="screen" />
<link href="{{ asset('dashboard/plugins/nvd3/nv.d3.min.css') }}" rel="stylesheet" type="text/css" media="screen" />
<link href="{{ asset('dashboard/plugins/mapplic/css/mapplic.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('dashboard/plugins/rickshaw/rickshaw.min.css') }}" rel="stylesheet" type="text/css" />
<link class="main-stylesheet" href="{{ asset('dashboard/pages/css/themes/corporate.css') }}" rel="stylesheet"
type="text/css" />
<!-- Please remove the file below for production: Contains demo classes -->
<link class="main-stylesheet" href="{{ asset('dashboard/css/style.css') }}" rel="stylesheet" type="text/css" />
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="08e9d301-ba14-4d69-8b1a-53685114c5af";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
<!-- END PAGE LEVEL JS -->
<script src="{{ asset('dashboard/plugins/jquery/jquery-3.2.1.min.js') }}" type="text/javascript"></script>
{# <script type="text/javascript" src="http://code.jquery.com/jquery-3.2.1.min.js"></script> #}
{% block javascriptSupl %}
{% endblock %}
<!-- END PAGE LEVEL JS -->
</head>
<body class="fixed-header dashboard menu-pin menu-behind">
{# {{ include('default/user_switch.html.twig') }} #}
{{ include('admin/navigation_gauche.html.twig')}} }}
<!-- START PAGE-CONTAINER -->
<div class="page-container ">
{{ include('admin/base_dashboard_header.html.twig') }}
<!-- START PAGE CONTENT WRAPPER -->
<div class="page-content-wrapper ">
<div class="content ">
{% block dashContent %}
Dashboard Company
{% endblock %}
</div>
<!-- START COPYRIGHT -->
<!-- START CONTAINER FLUID -->
<!-- START CONTAINER FLUID -->
<div class=" container-fluid container-fixed-lg footer">
<div class="copyright sm-text-center">
<p class="small-text no-margin pull-left sm-pull-reset">
©2017-2021 Talents Tube
</p>
<p class="small no-margin pull-right sm-pull-reset">
Besoin d'aide ? 07 56 85 27 36
</p>
<div class="clearfix"></div>
</div>
</div>
<!-- END COPYRIGHT -->
</div>
<!-- END PAGE CONTENT WRAPPER -->
</div>
<!-- END PAGE CONTAINER -->
{% block javascripts %}
{% endblock %}
<!-- END PAGE LEVEL JS -->
<!-- END CORE TEMPLATE JS -->
<!-- BEGIN PAGE LEVEL JS -->
{% block javascriptsSecondaire %}
{% endblock %}
{% block javascriptsEnd %}
{% endblock %}
</body>
</html>
@@ -1,8 +1,7 @@
<!-- START HEADER -->
<div class="header ">
<!-- START MOBILE SIDEBAR TOGGLE -->
<a href="#" class="btn-link toggle-sidebar d-lg-none pg-icon btn-icon-link" data-toggle="sidebar">
menu</a>
<!-- END MOBILE SIDEBAR TOGGLE -->
<div class="">
<div class="brand inline m-l-10">
@@ -25,9 +24,7 @@
</div>
</div>
<!-- END User Info-->
<a href="#" class="header-icon m-l-5 sm-no-margin d-inline-block" data-toggle="quickview" data-toggle-element="#quickview">
<i class="pg-icon btn-icon-link">menu_add</i>
</a>
</div>
</div>
<!-- END HEADER -->
@@ -0,0 +1,34 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Pages
<small>Liste</small>
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Batch candidatures</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<a href="{{ path('admin_batch_candidature_init') }}">
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton">
<span>Lancer le batch</span>
</button>
</a>
<b>A NE LANCER QU'UNE FOIS (On met à jour les candidatures qui ont un message et qui n'ont pas été modifié par le dashboard Entreprise. C'est le statut contacte qui est mis par défaut.)</b>
</div>
</div>
{% endblock %}
{% block javascripts %}
{% endblock %}
@@ -0,0 +1,33 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Pages
<small>Liste</small>
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Batch sur les messages</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<a href="{{ path('admin_batch_geoloc_trait') }}">
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton">
<span>Lancer le batch ({{nbUsers}} utilisateurs non geolocalisés) <br>(transforme adresse talent en geoloc) </span>
</button>
</a>
</div>
</div>
{% endblock %}
{% block javascripts %}
{% endblock %}
@@ -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 %}
@@ -0,0 +1,34 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Pages
<small>Liste</small>
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Batch sur les messages</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<a href="{{ path('admin_batch_message_comment') }}">
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton">
<span>Lancer le batch (recupere les candidatures qui ont un commentaire (vieille candidature). Ces commentaires sont transformés en message.</span>
</button>
</a>
<b>A NE LANCER QU'UNE FOIS</b>
</div>
</div>
{% endblock %}
{% block javascripts %}
{% 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 %}
@@ -133,7 +133,19 @@
</small>
</li>
{% endif %}
{% else %}
<li class="">
<a href="/logout">
<span class="principal">Se déconnecter</span>
</a>
<span class="icon-thumbnail">
<span class="material-icons">
logout
</span>
</span>
</li>
{% endif %}
</ul>
@@ -73,6 +73,19 @@
<i class="fa fa-file-text-o" aria-hidden="true"></i><span>Pages</span>
</a>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-file-video-o"></i> <span>Batchs</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</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>
</ul>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-users" aria-hidden="true"></i> <span>Utilisateurs</span>
<span class="pull-right-container">
@@ -5,6 +5,9 @@
<h1>
Modification d'un talent
<small>{{ user.firstname }} {{ user.lastname }}</small>
<a class="delete-user" href="{{ path('admin_user_delete',{'id':user.id}) }}" data-toggle="tooltip" title="Supprimer">
<i class="fa fa-trash"></i>
</a>
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
+3
View File
@@ -47,7 +47,10 @@
<meta property="og:image"
content="https://recruteur.talentstube.com/landing/img/offre-emploi-originale-en-video.jpg" />
<meta name="twitter:card" content="summary_large_image" />
{% endblock %}
{# A ENLEVER EN PROD #}
<meta name="robots" content="noindex,nofollow">
</head>
@@ -0,0 +1,274 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-98246968-7"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-98246968-7');
</script>
<!-- End Google Tag Manager -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{% block title %}Talents Tube : La 1ère plateforme pour lemploi 100% vidéo{% endblock %}</title>
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
{% block metarobot %}
{# A ENLEVER EN PROD #}
<meta name="robots" content="noindex,nofollow">
{% endblock %}
<meta name="description" content="{% block description %}
Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !
{% endblock %}">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="robots" content="index,follow">
{# OG et TC #}
{% if app.request.attributes.get('_route') != null %}
{% block ogtc %}
{#Twitter Card data pour les données enrichies sur Twitter#}
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@TalentsTube">
<meta name="twitter:title" content="Talents Tube : Le 1er job board 100% vidéo">
<meta name="twitter:description"
content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !">
<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="Talents Tube : Le 1er job board 100% vidéo" />
<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="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !" />
<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 %}
{# Canonical #}
<link rel="canonical"
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{% endblock %}">
{% endif %}
{# CSS #}
<link href="/landing/css/bootstrap.min.css" rel="stylesheet">
<link href="/v2/css/product.css" rel="stylesheet">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" />
<link href="css/bootstrap-lightbox.min.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link
href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i|Varela+Round"
rel="stylesheet">
{# <link rel="stylesheet" href="{{ asset('css/styles.css') }}"> #}
{% block stylesheets %}
{% endblock %}
<script type="text/javascript">
window.$crisp = [];
window.CRISP_WEBSITE_ID = "78ec5756-1cd5-4f3f-b0db-cb408c8171da";
(function () {
d = document;
s = d.createElement("script");
s.src = "https://client.crisp.chat/l.js";
s.async = 1;
d.getElementsByTagName("head")[0].appendChild(s);
})();
</script>
</head>
<body>
{% block modalCallToAction %}
<!-- Modal : Formulaire -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row" id="demandeRdvContainer">
<div class="col-sm-12">
<h2>Envoyer un message à {{ user.firstname }}</h2>
<p>Pour contacter le candidat, vous devez compléter les champs ci-dessous. Ces informations vont
permettre au candidat de répondre à votre message.</p>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputPrenom>">Prénom</label>
<input type="text" class="form-control" id="prenom" placeholder="Votre prénom">
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputNom">Nom</label>
<input type="text" class="form-control" id="nom" placeholder="Votre nom">
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputEntreprise">Entreprise</label>
<input type="text" class="form-control" id="entreprise" placeholder="Nom de l'entreprise">
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputEmail1">E-mail</label>
<input type="email" class="form-control" id="email" placeholder="Votre email">
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputPhone">Téléphone</label>
<input type="hidden" id="userId" value="{{ user.id }}">
<input type="phone" class="form-control" id="telephone" placeholder="Votre téléphone">
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-sm-12">
<div class="form-group">
<label for="exampleInputMessage">Message</label>
<textarea class="form-control" id="message"
placeholder="Ecrivez le message que vous souhaitez envoyer à ce talent."></textarea>
</div>
</div>
<div class="form-group">
<p class="text-danger" id="erreur">Veuillez compléter l'ensemble des champs ci-dessus pour
envoyer votre message</p>
<p class="text-danger" id="erreurCgu">Vous devez accepter les CGU pour contacter un candidat.</p>
</div>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="cgu">
<label class="form-check-label" for="cgu">J'accepte les <a href="https://recruteur.talentstube.com/cgu">conditions générales d'utilisation</a></label>
<p>* En acceptant nos CGU, vous acceptez de recevoir des propositions commerciales de la part de Talents Tube</p>
</div>
</div>
</div>
<div class="row" id="felicitationRdvContainer" class="text-center">
<div class="text-center">
<img src="/landing/img/demande-rendez-vous.svg">
<h2>Message envoyé !</h2>
<p>Votre message a bien été envoyé à {{ user.firstname }} {{ user.lastname }}.</p>
<p>Découvrez la plateforme <a href="/">Talents Tube</a>.</p>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="bttn" onClick="miseEnRelationTalentEntreprise();" id="boutonDemandeRdv">Envoyer le message</button>
</div>
</div>
</div>
</div>
<!--Modal : Formulaire End -->
{% endblock %}
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P4G65WJ" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
{#{% include 'default/alert.html.twig' %}#}
{# {% include 'default/user_switch.html.twig' %} #}
{% include 'default/headerTalent.html.twig' %}
{# {% include 'default/props_settings.html.twig' %} #}
{% block content %}
{% endblock %}
{# {% include 'default/footertemporaire.html.twig' %} #}
<script src="/landing/js/jquery-2.1.3.min.js"></script>
<script src="/landing/js/bootstrap.min.js"></script>
<script src="/landing/js/waypoints.min.js"></script>
<!--Ordre important-->
<script src="/landing/js/waypoints-sticky.min.js"></script> <!-- Nécessaire header sticky -->
<script src="/landing/js/retina.min.js"></script> <!-- Nécessaire logo header (à voir pour l'enlever) -->
<script src="/landing/js/owl.carousel.min.js"></script> <!-- Nécessaire avec les avantages (+de 3 avantages) -->
<script src="/landing/js/jquery.ajaxchimp.min.js"></script> <!-- Nécessaire FAQ-->
<script src="/landing/js/jquery.validate.min.js"></script>
<script src="/landing/js/main.js"></script>
{% block javascripts %}
{% javascripts
'@vendors'
'@global'
output='assetic/main.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
<script>
$("#erreur").hide();
$("#erreurCgu").hide();
$("#felicitationRdvContainer").hide();
function miseEnRelationTalentEntreprise() {
if ($("#nom").val() == "" || $("#prenom").val() == "" || $("#entreprise").val() == "" || $("#email").val() == "" || $("#telephone").val() == "" || $("#message").val() == "") {
$("#erreur").show();
$("#erreurCgu").hide();
}else if ($("#cgu").prop('checked')==false){
$("#erreurCgu").show();
$("#erreur").hide();
}else {
$("#erreur").hide();
$("#erreurCgu").hide();
$("#boutonDemandeRdv").hide();
$("#felicitationRdvContainer").show();
$("#demandeRdvContainer").hide();
$.ajax({
//L'URL de la requête
url: "/app_dev.php/api/miseEnRelationTalentEntreprise?nom=" + $("#nom").val() + "&prenom=" + $("#prenom").val()+ "&entreprise=" + $("#entreprise").val() + "&email=" +
$("#email").val() + "&telephone=" + $("#telephone").val()+ "&userId=" + $("#userId").val()+ "&message=" + $("#message").val() + "&page=Demande mise en relation",
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 mise en relation 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 mise en relation 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 mise en relation effectuée");
});
}
}
</script>
</body>
</html>
@@ -15,7 +15,11 @@
<!-- Required Meta Tags Always Come First -->
<meta charset="utf-8">
{# A ENLEVER EN PROD #}
<meta name="robots" content="noindex,nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% block meta %}
{% endblock %}
@@ -1,6 +1,29 @@
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
{% extends 'admin/base_dashboard.html.twig' %}
{% extends 'admin/base_dashboard_candidatures.html.twig' %}
{% block javascriptSupl %}
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
{% endblock %}
{% block dashContent %}
<!-- START JUMBOTRON -->
@@ -55,8 +78,10 @@ Lien : https://recruteur.talentstube.com/partage/{{ ad.id }}
Mot de passe : ######
Au plaisir d’échanger avec vous,
</textarea>
<br/>
<p>* Les données collectées dans les candidatures vidéo sont strictement confidentielles et entrent dans le champ de la protection des données personnelles dun candidat. Les vidéos peuvent être partagées uniquement dans le cadre du processus de recrutement.
<br />
<p>* Les données collectées dans les candidatures vidéo sont strictement confidentielles et entrent dans
le champ de la protection des données personnelles dun candidat. Les vidéos peuvent être partagées
uniquement dans le cadre du processus de recrutement.
</p>
</div>
<div class="modal-footer">
@@ -82,12 +107,13 @@ Au plaisir d’échanger avec vous,
<h5>&nbsp;</h5>
<p>En cliquant sur confirmer, cette candidature ne sera plus accessible dans lespace visiteurs.</p>
</div>
<div class="modal-footer">
<input type="hidden" id="caseRecocher">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="annulerCheckbox()">Annuler</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Confirmer</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal"
onClick="annulerCheckbox()">Annuler</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Confirmer</button>
</div>
</div>
</div>
@@ -103,137 +129,84 @@ Au plaisir d’échanger avec vous,
</div>
</div> #}
<div class="col-xl-12">
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
<div class="row profil-candidature">
<div class="col-xl-6 col-md-12 p-t-10">
<h5>{{ ad.title }}</h5>
<h6>Publiée le {{ ad.publishedAt|date("d/m/Y") }}</h6>
</div>
<div class="col-xl-6 col-md-12 p-t-20 text-right">
<a href="#" class="" data-toggle="tooltip"
title="Cochez une ou plusieurs candidatures avant de pouvoir les partager.">
<button type="button" class="btn btn-primary m-b-10 btn-lg " disabled data-toggle="modal"
data-target="#partageModal" id="partageCandidats">
Partager les
candidatures
</button>
</a>
<!--<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<div class="col-xl-12">
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
<div class="row profil-candidature">
<div class="col-xl-6 col-md-12 p-t-10">
<h5>{{ ad.title }}</h5>
<h6>Publiée le {{ ad.publishedAt|date("d/m/Y") }}</h6>
</div>
<div class="col-xl-6 col-md-12 p-t-20 text-right">
<a href="#" class="" data-toggle="tooltip"
title="Cochez une ou plusieurs candidatures avant de pouvoir les partager.">
<button type="button" class="btn btn-primary m-b-10 btn-lg " disabled data-toggle="modal"
data-target="#partageModal" id="partageCandidats">
Partager les
candidatures
</button>
</a>
<!--<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">delete</span>
<span class="">Clôturer</span>
</button>-->
<a href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}" >
<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">create</span>
<span class="">Éditer l'offre</span>
</button>
</a>
</div>
</div>
<div id="reponses" class="table-responsive m-t-20">
<table class="table table-hover" id="basicTable">
<thead>
<tr>
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width: 1%;"></th>
<th style="width: 10%;">Vidéo</th>
<th style="width: 20%;">Nom prénom</th>
<th style="width: 15%;">Date de reception </th>
<th style="width: 20%;">Localisation </th>
<th style="width: 20%;">Statut</th>
<th class="width: 5%;">Actions</th>
<a href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}">
<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">create</span>
<span class="">Éditer l'offre</span>
</button>
</a>
</div>
</div>
<style type="text/css">
/* Hide default search box */
.dataTables_filter {
display: none;
}
</style>
<div id="reponses" class="table-responsive m-t-20">
<table width="100%" class="table " style="">
<tr>
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='Recherche par nom'
style='font-family:Arial, FontAwesome; width:100%' />
</th>
</tr>
</thead>
<tbody>
{% for answer in answers %}
<tr>
<td>
<input type="checkbox" id="answer_{{answer.id}}" name="answers" class="nav-trigger"
onChange="verifierIsChecked({{answer.id}})" {% if answer.isShared %} checked
{% endif %} />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
</td>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
{% if answer.video.thumbnails.0 is defined %}
{% set img = answer.video.thumbnails.0.sizes.1.link %}
{% else %}
{% set img = " " %}
{% endif %}
<img src="{{ img }}">
</a>
</td>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
{{ answer.user.firstname }}</a>
</td>
<td>
{{ answer.sendTime()|date('d/m/Y') }}
</td>
<td>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</td>
<th width="11%"><input id='input4' type='text' class='form-control'
placeholder='Recherche par prénom' style='font-family:Arial, FontAwesome; width:100%' />
</th>
<th width="25%">
<select id='input8' class='form-control'>
<option value="">Tous les statuts</option>
<option value="A_TRAITER">À traiter</option>
<option value="CONTACTE">Contacté</option>
<option value="ENTRETIEN">Entretien programmé</option>
<option value="REFUSE">Refusé</option>
<option value="EMBAUCHE">Embauché</option>
</select>
</th>
</tr>
</table>
<table id="candidatures_dt_table" width="100%" class="table table-hover ">
<thead>
<tr>
<th width="4%"></th>
<th width="4%">Vidéo</th>
<th width="6%">Nom</th>
<th width="6%">Prénom</th>
<th width="11%">Date de reception</th>
<th width="11%">Intitulé de l'offre</th>
<th width="21%">Localisation</th>
<th width="15%">Statut</th>
<td>
{% if answer.statusReponse =="EMBAUCHE" %}
<span class="label label-success">Embauché</span>
{% elseif answer.statusReponse =="REFUSE"%}
<span class="label label-important">Refusé</span>
{% elseif answer.statusReponse =="ENTRETIEN"%}
<span class="label label-warning">Entretien programmé</span>
{% elseif answer.statusReponse =="A_TRAITER"%}
<span class="label label-info">À traiter</span>
{% elseif answer.statusReponse =="CONTACTE"%}
<span class="label">Contacté</span>
{% else %}
<span class="label label-info">À traiter</span>
{% endif %}
</td>
</tr>
</thead>
<tbody>
<td class="v-align-middle">
<a title="{{ad.title}}" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="pg-icon">eye</i>
</a>
{# <a href="#" class="note-action c-pointer" data-func="add"
data-answer="{{ answer.id }}">
<i class="pg-icon">note</i>
</a> #}
{# {% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="pg-icon">comment</i>
</a>
{% endfor %} #}
</td>
</tr>
{% endfor %}
{% if answers|length == 0 %}
<tr>
<th colspan="7" class="text-center">Aucune candidature pour le moment</th>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</tbody>
</table>
</div>
</div>
</div>
@@ -363,23 +336,23 @@ Au plaisir d’échanger avec vous,
{% block javascriptsEnd %}
<!-- BEGIN VENDOR JS -->
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
<!-- END PAGE LEVEL JS -->
<!-- END PAGE LEVEL JS -->
<script type="text/javascript">
function parcourirAllCheckbox() {
var allCheckboxes = $("input[type=checkbox]");
var allCheckboxes = $("input[type=checkbox]");
var auMoinUneCheckboxCoche = false;
// Put all the unique name attributes in an array.
var checkboxCocheId= null;
var checkboxCocheId = null;
allCheckboxes.each(function () {
var isChecked = $(this).prop('checked');
if (isChecked == true) {
auMoinUneCheckboxCoche = true;
var tabId =$(this).prop('id').split("_");
var tabId = $(this).prop('id').split("_");
checkboxCocheId = tabId[1];
console.log(checkboxCocheId);
}
@@ -397,19 +370,19 @@ Au plaisir d’échanger avec vous,
}
function annulerCheckbox(){
function annulerCheckbox() {
//recuprer l'id de la checkbox
var checkboxId = $("#caseRecocher").val();
//$("#answer_" + checkboxId).prop(checked, true);
document.getElementById("answer_" + checkboxId).checked = true;
console.log("annuler action checkbox "+checkboxId);
console.log("annuler action checkbox " + checkboxId);
verifierIsChecked(checkboxId);
}
function verifierIsChecked(id) {
var auMoinUneCheckboxCoche = false;
parcourirAllCheckbox();
if($("#answer_" + id).prop('checked')==false){
if ($("#answer_" + id).prop('checked') == false) {
console.log("cette checkbox était cochée avant");
//$('#decocheModal').modal('open');
$('#decocheModal').modal('show');
@@ -440,7 +413,7 @@ Au plaisir d’échanger avec vous,
const obj = JSON.parse(data);
console.log(obj.code);
var texteMail = $("#codeShare").val();
$("#codeShare").val(texteMail.replace('######', obj.code));
$("#codeShare").val(texteMail.replace('######', obj.code));
})
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
@@ -470,11 +443,142 @@ Au plaisir d’échanger avec vous,
});
$('#partageModal').modal('hide');
$('#decocheModal').modal('hide');
}
);
$(window).load(function() {
});
$(window).load(function () {
$('#partageModal').modal('hide');
$('#decocheModal').modal('hide');
});
</script>
<script>
$(document).ready(function () {
// Add a text input to each footer cell
var pos = 1;
var table = $('#candidatures_dt_table').DataTable({
"columnDefs": [
{
"name": "partage",
"targets": 0,
"searchable": false,
"orderable": false
},
{
"name": "video",
"targets": 1,
"searchable": true,
"orderable": false
},
{
"name": "nom",
"targets": 2,
"type": 'html',
"searchable": true,
"orderable": true
},
{
"name": "prenom",
"targets": 3,
"type": 'html',
"searchable": true,
"orderable": true
},
{
"name": "dateReception",
"targets": 4,
"searchable": true,
"orderable": true
},
{
"name": "offre",
"targets": 5,
"searchable": true,
"orderable": false
},
{
"name": "localisation",
"targets": 6,
"searchable": true,
"orderable": false
},
{
"name": "statusReponse",
"targets": 7,
"searchable": true,
"orderable": false
},
],
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ path('alimenterCandidaturesAd',{'id':ad.id}) }}",
"type": 'POST',
},
"paging": true,
"info": true,
"searching": true,
"bFilter": true,
"responsive": true,
"pageLength": 100,
"order": [
[4, 'desc']
],
"language": {
"sProcessing": "En cours de chargement...",
"sSearch": "Rechercher&nbsp;:",
"sLengthMenu": "Afficher _MENU_ candidatures",
"sInfo": "Candidature de _START_ &agrave; _END_ sur _TOTAL_ candidatures",
"sInfoEmpty": "Candidature 0 &agrave; 0 sur 0 candidature",
"sInfoFiltered": "",
"sInfoPostFix": "",
"sLoadingRecords": "Chargement en cours...",
"sZeroRecords": "Aucune candidature ne correspond à votre recherche",
"sEmptyTable": "Aucune candidature disponible dans le tableau",
"oPaginate": {
"sFirst": "Premier",
"sPrevious": "Pr&eacute;c&eacute;dent",
"sNext": "Suivant",
"sLast": "Dernier"
},
"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
"sSortDescending": ": activer pour trier la colonne par ordre d&eacute;croissant"
}
},
});
// Apply the search
pos = 1;
table.columns().every(function () {
var that = this;
$("#input" + pos).on('keyup change', function () {
console.log(this);
if (that.search() !== this.value) {
that
.search(this.value)
.draw();
}
});
pos++;
});
$('#candidatures_dt_table_filter').hide();
});
</script>
{% endblock %}
@@ -424,7 +424,7 @@
);
$("#ajouterCompetenceButtonMdal").html("Ajouter (+0)");
$("#ajouterCompetenceButtonMdal").hide();
$("#saveAdButton").prop("disabled", true);
//$("#saveAdButton").prop("disabled", true);
} else if (nbCompetencesSelect > 9) {
//Gestion des erreurs si plusde 10 compétences
$("#saveAdButton").prop("disabled", false);
@@ -478,6 +478,7 @@
});
</script>
<script>
//appel de l'api getAppelationsLibelle
$(document)
.ready(function () {
// Construction du champ typeahead d'auto compléetion de métier
@@ -37,7 +37,30 @@
<!-- END JUMBOTRON -->
<!-- MODALS-->
<!-- Modal 0 -->
<div class="modal fade in bd-example-modal-lg" id="popupSubmitModal" tabindex="-1" role="dialog"
aria-labelledby="popupSubmitModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="popupSubmitModalLabel">Votre offre demploi vidéo est en cours de validation par l'équipe Talents Tube</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Vous recevrez un e-mail lorsque votre offre demploi sera publiée sur la plateforme.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="submitFormAd()">Fermer</button>
</div>
</div>
</div>
</div>
<!-- Modal 1 -->
<div class="modal fade bd-example-modal-lg" id="competencesModal" tabindex="-1" role="dialog"
aria-labelledby="competencesModalLabel" aria-hidden="false" data-show="false">
@@ -308,15 +331,21 @@
</table>
</div>
<br>
<button aria-label="" type="submit"
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" data-toggle="modal"
data-target="#popupSubmitModal" id="saveAdButton">
<span>Suivant</span>
<span class="hidden-block">
<i class="material-icons tab-icon">videocam</i>
</span>
</button>
{# <button aria-label="" type="submit"
class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton"
disabled="">
<span>Suivant</span>
<span class="hidden-block">
<i class="material-icons tab-icon">videocam</i>
</span>
</button>
</button> #}
</div>
</div>
@@ -416,7 +445,7 @@
);
$("#ajouterCompetenceButtonMdal").html("Ajouter (+0)");
$("#ajouterCompetenceButtonMdal").hide();
$("#saveAdButton").prop("disabled", true);
//$("#saveAdButton").prop("disabled", true);
} else if (nbCompetencesSelect > 9) {
$("#saveAdButton").prop("disabled", false);
//Gestion des erreurs si plusde 10 compétences
@@ -705,5 +734,10 @@
// on génere le json a chaque fois
genererJson();
}
//function appelée lors de la confirmation de popup
function submitFormAd(){
$('form[name="ad_soft"]').submit();
}
</script>
{% endblock %}
@@ -8,164 +8,268 @@
<li class="breadcrumb-item active">Offres d'emploi</li>
</ol>
<!-- END BREADCRUMB -->
<div class="row">
<div class="col-xl-12 col-lg-12 ">
<!-- START card -->
<div class="card card-transparent">
<div class="card-header ">
</div>
<div class="card-body">
<a class="btn-square" target="_self" href="{{ path('company_ad_create') }}">
<button aria-label=""
class="btn btn-primary btn-cons">{{ 'ad.company.add.label'|trans }}</button>
</a>
</div>
</div>
<!-- END card -->
</div>
</div>
</div>
</div>
</div>
<!-- END JUMBOTRON -->
<!-- Début modifications Corentin -->
<div class="col-xl-12">
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
<div class="row ">
<div class="col-xl-12 col-md-12 p-t-20 text-right">
<a class="btn-square" target="_self" href="{{ path('company_ad_create') }}">
<button type="button" aria-label="" class="btn btn-primary btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">movie</span>
<span class="">Créer une offre d'emploi vidéo</span>
</button>
</a>
</div>
</div>
<div id="reponses" class="table-responsive m-t-20">
<table class="table table-hover" id="basicTable">
<thead>
<tr>
<th colspan=4 class="colonne1 bold">Gestion des offres</th>
<th colspan=5 class="colonne2 bold">Gestion des candidatures</th>
</tr>
</thead>
<thead>
<tr>
<th class="colonne1" style="width:25%;">Intitulé du poste</th>
<th class="colonne1" style="width:15%;">Statut</th>
<th class="colonne1" style="width:10%;">Vues de l'offre</th>
<th class="colonne1" style="width:10%;">Actions</th>
<th class="colonne2" style="width:8%;">À traiter</th>
<th class="colonne2" style="width:8%;">Contacté</th>
<th class="colonne2" style="width:8%;">Refusé</th>
<th class="colonne2" style="width:8%;">Entretien programmé</th>
<th class="colonne2" style="width:8%;">Embauché</th>
</tr>
</thead>
<tbody>
{% for ad in ads %}
<tr>
<td>
<h6>
{% if ad.countAnswers > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
{{ ad.title }}
</a>
{% else %}
{{ ad.title }}
{% endif %}
</h6>
<br>
{% if ad.location %}
{% if ad.location.gmap_address %}
<span>{{ ad.location.gmap_address.formatted_address }}</span><br>
{% endif %}
{% endif %}
<span>Date de création : {{ ad.publishedAt|date("d/m/Y") }}</span>
</td>
<td>
{% if ad.getStatus() == "DECLINED" %}
<span class="">{{ ad.getStatus()|trans }}</span>
{% elseif ad.getStatus() == "PUBLISHED" %}
<span class="label label-success">Publiée</span>
{% elseif ad.getStatus() == "CLOSED" %}
<span class="label label-important">Clôturée</span>
{% elseif ad.getStatus() == "DRAFT" %}
<span class="label ">Brouillon</span>
{% elseif ad.getStatus() == "TO_PUBLISH" %}
<span class="label label-warning">En attente de validation</span>
{% else %}
<span class="">{{ ad.getStatus()|trans }}</span>
{% endif %}
</td>
<td>
{% if arrayByAds is defined %}
{{ arrayByAds[ad.id]["count"] }}
{% endif %}
</td>
<td>
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Edit#}
<a class=" td-none" href="{{ path('company_ad_edit', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
{% else %}
{#Soft Edit#}
<a class=" td-none" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
{% endif %}
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Video#}
<a class="tooltipped td-none" href="{{ path('create_media', { 'id': ad.id }) }}">
<i class="material-icons">
videocam
</i>
</a>
{% endif %}
{% if ad.getStatus() == "PUBLISHED" %}
{#Extension#}
{# ENLEVE LE 01/09 #}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}"
href="{{ path('company_ad_extension', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">calendar</i>
</a> #}
{#Force ending#}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.closed.label'|trans }}"
href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="material-icons">
close
</i>
</a> #}
{% endif %}
{% if ad.getStatus() == "TO_PUBLISH" or ad.getStatus() == "VALIDATED" or ad.getStatus() == "CLOSED" or ad.getStatus() == "EXPIRED" %}
{#Edit Dates#}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}"
href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="material-icons">
close
</i>
</a> #}
{% endif %}
</td>
<td>
{% if ad.countAnswersParStatut.nbATraiter > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswersParStatut.nbATraiter }}
</a>
{% else %}
0
{% endif %}
</td>
<td>
{% if ad.countAnswersParStatut.nbContacte > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswersParStatut.nbContacte }}
</a>
{% else %}
0
{% endif %}
</td>
<td>
{% if ad.countAnswersParStatut.nbRefuse > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswersParStatut.nbRefuse }}
</a>
{% else %}
0
{% endif %}
</td>
<td>
{% if ad.countAnswersParStatut.nbEntretien > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswersParStatut.nbEntretien }}
</a>
{% else %}
0
{% endif %}
</td>
<td>
{% if ad.countAnswersParStatut.nbEmbauche > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswersParStatut.nbEmbauche }}
</a>
{% else %}
0
{% endif %}
</td>
</tr>
{% endfor %}
{# <tr>
<td>
<a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">
<h6>Directeur de la communication (F/H)</h6>
</a><br>
<span>Nantes, 44000</span><br>
<span>Date de création : 22/03/2021</span>
</td>
<td>
<span class="label label-success">Publiée</span>
</td>
<td>578</td>
<td>
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
</td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">3</a></td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">4</a></td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">4</a></td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">8</a></td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">1</a></td>
</tr>
<tr>
<td>
<h6>Responsable RRH (F/H)</h6><br>
<span>Vannes, 56000</span><br>
<span>Date de création : 01/02/2021</span>
</td>
<td>
<span class="label label-warning">En attente de validation</span>
</td>
<td>0</td>
<td>
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>
<a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">
<h6>Alternant communication(F/H)</h6>
</a><br>
<span>Pontivy, 56000</span><br>
<span>Date de création : 15/01/2021</span>
</td>
<td>
<span class="label label-important">Clôturée</span>
</td>
<td>1459</td>
<td>
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
</td>
<td>0</td>
<td>0</td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">12</a></td>
<td>0</td>
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">1</a></td>
</tr> #}
</tbody>
</table>
</div>
</div>
</div>
<!-- Fin modifications Corentin -->
<!-- START CONTAINER FLUID -->
<div class=" container-fluid container-fixed-lg bg-white">
<!-- START card -->
<div class="card card-transparent">
<div class="card-header ">
<div class="card-title">Offres d'emploi
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover" id="basicTable">
<thead>
<tr>
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width:20%">{{ 'ad.company.list.title'|trans }}</th>
<th style="width:20%">{{ 'ad.company.list.answers'|trans }}</th>
<th style="width:20%">{{ 'ad.company.list.views'|trans }}</th>
<th style="width:20%">{{ 'ad.company.list.status'|trans }}</th>
<th style="width:20%">{{ 'ad.company.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for ad in ads %}
<tr>
<td class="v-align-middle ">
{% if ad.countAnswers > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
{{ ad.title }}
</a>
{% else %}
{{ ad.title }}
{% endif %}
</td>
<td class="v-align-middle">
{% if ad.countAnswers > 0 %}
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
<i class="fa fa-eye"></i>&nbsp; {{ ad.countAnswers }}
</a>
{% else %}
0
{% endif %}
</td>
<td class="v-align-middle">
{% if arrayByAds is defined %}
{{ arrayByAds[ad.id]["count"] }}
{% endif %}
</td>
<td class="v-align-middle">
{% if ad.getStatus() == "DECLINED" %}
<div class="">
<span class="">{{ ad.getStatus()|trans }}</span>
<i class="c-pointer fa fa-info-circle color-red" aria-hidden="true"></i>
</div>
{% else %}
<span class="">{{ ad.getStatus()|trans }}</span>
{% endif %}
</td>
<td class="v-align-middle">
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Edit#}
<a class=" td-none" href="{{ path('company_ad_edit', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
{% else %}
{#Soft Edit#}
<a class=" td-none" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">pen</i>
</a>
{% endif %}
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
{#Video#}
<a class="tooltipped td-none" href="{{ path('create_media', { 'id': ad.id }) }}">
<i class="material-icons">
videocam
</i>
</a>
{% endif %}
{% if ad.getStatus() == "PUBLISHED" %}
{#Extension#}
{# ENLEVE LE 01/09 #}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}"
href="{{ path('company_ad_extension', { 'id': ad.id }) }}"
style="margin-right: 10px">
<i class="pg-icon">calendar</i>
</a> #}
{#Force ending#}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.closed.label'|trans }}"
href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="material-icons">
close
</i>
</a> #}
{% endif %}
{% if ad.getStatus() == "TO_PUBLISH" or ad.getStatus() == "VALIDATED" or ad.getStatus() == "CLOSED" or ad.getStatus() == "EXPIRED" %}
{#Edit Dates#}
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}"
href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
<i class="material-icons">
close
</i>
</a> #}
{% endif %}
</td>
</tr>
{% endfor %}
{% if ads|length == 0 %}
<tr>
<th colspan="5" class="text-center">Aucune offre pour le moment</th>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
<!-- END card -->
</div>
<script type="text/javascript">
<!-- END CONTAINER FLUID
-->
@@ -1,5 +1,29 @@
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
{% extends 'admin/base_dashboard.html.twig' %}
{% extends 'admin/base_dashboard_candidatures.html.twig' %}
{% block javascriptSupl %}
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript"
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
{% endblock %}
{% block dashContent %}
@@ -22,7 +46,7 @@
<!-- START CONTAINER FLUID -->
<div class=" container-fluid container-fixed-lg bg-white">
{# <div class=" container-fluid container-fixed-lg bg-white">
<!-- START card -->
<div class="card card-transparent">
<div class="card-header ">
@@ -72,62 +96,162 @@
</div>
</div>
<!-- END card -->
</div>
</div> #}
<!-- END CONTAINER FLUID -->
<style type="text/css">
/* Hide default search box */
.dataTables_filter {
display: none;
}
</style>
<!-- START CONTAINER FLUID -->
<div class=" container-fluid container-fixed-lg bg-white">
<!-- START card -->
<div class="card card-transparent">
<div class="card-header ">
<div class="card-title">Candidatures spontanées
<div class="card-title">Candidatures
</div>
</div>
<div class="card-body">
<div class="table-responsive" id="spontaneous">
<table class="table table-hover" id="basicTable">
<table width="100%" class="table " style="">
<tr>
<th width="11%"><input id='input2' type='text' class='form-control'
placeholder='Recherche par nom' style='font-family:Arial, FontAwesome; width:100%' />
</th>
<th width="11%"><input id='input3' type='text' class='form-control'
placeholder='Recherche par prénom' style='font-family:Arial, FontAwesome; width:100%' />
</th>
<th width="25%">
<select id='input5' class='form-control'>
<option value="">Toutes les offres</option>
<option value="spontaneous">Candidatures spontanées</option>
{% for offre in offres %}
<option value="{{offre.title}}">{{offre.title}}</option>
{% endfor %}
</select>
</th>
<th width="25%">
<select id='input7' class='form-control'>
<option value="">Tous les statuts</option>
<option value="A_TRAITER">À traiter</option>
<option value="CONTACTE">Contacté</option>
<option value="ENTRETIEN">Entretien programmé</option>
<option value="REFUSE">Refusé</option>
<option value="EMBAUCHE">Embauché</option>
</select>
</th>
</tr>
</table>
<br />
<table id="candidatures_dt_table" width="100%" class="table table-hover ">
{# Add a tfoot which will actually be used to place the individual search boxes #}
<thead>
<tr>
<th width="4%">Vidéo</th>
<th width="6%">Nom</th>
<th width="6%">Prénom</th>
<th width="11%">Date de reception</th>
<th width="11%">Intitulé de l'offre</th>
<th width="25%">Localisation</th>
<th width="15%">Statut</th>
</tr>
</thead>
<tbody></tbody>
</table>
{#
<table class="table table-hover " id="">
<thead>
<tr>
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width:33%">{{ 'profile.talent.lastname'|trans }}
<th style="width:15%">{{ 'profile.talent.video'|trans }}
</th>
<th style="width:15%">{{ 'profile.talent.lastname'|trans }}
{{ 'profile.talent.firstname'|trans }}</th>
<th style="width:33%">{{ 'global.datereception.label'|trans }}</th>
<th style="width:33%" class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
<th style="width:15%">{{ 'global.datereception.label'|trans }}</th>
<th style="width:15%">{{ 'ad.company.list.title'|trans }}</th>
<th style="width:15%">{{ 'ad.company.list.location'|trans }}</th>
<th style="width:15%" class="center-align">{{ 'ad.company.list.statut'|trans }}</th>
</tr>
</thead>
<tbody>
{% for answer in spontaneous %}
<tr>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
{% if answer.video.thumbnails.0 is defined %}
{% set img = answer.video.thumbnails.0.sizes.1.link %}
{% else %}
{% set img = " " %}
{% endif %}
<img src="{{ img }}">
</a>
</td>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
{{ answer.user.firstname }}</a>
</td>
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
<td class="center-align">
<a title="" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="pg-icon">eye</i>
</a>
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="pg-icon">note</i>
</a>
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="pg-icon">comment</i>
</a>
<td>
{% if answer.ad %}
{{ answer.ad.title }}
{% else %}
Candidature spontanée
{% endif %}
</td>
<td>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</td>
<td class="center-align">
{% if answer.statusReponse =="EMBAUCHE" %}
<span class="label label-success">Embauché</span>
{% elseif answer.statusReponse =="REFUSE"%}
<span class="label label-important">Refusé</span>
{% elseif answer.statusReponse =="ENTRETIEN"%}
<span class="label label-warning">Entretien programmé</span>
{% elseif answer.statusReponse =="A_TRAITER"%}
<span class="label label-info">À traiter</span>
{% elseif answer.statusReponse =="CONTACTE"%}
<span class="label">Contacté</span>
{% else %}
<span class="label label-info">À traiter</span>
{% endif %}
</td>
</tr>
{% endfor %}
{% if spontaneous|length == 0 %}
<tr><th colspan="3" class="text-center">Aucune candidature pour le moment</th></tr>
<tr>
<th colspan="5" class="text-center">Aucune candidature pour le moment</th>
</tr>
{% endif %}
</tbody>
</table>
</table> #}
</div>
</div>
</div>
@@ -137,4 +261,130 @@
<div id="note-modal"></div>
<script>
$(document).ready(function () {
// Add a text input to each footer cell
var pos = 1;
var table = $('#candidatures_dt_table').DataTable({
"columnDefs": [{
"name": "video",
"targets": 0,
"searchable": true,
"orderable": false
},
{
"name": "nom",
"targets": 1,
"type": 'html',
"searchable": true,
"orderable": true
},
{
"name": "prenom",
"targets": 2,
"type": 'html',
"searchable": true,
"orderable": true
},
{
"name": "dateReception",
"targets": 3,
"searchable": true,
"orderable": true
},
{
"name": "offre",
"targets": 4,
"searchable": true,
"orderable": false
},
{
"name": "localisation",
"targets": 5,
"searchable": true,
"orderable": false
},
{
"name": "statusReponse",
"targets": 6,
"searchable": true,
"orderable": false
},
],
"processing": true,
"serverSide": true,
"ajax": {
"url": "{{ path('alimenterCandidaturesCompany') }}",
"type": 'POST',
},
"paging": true,
"info": true,
"searching": true,
"bFilter": true,
"responsive": true,
"pageLength": 10,
"order": [
[3, 'desc']
],
"language": {
"sProcessing": "En cours de chargement...",
"sSearch": "Rechercher&nbsp;:",
"sLengthMenu": "Afficher _MENU_ candidatures",
"sInfo": "Candidature de _START_ &agrave; _END_ sur _TOTAL_ candidatures",
"sInfoEmpty": "Candidature 0 &agrave; 0 sur 0 candidature",
"sInfoFiltered": "",
"sInfoPostFix": "",
"sLoadingRecords": "Chargement en cours...",
"sZeroRecords": "Aucune candidature ne correspond à votre recherche",
"sEmptyTable": "Aucune candidature disponible dans le tableau",
"oPaginate": {
"sFirst": "Premier",
"sPrevious": "Pr&eacute;c&eacute;dent",
"sNext": "Suivant",
"sLast": "Dernier"
},
"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
"sSortDescending": ": activer pour trier la colonne par ordre d&eacute;croissant"
}
},
});
// Apply the search
pos = 1;
table.columns().every(function () {
var that = this;
$("#input" + pos).on('keyup change', function () {
console.log(this);
if (that.search() !== this.value) {
that
.search(this.value)
.draw();
}
});
pos++;
});
$('#candidatures_dt_table_filter').hide();
});
</script>
{% endblock %}
@@ -24,7 +24,7 @@
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
</a>
{% else %}
Candidature spontanée
<a href="{{ path('company_answer_list') }}">Candidature spontanée</a>
{% endif %}
</li>
<li class="breadcrumb-item active"><a href="#"> candidat {{ answer.user.firstname }}
@@ -48,7 +48,7 @@
<h5><a href="{{ path('company_answer_list') }}">Candidature spontanée</a></h5>
{% endif %}
<h6>Candidature reçue le {{ answer.cTime|date('d/m/Y') }}</h6>
<h6>Candidature reçue le {{ answer.sendTime|date('d/m/Y') }}</h6>
</div>
</div>
</div>
@@ -1,7 +1,31 @@
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
{% extends 'admin/base_dashboard.html.twig' %}
{% block dashContent %}
<!-- MODALS-->
<!-- Modal 0 -->
<div class="modal fade in bd-example-modal-lg" id="popupSubmitModal" tabindex="-1" role="dialog"
aria-labelledby="popupSubmitModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="popupSubmitModalLabel">Votre offre demploi vidéo est en cours de validation par l'équipe Talents Tube</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Vous recevrez un e-mail lorsque votre offre demploi sera publiée sur la plateforme.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="submitFormAd()">Fermer</button>
</div>
</div>
</div>
</div>
<div class="row bg-bordered p-0">
{# {% include 'company/ad_steps.html.twig' with {'tab':2} %} #}
@@ -158,7 +182,9 @@ vidéo d'offre d'emploi. <a href="https://blog.talentstube.com/contact" target="
</a>
</div>
<div class="col-6">
<button aria-label="" id="submit" type="submit" class="btn btn-primary btn-lg m-b-10 hide"
<button aria-label="" id="submit" data-toggle="modal"
data-target="#popupSubmitModal" type="" class="btn btn-primary btn-lg m-b-10 hide"
type="button">
<span>Publier l'offre</span>
@@ -294,7 +320,11 @@ vidéo d'offre d'emploi. <a href="https://blog.talentstube.com/contact" target="
{% else %}
var videoExist = false;
{% endif %}
//function appelée lors de la confirmation de popup
function submitFormAd(){
$('#form_media').submit();
}
</script>
<script src="{{ asset('/js/dropzoneV2.js') }}"></script>
{% endblock %}
@@ -86,42 +86,52 @@
<!-- START card -->
<div class="col-lg-12">
<div class="card card-default container">
<div class="row">
<div class="col-md">
<a href="{{path('company_ad_create')}}">
<button class="card-action" type="button">
<a href="{{path('company_ad_create')}}">
<span class="material-icons">movie_creation</span>
<div class="row lien-fleche" style="justify-content: center; align-items: center">
<h6 class="col-10">Créer une offre demploi vidéo</h6>
<span class="material-icons col-2 fleche">arrow_right_alt</span>
</div>
</a>
</button>
</a>
</div>
<div class="col-md" type="button">
<div class="col-md" type="button">
<a href="{{path('company_ad')}}">
<button class="card-action" style="" type="button">
<a href="{{path('company_ad')}}">
<span class="material-icons" style="">work</span>
<div class="row lien-fleche" style="justify-content: center; align-items: center">
<h6 class="col-10">Gérer mes offres demploi</h6>
<span class="material-icons col-2 fleche">arrow_right_alt</span>
</div>
</a>
</button>
</a>
</div>
<div class="col-md" type="button">
<a href="{{path('company_answer_list')}}">
<button class="card-action" style="" type="button">
<a href="{{path('company_answer_list')}}">
<span class="material-icons" style="">face</span>
<div class="row lien-fleche" style="justify-content: center; align-items: center">
<h6 class="col-10">Gérer mes candidatures</h6>
<span class="material-icons col-2 fleche">arrow_right_alt</span>
</div>
</a>
</button>
</a>
</div>
</div>
</div>
</div>
@@ -174,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>
@@ -56,7 +56,7 @@
</p>
<h5 class="white-text">Contactez-nous !</h5>
<a class="white-text" href="mailto:&#098;&#111;&#110;&#106;&#111;&#117;&#114;&#064;&#116;&#097;&#108;&#101;&#110;&#116;&#115;&#116;&#117;&#098;&#101;&#046;&#099;&#111;&#109;">Par mail</a>
<p class="white-text">02 30 05 06 31</p>
<p class="white-text">07 56 85 27 36</p>
<p class="footer-newsletter">
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
@@ -35,7 +35,7 @@
</p>
<h5 class="white-text">Contactez-nous !</h5>
<a class="white-text" href="mailto:&#098;&#111;&#110;&#106;&#111;&#117;&#114;&#064;&#116;&#097;&#108;&#101;&#110;&#116;&#115;&#116;&#117;&#098;&#101;&#046;&#099;&#111;&#109;">Par mail</a>
<p class="white-text">02 30 05 06 31</p>
<p class="white-text">07 56 85 27 36/p>
<p class="footer-newsletter">
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
@@ -0,0 +1,69 @@
<div class="fluid-container header-fixed-top sticky-top " id="header-wrapper">
<div id="header" class="">
<nav class="nav-wrapper site-header sticky-top p-3 ">
<div class=" logo-wrapper d-flex flex-column flex-md-row justify-content-between w-100 pl-md-3">
<a class="py-2" href="{{ path('homepage') }}" class="brand-logo">
<img alt="talents-tube" src="{{ asset('img/logo-talentstube-blanc-header.svg') }}"
alt="Talents Tube" />
</a>
</div>
</nav>
</div>
{# <div id="newApp" class="container-fluid">
<div class="row">
</div>
</div> #}
</div>
{# <div class="nav-wrapper">
<ul class="side-nav collapsible" data-collapsible="accordion" id="mobile-demo">
<li class="header-links">
{% include 'default/button_login.html.twig' with {'app': app } %}
</li>
<li>
<a class="collapsible-header" title="Talents">Talents</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres d'emploi</a></li>
<li><a href="{{ path('page_cvVideo') }}" title="Le Cv vidéo">Le CV vidéo</a></li>
<li><a href="{{ path('page_reussirCVvideo') }}" title="Comment faire son CV Vidéo ?">Comment faire
son CV Vidéo ?</a></li>
<li><a href="{{ path('page_accompagnementTalent') }}"
title="Accompagnement talent">Accompagnement</a></li>
</ul>
</div>
</li>
<li>
<a class="collapsible-header" href="{{ path('ad_search_result') }}" title="Offres d'emploi vidéos">Offres
d'emploi</a>
</li>
<li>
<a class="collapsible-header" title="Les entreprises de talents">Entreprises</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('company_list') }}" title="Listes entreprises">Listes entreprises</a></li>
<li><a href="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en
vidéo</a></li>
<li><a href="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment
faire une offre en vidéo</a></li>
<li><a href="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque
Employeur</a></li>
<li><a href="{{ path('page_accompagnementEntreprise') }}" title="Conseils & accompagnement">Conseils
& accompagnement</a></li>
</ul>
</div>
</li>
<li>
<a class="collapsible-header" title="Les territoires">Territoires</a>
<div class="collapsible-body">
<ul>
<li><a href="{{ path('territory_list') }}">Liste des territoires</a></li>
<li><a href="{{ path('page_VideoTerritory') }}">La vidéo territoire</a></li>
<li><a href="{{ path('page_AccompagnementTerritory') }}">Conseils et accompagnement</a></li>
</ul>
</div>
</li>
<li>
<a class="collapsible-header" href="https://blog.talentstube.com" title="Blog Talents Tube">Blog</a>
</li>
</ul>
</div> #}
@@ -0,0 +1,53 @@
<div class="space-1-bottom gradient-overlay-half-primary-v1">
<div class="d-lg-flex align-items-lg-center height-85vh--lg">
<div class="container space-2 space-0--lg mt-lg-8">
<div class="row justify-content-lg-between align-items-lg-center">
<div class="w-md-80 w-lg-60 text-center mx-md-auto col-lg-6">
<!-- Signup Form -->
<div class="bg-white shadow-sm rounded p-6" id="formulaireBas">
<form class="js-validate" id="formDemandeDiag2">
<div class="">
<p class="h4 text-center">Faites le point sur <br>vos enjeux de recrutement</p>
<p class="text-center">Diagnostic gratuit de 15 minutes</p>
<!--<p>Faites le point sur vos enjeux de recrutement, identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée pour votre entreprise.</p>-->
</div>
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="nomPrenomForm2" id="nomPrenomForm2" required placeholder="Nom Prénom" aria-label="name">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="nomEntrepriseForm2" id="nomEntrepriseForm2" required placeholder="Nom de l'entreprise" aria-label="entreprise">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="email" class="form-control form__input" name="emailForm2" id="emailForm2" required placeholder="E-mail" aria-label="email">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="telForm2" id="telForm2" placeholder="Numéro de téléphone" aria-label="phone">
</div>
</div>
<!-- End Input -->
<p class="text-primary" id="messageValideDemandeDiag2"></p>
<a href="#formulaireBas" onClick="demanderDiag('formDemandeDiag2')" class="btn btn-sm btn-primary btn-wide center">Demander mon diagnostic</a>
</form>
</div>
<!-- End Signup Form -->
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,11 @@
<!-- Degradé avec Stats Section -->
<div class="gradient-overlay-half-primary-v1">
<div class="container text-center space-2-top space-2-top--lg space-2-bottom">
<div class="w-md-80 w-lg-60 text-center mx-auto">
<!-- SVG Quote -->
<h2 class="text-white text-center">La vidéo génère 34% de candidatures supplémentaires par rapport à une annonce demploi écrite.</h2>
</div>
</div>
</div>
<!-- Degradé avec Stats FIN-->
@@ -1,40 +1,62 @@
<!-- Ils nous font confiance DEBUT -->
<div class="container space-2 space-3--lg accueilFondBlanc">
<div class=" text-center mx-md-auto mb-12">
<div class="container space-2 space-3--lg accueilFondBlanc">
<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="h1"> Ils nous font confiance</h2>
<!-- Slick Carousel -->
<div class="js-slick-carousel u-slick" data-autoplay="true" data-speed="5000" data-infinite="true"
data-slides-show="5">
<div class="js-slide">
<img src="{{ asset('v2/logos/Albea-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Bouyer-leroux-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Eiffage-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/groupe-mousset-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Groupe-rocher-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/intermarche.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Mazars-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Mma-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Square-habitat-logo.png') }}" alt="Image Description">
<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 Slick Carousel -->
<!-- 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>
<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">
<!-- End Cover Image -->
<!-- Play Button -->
<a class="js-fancybox text-white u-video-player__btn u-video-player__centered" href="javascript:;"
data-src="https://www.youtube.com/watch?v=sKh0u7Mbdps" data-speed="700" data-animate-in="zoomIn"
data-animate-out="zoomOut" data-caption="Témoignage">
<span class="u-video-player__icon">
<i class="fa fa-play u-video-player__icon-inner"></i>
</span>
</a>
<!-- End Play Button -->
<!-- Video Iframe -->
<div class="embed-responsive embed-responsive-16by9">
</div>
<!-- End Video Iframe -->
</div>
<!-- End Video Block -->
</div>
</div>
<!-- Ils nous font confiance FIN -->
</div>
</div>
<!-- Ils nous font confiance FIN -->
@@ -0,0 +1,87 @@
<!-- Difficultés DEBUT -->
<div class="container space-2 space-3--lg accueilFondBlanc">
<!-- Title -->
<div class="w-md-80 w-lg-60 text-center mx-md-auto mb-9">
<h2 class="h3">Vos difficultés de recrutement freinent votre développement</h2>
</div>
<!-- End Title -->
<div class="row pb-3">
<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/recrutement-long-et-difficile.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Recrutements longs et difficiles ?</p>
</div>
</div>
<!-- End Icon Block -->
</div>
<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/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>
</div>
<!-- End Icon Block -->
</div>
<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/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>
</div>
<!-- End Icon Block -->
</div>
<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/trop-candidats-non-cibles.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Trop de candidats non ciblés ?</p>
</div>
</div>
<!-- End Icon Block -->
</div>
<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/talents-introuvables.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Talents introuvables ?</p>
</div>
</div>
<!-- End Icon Block -->
</div>
<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/methode-de-recrutement-traditionnel.svg" alt="Image Description">
<div class="media-body">
<p class="mb-0">Méthodes de recrutement traditionnelles sans résultat ?</p>
</div>
</div>
<!-- End Icon Block -->
</div>
</div>
<div class="w-md-80 w-lg-60 text-center mx-md-auto mt-5">
<h3 class="h4">Ne laissez plus votre développement dépendre de vos recrutements</h3>
<p class="lead">Rencontrez vos futurs collaborateurs autrement !</p>
</div>
</div>
</div>
</div>
<!-- Mieux que du texte FIN -->
@@ -0,0 +1,318 @@
<div class=" space-1-bottom accueilFondBlanc">
<div class="container space-2 ">
<div class="row mx-gutters-2">
<div class="col-md-6">
<!-- 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 collapsed p-3"
data-toggle="collapse" data-target="#faqAccordionOneCollapseOne" aria-expanded="false"
aria-controls="faqAccordionOneCollapseOne">
Je narrive pas à recruter, en quoi la vidéo pourrait résoudre ma problématique ?
<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">
<div class="card-body card-collapse__body">
Pour recruter des talents dans vos métiers en tension et <strong>attirer lattention</strong> sur votre
marque employeur, la vidéo est votre meilleur allié ! Grâce à la vidéo, vous allez <strong>raconter
votre
histoire, transmettre des émotions</strong> afin de présenter votre entreprise de façon dynamique et
authentique
et dire aux candidats : “Venez vivre et travailler chez nous !”
La vidéo permet de vous montrer <strong>plus humain</strong>, de renforcer la <strong>proximité</strong>
entre votre marque employeur et
les candidats. Vous <strong>valorisez vos collaborateurs, votre métier, votre culture dentreprise,
lambiance</strong>
au sein de vos équipes et expliquez vos valeurs par des témoignages authentiques et <strong>bien plus
impactants</strong>
que les méthodes de recrutement traditionnelles.
</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">
Quand je recrute cest tout de suite, pas le temps de faire une vidéo en plus cela coûte trop cher !
<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">
Cest pourtant une occasion unique de vous démarquer de vos concurrents et transmettre des valeurs de
fraîcheur, de modernité et dinnovation : autant d’éléments que la nouvelle génération recherche chez
son futur employeur et qui vont vous permettre de recruter efficacement.
<h5>La vidéo est prête en seulement 3 jours !</h5>
Prendre le virage de <strong>la vidéo est beaucoup plus facile aujourdhui</strong>. Vous pouvez
réaliser des vidéos de
qualité en interne <strong>grâce à la caméra de votre smartphone</strong>. Vous définissez votre poste
et vous sollicitez
un ou deux collaborateurs qui vont vous aider ou témoigner. Le lendemain, vous organisez <strong>2
heures de
tournage</strong> puis vous faites le montage ou vous contactez Talents Tube pour le faire.
<strong>48h plus tard, votre
vidéo est prête à être diffusée</strong> sur Talents Tube et autres supports de communication. Et si
vous avez
besoin de conseils, Talents Tube est là pour vous accompagner dans cette transition.
<h5>La vidéo coûte moins chère quun mauvais recrutement !</h5>
La vidéo ne représente pas seulement un coût… cest un investissement qui permet une toute nouvelle
attractivité de votre entreprise : fierté interne, fidélisation de vos collaborateurs, attractivité des
candidats, valorisation de vos produits ou services…
</div>
</div>
</div>
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionOneHeadingThree">
<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="#faqAccordionOneCollapseThree" aria-expanded="false"
aria-controls="faqAccordionOneCollapseThree">
Comment vais-je faire pour trier 100 vidéos de motivation en réponse à mon offre demploi ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionOneCollapseThree" class="collapse" aria-labelledby="faqAccordionOneHeadingThree"
data-parent="#faqAccordionOne">
<div class="card-body card-collapse__body">
Ne comparez pas avec les CV papier ! La vidéo génère tant de transparence que les <strong>candidats ne
pourront
pas se tromper sur vos attentes</strong>. Cest surtout parce que vous avez bien défini votre offre
demploi, que
ceux qui postulent auront toutes les cartes pour vous dire : « cest moi que vous recherchez ! ».
Ainsi, <strong>vous recevrez moins de candidatures et beaucoup plus dexcellents candidats</strong>.
Finalement, vous
gagnerez du temps dans votre recrutement.
Le plus de Talents Tube : vous conservez dans votre espace recruteur, les vidéos de motivation pour vous
<strong>constituer votre vivier de candidats</strong>.
</div>
</div>
</div>
<div class="card mb-2 mb-md-0">
<div class="card-header card-collapse__header" id="faqAccordionOneHeadingFour">
<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="#faqAccordionOneCollapseFour" aria-expanded="false"
aria-controls="faqAccordionOneCollapseFour">
Les candidats qui ne veulent pas faire de vidéo peuvent-ils me répondre avec une candidature classique
sur papier ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionOneCollapseFour" class="collapse" aria-labelledby="faqAccordionOneHeadingFour"
data-parent="#faqAccordionOne">
<div class="card-body card-collapse__body">
<strong>Nos collaborateurs accompagnent les candidats dans ce changement</strong> afin quils puissent
présenter en
vidéo, leur personnalité, leur motivation et expliquer ce quils ont trouvé dexcellent dans la vidéo
doffre demploi de votre entreprise, pour leur parcours professionnel. <strong>Il peut arriver que les
candidats ne souhaitent pas se présenter en vidéo</strong> et nous ne les forçons pas. Sur Talents
Tube, ils ont
vos coordonnées. Après avoir visionné loffre demploi vidéo, <strong>ils peuvent vous envoyer leur CV
papier
directement sur votre site internet</strong>.
</div>
</div>
</div>
</div>
<!-- End Collapse -->
</div>
<div class="col-md-6">
<!-- Collapse -->
<div id="faqAccordionTwo">
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionTwoHeadingOne">
<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="#faqAccordionTwoCollapseFive" aria-expanded="false"
aria-controls="faqAccordionTwoCollapseFive">
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="faqAccordionTwoCollapseFive" class="collapse" aria-labelledby="faqAccordionTwoHeadingOne"
data-parent="#faqAccordionTwo">
<div class="card-body card-collapse__body">
<h5>La vidéo Marque employeur :</h5>
Pour développer ou améliorer votre marque employeur, la vidéo révèle l’âme de votre entreprise. Elle
permet de la rendre attractive, de fédérer vos équipes et de persuader les candidats que vous ciblez de
venir travailler chez vous plutôt que chez votre concurrent ! La vidéo marque employeur présente votre
culture dentreprise, vos valeurs, vos objectifs, l’état desprit de vos collaborateurs, lambiance qui
y règne afin de vous distinguer et dattirer les meilleurs candidats.
Cest un <strong>moyen efficace pour améliorer votre image</strong> de marque, votre e-réputation et
fidéliser vos
collaborateurs.
<h5>La vidéo Métier :</h5>
La vidéo permet de valoriser des métiers souvent méconnus du public ou qui souffrent dune mauvaise
image. Pour expliquer à quoi ressemble votre métier au quotidien et casser les a priori, il est
préférable de le montrer, plutôt que de le décrire. Le collaborateur qui exerce le métier le raconte
avec émotion à travers ses propres mots.
Lobjectif dune vidéo métier est simple : <strong>faire connaître le métier, le montrer sous un autre
angle</strong>,
permettre aux personnes de se projeter, de sidentifier, susciter des vocations et préparer lavenir.
<h5>La vidéo doffre demploi :</h5>
Pour un candidat, l<strong>offre demploi écrite est souvent difficile à lire et peu
attractive</strong>. Rien ne
différencie vraiment une offre dune autre ! Il scanne rapidement le texte ce qui l'amène à postuler
pour des offres sans être certain davoir les compétences ou à se décourager avant de candidater alors
quil a le bon profil.
Loffre demploi vidéo est captivante et rassure le candidat sur le poste à pourvoir, les compétences
attendues et lui permet de <strong>mettre un visage sur ses futurs collègues</strong>, les personnes
avec lesquelles il
sera amené à travailler au quotidien. Grâce à la vidéo, il sait demblée si le feeling opère, avant même
davoir postulé.
Le témoignage dun collaborateur donne du crédit à lannonce vidéo sur le plan opérationnel et celle
dun RH est appréciée pour évoquer la rémunération et les avantages.
En résumé, <strong>la vidéo doffre demploi capte lattention des candidats et les rassurent dans leur
intention de postuler</strong>.
</div>
</div>
</div>
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionTwoHeadingTwo">
<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="#faqAccordionTwoCollapseSix" aria-expanded="false"
aria-controls="faqAccordionTwoCollapseSix">
Je publie déjà mes offres vidéo sur mon site internet, sur Youtube,… en quoi Talents Tube peut mieux
faire ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionTwoCollapseSix" class="collapse" aria-labelledby="faqAccordionTwoHeadingTwo"
data-parent="#faqAccordionTwo">
<div class="card-body card-collapse__body">
<h5>Talents Tube : votre outil de recrutement</h5>
Talents Tube est un véritable outil de recrutement vidéo avec <strong>un seul objectif : vous aider à
recruter </strong>!
Les autres supports tels que Youtube, votre site internet… ne sont pas destinés uniquement à votre
recrutement. Les personnes qui visitent talentstube.com viennent soit chercher du travail soit relayer
les annonces demploi auprès de leur réseau qui pourrait être intéressé par votre offre.
<h5>Talents Tube : votre partenaire communication</h5>
Pour réussir votre recrutement, vous devez communiquer ! Une vidéo nest efficace que si elle est vue !
<strong>Talents Tube soccupe de votre visibilité par ses savoirs en communication</strong>. Nous
utilisons de nombreux
réseaux afin de <strong>promouvoir vos vidéos de recrutement</strong> (réseaux sociaux, YouTube, Indeed,
dynamique
territoire…).
<h5>Talents Tube : votre atout pour détecter les bons profils</h5>
Vous vous êtes certainement déjà dit, au bout de 2 minutes dentretien : “Ce nest pas la bonne
personne”. Et bien chez Talents Tube, <strong>vous recevez des vidéos de motivation</strong> qui
sadressent directement
à vous. Cest unique, engageant et <strong>vous allez gagner du temps pour sélectionner les candidats
mais
également à lentretien dembauche </strong>car vous en savez déjà beaucoup plus. Vous allez pouvoir
en toute
simplicité <strong>évaluer votre retour sur investissement</strong> (ROI) de lapport de votre offre
demploi vidéo.
</div>
</div>
</div>
<div class="card mb-2">
<div class="card-header card-collapse__header" id="faqAccordionTwoHeadingThree">
<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="#faqAccordionTwoCollapseSeven" aria-expanded="false"
aria-controls="faqAccordionTwoCollapseSeven">
Suis-je sûr d'avoir des candidatures vidéo ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionTwoCollapseSeven" class="collapse" aria-labelledby="faqAccordionTwoHeadingThree"
data-parent="#faqAccordionTwo">
<div class="card-body card-collapse__body">
Nous ne sommes pas magiciens, <strong>il peut arriver que certaines entreprises ne reçoivent pas de
candidatures
vidéo</strong>. Toutefois, <strong>de nombreuses entreprises qui ne recevaient plus aucun CV papier,
ont reçu des vidéos
de motivation</strong> sur Talents Tube. Elles ont enfin pu recruter le talent quelles cherchaient
depuis
longtemps, grâce à Talents Tube.
Si toutefois vous ne recevez pas de candidatures vidéo, pas de panique, <strong>Talents Tube étudiera
précisément votre problématique</strong> et vous proposera des solutions adaptées notamment des
actions de
communication ciblées pour répondre à votre difficulté.
</div>
</div>
</div>
<div class="card">
<div class="card-header card-collapse__header" id="faqAccordionTwoHeadingFour">
<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="#faqAccordionTwoCollapseEight" aria-expanded="false"
aria-controls="faqAccordionTwoCollapseEight">
Est-ce que je peux modifier ou changer mes vidéos sur l'espace Talents Tube ?
<span class="card-collapse__btn-arrow">
<i class="fa fa-arrow-down small"></i>
</span>
</button>
</h5>
</div>
<div id="faqAccordionTwoCollapseEight" class="collapse" aria-labelledby="faqAccordionTwoHeadingFour"
data-parent="#faqAccordionTwo">
<div class="card-body card-collapse__body">
L'abonnement proposé par Talents Tube vous permet de <strong>diffuser plusieurs vidéos de recrutement en
simultanée</strong>. Par exemple avec l'abonnement à 99€/mois pour la diffusion de 3 vidéos, vous avez la
possibilité d'avoir plus de 3 vidéos sur Talents Tube mais vous ne pouvez avoir que 3 vidéos diffusées
en même temps. <strong>Vous avez évidemment la possibilité de désactiver une annonce au profit d'une autre</strong>,
toujours dans la limite de 3 vidéos en ligne. Si vous souhaitez diffuser plus de 3 vidéos, cest
possible. Vous passerez sur la formule dabonnement à 199€/mois pour 9 vidéos diffusées.
</div>
</div>
</div>
</div>
<!-- End Collapse -->
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,74 @@
<!-- Ils nous font confiance DEBUT -->
<div class="container accueilFondBlanc">
<!-- Slick Carousel -->
<div class="js-slick-carousel u-slick" data-autoplay="true" data-speed="5000" data-infinite="true"
data-slides-show="5" data-responsive="[{
&quot;breakpoint&quot;: 1200,
&quot;settings&quot;: {
&quot;slidesToShow&quot;: 4
}
}, {
&quot;breakpoint&quot;: 992,
&quot;settings&quot;: {
&quot;slidesToShow&quot;: 4
}
}, {
&quot;breakpoint&quot;: 768,
&quot;settings&quot;: {
&quot;slidesToShow&quot;: 3
}
}, {
&quot;breakpoint&quot;: 576,
&quot;settings&quot;: {
&quot;slidesToShow&quot;: 3
}
}, {
&quot;breakpoint&quot;: 480,
&quot;settings&quot;: {
&quot;slidesToShow&quot;: 2
}
}]">
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-lactalis.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-onela-service-a-domicile.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-intermarche.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide ">
<img src="{{ asset('v2/logos/recrutement-video-eiffage.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-mma-assurances.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-admr.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide ">
<img src="{{ asset('v2/logos/recrutement-video-jpa.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-groupe-mousset.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-groupe-rocher.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-aer-recyclage.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-actual.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-la-centrale-des-ramoneurs.jpg') }}" alt="Image Description">
</div>
<div class="js-slide slick-slide">
<img src="{{ asset('v2/logos/recrutement-video-tpc-ouest-btp.jpg') }}" alt="Image Description">
</div>
</div>
<!-- End Slick Carousel -->
</div>
</div>
<!-- Ils nous font confiance FIN -->
@@ -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 -->
@@ -0,0 +1,86 @@
<div class="space-1-bottom accueilFondNoir">
<div class="container space-2">
<div class="row justify-content-md-between align-items-md-center">
<div class="w-md-80 w-lg-60 text-center mx-md-auto ">
<h2 class="h3">Vos offres demploi méritent mieux que du texte</h2>
<p class="lead">Avec Talents Tube, dévoilez vos métiers</p>
</div>
<div class="col-md-6 col-lg-5 mb-2 mb-md-0">
<img class="img-fluid"
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>
<div class="row mb-3">
<div class="col-12">
<!-- List -->
<ul class="list-unstyled text-secondary">
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body" >
Une occasion en or de <strong>montrer votre entreprise</strong> dans sa vérité, au delà des mots et des descriptions convenues
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body" >
Pas besoin dune super vidéo, réalisez une « vidéo offre demploi smartphone » pour donner du corps et <strong>du sens à votre futur candidat</strong>
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body" >
En bonus, montrez votre entreprise et votre équipe, affichez votre esprit dentreprise dans une vidéo marque employeur dont votre <strong>équipe sera fière</strong>
</div>
</li>
</ul>
<!-- End List -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="space-1-bottom accueilFondBleute">
<div class="container space-2">
<div class="w-md-80 w-lg-60 text-center mx-md-auto mb-2">
<h2 class="h3">Donnez la parole à vos candidats</h2>
<p class="lead">Avec Talents Tube, recevez des candidatures vidéo</p>
</div>
<div class="container pt-6">
<div class="row">
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/personnalite-des-candidats.svg" alt="Découvrez la personnalité des candidats en vidéo">
<h3 class="h5">Découvrez la personnalité des candidats</h3>
<p>Au delà des compétences, décelez les soft skills de la personne qui se cache derrière le CV papier</p>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/gagnez-du-temps-preselection-candidats.svg" alt="Gagnez du temps dans votre pré-selection des candidats">
<h3 class="h5">Gagnez du temps dans votre présélection</h3>
<p>Améliorez votre processus de recrutement en rencontrant uniquement les candidats réellement impliqués</p>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/gestion-des-candidatures.svg" alt="Gérez vos candidatures vidéo">
<h3 class="h5">Gérez vos candidatures depuis votre espace</h3>
<p>Grâce à notre solution de recrutement, vous pouvez interagir avec les candidats directement sur Talents Tube</p>
</div>
<!-- End Icon Blocks -->
</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,26 @@
<!-- Notre mission DEBUT -->
<div class="space-1-bottom accueilFondNoir">
<div class="container space-2 ">
<div class="row justify-content-lg-end">
<div class="col-lg-6 order-md-2 mb-md-0">
<!-- Title -->
<div class="">
<h2 class="h3"> Notre mission : Remettre lhumain au cœur des recrutements</h2>
<p> Chez Talents Tube, nous pensons que la technologie ne doit pas remplacer lhumain mais être à son service.
Cest pour cette raison que nous proposons un outil de recrutement vidéo alliant digital et humain, afin de
<strong>redonner la parole aux candidats et aux entreprises</strong>. Talents Tube est aujourdhui la seule plateforme de
recrutement qui permet aux entreprises de <strong>publier des offres demploi en vidéo et de recevoir des
candidatures en vidéo</strong>.
</p>
</div>
</div>
<div class="col-lg-6 order-md-1 pb-5">
<div class="pr-lg-4">
<a href="candidatures-video"><img class="img-fluid" src="{{ asset('v2/png/candidature-en-video.png') }}"
alt="Candidature en vidéo"></a>
</div>
</div>
</div>
</div>
</div>
<!-- Notre mission FIN -->
@@ -0,0 +1,62 @@
<!-- Accueil Photo Haut Section -->
<div class="gradient-overlay-half-dark-v3 bg-img-hero" style="background-image: url({{ asset(urlImage)}}); background-size:cover;">
<!-- Main Content -->
<div class="d-lg-flex align-items-lg-center height-100vh--lg">
<div class="container space-2 space-0--lg mt-lg-8">
<div class="row justify-content-lg-between align-items-lg-center">
<div class="col-lg-5 mb-7 mb-lg-0">
<!-- Title -->
<h1 class="display-4 font-size-48--md-down mb-0 h1" style="color:#25D89A">Adoptez le recrutement vidéo <span class="text-white">pour enfin trouver les talents que vous attendiez</span></h1>
<p class="d-block text-white text-uppercase mb-2">{{textVideo}}</p>
<!-- End Title -->
</div>
<div class="col-lg-5">
<!-- Signup Form -->
<div class="bg-white shadow-sm rounded p-6">
<form class="js-validate" id="formDemandeDiag1">
<div class="">
<p class="h4 text-center">Faites le point sur <br>vos enjeux de recrutement</p>
<p class="text-center">Diagnostic gratuit de 15 minutes</p>
<!--<p>Faites le point sur vos enjeux de recrutement, identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée pour votre entreprise.</p>-->
</div>
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="nomPrenomForm1" id="nomPrenomForm1" required placeholder="Nom Prénom" aria-label="name">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="nomEntrepriseForm1" id="nomEntrepriseForm1" required placeholder="Nom de l'entreprise" aria-label="entreprise">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="email" class="form-control form__input" name="emailForm1" id="emailForm1" required placeholder="E-mail" aria-label="email">
</div>
</div>
<!-- End Input -->
<!-- Input -->
<div class="js-form-message mb-3">
<div class="js-focus-state input-group input-group form">
<input type="text" class="form-control form__input" name="telForm1" id="telForm1" placeholder="Numéro de téléphone" aria-label="phone">
</div>
</div>
<p class="text-primary" id="messageValideDemandeDiag1"></p>
<!-- End Input -->
<a href="#" onClick="demanderDiag('formDemandeDiag1')" class="btn btn-sm btn-primary btn-wide center">Demander mon diagnostic</a>
</form>
</div>
<!-- End Signup Form -->
</div>
</div>
</div>
</div>
</div>
@@ -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 -->
@@ -0,0 +1,85 @@
<!-- Pourquoi nous DEBUT -->
<div class=" space-1-bottom accueilFondBlanc">
<div class="container space-2 ">
<div class="row row justify-content-lg-end ">
<div class="col-lg-6 order-md-1 pb-5">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mr-5">
<h2 class="h3"> Pourquoi nous ?</h2>
<h3 class="h4">Parce que nous sommes les seuls à le faire !</h3>
<p> Notre équipe est composée dexperts métier qui sauront vous accompagner dans toutes vos demandes. En
recherche d<strong>évolution constante</strong>, nous avons à cœur de créer une relation de proximité afin
d<strong>adapter notre solution à vos besoins</strong> et ainsi créer une <strong>expérience utilisateur
inoubliable</strong>.
Composée dexperts de la fonction RH & Recrutement, nous sommes passionnés par ce que nous faisons.
<br><strong>Notre seul objectif : favoriser la rencontre dentreprises formidables et de candidats uniques
pour une performance commune.</strong></p>
</div>
</div>
<div class="col-lg-6 order-md-2">
<!-- Cubeportfolio -->
<div class="cbp cbp-caption-active cbp-caption-overlayBottomAlong cbp-ready" data-layout="mosaic"
data-animation="quicksand" data-x-gap="15" data-y-gap="15" data-load-more-selector="#cubeLoadMore"
data-load-more-action="auto" data-load-items-amount="4" data-media-queries="[
{&quot;width&quot;: 1500, &quot;cols&quot;: 4},
{&quot;width&quot;: 1100, &quot;cols&quot;: 4},
{&quot;width&quot;: 800, &quot;cols&quot;: 3},
{&quot;width&quot;: 480, &quot;cols&quot;: 2},
{&quot;width&quot;: 400, &quot;cols&quot;: 2}
]" style="height: 420px;">
<div class="cbp-wrapper-outer">
<div class="cbp-wrapper">
<!-- Item -->
<div class="cbp-item" style="width: 220px; left: 0px; top: 0px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<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: 220px; left: 235px; top: 0px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<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: 220px; left: 0px; top: 146px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<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: 220px; left: 235px; top: 223px;">
<div class="cbp-item-wrapper">
<div class="cbp-caption">
<img src="{{ asset('v2/img/380x227/recrutement-video-equipe.jpg') }}" alt="Image Description">
</div>
</div>
</div>
<!-- End Item -->
</div>
</div>
</div>
<!-- End Cubeportfolio -->
</div>
<!--<div class="col-md-6 align-right paddintRight">
<div class="mb-6">
<a href="{{ url_plateforme }}"><img class="img-fluid" src="{{ asset('v2/png/plateforme-de-recrutement-en-video.png') }}"
alt="Recrutement video"></a>
</div>
</div>-->
</div>
</div>
</div>
<!-- Pourquoi nous FIN -->
@@ -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>
@@ -0,0 +1,59 @@
<div class="accueilFondBleute">
<div class="container">
<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="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>
<div class="row mb-3">
<div class="col-12">
<!-- List -->
<ul class="list-unstyled text-secondary">
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body">
Vos <strong>offres d'emploi en vidéo seront mieux expliquées</strong> aux candidats, portées par des vrais visages de
l'entreprise.
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body">
Vos <strong>métiers seront enfin valorisés</strong>, dévoilés au grand jour pour briser tous les clichés.
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body">
Vous donnerez <strong>davantage d'informations aux candidats</strong> pour qu'ils puissent se projeter dans votre
entreprise.
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body">
Vos candidats seront <strong>plus impliqués dans leur candidature</strong> et dévoileront leur savoir-être.
</div>
</li>
<li class="media align-items-center mb-2">
<i class="fa fa-check text-primary mr-2"></i>
<div class="media-body">
Vous <strong>gagnerez du temps dans vos recrutements</strong> : les candidats que vous rencontrez vous auront déjà
convaincu en vidéo.
</div>
</li>
</ul>
<!-- End List -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,128 @@
<div class="accueilFondBleute">
<div class="container">
<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-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="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": {
"slidesToShow": 3
}
}, {
"breakpoint": 992,
"settings": {
"slidesToShow": 2
}
}, {
"breakpoint": 768,
"settings": {
"slidesToShow": 1
}
}, {
"breakpoint": 554,
"settings": {
"slidesToShow": 1
}
}]'>
<div class="js-slide">
<!-- Pricing -->
<div class="card border-0">
<!-- Header -->
<header class="card-header text-center p-5">
<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">
99€
</span>
<span class="d-block text-secondary font-size-14">par mois HT</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 10 vidéos <br>renouvelables</h4>
<span class="d-block">
<span class="display-4 text-dark">
199€
</span>
<span class="d-block text-secondary font-size-14">par mois HT</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 PRO<br>Plus de 10 vidéos</h4>
<span class="d-block">
<span class="display-4 text-dark">
<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>
</header>
<!-- End Header -->
</div>
<!-- End Pricing -->
</div>
</div>
</div>
<!-- End Individual -->
</div>
</div>
<!-- End Pricing Section -->
</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,46 +2,52 @@
{% 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">
{% include 'defaultv2/accueil/blocPhoto.html.twig'
{% include 'defaultv2/accueil/blocPhotoAccueil.html.twig'
with {
'urlImage': 'v2/img/1920x800/recrutement-video.jpg',
'textParDefaut' : 'Recrutez les candidats',
'textVideo' : 'avec la vidéo'
'textVideo' : 'Talents Tube favorise la mise en relation de candidats et d\'entreprises en vidéo !'
} %}
{% include 'defaultv2/accueil/blocDegrade.html.twig' %}
{% include 'defaultv2/accueil/blocPlateforme.html.twig' %}
{% include 'defaultv2/accueil/blocCandidat.html.twig' %}
{% include 'defaultv2/accueil/blocRecrutez.html.twig' %}
{% include 'defaultv2/accueil/blocEmployeur.html.twig' %}
<!--{ include 'defaultv2/accueil/blocDegrade.html.twig' }-->
{% include 'defaultv2/accueil/blocTemoignages.html.twig' %}
{% include 'defaultv2/accueil/blocDifficultes.html.twig' %}
{% include 'defaultv2/accueil/blocCitation.html.twig' %}
{% include 'defaultv2/accueil/blocMieuxQueDuTexte.html.twig' %}
{% include 'defaultv2/accueil/blocConfiance.html.twig' %}
{% include 'defaultv2/accueil/blocLogoSecteurs.html.twig' %}
{% include 'defaultv2/accueil/blocNotreMission.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 ========== -->
@@ -95,15 +101,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({
@@ -172,15 +172,16 @@ 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");
@@ -193,5 +194,53 @@ with {
{% block javascripts %}
{{ parent() }}
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
function demanderDiag(formulaire){
if(formulaire=="formDemandeDiag1"){
nomprenom = $("#nomPrenomForm1").val();
nomEntreprise = $("#nomEntrepriseForm1").val();
email = $("#emailForm1").val();
tel = $("#telForm1").val();
champMessage="messageValideDemandeDiag1";
}else if(formulaire=="formDemandeDiag2"){
nomprenom = $("#nomPrenomForm2").val();
nomEntreprise = $("#nomEntrepriseForm2").val();
email = $("#emailForm2").val();
tel = $("#telForm2").val();
champMessage="messageValideDemandeDiag2";
}
if(nomprenom && nomEntreprise && email){
$.ajax({
//L'URL de la requête
url: "/app_dev.php/api/demanderDiagnostic?nomPrenom=" + nomprenom + "&email=" +
email + "&nomEntreprise=" + nomEntreprise + "&telephone=" + tel + "&page=Demande de diagnostic",
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 demande diagnostic done");
$("#"+champMessage).text("Votre demande a bien été transmise à Talents Tube");
})
//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 demande diag 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 demande diag effectuée");
});
}
}
</script>
{% endblock %}
@@ -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 -->
@@ -10,7 +10,7 @@
<div class=" text-center space-3-bottom">
<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
Contactez-nous
</a>
</div>
@@ -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
@@ -0,0 +1,31 @@
<!-- Candidat DEBUT -->
<div class="space-1-bottom accueilFondNoir">
<div class="container space-2 ">
<div class="row justify-content-lg-end">
<div class="col-lg-6 order-1 pb-5">
<!-- Title -->
<div class="">
<h2 class="h3"> Recevez les candidatures en vidéo</h2>
<p class=""> Depuis leur webcam, smartphone ou tablette, les candidats postulent aux vidéos de votre entreprise, en
toute confidentialité, grâce à notre outil denregistrement vidéo simple, rapide et gratuit.
Vous recevez des vidéos de motivation, cest-à-dire des candidatures qui répondent à votre vidéo de
recrutement. Le candidat expose son parcours en illustrant ses expériences. Il met en avant ses
motivations à vous rejoindre et les compétences quil peut apporter à votre entreprise.
<strong>Découvrez la personnalité du candidat et son projet professionnel en quelques instants.</strong>
</p>
<a class="btn btn-sm btn-primary btn-wide" href="candidatures-video">En savoir plus</a>
</div>
</div>
<div class="col-lg-6 order-2">
<div class="pr-lg-4">
<a href="candidatures-video"><img class="img-fluid" src="{{ asset('v2/png/candidature-en-video.png') }}" alt="Candidature en vidéo"></a>
</div>
</div>
</div>
</div>
</div>
<!-- Candidat FIN -->
@@ -0,0 +1,40 @@
<!-- 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="h1"> Ils nous font confiance</h2>
<!-- Slick Carousel -->
<div class="js-slick-carousel u-slick" data-autoplay="true" data-speed="5000" data-infinite="true"
data-slides-show="5">
<div class="js-slide">
<img src="{{ asset('v2/logos/Albea-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Bouyer-leroux-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Eiffage-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/groupe-mousset-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Groupe-rocher-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/intermarche.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Mazars-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Mma-logo.png') }}" alt="Image Description">
</div>
<div class="js-slide">
<img src="{{ asset('v2/logos/Square-habitat-logo.png') }}" alt="Image Description">
</div>
</div>
<!-- End Slick Carousel -->
</div>
</div>
<!-- Ils nous font confiance FIN -->
@@ -0,0 +1,87 @@
<!-- Degradé avec Stats Section -->
<div class="gradient-overlay-half-primary-v1">
<div class="bg-img-hero" style=>
<div class="container space-2 ">
<div class="container z-index-2 containerStat">
<div class=" shadow-lg rounded mt-n9">
<div class="card-deck d-block d-lg-flex">
<div class="card card-frame mb-4 mb-lg-0">
<!-- Listing -->
<div class="card-body p-4">
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">10000+</h2>
<p class="statTexte">Visiteurs par mois</p>
</div>
</div>
</div>
<!-- End Listing -->
</div>
<div class="card card-frame mb-4 mb-lg-0">
<!-- Listing -->
<div class="card-body p-4">
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">1050+</h2>
<p class="statTexte">Vues par vidéo</p>
</div>
</div>
</div>
<!-- End Listing -->
</div>
<div class="card card-frame mb-4 mb-lg-0">
<!-- Listing -->
<div class="card-body p-4">
<div class="media">
<div class="media-body px-4">
<h2 class="statChiffre">550+</h2>
<p class="statTexte">Candidatures vidéo</p>
</div>
</div>
</div>
<!-- End Listing -->
</div>
</div>
</div>
</div>
</div>
<!-- Icon Blocks Section -->
<div class="container ">
<div class="row space-1">
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img src="{{ asset('v2/svg/components/Diffusion-offres-emploi-video-marque-employeur.svg') }}" alt="Diffusez vos offres d'emploi et marque employeur en video" class="pb-3">
<h3 class="h4 text-white text500">Diffusez vos offres d'emploi et marque employeur en <strong>vidéo</strong></h3>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img src="{{ asset('v2/svg/components/candidature-en-video.svg') }}" alt="Recevez les candidatures en video" class="pb-3">
<h3 class="h4 text-white text500">Recevez les candidatures en vidéo</h3>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4">
<!-- Icon Blocks -->
<div class="text-center px-lg-3 ">
<img src="{{ asset('v2/svg/components/Gestion-des-candidatures-video.svg') }}" alt="Gérez vos candidatures en vidéo" class="pb-3">
<h3 class="h4 text-white text500">Gérez vos candidatures en vidéo</h3>
</div>
<!-- End Icon Blocks -->
</div>
</div>
</div>
<!-- End Icon Blocks Section -->
</div>
</div>
<!-- Degradé avec Stats FIN-->
@@ -0,0 +1,31 @@
<!-- Marque employeur DEBUT -->
<div class="space-1-bottom accueilFondBlanc">
<div class="container space-2 ">
<div class="row justify-content-lg-end ">
<div class="col-lg-6 order-1 pb-5">
<!-- Title -->
<div class="mb-6">
<h2 class="h3"> Révélez votre Marque Employeur en vidéo</h2>
<p> Talents Tube offre une visibilité essentielle à votre marque employeur. Grâce à la vidéo, votre
entreprise replace lhumain au cœur du recrutement. Vous disposez dun levier concret et efficace pour
parfaire votre réputation. Développez lattractivité de votre entreprise pour séduire de nouveaux talents.
<strong>Donnez vie à votre marque employeur en plaçant la vidéo au centre de votre stratégie de
communication et de votre gestion des ressources humaines.
</strong>
</p>
<a class="btn btn-sm btn-primary btn-wide" href="marque-employeur-video">En savoir plus</a>
</div>
</div>
<div class="col-lg-6 order-2 mb-md-0">
<div class="mb-6>
<a href="marque-employeur-video"><img class="img-fluid"
src="{{ asset('v2/png/marque-employeur-en-video.png') }}" alt="Marque employeur vidéo"></a>
</div>
</div>
</div>
</div>
</div>
<!-- Marque employeur FIN -->
@@ -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="u-text-animation u-text-animation--typing">{{textParDefaut}}</strong>
<br>{{textVideo}}
</h1>
</div>
<!-- End Title -->
</div>
</div>
</div>
<!-- End Accueil Photo Haut Section -->
@@ -0,0 +1,32 @@
<!-- Plateforme DEBUT -->
<div class=" accueilFondBleute">
<div class="container space-2 ">
<div class="row row justify-content-lg-end ">
<div class="col-lg-6 order-2 mb-md-0 ">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mb-6">
<h2 class="h3"> Plateforme pour lemploi 100% vidéo</h2>
<p> Talents Tube met à votre disposition un outil de diffusion de vos vidéos doffres demploi & marque
employeur pour attirer les meilleurs talents en vidéo.
Notre plateforme rassemble lentreprise et les talents qui se présentent en vidéo pour un recrutement
réussi.
Si vous ne possédez pas de vidéos, nous pouvons vous accompagner dans la réalisation.
<strong>Diffusez vos vidéos de recrutement et augmentez votre visibilité.</strong>
</p>
<a class="btn btn-sm btn-primary btn-wide" href="{{ url_plateforme }}">Voir la plateforme</a>
</div>
</div>
<div class="col-lg-6 order-1 pb-5">
<div class="">
<a href="{{ url_plateforme }}"><img class="img-fluid" src="{{ asset('v2/png/plateforme-de-recrutement-en-video.png') }}"
alt="Recrutement video"></a>
</div>
</div>
</div>
</div>
</div>
<!-- Plateforme FIN -->
@@ -0,0 +1,32 @@
<!-- Recrutez DEBUT -->
<div class="space1-bottom accueilFondBleute">
<div class="container space-2 ">
<div class="row justify-content-lg-end ">
<div class="col-lg-6 order-2 mb-md-0">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mb-6">
<h2 class="h3"> Recrutez avec des offres demploi vidéo</h2>
<p> Talents Tube peut vous accompagner dans la réalisation de vidéos doffres demploi captivantes et à votre
image.
Loffre demploi en vidéo, média engageant, vous donne lopportunité de recruter les meilleurs talents. Le
principe est de donner une image moderne et innovante en présentant votre entreprise, votre équipe,
lenvironnement de travail et le poste à pourvoir en quelques minutes.
<strong>Faites place à linnovation pour capter lattention des candidats et recruter le talent quil vous
faut.</strong>
</p>
<a class="btn btn-sm btn-primary btn-wide" href="offre-emploi-video">En savoir plus</a>
</div>
</div>
<div class="col-lg-6 order-1 pb-5">
<div class="">
<a href="offre-emploi-video"><img class="img-fluid" src="{{ asset('v2/png/offres-emploi-en-video.png') }}" alt="Offres d'emploi en vidéo"></a>
</div>
</div>
</div>
</div>
</div>
<!-- Recrutez FIN -->
@@ -0,0 +1,309 @@
<!-- Témoignage DEBUT -->
<!-- Success stories -->
<div class="space-2-top space-1-bottom space-3-top--lg accueilFondNoir">
<div class="container">
<!-- Title -->
<div class="w-md-80 w-lg-60 mx-md-auto text-md-center mb-8">
<h2 class="text-lh-xs mb-0">Témoignages de nos clients</h2>
<h6 class="text-uppercase font-weight-medium letter-spacing-0_06 mb-3"> Ils ont choisi Talents Tube
pour recruter différemment.</h6>
</div>
<!-- End Title -->
<!-- Stories -->
<div id="sliderSyncingNav2" class="js-slick-carousel u-slick u-slick--rounded mb-2" data-infinite="true"
data-arrows-classes="d-none d-md-inline-block u-slick__arrow-classic u-slick__arrow-centered--y rounded-circle shadow"
data-arrow-left-classes="fa fa-arrow-left u-slick__arrow-classic-inner bg-white text-dark left-0 ml-md-n9"
data-arrow-right-classes="fa fa-arrow-right u-slick__arrow-classic-inner bg-white text-dark right-0 mr-md-n9"
data-nav-for="#sliderSyncingThumb2">
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/pontivy-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">Pontivy Communauté</h3>
<p class="text-white">Christine Le Strat & Kévin Nado</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=ugXui7ICJeM?autoplay=1" data-speed="700" data-animate-in="zoomIn"
data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/temoignage-mma-questembert.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">MMA Questembert</h3>
<p class="text-white"> Stephane David, Agent Général d'Assurances</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=0bbNdf4qAng?autoplay=1" data-speed="700" data-animate-in="zoomIn"
data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/mgdis-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">MGDIS</h3>
<p class="text-white">Simona Vasile-Martin, Responsable Marketing</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=E62HUkaPEkk&t?autoplay=1" data-speed="700"
data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/medaviz-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">Medaviz</h3>
<p class="text-white">Guillaume Lesdos, Co-fondateur et Président</p>
<a class="js-fancybox text-white" href="javascript:;" data-src="https://www.youtube.com/watch?v=Em3niStNutA"
data-speed="700" data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/thalazur-carnac1-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">Thalazur Carnac</h3>
<p class="text-white">Adeline Lautredou, Responsable Ressources Humaines</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=hWYae9V-YWM&t=8s?autoplay=1" data-speed="700"
data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/intermarche-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs">Intermarché LAI</h3>
<p class="text-white">Ludovic Chamoin-Foucaut, RRH</p>
<a class="js-fancybox text-white" href="javascript:;" data-src="https://youtu.be/lheAXL8U9cU?autoplay=1"
data-speed="700" data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
</div>
<!-- End Stories -->
<!-- Stories.Authors -->
<div id="sliderSyncingThumb2"
class="js-slick-carousel u-slick u-slick--gutters-2 u-slick--video w-50 w-lg-30 mx-auto" data-infinite="true"
data-slides-show="3" data-is-thumbs="true" data-center-mode="true" data-nav-for="#sliderSyncingNav2">
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/pontivy-communaute-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/mma-temoignage-vignette.jpg') }}" alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/mgdis-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/medaviz-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/thalazur-carnac-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/intermarche-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
</div>
<!-- End Stories.Authors -->
</div>
</div>
<!-- End Success stories -->
<!-- Témoignage FIN -->
@@ -0,0 +1,198 @@
{% extends 'basev2.html.twig' %}
{% 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')) }}">
{#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">
{% include 'defaultv2/accueil/blocPhotoPagesHeader.html.twig'
with {
'urlImage': 'v2/img/1920x800/recrutement-video.jpg',
'textParDefaut' : 'Recrutez les candidats',
'textVideo' : 'avec la vidéo'
} %}
{% include 'defaultv2/concept/blocDegrade.html.twig' %}
{% include 'defaultv2/concept/blocPlateforme.html.twig' %}
{% include 'defaultv2/concept/blocCandidat.html.twig' %}
{% include 'defaultv2/concept/blocRecrutez.html.twig' %}
{% include 'defaultv2/concept/blocEmployeur.html.twig' %}
{% include 'defaultv2/concept/blocTemoignages.html.twig' %}
{% include 'defaultv2/accueil/blocLogo.html.twig' %}
</main>
<!-- ========== END MAIN CONTENT ========== -->
{% include 'defaultv2/accueil/footer.html.twig' %}
<!-- Begin Panel Login -->
{% include 'defaultv2/accueil/blocLogin.html.twig'
with {
'csrf_token': csrf_token,
'error' : error
} %}
<!-- Go to Top -->
<a class="js-go-to u-go-to" href="javascript:;" data-position='{"bottom": 30, "right": 100 }' data-type="fixed"
data-offset-top="400" data-compensation="#header" data-show-effect="slideInUp" data-hide-effect="slideOutDown">
<i class="fa fa-arrow-up u-go-to__inner"></i>
</a>
<!-- End Go to Top -->
<!-- JS Global Compulsory -->
<script src="{{ asset('v2/vendor/jquery/dist/jquery.min.js') }}"></script>
<script src="{{ asset('v2/vendor/jquery-migrate/dist/jquery-migrate.min.js') }}"></script>
<script src="{{ asset('v2/vendor/popper.js/dist/umd/popper.min.js') }}"></script>
<script src="{{ asset('v2/vendor/bootstrap/bootstrap.min.js') }}"></script>
<!-- JS Implementing Plugins -->
<script src="{{ asset('v2/vendor/hs-megamenu/src/hs.megamenu.js') }}"></script>
<script src="{{ asset('v2/vendor/jquery-validation/dist/jquery.validate.min.js') }}"></script>
<script src="{{ asset('v2/vendor/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js') }}"></script>
<script src="{{ asset('v2/vendor/custombox/dist/custombox.min.js') }}"></script>
<script src="{{ asset('v2/vendor/custombox/dist/custombox.legacy.min.js') }}"></script>
<script src="{{ asset('v2/vendor/typed.js/lib/typed.min.js') }}"></script>
<script src="{{ asset('v2/vendor/slick-carousel/slick/slick.js') }}"></script>
<script src="{{ asset('v2/vendor/cubeportfolio/js/jquery.cubeportfolio.min.js') }}"></script>
<script src="{{ asset('v2/vendor/fancybox/jquery.fancybox.min.js') }}"></script>
<!-- JS Space -->
<script src="{{ asset('v2/js/hs.core.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.header.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.unfold.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.validation.js') }}"></script>
<script src="{{ asset('v2/js/helpers/hs.focus-state.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.malihu-scrollbar.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.fancybox.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.modal-window.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.show-animation.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.slick-carousel.js') }}"></script>
<script src="{{ asset('v2/js/components/hs.cubeportfolio.js') }}"></script>
<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({
event: 'hover',
pageContainer: $('.container'),
breakpoint: 767,
hideTimeOut: 0
});
});
$(document).on('ready', function () {
// initialization of header
$.HSCore.components.HSHeader.init($('#header'));
// initialization of fancybox
$.HSCore.components.HSFancyBox.init('.js-fancybox');
// initialization of unfold component
$.HSCore.components.HSUnfold.init($('[data-unfold-target]'), {
afterOpen: function () {
if (!$('body').hasClass('IE11')) {
$(this).find('input[type="search"]').focus();
}
}
});
// initialization of form validation
$.HSCore.components.HSValidation.init('.js-validate', {
rules: {
confirmPassword: {
equalTo: '#password'
}
}
});
// initialization of forms
$.HSCore.helpers.HSFocusState.init();
// initialization of malihu scrollbar
$.HSCore.components.HSMalihuScrollBar.init($('.js-scrollbar'));
// initialization of autonomous popups
$.HSCore.components.HSModalWindow.init('[data-modal-target]', '.js-signup-modal', {
autonomous: true
});
// initialization of show animations
$.HSCore.components.HSShowAnimation.init('.js-animation-link');
// initialization of slick carousel
$.HSCore.components.HSSlickCarousel.init('.js-slick-carousel');
$('.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');
// 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","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 %}
{% block javascripts %}
{{ parent() }}
<script src="https://player.vimeo.com/api/player.js"></script>
{% endblock %}
@@ -56,7 +56,7 @@
</p>
<h5 class="white-text">Contactez-nous !</h5>
<a class="white-text" href="mailto:&#098;&#111;&#110;&#106;&#111;&#117;&#114;&#064;&#116;&#097;&#108;&#101;&#110;&#116;&#115;&#116;&#117;&#098;&#101;&#046;&#099;&#111;&#109;">Par mail</a>
<p class="white-text">02 30 05 06 31</p>
<p class="white-text">07 56 85 27 36</p>
<p class="footer-newsletter">
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
@@ -42,7 +42,7 @@
<p>Talents Tube est joignable :</p>
<p>- Par internet : via le **formulaire de contact** </p>
<p>- Par téléphone au 02 30 05 06 31, du lundi au vendredi de 9 h à 18 h;</p>
<p>- Par téléphone au 07 56 85 27 36, du lundi au vendredi de 9 h à 18 h;</p>
<p>- Par voie postale :</p>
<p>Talents Tube</p>
<p>3 Rue Louis de Broglie</p>
@@ -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">
@@ -39,13 +41,23 @@
<!-- Navigation -->
<div id="navBar" class="collapse navbar-collapse u-header__navbar-collapse py-0">
<ul class="navbar-nav u-header__navbar-nav">
<!-- Home -->
<li class="nav-item u-header__nav-item"
data-event="hover"
data-animation-in="fadeInUp"
data-animation-out="fadeOut">
<a id="homeMegaMenu" class="nav-link u-header__nav-link" href="{{ path('concept') }}">
Concept
</a>
</li>
<!-- End Home -->
<!-- Home -->
<li class="nav-item u-header__nav-item"
data-event="hover"
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>
@@ -54,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>
@@ -68,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>
@@ -83,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>
@@ -91,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>
@@ -9,9 +9,9 @@
<div class="row">
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/recrutement-territoire.svg') }}" alt="Image Description">
<h3 class="h4 text-white text-center">Valorisez votre implantation territoire</h3>
<div class="text-center px-lg-4">
<img class="max-width-14 mb-3" src="{{ asset('v2/svg/components/recrutement-territoire.svg') }}" alt="Image Description">
<h3 class="h5 text-white text-center">Valorisez votre implantation territoire</h3>
<p class="mb-0 text-white text-center">Les talents sont sensibles à l’équilibre vie professionnelle et vie privée, la situation géographique de vos sites est un atout.</p>
</div>
<!-- End Icon Blocks -->
@@ -19,9 +19,9 @@
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/temoignage-collaborateur.svg') }}" alt="Image Description">
<h3 class="h4 text-white text-center">Donnez la parole à vos collaborateurs</h3>
<div class="text-center px-lg-4">
<img class="max-width-14 mb-3" src="{{ asset('v2/svg/components/temoignage-collaborateur.svg') }}" alt="Image Description">
<h3 class="h5 text-white text-center">Donnez la parole à vos collaborateurs</h3>
<p class="mb-0 text-white text-center">Ce sont ceux qui le vivent qui en parlent le mieux. Soyez authentique, montrez les évolutions de carrière et donnez du sens à vos emplois.</p>
</div>
<!-- End Icon Blocks -->
@@ -29,9 +29,9 @@
<div class="col-md-4">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/boost-identite-digitale.svg') }}" alt="Image Description">
<h3 class="h4 text-white text-center" >Boostez votre identité digitale</h3>
<div class="text-center px-lg-4">
<img class="max-width-14 mb-3" src="{{ asset('v2/svg/components/boost-identite-digitale.svg') }}" alt="Image Description">
<h3 class="h5 text-white text-center" >Boostez votre identité digitale</h3>
<p class="mb-0 text-white text-center">Avec la vidéo, 1er média sur le web, propulsez votre image de marque employeur et gagnez en notoriété.</p>
</div>
<!-- End Icon Blocks -->
@@ -2,7 +2,7 @@
<!-- Features Section -->
<div class="container space-2-top space-3--lg ">
<div class="row justify-content-lg-between align-items-md-center">
<div class="col-md-6 col-lg-5 mb-7 mb-md-0">
<div class="col-md-6 col-lg-5 col-md-9 mb-7 mb-md-0">
<!-- Title -->
<div class="mb-7">
<h2>Comment ça fonctionne ?</h2>
@@ -33,7 +33,7 @@
</div>
<div class="col-md-6 mb-9 mb-md-0">
<div class="col-lg-6 mb-9 mb-md-0">
<img src="{{ asset('v2/img/marque/marque-employeur-candidature-spontanee.jpg') }}">
</div>
</div>
+1 -5
View File
@@ -6,11 +6,7 @@
<h2 class="text-white text-center"> Envie de dévoiler votre marque employeur en vidéo ? </h2>
</div>
<a class="btn btn-sm btn-contact" href="https://blog.talentstube.com/contact"
data-overlay-color="#151b26">
Contactez-nous
</a>
<a class="btn btn-sm btn-contact" href="https://blog.talentstube.com/contact" data-overlay-color="#151b26">Contactez-nous</a>
</div>
</div>
@@ -2,7 +2,7 @@
<div class=" accueilFondBlanc">
<div class="container space-2 ">
<div class="row row justify-content-lg-end ">
<div class="col-md-6 ">
<div class="col-lg-6 order-md-2">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mb-6">
<h2 class="h3"> Quest-ce que la marque employeur ?</h2>
@@ -19,7 +19,7 @@
</div>
</div>
<div class="col-md-6 align-right paddintRight">
<div class="col-lg-6 order-md-1 mb-5">
<div class="mb-6">
@@ -2,9 +2,9 @@
<div class="space-1-bottom accueilFondNoir">
<div class="container space-2 ">
<div class="row justify-content-lg-end">
<div class="col-md-6 order-md-2 mb-5 mb-md-0">
<div class="col-lg-6 order-md-2">
<!-- Title -->
<div class="mb-4">
<div class="mb-6">
<h2 class="h3"> Pourquoi révéler votre marque employeur en vidéo ?</h2>
<p>
Recruter, fidéliser et rayonner sont des bénéfices directs de la diffusion de votre marque employeur en
@@ -19,7 +19,7 @@
</div>
</div>
<div class="col-md-6 order-md-1">
<div class="col-lg-6 order-md-1">
<div id="youTubeVideoPlayer" class="u-video-player mb-7">
<!-- Cover Image -->
<img class="img-fluid u-video-player__preview"
@@ -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
@@ -1,46 +1,38 @@
<!-- Plateforme DEBUT -->
<div class="accueilFondBleute">
<div class="container ">
<div class="row align-items-lg-center">
<!-- Icon Blocks Section -->
<div class="container ">
<div class="row">
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/boost-annonce.svg') }}" alt="Améliorez le nombre de candidatures avec loffre demploi vidéo.">
<h3 class="h4">Améliorez vos annonces</h3>
<p class="mb-0">La vidéo génère 34% de candidatures supplémentaires par rapport à une annonce demploi écrite.</p>
</div>
<!-- End Icon Blocks -->
<div class="accueilFondBleute">
<div class="container">
<div class="container pt-6">
<div class="row">
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/boost-annonce.svg" alt="Découvrez la personnalité des candidats en vidéo">
<h3 class="h5">Améliorez vos annonces</h3>
<p>La vidéo génère 34% de candidatures supplémentaires par rapport à une annonce demploi écrite.</p>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/attirer-des-candidats-large.svg') }}" alt="
Attirer les jeunes candidats à postuler en vidéo à vos offres demploi.">
<h3 class="h4">Attirez les jeunes candidats</h3>
<p class="mb-0">La génération des millenials représentera 75% de la population active dici 2030.</p>
</div>
<!-- End Icon Blocks -->
<div class="col-md-4 mb-7 mb-md-0">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/attirer-des-candidats-large.svg" alt="Gagnez du temps dans votre pré-selection des candidats">
<h3 class="h5">Attirez les jeunes candidats</h3>
<p>La génération des millenials représentera 75% de la population active dici 2030.</p>
</div>
<!-- End Icon Blocks -->
</div>
<div class="col-md-4">
<!-- Icon Blocks -->
<div class="text-center px-lg-3">
<img class="max-width-14 mb-2" src="{{ asset('v2/svg/components/mobile-first.svg') }}" alt="82 % des candidats recherchent des offres demploi depuis leur mobile.">
<h3 class="h4">Adoptez le Mobile First</h3>
<p class="mb-0">82% des candidats recherchent des offres demploi depuis leur smartphone.</p>
</div>
<!-- End Icon Blocks -->
<div class="col-md-4">
<!-- Icon Blocks -->
<div class="text-center px-lg-4">
<img class="max-width-14 mb-2" src="../v2/svg/components/mobile-first.svg" alt="Gérez vos candidatures vidéo">
<h3 class="h5">Adoptez le Mobile First</h3>
<p>82% des candidats recherchent des offres demploi depuis leur smartphone.</p>
</div>
<!-- End Icon Blocks -->
</div>
</div>
<!-- End Icon Blocks Section -->
</div>
</div>
</div>
<!-- Plateforme FIN -->
@@ -2,7 +2,7 @@
<div class=" accueilFondBlanc">
<div class="container space-2 ">
<div class="row row justify-content-lg-end ">
<div class="col-md-6 ">
<div class="col-lg-6 order-md-1 pb-5">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mb-6">
<h2 class="h3"> Quest-ce quune offre demploi vidéo ?</h2>
@@ -20,7 +20,7 @@ travail et le quotidien de vos métiers.
</div>
</div>
<div class="col-md-6 align-right paddintRight">
<div class="col-lg-6 order-md-2 align-right paddintRight">
<div class="mb-6">
@@ -1,8 +1,8 @@
<!-- Plateforme DEBUT -->
<div class=" accueilFondBleute">
<div class="container ">
<div class="container">
<div class="row align-items-lg-center">
<div class="col-md-6 order-md-2 mb-5 mb-md-0">
<div class="col-lg-6 order-md-2 mb-5">
<!-- Title <div class="col-md-6 order-md-2 mb-5 mb-md-0">-->
<div class="mb-6">
<h2 class="h3"> La vidéo doffre demploi améliore lefficacité de vos recrutements.</h2>
@@ -21,7 +21,7 @@
</div>
</div>
<div class="col-md-6 align-right paddintRight">
<div class="col-lg-6 order-md-1 align-right paddintRight">
<div class="mb-6">
@@ -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,11 +1,11 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Valorisez votre métier en tension et recrutez des candidats grâce à la vidéo{% endblock %}
{% block title %}Valorisez le métier d'aide à domicile et recrutez en vidéo{% endblock %}
{% block meta %}
<meta name="description"
content="Vous souhaitez améliorer l'attractivité de votre métier ? Avec le recrutement vidéo, valorisez sa richesse réelle et recrutez des aides à domicile en vidéo.">
<meta property="og:locale" content="fr_FR">
<meta property="og:type" content="website">
<meta property="og:title" content="Valorisez votre métier d'aide à domicile et recrutez grâce à la vidéo">
<meta property="og:title" content="Valorisez le métier d'aide à domicile et recrutez en vidéo">
<meta property="og:description"
content="Vous souhaitez améliorer l'attractivité de votre métier ? Avec le recrutement vidéo, valorisez sa richesse réelle et recrutez des aides à domicile en vidéo.">
<meta property="og:url" content="https://recruteur.talentstube.com/recrutement-aide-a-domicile">
@@ -13,6 +13,7 @@
<meta property="og:image"
content="https://recruteur.talentstube.com/landing/img/reussir-son-recrutement-aide-a-domicile-avec-la-video.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="canonical" href="https://recruteur.talentstube.com/recrutement-aide-a-domicile" />
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
@@ -66,8 +67,7 @@
</div>
<ul class="nav navbar-nav navbar-right">
<li>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un
rendez-vous</div>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</div>
</li>
</ul>
</div>
@@ -89,7 +89,7 @@
</div>
<!--welcome-message end-->
<div class=" video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</button>
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</button>
</div>
</div>
@@ -209,11 +209,9 @@
<div class="col-md-12">
<!--goodbye-message-->
<div class="appel-action">
<h2>Demandez un RDV gratuitement</h2>
<p>Plus qu'une dernière étape avant de rendre le métier d'aide à domicile plus attractif.</p>
<p>Osez recruter autrement !</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander
un rendez-vous</button>
<h2>Organisons un rendez-vous diagnostic gratuit</h2>
<p>Bénéficiez de 15 minutes de diagnostic gratuit pour faire le point sur vos enjeux de recrutement, <br>identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée pour votre entreprise.</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander mon diagnostic</button>
</div>
<!--goodbye-message end-->
</div>
@@ -0,0 +1,239 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Améliorez votre recrutement informatique et recrutez en vidéo{% endblock %}
{% block meta %}
<meta name="description"
content="Votre entreprise recherche un développeur ? Découvrez des solutions pour trouver un développeur et réussir votre recrutement.">
<meta property="og:locale" content="fr_FR">
<meta property="og:type" content="website">
<meta property="og:title" content="Améliorez votre recrutement informatique et recrutez en vidéo">
<meta property="og:description"
content="Votre entreprise recherche un développeur ? Découvrez des solutions pour trouver un développeur et réussir votre recrutement.">
<meta property="og:url" content="https://recruteur.talentstube.com/recrutement-informatique">
<meta property="og:site_name" content="Talents Tube">
<meta property="og:image" content="https://recruteur.talentstube.com/landing/img/recrutement-informatique.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="canonical" href="https://recruteur.talentstube.com/recrutement-informatique" />
{% endblock %}
{% block main %}
<main>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section-informatique">
<!--HTML5 Video-->
<video autoplay loop muted id="bgvid" poster="">
<source src="/landing/video/recrutement-informatique.mp4" type="video/mp4" alt="Recrutement informatique">
<!--Prévoir une image fixe pour la version mobile : main.css : 102-->
</video>
<!--HTML5 Video end-->
<div class="overlay"></div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header" style="display:inline-block;">
<img src="/landing/img/talentstube-logo-blanc.svg" data-at2x="/landing/img/talentstube-logo-blanc@2x.svg"
alt="Talents Tube" class="logo-talentstube" style="width:150px">
</div>
</div>
</div>
</div>
<!--nav-->
<nav class="navbar-default">
<!-- clas="navbar"-->
<div class="container">
<div class="logo-brand">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
alt="Talents Tube, plateforme de recrutement en vidéo" class="logo-head">
</div>
<!--<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>-->
<div class="collapse navbar-collapse" id="bs-navbar-collapse-1">
<div class="row">
<div class="logo-header" style="display:inline-block;">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg'"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg"
alt="Talents Tube" class="logo-nav">
</div>
<ul class="nav navbar-nav navbar-right">
<li>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</div>
</li>
</ul>
</div>
</div>
</div>
</nav>
<!--nav end-->
<div class="container">
<div class="row">
<div class="col-md-12">
<!--welcome-message-->
<div class="welcome-message">
<h1>Recrutement informatique : <br>Je cherche un développeur web</h1>
<p>Vous vous demandez comment optimiser votre recrutement informatique ?</p>
<p>Vous cherchez un développeur web mais vos meilleurs candidats vous échappent ?</p><br>
<p>Démarquez vous grâce au recrutement vidéo, choississez Talents Tube.</p>
</div>
<!--welcome-message end-->
<div class="video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</button>
</div>
</div>
</div>
</div>
</header>
<!--Header end-->
<!--about 1-->
<section class="about section-spacing-little" style="margin-top:20px">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/recrutement-informatique.jpg"
alt="Recrutement informatique" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Les difficultés de recrutement informatique freinent votre développement?</h2>
<p>Vous n'êtes pas les seuls à chercher des solutions originales pour <strong>attirer et recruter de nouveaux
développeurs</strong>, c'est un constat partagé : le secteur de l'informatique peine à recruter.</p>
<p>Même dans ce contexte sanitaire difficile, 15% des entreprises de l'ingéniérie informatique envisagent de
recruter des développeurs. Le nombre de projets de recrutement n'a jamais été aussi élevé.</p>
<p><strong>Mais comment recruter des développeurs web (php, java, react, angular) ?</strong></p>
<p>Pour cibler les jeunes talents, les "millennials", <strong>adoptez leurs codes pour mieux les toucher</strong>. La vidéo en
fait partie. Au delà de l'audience qu'elle générera, elle humanisera votre communication et renforcera votre
proximité entre votre cible et votre marque employeur.</p>
</div>
</div>
</div>
</section>
<!--about end-->
<!--about 2-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-7 bloc-droit-2" style="padding: 2em 4em;">
<h2>Publiez une offre d'emploi attractive pour réussir votre recherche de développeur web</h2>
<p>L'offre d'emploi vidéo est un projet fédérateur et participatif qui permet d'<strong>impliquer vos collaborateurs</strong>.
Ils sont <strong>fiers de montrer leur quotidien mais aussi le métier de développeur</strong> sous un autre angle. Cette dynamique permet
d'une part de souder vos équipes et d'autre part, montrer à l'extérieur l'ambiance qui y règne.</p>
<p><strong>L'offre d'emploi vidéo pour attirer et recruter des développeurs :</strong></p>
<ul class="list-puces">
<li>Parlez le même langage que les développeurs. Ils ont besoin de sentir qu'ils font partie d'une communauté</li>
<li>Montrez l'ambiance et les à-côtés (salle de pause, animation de communauté, soirée,...)</li>
<li>Ouvrez la porte aux personnes non diplômées. (73% d'entre elles ont commencé à coder avant l'âge de 20 ans
sans diplôme)</li>
<li>Pas besoin dune super vidéo pour donner du corps et du sens à votre futur candidat</li>
</ul><br>
<p><strong>Produire des vidéos na jamais été aussi simple</strong><br>
Passer à la vidéo est beaucoup plus abordable aujourd'hui.
Avec l'aide de la caméra de votre téléphone (iPhone ou autres smartphones), la capture vidéo est devenue une
formalité.
Dans un souci d'authenticité, il est d'ailleurs préférable de choisir ces modes d'enregistrement au lieu
des méthodes de prise de vue classiques et beaucoup plus coûteuses
</p>
</div>
<div class="col-md-5 bloc-gauche-2"> <img src="/landing/img/recherche-developpeur.jpg"
alt="Recherche développeur" data-no-retina> </div>
</div>
</div>
</section>
<!--about end-->
<!--about 3-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/recrutement-developpeur.jpg"
alt="Recrutement developpeur" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Recevez des candidatures de développeurs web</h2>
<p>Une vidéo, oui, mais comment communiquer avec ses candidats ? En gérant ses candidats en vidéo
!</p>
<p>Vous avez une vidéo marque employeur ou une vidéo d'offre d'emploi ?</p>
<p>Vous voulez que les développeurs puissent interagir avec vous. Pourquoi ne pas les laisser postuler en
vidéo ? <strong>Grâce à la candidature vidéo, découvrez qui se cache derrière le CV papier</strong>. Au déla des
compétences, rencontrez des personnalités ! Vous aurez <strong>déjà l'impression de connaitre votre candidat</strong> avant
son entretien. De son côté, le développeur aura enfin la possibilité d'exprimer qui il est au delà d'un simple CV papier. Les développeurs ont besoin d'être écoutés. Grâce à la candidature vidéo, ils sauront que <strong>vous leurs consacrerez au moins deux minutes d'attention.</strong></p>
<p>Talents Tube met à votre disposition un outil de diffusion de vos vidéos doffres demploi & marque
employeur pour <strong>attirer les meilleurs talents en vidéo</strong>. Cette plateforme rassemble lentreprise et les
talents qui se présentent en vidéo <strong>pour un recrutement réussi</strong>. Vous pouvez même leur répondre de manière
positive ou négative … en vidéo bien sûr. </p>
</div>
</div>
</div>
</section>
<!--about end-->
<!--sponsor-->
<section class="sponsor section-spacing text-center">
<div class="container">
<header>
<h2>Ils ont recruté en vidéo, pourquoi pas vous ?</h2>
<h3>Ces entreprises de l'informatique ont choisi Talents Tube pour recruter des développeurs autrement !</h3>
</header>
<div class="row">
<div class="col-md-12">
<figure>
<img
src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/d1455e7fffbefd4128886edf86198e1d.png"
data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/d1455e7fffbefd4128886edf86198e1d.png"
alt="MGDIS difficulté à recruter informatique " width="100" height="32">
</figure>
<figure>
<img
src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/80ec2e6eef2f7d67be06874c0eedbc45.jpeg"
data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/80ec2e6eef2f7d67be06874c0eedbc45.jpeg"
alt="Medaviz difficulté à recruter informatique" width="100" height="100">
</figure>
<figure>
<img
src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/4babe80a352d085e8c766a20b7067d73.png"
data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/4babe80a352d085e8c766a20b7067d73.png"
alt="A2COM difficulté à recruter informatique" width="100" height="100">
</figure>
</div>
</div>
</div>
</section>
<!--sponsor end-->
<!--venue-->
<section class="venue section-spacing" id="venue_informatique">
<div class="container">
<div class="row">
<div class="container text-center">
<div class="row">
<div class="col-md-12">
<!--goodbye-message-->
<div class="appel-action">
<h2>Organisons un rendez-vous diagnostic gratuit</h2>
<p>Bénéficiez de 15 minutes de diagnostic gratuit pour faire le point sur vos enjeux de recrutement, <br>identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée pour votre entreprise.</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander mon diagnostic</button>
</div>
<!--goodbye-message end-->
</div>
</div>
</div>
</div>
</div>
</section>
</main>
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block javascripts %}
{% endblock %}
@@ -1,15 +1,16 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Valorisez votre métier en tension et recrutez des candidats grâce à la vidéo{% endblock %}
{% block title %}Valorisez votre métier en tension et recrutez des candidats en vidéo{% endblock %}
{% block meta %}
<meta name="description" content="Votre métier est en tension ? Vous souhaitez améliorer son attractivité ? Avec le recrutement vidéo, valorisez votre métier et recevez des candidatures vidéo.">
<meta property="og:locale" content="fr_FR">
<meta property="og:type" content="website">
<meta property="og:title" content="Valorisez votre métier en tension et recrutez des candidats grâce à la vidéo">
<meta property="og:title" content="Valorisez votre métier en tension et recrutez des candidats en vidéo">
<meta property="og:description" content="Votre métier est en tension ? Vous souhaitez améliorer son attractivité ? Avec le recrutement vidéo, valorisez votre métier et recevez des candidatures vidéo.">
<meta property="og:url" content="https://recruteur.talentstube.com/metier-en-tension">
<meta property="og:site_name" content="Talents Tube">
<meta property="og:image" content="https://recruteur.talentstube.com/landing/img/secteur-aide-domicile-peine-a-recruter.jpg">
<meta name="twitter:card" content="summary_large_image">
<link rel="canonical" href="https://recruteur.talentstube.com/metier-en-tension" />
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
@@ -64,8 +65,7 @@
</div>
<ul class="nav navbar-nav navbar-right">
<li>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un
rendez-vous</div>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</div>
</li>
</ul>
</div>
@@ -86,7 +86,7 @@
</div>
<!--welcome-message end-->
<div class=" video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</button>
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un diagnostic</button>
</div>
</div>
@@ -178,8 +178,7 @@
<div class="container">
<header>
<h2>Ils ont recruté en vidéo, pourquoi pas vous ?</h2>
<h3>Plus qu'une dernière étape avant de rendre votre métier en tension plus attractif.<br>Osez recruter
autrement ! </h3>
<h3>Ces entreprises ont choisi Talents Tube pour recruter en vidéo ! </h3>
</header>
<div class="row">
<div class="col-md-12">
@@ -222,11 +221,9 @@
<div class="col-md-12">
<!--goodbye-message-->
<div class="appel-action">
<h2>Demandez un RDV gratuitement</h2>
<p>Plus qu'une dernière étape avant de rendre le métier d'aide à domicile plus attractif.</p>
<p>Osez recruter autrement !</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander
un rendez-vous</button>
<h2>Organisons un rendez-vous diagnostic gratuit</h2>
<p>Bénéficiez de 15 minutes de diagnostic gratuit pour faire le point sur vos enjeux de recrutement, <br>identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée pour votre entreprise.</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander mon diagnostic</button>
</div>
<!--goodbye-message end-->
</div>
@@ -1,53 +1,81 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Réalisez une offre demploi originale vous-même{% endblock %}
{% block meta %}
<meta name="description" content="Créez des vidéos doffres demploi originales avec Talents Tube. Réalisez vos vidéos rapidement avec un smartphone et recrutez">
<meta name="description"
content="Créez des vidéos doffres demploi originales avec Talents Tube. Réalisez vos vidéos rapidement avec un smartphone et recrutez">
<meta property="og:locale" content="fr_FR" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Réalisez une offre demploi originale vous-même" />
<meta property="og:description" content="Créez des vidéos doffres demploi originales avec Talents Tube. Réalisez vos vidéos rapidement avec un smartphone et recrutez" />
<meta property="og:url" content="https://recruteur.talentstube.com/offre-emploi-originale" />
<meta property="og:site_name" content="Talents Tube" />
<meta property="og:image" content="https://recruteur.talentstube.com/landing/img/offre-emploi-originale-en-video.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Réalisez une offre demploi originale vous-même" />
<meta property="og:description"
content="Créez des vidéos doffres demploi originales avec Talents Tube. Réalisez vos vidéos rapidement avec un smartphone et recrutez" />
<meta property="og:url" content="https://recruteur.talentstube.com/offre-emploi-originale" />
<meta property="og:site_name" content="Talents Tube : espace recruteur" />
<meta property="og:image" content="https://recruteur.talentstube.com/landing/img/offre-emploi-originale-en-video.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="canonical" href="https://recruteur.talentstube.com/offre-emploi-originale" />
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block main %}
<!-- Modal : Vidéo -->
<div class="modal fade bd-example-modal-lg" id="exampleModalCenter" tabindex="-1" role="dialog"
aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="container-video" style="position:relative;width:100%;height:0;padding-bottom:56.25%;">
<iframe src="https://www.youtube.com/embed/gOXg9e29dyc"
style="position: absolute;top: 0;left: 0;width: 100%;height: 100%;" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen id="player"></iframe>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="fermerVideo()">Fermer</button>
</div>
</div>
</div>
</div>
<!--Modal : Vidéo End -->
<main>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section">
<!--HTML5 Video-->
<video autoplay loop muted id="bgvid" poster="">
<source src="/landing/video/modele-offre-emploi-originale.mp4" type="video/mp4"
alt="Modèle offre d'emploi originale">
<!--Prévoir une image fixe pour la version mobile : main.css : 102-->
</video>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section">
<!--HTML5 Video-->
<video autoplay loop muted id="bgvid" poster="">
<source src="/landing/video/modele-offre-emploi-originale.mp4" type="video/mp4"
alt="Modèle offre d'emploi originale">
<!--Prévoir une image fixe pour la version mobile : main.css : 102-->
</video>
<!--HTML5 Video end-->
<div class="overlay"></div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header" style="display:inline-block;">
<img src="/landing/img/talentstube-logo-blanc.svg" data-at2x="/landing/img/talentstube-logo-blanc@2x.svg"
alt="Talents Tube" class="logo-talentstube" style="width:150px">
</div>
</div>
<!--HTML5 Video end-->
<div class="overlay"></div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header" style="display:inline-block;">
<img src="/landing/img/talentstube-logo-blanc.svg" data-at2x="/landing/img/talentstube-logo-blanc@2x.svg"
alt="Talents Tube" class="logo-talentstube" style="width:150px">
</div>
</div>
<!--nav-->
<nav class="navbar-default">
<!-- clas="navbar"-->
<div class="container">
<div class="logo-brand">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
alt="Talents Tube, plateforme de recrutement en vidéo" class="logo-head">
</div>
<!--<div class="navbar-header">
</div>
</div>
<!--nav-->
<nav class="navbar-default">
<!-- clas="navbar"-->
<div class="container">
<div class="logo-brand">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/TalentsTube-logo-blanc.svg"
alt="Talents Tube, plateforme de recrutement en vidéo" class="logo-head">
</div>
<!--<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
@@ -55,137 +83,138 @@
<span class="icon-bar"></span>
</button>
</div>-->
<div class="collapse navbar-collapse" id="bs-navbar-collapse-1">
<div class="row">
<div class="logo-header" style="display:inline-block;">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg'"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg"
alt="Talents Tube" class="logo-nav">
</div>
<ul class="nav navbar-nav navbar-right">
<li>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un
rendez-vous</div>
</li>
</ul>
</div>
</div>
</div>
</nav>
<!--nav end-->
<div class="container">
<div class="collapse navbar-collapse" id="bs-navbar-collapse-1">
<div class="row">
<div class="col-md-12">
<!--welcome-message-->
<div class="welcome-message">
<h1>Créez des vidéos doffres demploi avec votre smartphone</h1>
<p>Vous voulez recruter rapidement, efficacement, vous démarquer de la concurrence tout en restant
vous-même ? Votre recrutement, cest dans la poche avec Talents Tube !</p>
</div>
<!--welcome-message end-->
<div class="action-btn video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</button>
<button class="bttn" data-toggle="modal" data-target=".bd-example-modal-lg">Voir la démo</button>
</div>
<div class="logo-header" style="display:inline-block;">
<img src="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg'"
data-at2x="https://blog.talentstube.com/wp-content/uploads/2021/02/talents-tube-logo-color.svg"
alt="Talents Tube" class="logo-nav">
</div>
<ul class="nav navbar-nav navbar-right">
<li>
<div class="mj-w-button mj-w-btn bttn" data-toggle="modal" data-target="#exampleModal">Demander un
rendez-vous</div>
</li>
</ul>
</div>
</div>
</div>
</nav>
<!--nav end-->
<div class="container">
<div class="row">
<div class="col-md-12">
<!--welcome-message-->
<div class="welcome-message">
<h1>Créez des vidéos doffres demploi avec votre smartphone</h1>
<p>Vous voulez recruter rapidement, efficacement, vous démarquer de la concurrence tout en restant
vous-même ? Votre recrutement, cest dans la poche avec Talents Tube !</p>
</div>
<!--welcome-message end-->
<div class="action-btn video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</button>
<button class="bttn" data-toggle="modal" data-target=".bd-example-modal-lg">Voir la démo</button>
</div>
</div>
</div>
</div>
</header>
<!--Header end-->
<!--about 1-->
<section class="about section-spacing-little" style="margin-top:20px">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/realiser-offre-emploi-originale.jpg"
alt="Réaliser une offre d'emploi originale avec un smartphone" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Votre offre demploi originale en vidéo</h2>
<p>Parce que <span class="texte-gras">votre recrutement mérite mieux que du texte</span>, lancez-vous dans
<span class="texte-gras">la vidéo de recrutement !</span></p>
<p>Vous êtes en quête de rapidité et defficacité dans votre processus de recrutement? Vous ne voulez pas
ressembler à vos concurrents?</p>
<p>Démarquez-vous avec des <span class="texte-gras">annonces de recrutement originales et
attractives.</span>En filmant vos collaborateurs, vos gestes métiers, vous offrez une <span
class="texte-gras">meilleure expérience candidat</span>, vous engagez et valorisez vos collaborateurs et
vous <span class="texte-gras">recrutez plus efficacement.</span></p>
</div>
</div>
</div>
</section>
<!--about end-->
<!--about 2-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-7 bloc-droit-2" style="padding: 2em 4em;">
<h2>Votre vidéo de recrutement originale avec un smartphone</h2>
<p>Vous vous dites que cest une super idée mais <span class="texte-gras">faire une vidéo cest trop
compliqué, trop cher et pas pour vous !</span></p>
<p>Sachez quaujourdhui, vous pouvez <span class="texte-gras">créer des vidéos facilement !</span></p>
<p>Vous possédez <span class="texte-gras">un smartphone avec une caméra</span> ultra performante qui vous
permet de créer du contenu vidéo tout le temps et partout, avec une qualité pro. Et tout ceci ne nécessite
aucun investissement supplémentaire.</p>
<p><span class="texte-gras">Le recrutement vidéo</span> est dans votre poche !</p>
</div>
<div class="col-md-5 bloc-gauche-2"> <img src="/landing/img/recruter-rapidement-offre-emploi-originale.jpg"
alt="Recruter rapidement avec une offre d'emploi vidéo originale" data-no-retina> </div>
</div>
</div>
</section>
<!--about end-->
<!--about 3-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/etape-realisation-offre-emploi-originale.jpg"
alt="3 étapes pour réaliser une offre d'emploi originale" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Un recrutement vidéo rapide en quelques étapes</h2>
<p>Avec Talents Tube, vous allez recruter de nouveaux profils en seulement 3 étapes :</p>
<ul class="list-puces">
<li>Rédigez votre scénario pour préparer le tournage de votre vidéo</li>
<li>Réalisez votre offre demploi vidéo avec un smartphone</li>
<li>Envoyez-nous vos séquences vidéo</li>
<li>Pour vous, nous réalisons le montage de votre vidéo</li>
<li>Et nous vous accompagnons dans votre recherche du candidat idéal</li>
</ul>
</div>
</div>
</div>
</section>
<!--about end-->
<!--sponsor-->
<section class="sponsor section-spacing text-center">
<div class="container">
<header>
<h2>Ils ont recruté en vidéo</h2>
<h3>Ces entreprises ont choisi Talents Tube pour recruter avec des offres d'emploi originales !</h3>
</header>
<!--Header end-->
<!--about 1-->
<section class="about section-spacing-little" style="margin-top:20px">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/realiser-offre-emploi-originale.jpg"
alt="Réaliser une offre d'emploi originale avec un smartphone" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Votre offre demploi originale en vidéo</h2>
<p>Parce que <span class="texte-gras">votre recrutement mérite mieux que du texte</span>, lancez-vous dans
<span class="texte-gras">la vidéo de recrutement !</span></p>
<p>Vous êtes en quête de rapidité et defficacité dans votre processus de recrutement? Vous ne voulez pas
ressembler à vos concurrents?</p>
<p>Démarquez-vous avec des <span class="texte-gras">annonces de recrutement originales et
attractives.</span>En filmant vos collaborateurs, vos gestes métiers, vous offrez une <span
class="texte-gras">meilleure expérience candidat</span>, vous engagez et valorisez vos collaborateurs et
vous <span class="texte-gras">recrutez plus efficacement.</span></p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/94c787c21c93a6b905eca6b739eedbf2.png"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/94c787c21c93a6b905eca6b739eedbf2.png"
alt="actual-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg"
alt="aer-recyclage-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/154d998227e24b1e44e6e520ab2e09a2.png"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/154d998227e24b1e44e6e520ab2e09a2.png"
alt="cdg-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/c076323088783c6aa0093563dcdd1f16.jpeg"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/c076323088783c6aa0093563dcdd1f16.jpeg"
alt="temporis-offre-emploi-orignale"></figure>
</div>
</section>
<!--about end-->
<!--about 2-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-7 bloc-droit-2" style="padding: 2em 4em;">
<h2>Votre vidéo de recrutement originale avec un smartphone</h2>
<p>Vous vous dites que cest une super idée mais <span class="texte-gras">faire une vidéo cest trop
compliqué, trop cher et pas pour vous !</span></p>
<p>Sachez quaujourdhui, vous pouvez <span class="texte-gras">créer des vidéos facilement !</span></p>
<p>Vous possédez <span class="texte-gras">un smartphone avec une caméra</span> ultra performante qui vous
permet de créer du contenu vidéo tout le temps et partout, avec une qualité pro. Et tout ceci ne nécessite
aucun investissement supplémentaire.</p>
<p><span class="texte-gras">Le recrutement vidéo</span> est dans votre poche !</p>
</div>
<div class="col-md-5 bloc-gauche-2"> <img src="/landing/img/recruter-rapidement-offre-emploi-originale.jpg"
alt="Recruter rapidement avec une offre d'emploi vidéo originale" data-no-retina> </div>
</div>
</div>
</section>
<!--about end-->
<!--about 3-->
<section class="about section-spacing-little">
<div class="container">
<div class="row">
<div class="col-md-5 bloc-gauche-1"> <img src="/landing/img/etape-realisation-offre-emploi-originale.jpg"
alt="3 étapes pour réaliser une offre d'emploi originale" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Un recrutement vidéo rapide en quelques étapes</h2>
<p>Avec Talents Tube, vous allez recruter de nouveaux profils en seulement 3 étapes :</p>
<ul class="list-puces">
<li>Rédigez votre scénario pour préparer le tournage de votre vidéo</li>
<li>Réalisez votre offre demploi vidéo avec un smartphone</li>
<li>Envoyez-nous vos séquences vidéo</li>
<li>Pour vous, nous réalisons le montage de votre vidéo</li>
<li>Et nous vous accompagnons dans votre recherche du candidat idéal</li>
</ul>
</div>
</div>
</div>
</section>
<!--about end-->
<!--sponsor-->
<section class="sponsor section-spacing text-center">
<div class="container">
<header>
<h2>Ils ont recruté en vidéo</h2>
<h3>Ces entreprises ont choisi Talents Tube pour recruter avec des offres d'emploi originales !</h3>
</header>
<div class="row">
<div class="col-md-12">
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/94c787c21c93a6b905eca6b739eedbf2.png"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/94c787c21c93a6b905eca6b739eedbf2.png"
alt="actual-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg"
alt="aer-recyclage-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/154d998227e24b1e44e6e520ab2e09a2.png"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/154d998227e24b1e44e6e520ab2e09a2.png"
alt="cdg-offre-emploi-orignale"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/c076323088783c6aa0093563dcdd1f16.jpeg"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/c076323088783c6aa0093563dcdd1f16.jpeg"
alt="temporis-offre-emploi-orignale"></figure>
</div>
</div>
<!--<div class="row">
</div>
<!--<div class="row">
<div class="col-md-12">
<figure><img src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/c99c8a1e7cd4b9bf249053774d72e0c9.jpeg" data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/c99c8a1e7cd4b9bf249053774d72e0c9.jpeg" alt="sponsor"></figure>
<figure><img src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/0dc350ae6a639b3671b7a262e51ad581.jpeg" data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/0dc350ae6a639b3671b7a262e51ad581.jpeg" alt="sponsor"></figure>
@@ -193,35 +222,39 @@
<figure><img src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg" data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/4f3dba583fea12c01a9c708772b1e0ac.jpeg" alt="sponsor"></figure>
</div>
</div>-->
</div>
</section>
<!--sponsor end-->
<!--venue-->
<section class="venue section-spacing" id="venue">
<div class="container">
</div>
</section>
<!--sponsor end-->
<!--venue-->
<section class="venue section-spacing" id="venue">
<div class="container">
<div class="row">
<div class="container text-center">
<div class="row">
<div class="container text-center">
<div class="row">
<div class="col-md-12">
<!--goodbye-message-->
<div class="appel-action">
<h2>Créez votre première offre demploi originale avec un smartphone</h2>
<p>Il ne vous reste plus qu'un clic pour recruter rapidement, efficacement et vous démarquer de la
concurrence...</p>
<p>Lancez-vous et demandez un rendez-vous dès maintenant !</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander
un rendez-vous</button>
</div>
<!--goodbye-message end-->
</div>
<div class="col-md-12">
<!--goodbye-message-->
<div class="appel-action">
<h2>Créez votre première offre demploi originale avec un smartphone</h2>
<p>Il ne vous reste plus qu'un clic pour recruter rapidement, efficacement et vous démarquer de la
concurrence...</p>
<p>Lancez-vous et demandez un rendez-vous dès maintenant !</p>
<br>
<p>Bénéficiez de 15 minutes de diagnostic gratuit pour faire le point sur vos enjeux de recrutement,
<br>identifier ce que Talents Tube peut résoudre et prendre connaissance de loffre la plus appropriée
pour votre entreprise.</p>
<button class="bttn" data-toggle="modal" data-target="#exampleModal" style="margin-top:30px;">Demander
un rendez-vous</button>
</div>
<!--goodbye-message end-->
</div>
</div>
</div>
</section>
</main>
</div>
</div>
</section>
</main>
{% endblock %}
{% block javascripts %}
{% endblock %}
{% endblock %}
@@ -126,9 +126,9 @@
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
{% if iteration is divisible by(2) or iteration==0%}
{# {% if iteration is divisible by(2) or iteration==0%}
<div class="row p-t-10 p-b-10">
{% endif %}
{% endif %} #}
<div class="col">
<div class="card-image">
@@ -189,7 +189,7 @@
{# cas d'un nombre impair de video #}
{% if nbMedias == iteration+1 and iteration is divisible by(2)%}
{# {% if nbMedias == iteration+1 and iteration is divisible by(2)%}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
@@ -199,14 +199,14 @@
</div>
</div>
</div>
{% endif %}
{% endif %} #}
{# fermeture de div pour aller à la ligne quand le nombre de video est un multiple de deux et par défaut au début iteration==0 #}
{% if iteration+1 is divisible by(2) or nbMedias==1%}
{# {% if iteration+1 is divisible by(2) or nbMedias==1%}
</div>
{% endif %}
{% set iteration = iteration+1 %}
{% set iteration = iteration+1 %} #}
{% else %}
{% set nbMedias = nbMedias-1%}
{# {% set nbMedias = nbMedias-1%} #}
{% endif %}
{% endfor %}
@@ -0,0 +1,460 @@
{% extends 'baseTalent.html.twig' %}
{% block title %}Recruter
{% if user.appellationLibelle %}
un poste de {{ user.appellationLibelle }}
{% endif %}
| Talents Tube{% endblock %}
{% block description %}Découvrez le CV vidéo de
{{ user.firstname }}. Trouvez le prochain talent de votre équipe sur Talents Tube.{% endblock %}
{% block ogtc %}
{#Twitter Card data pour les données enrichies sur Twitter#}
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@TalentsTube">
<meta name="twitter:title" content="Découvrez le CV vidéo de
{{ user.firstname }} sur Talents Tube">
<meta name="twitter:description" content="Découvrez le CV vidéo de
{{ user.firstname }}. Trouvez le prochain talent de votre équipe sur Talents Tube.">
<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="Découvrez le CV vidéo de
{{ user.firstname }} sur 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="Découvrez le CV vidéo de
{{ user.firstname }}. Trouvez le prochain talent de votre équipe sur Talents Tube." />
<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 %}
{# {% include 'default/flash_message.html.twig' %} #}
<div class="col-md-12 text-center section-spacing">
<div class="col-md-12 p-lg-5 mx-auto my-1">
<h1 class="display-6 font-weight-normal">Découvrez le CV vidéo de {{ user.firstname }} {{ user.lastname }}
{% if user.appellationLibelle %}
qui recherche un poste de {{ user.appellationLibelle }}</h1>
{% endif %}
</div>
</div>
<section class="col-md-12 p-5 fond-clair">
<div class="col-md-12 ">
<div class="col-md-8 text-center">
<div class="col s12 detail-item-video">
{% if talent.presentationVideo %}
<iframe
src="https://player.vimeo.com/video/{{ talent.presentationVideo.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="640" frameborder="0" webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>
{% endif %}
</div>
</div>
<div class="col-md-4 text-center">
<div class="profil center-align color-t">
{% set company = user.company %}
{# Photo de profil du candidat : À garder pour V2
<div class="profil-picture">
{% if user.socialPicture is not null and user.photo is null %}
<img class="circle responsive-img" src="{{ user.socialPicture }}" alt="{{ user.firstname }} {{ user.lastname|first|upper }}"/>
{% elseif user.photo %}
<img class="circle responsive-img" src="{{ user.webPath | imagine_filter('profile_square') }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
{% else %}
<div class="circle-letters font-2">{{ user.firstname|first|upper }}{{ user.lastname|first|upper }}</div>
{% endif %}
</div> #}
<h2 class="profil-name">
{{ user.firstname }}
{{ user.lastname }}
</h2>
{# À modifier par Laurent : Nouveau format d'adresse Géoloc Google Maps #}
{% if user.geoloc is defined %}
<p class="lead font-weight-normal">
{% if user.geoloc %}
{{ user.geoloc[0].locality }}-
{{ user.geoloc[0].country }}
{% endif %}
</p>
{% elseif company.addresses.billing is defined %}
<p class="lead font-weight-normal">{{ company.addresses.billing.city }}
-
{{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="row">
<div class="col">
{% if talent.extra.linkedin or talent.extra.linkedin !='null' %}
<a target="_blank" href="{{ talent.extra.linkedin }}" class="btn">Linkedin</a>
{% endif %}
{% if talent.extra.twitter or talent.extra.twitter !='null' %}
<a target="_blank" href="{{ talent.extra.twitter }}" class="btn">Twitter</a>
{% endif %}
{% if talent.website or talent.extra.website !='null' or talent.extra.website !='NULL'%}
<a target="_blank" href="{{ talent.website }}" class="btn">Site internet</a>
{% endif %}
</div>
</div>
<div class="row p-4">
<div class="col-md p-2">
{# Bouton de téléchargement de CV PDF
Je pense avoir réussi, mais je n'arrive pas vérifier. Je n'ai pas de compte candidat avec un CV PDF#}
{# Code à remplacer avec celui-ci-dessous #}
{# {% if user.company.cv %}
<a class="btn btn-outline-primary m-1" target="_blank" href="/uploads/cv/{{ user.company.cv }}" class="btn">Télécharger le CV</a>
{% endif %} #}
{% if company.cv %}
<a class="btn btn-default m-1" target="_blank" href="/uploads/cv/{{ user.company.cv }}">Télécharger le CV</a>
{% endif %}
{# Modal pour envoyer un email au candidat et Talents Tube #}
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Contacter {{ user.firstname }}
</button>
</div>
</div>
{# Afficher la dernière date de connexion = Dernière connexion : mois/année #}
<small class="font-weight-light text-muted">Dernière connexion : {{ user.lastLogin|date('d-m-Y') }}</small>
</div>
</div>
</section>
<section class="col-md-12 p-3 mt-4">
<!-- Card -->
<div class="col-md-6">
<a class="card shadow-none fond-clair text-indigo transition-3d-hover p-5 p-lg-7 mb-3 mb-sm-5 mb-lg-11"
href="https://blog.talentstube.com/cv-video/">
<h3 class="mb-1">Je suis candidat</h3>
<p class="text-dark">Découvrir comment faire un CV vidéo</p>
</a>
</div>
<!-- End Card -->
<!-- Card -->
<div class="col-md-6">
<a class="card shadow-none bg-soft-info text-indigo transition-3d-hover p-5 p-lg-7 mb-3 mb-sm-5 mb-lg-11"
href="/">
<h3 class="mb-1">Je suis recruteur</h3>
<p class=" text-dark">Découvrir la solution de recrutement Talents Tube</p>
</a>
</div>
<!-- End Card -->
</section>
<footer class="col-md-12 p-3 mt-4">
<div class="container">
<div class="col-12 col-md-3">
<a class="py-2" href="/">
<img alt="talents-tube"
src="https://blog.talentstube.com/wp-content/uploads/2021/05/logo-talentstube-bleu-1.svg">
</a>
<div><small class="d-block mt-3 text-muted">&copy; 2017-2021</small></div>
</div>
<div class="col-12 col-md-3">
<h5>Plateforme</h5>
<ul class="list-unstyled text-small">
<li><a class="text-muted" href="/">Espace recruteurs</a></li>
<li><a class="text-muted" href="https://www.talentstube.com/">Jobs</a></li>
<li><a class="text-muted" href="http://blog.talentstube.com/">Blog</a></li>
</ul>
</div>
<div class="col-12 col-md-3">
<h5>Informations</h5>
<ul class="list-unstyled text-small">
<li><a class="text-muted" href="/mentions-legales">Mentions légales</a>
</li>
<li><a class="text-muted" href="/cgu">CGU</a></li>
<li><a class="text-muted" href="/politique-confidentialite">Politique
de confidentialité</a></li>
<li><a class="text-muted" href="https://blog.talentstube.com/contact">Contact</a></li>
</ul>
</div>
<div class="col-12 col-md-3">
<h5>Contact</h5>
<ul class="list-unstyled text-small">
<li>
<p class="text-muted">3, rue Louis de Broglie</p>
</li>
<li>
<p class="text-muted">56 000 Vannes</p>
</li>
<li><a class="text-muted" href="tel:+33756852736">07 56 85 27 36</a></li>
</ul>
</div>
</div>
</footer>
{# <div class="fluid-container bg-grey-3" id="talent-show">
<div class="container contentWrapper contentPage">
<div class="row">
<div class="col s12 m4 l3" id="sidebar">
<div class="profil center-align">
{% set company = user.company %}
<div class="profil-picture">
{% if user.socialPicture is not null and user.photo is null %}
<img class="circle responsive-img" src="{{ user.socialPicture }}"
alt="{{ user.firstname }} {{ user.lastname|first|upper }}" />
{% elseif user.photo %}
<img class="circle responsive-img" src="{{ user.webPath | imagine_filter('profile_square') }}"
alt="{{ user.firstname }} {{ user.lastname }}" />
{% else %}
<div class="circle-letters font-2">
{{ user.firstname|first|upper }}{{ user.lastname|first|upper }}</div>
{% endif %}
</div>
<p class="profil-name">
<b>{{ user.firstname }}
{{ user.lastname|upper }}</b>
</p>
{% if company.addresses.billing is defined %}
<p class="profil-city">{{ company.addresses.billing.city }}
-
{{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="col s12 center-align">
<div class="divider"></div>
<br />
{% if is_granted("ROLE_COMPANY") %}
<a class="btn btn-default contact-talent" href="#modal1">Contacter le talent</a>
{% endif %}
</div>
</div>
<div class="col s12 m8 l9">
<div class="row bg-bordered">
<div class="col s12 detail-item-video">
{% if talent.presentationVideo %}
<div class="video-responsive">
<iframe
src="https://player.vimeo.com/video/{{ talent.presentationVideo.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="640" frameborder="0" webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>
</div>
{% endif %}
</div>
</div>
<div class="row bg-bordered talent-profile">
<div class="col s8">
<h3 class="no-margin-top">{{ user.company.extra.titleTalent }}</h3>
<span>{{ user.company.extra.situationTalent|trans }}</span>
</div>
<div class="col s4 talent-border-left">
<h3 class="no-margin-top talent-profile-title">DÉCOUVRIR SON PROFIL</h3>
<div class="profil-links">
{% if talent.extra.linkedin %}
<a target="_blank" href="{{ talent.extra.linkedin }}">
<i class="fa fa-linkedin fa-inverse"></i>
</a>
{% endif %}
{% if talent.extra.twitter %}
<a target="_blank" href="{{ talent.extra.twitter }}">
<i class="fa fa-twitter fa-inverse"></i>
</a>
{% endif %}
{% if talent.website %}
<a target="_blank" href="{{ talent.website }}">
<i class="fa fa-globe-africa fa-inverse"></i>
</a>
{% endif %}
</div>
</div>
<div class="col s12 talent-border-top">
{% for tag in talent.publicTag if talent.publicTag[0] is not empty %}
<div class="chip {% if loop.index > 5 %}chip-invisible{% endif %}">{{ tag }}</div>
{% endfor %}
{% if talent.publicTag|length > 5 %}
<div class="chip chip-more">+ {{ talent.publicTag|length - 5 }}</div>
{% endif %}
</div>
</div>
{% if user.company.extra.descriptionTalent %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">{{ user.firstname }} {% trans %}en quelques
mots{% endtrans %}</h3>
</div>
<div class="col s12">
<p>
{{ user.company.extra.descriptionTalent|raw|nl2br }}
</p>
</div>
</div>
{% endif %}
{% if user.career %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Expériences</h3>
</div>
<div class="col s12">
<div class="col s12" id="career_container">
{% include 'talent/profile_career.html.twig' with {'career': user.career } %}
</div>
</div>
</div>
{% endif %}
<div class="row bg-bordered">
<div class="col s12 header-recommendations">
<h3 class="blue-text no-margin-top">{% trans %}label.recommendations{% endtrans %}</h3>
{% if showRecommendation %}
<a title="Recommander {{ user.firstname }} {{ user.lastname }}" href="{{urlRecommendation}}"
id="recommendation" class=" btn btn-large btn-default" type="submit">
{% trans %}label.button.recommendation{% endtrans %}
{{ user.firstname }}
</a>
{% endif %}
</div>
{% if recommendations is not null %}
<div class="recommendations-list">
{% for recommendation in recommendations if recommendation.isVisible != false %}
<div class="col s6 recommendation-block">
<div class="video-responsive">
<iframe
src="https://player.vimeo.com/video/{{ recommendation.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="640" frameborder="0"
webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>
</div>
<div class="recommendation-user-infos">
<div class="profil-picture">
{% if recommendation.sender.socialPicture is not null and recommendation.sender.photo is null %}
<img class="circle responsive-img" src="{{ recommendation.sender.socialPicture }}"
alt="{{ recommendation.sender.firstname }} {{ recommendation.sender.lastname|first|upper }}" />
{% elseif user.photo %}
<img class="circle responsive-img"
src="{{ recommendation.sender.webPath | imagine_filter('profile_square') }}"
alt="{{ recommendation.sender.firstname }} {{ recommendation.sender.lastname }}" />
{% else %}
<div class="circle-letters font-2">
{{ recommendation.sender.firstname|first|upper }}{{ recommendation.sender.lastname|first|upper }}
</div>
{% endif %}
</div>
<div>
<span class="recommendation-user-name">{{ recommendation.sender.firstname }}
{{ recommendation.sender.lastname }}</span>
<br />
<span
class="recommendation-date">{{ recommendation.ctime|localizeddate('medium', 'none', 'fr_FR') }},
{{ recommendation.relationType|replace({'choice': 'front'})|trans({'%{name}' : user.firstname,'%{name2}' : recommendation.sender.firstname})}}</span>
</div>
</div>
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% if user.formation %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Formations & Certifications </h3>
</div>
<div class="col s12">
<div class="col s12" id="formation_container">
{% include 'talent/profile_formation.html.twig' with {'formation': user.formation } %}
</div>
</div>
</div>
{% endif %}
{% if user.language %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Langues </h3>
</div>
<div class="col s12">
<div class="col s12" id="formation_container">
{% include 'talent/profile_language.html.twig' with {'language': user.language } %}
</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div> #}
{# {% set popup_recommendation = app.session.flashbag.get('popup_recommendation') %}
{% if popup_recommendation is not empty %}
{% if popup_recommendation == true %}
<div id="modal-recommendation" class="modal">
<div class="modal-content">
<div class="col-content center-align">
<span class="color-blue1">Votre recommandation a bien été envoyée à <br />{{ user.firstname }}
{{ user.lastname }}</span>
<hr />
<a class="btn btn-default modal-action modal-close text-center">Fermer</a>
</div>
</div>
</div>
{% endif %}
{% endif %} #}
{# {% if is_granted("ROLE_COMPANY") %}
<div id="modal1" class="modal">
<div class="col s12 m12 l12">
<div class="bg-bordered inside-m">
<h4 class="no-margin-top">
Contacter le talent
</h4>
<p>
Expéditeur :
{{ app.user.firstname }}
{{ app.user.lastname }}
</p>
{{ form_start(form) }}
{{ form_rest(form) }}
<button type="submit" class="btn btn-default">Envoyer</button>
{{ form_end(form) }}
</div>
</div>
</div>
{% endif %} #}
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block stylesheets %}
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5a095d2dd3cf90df"></script>
{% endblock %}
{% block javascripts %}
{{ parent() }}
{#
<script type="text/javascript">
{
%
if mustLogin == true %
}
$('#recommendation').on('click', function (event) {
event.preventDefault();
$('#modal_login').modal('open');
}); {
%
endif %
}
</script>
<script>
$(document).ready(function () {
$.get("{{ path('talent_ajaxRecStat',{'id': talent.id }) }}", function (data) {});
if ($('#modal-recommendation').length > 0) {
$('#modal-recommendation').modal({
dismissible: false,
ready: function (modal, trigger) {}
});
$('#modal-recommendation').modal('open');
}
$(".chip-more").on('click', function () {
$(this).fadeOut();
$(".chip-invisible").css('display', 'inline-block');
});
});
</script> #}
{% endblock %}
+7 -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.7.4'
version: '2.12.3'
@@ -132,6 +132,12 @@ request_lab_vimeo:
client_secret: "q8zbdPscn+GD1hd9aXQ5RX9pKJbj60vzLPjCOGMqjbKqSW3p71FboX6U06ufi799317kQlRLmPQrV78gG6bY0uoy2QPRLntNUp0PsePWjq3cfREAX+PS9KFji2Qq23ma"
access_token: "8159fe43dfc819d5744033de2adbbc64"
# Vimeo Preprod
# request_lab_vimeo:
# client_id: "c84050827c12ae80080f48a5970bb089bd7f672e"
# client_secret: "JJxwoBXo/wsP59LjsRQwk9Lu69QL6pmFujoOU86nST+P9aXjcEak6t6BCzxubzLrYDNZ7IcKWCdLvSQHlIsxVOvoVmqvPsznmFmo520kCnnslakZUZoxxQLUwzu3qUGp"
# access_token: "db8ca407e8ddb66358a380327664f589"
# Video
dubture_f_fmpeg:
ffmpeg_binary: /usr/bin/ffmpeg
@@ -59,6 +59,7 @@ security:
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, roles: ROLE_ADMIN }
- { path: ^/admin/template, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/moderation/, role: [ROLE_MODERATOR,ROLE_SUPER_ADMIN, ROLE_WEBMASTER] }
- { path: ^/admin/config/, role: [ROLE_WEBMASTER,ROLE_SUPER_ADMIN] }
- { path: ^/talent/me/, roles: ROLE_TALENT }
@@ -71,6 +72,7 @@ security:
- { path: ^/api/reset_password, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST]}
- { path: ^/api/confirmAccount, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST]}
- { path: ^/api/answers, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
- { path: ^/api/answers/updateStatus, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
- { path: ^/api/answer/[0-9]+/messages, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY, methods: [POST, PUT, DELETE, PATCH] }
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [GET]}
@@ -85,4 +87,4 @@ security:
ROLE_ADMIN: ROLE_USER
ROLE_TALENT: ROLE_USER
ROLE_COMPANY: ROLE_USER
ROLE_TERRITORY: ROLE_USER
ROLE_TERRITORY: ROLE_USER
@@ -19,7 +19,12 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\JsonResponse;
//MAILJET
use AppBundle\Entity\Mailjet;
// use AppBundle\Entity\Response;
use AppBundle\Entity\Resources;
use AppBundle\Entity\Config;
use AppBundle\Entity\Client;
class AdController extends Controller
{
@@ -305,6 +310,29 @@ class AdController extends Controller
$adManager = $this->get('app.ad_manager');
$adManager->updateAd($ad);
$this->addFlash('notice', 'Annonce enregistrée');
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
// $link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Creation/Modification Offre d'emploi ".$ad->getCompany()->getBrandName(),
'MJ-TemplateID' =>2612525 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => 'dev@talentstube.com',
'Vars' => [
'entreprise' => $ad->getCompany()->getBrandName(),
'offre' => $ad->getTitle(),
]
]
]
];
$response = $mj->post(Resources::$Email, ['body' => $body]);
$response->success() && var_dump($response->getData());
return $this->redirectToRoute('company_ad');
}
return $this->render('company/ad_edit.html.twig', [
@@ -0,0 +1,378 @@
<?php
namespace AppBundle\Controller\Admin;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
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")
*/
public function adminBatchMessageAction()
{
//recuperer les messages qui ont un comment
return $this->render('admin/batch_message.html.twig', [
]);
}
/**
* @Route("/admin/config/batch/message/comment", name="admin_batch_message_comment")
*/
public function adminBatchMessageCommentAction()
{
//recuperer les answers qui ont un comment
$em = $this->getDoctrine()->getManager();
$answers = $em->getRepository('AppBundle:Answer')->findAllComment();
//parcours des answers avec comment
foreach ($answers as $a) {
if($a->getAd()){
$message = new Message('Chat', $a->getComment(), $a->getUser(), $a->getAd()->getCreator(), 'Message du talent', $a);
$message->setUTime($a->getUTime());
$message->setCTime($a->getCTime());
$em->persist($message);
$em->flush();
}
}
return $this->render('admin/dashboard.html.twig', array());
}
/**
* @Route("/admin/config/batch/geoloc", name="admin_batch_geoloc")
*/
public function adminBatchGeolocAction()
{
//recuperer les messages qui ont un comment
$em = $this->getDoctrine()->getManager();
$users = $em->getRepository('AppBundle:User')->findUserAvecAdresseCount();
$nbUsers = $users[0][1];
return $this->render('admin/batch_geoloc.html.twig', [
'nbUsers' => $nbUsers,
]);
}
/**
* @Route("/admin/config/batch/geoloc/trait", name="admin_batch_geoloc_trait")
*/
public function adminBatchGeolocTraitAction()
{
//recuperer les talents qui ont une adresse old mais qui n'ont pas de geoloc
$em = $this->getDoctrine()->getManager();
$users = $em->getRepository('AppBundle:User')->findUserAvecAdresse();
//dump($users);
//parcours des users
foreach ($users as $u) {
$addr= $u->getCompany()->getAddresses();
//dump($addr);
$address1="";
$address2="";
$zipCode="";
$city="";
$country="";
$address="";
if($addr && $addr['billing']){
$addr1 = $addr['billing'];
$address = $addr1['address1'];
if($addr1['address2']){
$address .= ", ".$addr1['address2'];
}
if($addr1['postcode']){
$address .= ", ". $addr1['postcode'];;
}
if($addr1['city']){
$address .= ", ". $addr1['city'];
}
// $country = $addr1['country'];
}
//pour chaque user, il faut charger api google maps
//valeurs vide par défaut
$data = array('address' => '', 'lat' => '', 'lng' => '', 'city' => '', 'department' => '', 'region' => '', 'country' => '', 'postal_code' => '');
//on formate l'adresse
//$address="42, rue de beaugency, saint sébastien sur loire";
$address_format = str_replace(" ", "+", $address);
//on fait l'appel à l'API google map pour géocoder cette adresse
$json = file_get_contents("https://maps.google.com/maps/api/geocode/json?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&address=$address_format&sensor=false&region=fr");
$json = json_decode($json);
//on enregistre les résultats recherchés
if ($json->status == 'OK' && count($json->results) > 0) {
$res = $json->results[0];
//adresse complète et latitude/longitude
$data['address'] = $res->formatted_address;
$data['lat'] = $res->geometry->location->lat;
$data['lng'] = $res->geometry->location->lng;
$street_number="";
$postal_code="";
$route="";
$locality="";
$administrative_area_level_2="";
$administrative_area_level_1="";
$country="";
foreach ($res->address_components as $component) {
//street_number
if ($component->types[0] == 'street_number') {
$street_number = $component->long_name;
}
//route
if ($component->types[0] == 'route') {
$route = $component->long_name;
}
//ville
if ($component->types[0] == 'locality') {
$locality = $component->long_name;
}
//départment
if ($component->types[0] == 'administrative_area_level_2') {
$administrative_area_level_2 = $component->long_name;
}
//région
if ($component->types[0] == 'administrative_area_level_1') {
$administrative_area_level_1 = $component->long_name;
}
//pays
if ($component->types[0] == 'country') {
$country = $component->long_name;
}
//code postal
if ($component->types[0] == 'postal_code') {
$postal_code = $component->long_name;
}
// \"$formatted_address
}
$array[] = Array (
"street_number" => $street_number,
"route" => $route,
"administrative_area_level_2" => $administrative_area_level_2,
"administrative_area_level_1" => $administrative_area_level_1,
"country" => $country,
"locality" => $locality,
"postal_code" => $postal_code,
"formatted_address" => $data['address'],
"lat" => stripslashes($data['lat']),
"lng" => stripslashes($data['lng'])
);
$u->setGeoloc($array);
$em->persist($u);
$em->flush();
}
}
return $this->render('admin/dashboard.html.twig', array());
}
/**
* @Route("/admin/config/batch/candidature", name="admin_batch_candidatures")
*/
public function adminBatchCandidaturesAction()
{
return $this->render('admin/batch_candidatures.html.twig', []);
}
/**
* @Route("/admin/config/batch/candidature/init", name="admin_batch_candidature_init")
*/
public function adminBatchcandidatureInitAction()
{
//recuperer les messages qui sont liés à des answers qui on le statusReponse a null (pas d'intervention dans le dashboard)
$em = $this->getDoctrine()->getManager();
$messages = $em->getRepository('AppBundle:Message')->getMessageAnswers();
//parcours des messages
foreach ($messages as $m) {
$answer = $m->getAnswer();
if(!$answer->getStatusReponse() || $answer->getStatusReponse()=="A_TRAITER"){
$answer->setStatusReponse("CONTACTE");
$em->persist($answer);
$em->flush();
}
}
return $this->render('admin/dashboard.html.twig', array());
}
}
@@ -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;
}
/**
@@ -24,6 +24,8 @@ class PageController extends Controller
]);
}
/**
* @Route("/admin/config/page/{id}/edit", name="admin_page_edit")
*/
@@ -63,4 +65,6 @@ class PageController extends Controller
return $this->redirectToRoute('admin_page_list');
}
}
@@ -131,7 +131,7 @@ class UserController extends Controller
// }
//$em->flush();
return $this->redirectToRoute('admin_config_others_user');
return $this->redirectToRoute('admin_config_talent');
}
public function deleteRelation($user)
@@ -400,9 +400,9 @@ class AnswerController extends Controller
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
// $link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = $answer->getUser()->getEmail();
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
}
// if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
// $contactMail = "dev@talentstube.com";
// }
// if($message->getVideo() == null){
$body = [
'FromEmail' => "noreply@talentstube.io",
@@ -534,27 +534,283 @@ class AnswerController extends Controller
*/
public function companyListAnswerAction()
{
// $answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
// $spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
// array(
// 'company' => $user->getCompany()->getId(),
// 'status' => 'SENDED'
// ),
// array(
// 'cTime' => 'DESC'
// )
// );
$user = $this->getUser();
$em = $this->getDoctrine()->getManager();
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
$spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
array(
'company' => $user->getCompany()->getId(),
'status' => 'SENDED',
'ad' => null
),
array(
'uTime' => 'DESC'
)
);
$offres = $em->getRepository('AppBundle:Ad')->getAdByCompany($user->getCompany()->getId());
return $this->render('company/answer_list.html.twig', [
'answers' => $answers,
'spontaneous' => $spontaneous,
// 'answers' => $answers,
// 'spontaneous' => $spontaneous,
'offres' => $offres,
'type' => 'answer'
]);
}
/**
* @Route("/alimenterCandidaturesCompany", name="alimenterCandidaturesCompany")
*/
public function listDatatablesAction(Request $request)
{
$companyId = $this->getUser()->getCompany()->getId();
return $this->recupererCandidature($request, "company", $companyId);
}
/**
* @Route("/alimenterCandidaturesAd/{id}", name="alimenterCandidaturesAd")
*/
public function listDatatablesAdAction(Request $request, $id)
{
return $this->recupererCandidature($request, "ad", $id);
}
public function recupererCandidature($request, $type, $id){
// Set up required variables
$em = $this->getDoctrine()->getManager();
$this->repository = $em->getRepository('AppBundle:Answer');
//$this->translator = $this->get('translator');
// Get the parameters from DataTable Ajax Call
if ($request->getMethod() == 'POST')
{
$draw = intval($request->request->get('draw'));
$start = $request->request->get('start');
$length = $request->request->get('length');
$search = $request->request->get('search');
$orders = $request->request->get('order');
$columns = $request->request->get('columns');
}
else // If the request is not a POST one, die hard
die;
// Process Parameters
// Orders
foreach ($orders as $key => $order)
{
// Orders does not contain the name of the column, but its number,
// so add the name so we can handle it just like the $columns array
$orders[$key]['name'] = $columns[$order['column']]['name'];
}
// Further filtering can be done in the Repository by passing necessary arguments
$otherConditions = array("type" => $type, "id" => $id);
// Get results from the Repository
$results = $this->repository->getRequiredDTData($start, $length, $orders, $search, $columns, $otherConditions);
// Returned objects are of type Town
$objects = $results["results"];
// Get total number of objects
$total_objects_count = $this->repository->comptage();
// Get total number of results
$selected_objects_count = count($objects);
// Get total number of filtered data
$filtered_objects_count = $results["countResult"];
// Construct response
$response = '{
"draw": '.$draw.',
"recordsTotal": '.$total_objects_count.',
"recordsFiltered": '.$filtered_objects_count.',
"data": [';
$i = 0;
foreach ($objects as $key => $answer)
{
$response .= '["';
$j = 0;
$nbColumn = count($columns);
foreach ($columns as $key => $column)
{
// In all cases where something does not exist or went wrong, return -
$responseTemp = "-";
switch($column['name'])
{
case 'partage':
{
if($answer->getIsShared()){
$checked = "checked";
}else{
$checked = "";
}
$responseTemp ="<input type='checkbox' id='answer_".$answer->getId()."' name='answers' class='nav-trigger' onChange='verifierIsChecked(".$answer->getId().")' ".$checked." /><label for='nav-trigger' class='navicon-button x'><div class='navicon'></div></label>";
break;
}
case 'video':
{
if ($answer->getVideo()->getThumbnails()){
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
}else{
//$img= "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg";
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($answer);
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
}
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$responseTemp = " <a href='".$link."'><img src='".$img."' width='200px' height='150px'></a>";
break;
}
case 'nom':
{
// We know from the class definition that the postal code cannot be null
// But if that werent't the case, its value should have been tested
// before assigning it to $responseTemp
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getLastname()."</a>";
break;
}
case 'prenom':
{
// We know from the class definition that the postal code cannot be null
// But if that werent't the case, its value should have been tested
// before assigning it to $responseTemp
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getFirstname()."</a>";
break;
}
case 'dateReception':
{
// We know from the class definition that the postal code cannot be null
// But if that werent't the case, its value should have been tested
// before assigning it to $responseTemp
$responseTemp = $answer->getSendTime()->format('d/m/Y H:i:s');
break;
}
case 'offre':
{
// We know from the class definition that the postal code cannot be null
// But if that werent't the case, its value should have been tested
// before assigning it to $responseTemp
if($answer->getAd()){
$responseTemp = $answer->getAd()->getTitle();
}else{
$responseTemp = "Candidature spontanée";
}
break;
}
case 'date_envoi':
{
if($answer->getSendTime()){
$responseTemp = date_format($answer->getSendTime(), 'd-m-Y H:i:s');;
}else{
$responseTemp ="ND";
}
// This cannot happen if inner join is used
// However it can happen if left or right joins are used
break;
}
case 'ad_id':
{
$video = $answer->getVideo();
$responseTemp ="ND";
if($video){
$responseTemp = 'ID Candidature :'.$answer->getId().'<br />';
$videoRenommee = str_replace("/videos/", "", $video->getCdnUrl());
//TODO : revoir ca car une vue dans un controller ca n'est pas top!!!!!
$responseTemp .= "<iframe src='https://player.vimeo.com/video/".$videoRenommee."?embedparameter=value' width='auto' height='auto' frameborder='0' allowfullscreen></iframe>";
}
break;
}
case 'statusReponse':
{
// if($answer->getstatus()=="SENDED"){
// $status= "ENVOYE";
// }else{
// $status=$answer->getstatus();
// }
// $responseTemp = "<span id='status_".$answer->getId()."'> ".$status."</span> ";
if ($answer->getStatusReponse() =="EMBAUCHE" ){
$responseTemp = "<span class='label label-success'>Embauché</span> ";
}elseif ($answer->getStatusReponse() =="REFUSE" ){
$responseTemp = "<span class='label label-important'>Refusé</span> ";
}elseif ($answer->getStatusReponse() =="ENTRETIEN" ){
$responseTemp = "<span class='label label-warning'>Entretien programmé</span> ";
}elseif ($answer->getStatusReponse() =="A_TRAITER" ){
$responseTemp = "<span class='label label-info'>À traiter</span> ";
}elseif ($answer->getStatusReponse() =="CONTACTE" ){
$responseTemp = "<span class='label'>Contacté</span> ";
}else {
$responseTemp = "<span class='label label-info'>À traiter</span> ";
}
break;
}
case 'localisation':
{
if($answer->getUser()->getGeoloc()) {
foreach ($answer->getUser()->getGeoloc() as &$adress) {
$responseTemp =$adress["locality"] .", ". $adress["postal_code"];
}
}else {
$responseTemp ="Non renseignée";
}
break;
}
}
// Add the found data to the json
$response .= $responseTemp;
if(++$j !== $nbColumn)
$response .='","';
}
$response .= '"]';
// Not on the last item
if(++$i !== $selected_objects_count)
$response .= ',';
}
$response .= ']}';
// Send all this stuff back to DataTables
$returnResponse = new JsonResponse();
$returnResponse->setJson($response);
return $returnResponse;
}
/**
* @Route("/entreprise/me/espace-oe/candidature-spontanee/", name="company_spontaneous_list")
*/
@@ -578,9 +834,9 @@ class AnswerController extends Controller
{
$em = $this->getDoctrine()->getManager();
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('ad' => $ad, 'status' => 'SENDED'),array('sendTime' => 'DESC'));
//$answers = $em->getRepository('AppBundle:Answer')->findBy(array('ad' => $ad, 'status' => 'SENDED'),array('sendTime' => 'DESC'));
return $this->render('company/ad_answer_list.html.twig', [
'answers' => $answers,
'type' => 'annonce',
'ad' => $ad
]);
@@ -177,7 +177,7 @@ class AnswerController extends FOSRestController
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = $user->getEmail();
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
//$contactMail = "dev@talentstube.com";
}else{
// $complSubject="";
@@ -320,7 +320,7 @@ class AnswerController extends FOSRestController
$usr->getUsername();
$file = $request->files->get('upload');
$status = array('status' => "success", "fileUploaded" => false);
$status = array('statusPres' => "failure", "fileUploaded" => false);
//dump($file);
// If a file was uploaded
if (!is_null($file)) {
@@ -332,7 +332,7 @@ class AnswerController extends FOSRestController
// $filename = uniqid().".".$file->getClientOriginalExtension();
// $path = "/path/where/we/want-to-save-the-file";
// $file->move($path,$filename); // move the file to a path
$status = array('status' => "success", "fileUploaded" => true, "message" => $message);
$status = array('statusPres' => "success", "fileUploaded" => true, "message" => $message);
}
return new JsonResponse($status);
@@ -368,7 +368,7 @@ class AnswerController extends FOSRestController
$company = $usr->getCompany();
$file = $request->files->get('upload');
$status = array('status' => "success", "companyUpdated" => false);
$status = array('status' => "success",'statusCv' => "failure", "companyUpdated" => false, "loadingCv" => false);
//dump($file);
// If a file was uploaded
//TODO Controle sur l'extension du fichier (pdf, word)
@@ -382,7 +382,7 @@ class AnswerController extends FOSRestController
// $filename = uniqid().".".$file->getClientOriginalExtension();
// $path = "/path/where/we/want-to-save-the-file";
// $file->move($path,$filename); // move the file to a path
$status = array('status' => "success", "companyUpdated" => true, "message" => $message);
$status = array('status' => "success", 'statusCv' => "success", "companyUpdated" => true, "message" => $message, "loadingCv" => true);
}
return new JsonResponse($status);
@@ -443,7 +443,7 @@ class AnswerController extends FOSRestController
// $link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$contactMail = $user->getEmail();
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
//$contactMail = "dev@talentstube.com";
}
$body = [
'FromEmail' => "noreply@talentstube.io",
@@ -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,196 @@ class CompanyController extends FOSRestController
return new JsonResponse(array('retour' => "true"));
}
/**
* @Rest\Get(path="/api/miseEnRelationTalentEntreprise", name="miseEnRelationTalentEntreprise")
* @Rest\View
*/
public function miseEnRelationTalentEntrepriseAction(Request $request)
{
//APPEL de l'api Pole emploi pour recuperer Token
$nom=$request->query->get('nom');
$prenom=$request->query->get('prenom');
$email=$request->query->get('email');
$entreprise=$request->query->get('entreprise');
$telephone=$request->query->get('telephone');
$message=$request->query->get('message');
$userId=$request->query->get('userId');
$user = $this->getDoctrine()->getRepository('AppBundle:User')->findOneBy(array('id' => $userId));
if($user){
if($user->getAppellationLibelle()){
$appellation = $user->getAppellationLibelle();
}else{
$appellation = "Aucun" ;
}
if($user->getFirstName()){
$firstname = $user->getFirstName();
}else{
$firstname = "ND" ;
}
if($user->getLastname()){
$lastname = $user->getLastname();
}else{
$lastname = "ND" ;
}
}
$page=$request->query->get('page');
if(isset($_SERVER['HTTP_REFERER'])) {
$previous = $_SERVER['HTTP_REFERER']." / ".$_SERVER['REQUEST_URI'];
}
$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' => "Un recruteur a contacté un candidat ",
'MJ-TemplateID' =>2934089 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenomRecruteur' => $prenom,
'nomRecruteur' => $nom,
'entrepriseRecruteur' => $entreprise,
'emailRecruteur' => $email,
'telephoneRecruteur' => $telephone,
'prenomCandidat' => $firstname,
'nomCandidat' => $lastname,
'posteCandidat' => $appellation,
]
]
]
];
$response = $mj->post(Resources::$Email, ['body' => $body]);
$body2 = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Vous avez reçu un nouveau message",
'MJ-TemplateID' =>2932086 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $user->getEmail(),
'Vars' => [
'prenomRecruteur' => $prenom,
'nomRecruteur' => $nom,
'entrepriseRecruteur' => $entreprise,
'emailRecruteur' => $email,
'messageRecruteur' => $message,
'telephoneRecruteur' => $telephone,
'prenomCandidat' => $user->getFirstName(),
'nomCandidat' => $user->getLastname(),
]
]
]
];
$mj2 = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
$response = $mj2->post(Resources::$Email, ['body' => $body2]);
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 = $user->getEmail();
// 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")
* @Rest\View
*/
public function demanderDiagnosticAction(Request $request)
{
//
$nomPrenom=$request->query->get('nomPrenom');
$email=$request->query->get('email');
$nomEntreprise=$request->query->get('nomEntreprise');
$telephone=$request->query->get('telephone');
$page=$request->query->get('page');
$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' => "Demander mon diagnostic ",
'MJ-TemplateID' =>2684982 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'nomPrenom' => $nomPrenom,
'entreprise' => $nomEntreprise,
'email' => $email,
'telephone' => $telephone,
]
]
]
];
$response = $mj->post(Resources::$Email, ['body' => $body]);
return new JsonResponse(array('retour' => "true"));
}
/**
@@ -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
@@ -148,55 +234,109 @@ class SecurityController extends FOSRestController
else{
$phoneTalent = "";
}
if ($request->get('address1')){
$address1Talent = htmlspecialchars($request->get('address1'));
}
else{
$address1Talent = "";
}
// if ($request->get('address1')){
// $address1Talent = htmlspecialchars($request->get('address1'));
// }
// else{
// $address1Talent = "";
// }
if ($request->get('address2')){
$address2Talent = htmlspecialchars($request->get('address2'));
}
else{
$address2Talent = "";
}
// if ($request->get('address2')){
// $address2Talent = htmlspecialchars($request->get('address2'));
// }
// else{
// $address2Talent = "";
// }
if ($request->get('zipCode')){
$zipTalent = htmlspecialchars($request->get('zipCode'));
}
else{
$zipTalent = "";
}
// if ($request->get('zipCode')){
// $zipTalent = htmlspecialchars($request->get('zipCode'));
// }
// else{
// $zipTalent = "";
// }
if ($request->get('city')){
$cityTalent = htmlspecialchars($request->get('city'));
// if ($request->get('city')){
// $cityTalent = htmlspecialchars($request->get('city'));
// }
// else{
// $cityTalent = "";
// }
// if ($request->get('country')){
// $countryTalent = htmlspecialchars($request->get('country'));
// }
// else{
// $countryTalent = "";
// }
$titleTalent = htmlspecialchars($request->get('currentJob'));
if ($request->get('geoloc')){
$geoloc = htmlspecialchars($request->get('geoloc'));
}else{
$geoloc ="";
}
else{
$cityTalent = "";
if ($request->get('street_number')){
$street_number = htmlspecialchars($request->get('street_number'));
}else{
$street_number ="";
}
if ($request->get('route')){
$route = htmlspecialchars($request->get('route'));
}else{
$route ="";
}
if ($request->get('locality')){
$locality = htmlspecialchars($request->get('locality'));
}else{
$locality ="";
}
if ($request->get('administrative_area_level_2')){
$administrative_area_level_2 = htmlspecialchars($request->get('administrative_area_level_2'));
}else{
$administrative_area_level_2 ="";
}
if ($request->get('administrative_area_level_1')){
$administrative_area_level_1 = htmlspecialchars($request->get('administrative_area_level_1'));
}else{
$administrative_area_level_1 ="";
}
if ($request->get('country')){
$countryTalent = htmlspecialchars($request->get('country'));
$country = htmlspecialchars($request->get('country'));
}else{
$country ="";
}
else{
$countryTalent = "";
}
$titleTalent = htmlspecialchars($request->get('currentJob'));
$geoloc = htmlspecialchars($request->get('geoloc'));
$street_number = htmlspecialchars($request->get('street_number'));
$route = htmlspecialchars($request->get('route'));
$locality = htmlspecialchars($request->get('locality'));
$administrative_area_level_2 = htmlspecialchars($request->get('administrative_area_level_2'));
$administrative_area_level_1 = htmlspecialchars($request->get('administrative_area_level_1'));
$country = htmlspecialchars($request->get('country'));
$postal_code = htmlspecialchars($request->get('postal_code'));
$formatted_address = str_replace('"', '', $request->get('formatted_address'));
$lat = stripslashes($request->get('lat'));
$lng = stripslashes($request->get('lng'));
//
if ($request->get('postal_code')){
$postal_code = htmlspecialchars($request->get('postal_code'));
}else{
$postal_code ="";
}
if ($request->get('formatted_address')){
$formatted_address = str_replace('"', '', $request->get('formatted_address'));
}else{
$formatted_address ="";
}
if ($request->get('lat')){
$lat = stripslashes($request->get('lat'));
}else{
$lat ="";
}
if ($request->get('lng')){
$lng = stripslashes($request->get('lng'));
}else{
$lng ="";
}
$appellationId="";
$appellationLibelle="";
$competences =null;
$codeRome=null;
$newLinkedin = htmlspecialchars($request->get('linkedin'));
$newTwitter = htmlspecialchars($request->get('twitter'));
@@ -217,35 +357,100 @@ class SecurityController extends FOSRestController
$array = Array ();
// \"$formatted_address
if($formatted_address!=""){
$array[] = Array (
"street_number" => $street_number,
"route" => $route,
"administrative_area_level_2" => $administrative_area_level_2,
"administrative_area_level_1" => $administrative_area_level_1,
"country" => $country,
"locality" => $locality,
"postal_code" => $postal_code,
"formatted_address" => $formatted_address,
"lat" => stripslashes($lat),
"lng" => stripslashes($lng)
);
$array[] = Array (
"street_number" => $street_number,
"route" => $route,
"administrative_area_level_2" => $administrative_area_level_2,
"administrative_area_level_1" => $administrative_area_level_1,
"country" => $country,
"locality" => $locality,
"postal_code" => $postal_code,
"formatted_address" => $formatted_address,
"lat" => stripslashes($lat),
"lng" => stripslashes($lng)
);
$usr->setGeoloc($array);
}
$usr->setGeoloc($array);
$talent->setPhoneTalent($phoneTalent);
$companyManager->updateTalent($usr);
//$talent->setPhoneTalent($phoneTalent);
$billing = array(
'address1' => $address1Talent,
'address2' => $address2Talent,
'postcode' => $zipTalent,
'city' => $cityTalent,
'country' => $countryTalent,
);
$addrs['billing'] = $billing;
$talent->setAddresses($addrs);
// $billing = array(
// 'address1' => $address1Talent,
// 'address2' => $address2Talent,
// 'postcode' => $zipTalent,
// 'city' => $cityTalent,
// 'country' => $countryTalent,
// );
// $addrs['billing'] = $billing;
// $talent->setAddresses($addrs);
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",
),
));
$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);
}
$usr->setAppellationId($appellationId);
$usr->setAppellationLibelle($appellationLibelle);
$usr->setCompetences($competences);
$usr->setCodeRome($codeRome);
$companyManager->updateTalent($usr);
$status = array('status' => "success!!!!!!!!!!!!!!!!!!");
@@ -75,6 +75,44 @@ class DefaultController extends Controller
* @Route("/", name="homepage")
*/
public function homepagev2Action(Request $request)
{
//US-468
$session = $request->getSession();
$arrayDate['dateBegin'] = new \DateTime('now -1 Month');
$arrayDate['dateEnd'] = new \DateTime('now');
setlocale(LC_ALL, 'fr_FR.utf-8');
$stats = $this->get("app.stats_manager");
$params = $this->getParams($request);
$usename = $params["lastUsername"];
$csrfToken = $params["csrfToken"];
$error = $params["error"];
$destination_login = "admin/dashboard";
$erreur = false;
if($request->query->get('erreur')){
$erreur = $request->query->get('erreur');
}
return $this->render(
'defaultv2/accueil/index.html.twig', [
'last_username' => $usename,
'csrf_token' => $csrfToken,
'error' => $error,
'destination_login' => $destination_login,
'erreur' => $erreur
//'ads' => $ads,
//'companies' => $arrayCompany,
//'talents' => $arrayTalents,
//'territories' => $territories,
//'searchform' => $form->createView(),
]
);
}
/**
* @Route("/concept", name="concept")
*/
public function conceptAction(Request $request)
{
//US-468
$session = $request->getSession();
@@ -153,7 +191,7 @@ class DefaultController extends Controller
//dump($mj);
//var_dump($mailManager);
return $this->render(
'defaultv2/accueil/index.html.twig', [
'defaultv2/concept/index.html.twig', [
'last_username' => $usename,
'csrf_token' => $csrfToken,
'error' => $error,
@@ -427,6 +465,7 @@ class DefaultController extends Controller
]);
}
/**
* @Route("/recrutement-aide-a-domicile", name="recrutement_aide_a_domicile")
*/
@@ -436,6 +475,16 @@ class DefaultController extends Controller
]);
}
/**
* @Route("/recrutement-informatique", name="recrutement_informatique")
*/
public function informatiqueAction()
{
return $this->render('landing/informatique.html.twig', [
]);
}
/**
* @param Request $request
@@ -35,9 +35,9 @@ class MediaController extends Controller
*/
public function companyMediaAction(Request $request)
{
$event = new UserEvent($this->getUser());
//$event = new UserEvent($this->getUser());
$company = $this->getUser()->getCompany();
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
//$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
$em = $this->getDoctrine()->getManager();
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
$form = $this->createForm(MediaType::class);
@@ -66,8 +66,8 @@ class MediaController extends Controller
*/
public function territoryMediaAction(Request $request)
{
$event = new UserEvent($this->getUser());
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
//$event = new UserEvent($this->getUser());
//$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
$em = $this->getDoctrine()->getManager();
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
$form = $this->createForm(MediaType::class);
@@ -141,7 +141,8 @@ class MediaController extends Controller
$form = $this->createFormBuilder($video)
->add('title', TextType::class, array(
'label' => 'Titre de la vidéo',
'required' => true,
'empty_data' => 'Titre de la vidéo',
'required' => false,
))
->getForm();
$form->handleRequest($request);
@@ -155,10 +156,37 @@ class MediaController extends Controller
$numberOfMonth = 6;
$unpublishedDate = new \DateTime('now');
$unpublishedDate = $unpublishedDate->add(new \DateInterval('P' . $numberOfMonth . 'M'));
$ad->setStatus("TO_PUBLISH");
// ENVOI DE MAIL a l'equipe TT pour prevenir d'une modif d'annonce
$ad->setUnpublishedAt($unpublishedDate);
$em->persist($ad);
$em->flush();
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
// $link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
'Subject' => "Creation/Modification Offre d'emploi ".$ad->getCompany()->getBrandName(),
'MJ-TemplateID' =>2612525 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => 'dev@talentstube.com',
'Vars' => [
'entreprise' => $ad->getCompany()->getBrandName(),
'offre' => $ad->getTitle(),
]
]
]
];
$response = $mj->post(Resources::$Email, ['body' => $body]);
$response->success() && var_dump($response->getData());
return $this->redirectToRoute('company_ad');
}
@@ -318,11 +318,11 @@ class TalentController extends Controller
* This route must stay at the end
***********************/
/**
* @Route("/talent/{alias}/", name="talent_show")
/**
* @Route("/talent/{alias}/", name="talent_show2")
* @ParamConverter("company", options={"mapping": {"alias": "alias"}})
*/
public function talentShowAction(Request $request, Company $talent)
public function talent2ShowAction(Request $request, Company $talent)
{
setlocale(LC_ALL, 'fr_FR.utf-8');
$user = $talent->getUsers();
@@ -383,7 +383,7 @@ class TalentController extends Controller
$this->get('twig')->addGlobal('destination_login', $destination);
$session = $request->getSession();
$session->set('registration_destination', $destination);
$res = $this->render('talent/talent_show.html.twig', [
$res = $this->render('talent/talent_show2.html.twig', [
'talent' => $talent,
'user' => $user{0},
'form' => $form->createView(),
@@ -229,8 +229,7 @@ class Ad
* @var array
*
* @ORM\Column(name="extra", type="json_document", nullable=true, options={"jsonb":true})
*
* @Groups({"ad_detail", "ad_list", "answer_detail", "company_detail"})
* @Groups({"ad_detail", "ad_list", "answer_detail", "company_detail","answer_list"})
*
*/
private $extra;
@@ -240,7 +239,7 @@ class Ad
*
* @ORM\Column(name="location", type="json_document", nullable=true, options={"jsonb":true})
*
* @Groups({"ad_detail", "ad_list","answer_detail", "company_detail"})
* @Groups({"ad_detail", "ad_list","answer_detail", "company_detail","answer_list"})
*/
private $location;
@@ -558,6 +557,35 @@ class Ad
return $i;
}
public function countAnswersParStatut()
{
$answers = $this->answers;
$nbATraiter = 0;
$nbContacte = 0;
$nbEntretien = 0;
$nbRefuse = 0;
$nbEmbauche = 0;
foreach ($answers as $a) {
if ($a->getStatusReponse() == "A_TRAITER" AND $a->getStatus() =="SENDED" ) {
$nbATraiter++;
}
else if ($a->getStatusReponse() == "CONTACTE" AND $a->getStatus() =="SENDED") {
$nbContacte++;
}
else if ($a->getStatusReponse() == "ENTRETIEN" AND $a->getStatus() =="SENDED") {
$nbEntretien++;
}
else if ($a->getStatusReponse() == "REFUSE" AND $a->getStatus() =="SENDED") {
$nbRefuse++;
}
else if ($a->getStatusReponse() == "EMBAUCHE" AND $a->getStatus() =="SENDED"){
$nbEmbauche++;
}
}
return array("nbATraiter"=> $nbATraiter, "nbContacte"=>$nbContacte, "nbEntretien" =>$nbEntretien, "nbRefuse" => $nbRefuse, "nbEmbauche"=>$nbEmbauche);
//return $nbATraiter;
}
/**
* @return string
*
@@ -109,7 +109,7 @@ class Answer
* @var string
*
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true, options={"default":"A_TRAITER"})
*
* @Groups({"answer_detail","answer_list"})
*/
private $statusReponse ='A_TRAITER';
@@ -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")
@@ -210,6 +211,51 @@ class User extends BaseUser
*/
private $language;
/**
* @var int
*
* @ORM\Column(name="appellation_id", type="integer", nullable=true)
*
*/
private $appellationId;
/**
* @var string
*
* @ORM\Column(name="appellation_libelle", type="text", nullable=true)
*
*/
private $appellationLibelle;
/**
* @var string
*
* @ORM\Column(name="code_rome", type="text", nullable=true)
*
*/
private $codeRome;
/**
* @var array
*
* @ORM\Column(name="competences", type="json_document", nullable=true, options={"jsonb":true})
*/
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
***********************/
@@ -226,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;
}
/***********************
@@ -440,8 +488,12 @@ class User extends BaseUser
if($this->getCompany()->getType()){
$type=$this->getCompany()->getType();
}
}
}$formatted_address ="";
if($this->getGeoloc()){
if($this->getGeoloc()[0]){
$formatted_address = $this->getGeoloc();
}
}
$card = array(
"firstname" => $this->getFirstname(),
"lastname" => $this->getLastname(),
@@ -462,7 +514,12 @@ class User extends BaseUser
"type" => $type,
"currentJob" => $this->getCompany()->getExtra()["titleTalent"],
"geoloc" => $this->getGeoloc(),
"formattedAddress" => $formatted_address,
"website" => $this->getCompany()->getWebsite(),
"appellationId" => $this->getAppellationId(),
"appellationLibelle" => $this->getAppellationLibelle(),
"codeRome" => $this->getCodeRome(),
"competences" => $this->getCompetences(),
);
return $card;
}
@@ -1261,4 +1318,149 @@ class User extends BaseUser
{
return $this->language;
}
/**
* Set appellationId.
*
* @param int|null $appellationId
*
* @return Ad
*/
public function setAppellationId($appellationId = null)
{
$this->appellationId = $appellationId;
return $this;
}
/**
* Get appellationId.
*
* @return int|null
*/
public function getAppellationId()
{
return $this->appellationId;
}
/**
* Set appellationLibelle.
*
* @param string|null $appellationLibelle
*
* @return Ad
*/
public function setAppellationLibelle($appellationLibelle = null)
{
$this->appellationLibelle = $appellationLibelle;
return $this;
}
/**
* Get appellationLibelle.
*
* @return string|null
*/
public function getAppellationLibelle()
{
return $this->appellationLibelle;
}
/**
* Set codeRome.
*
* @param string|null $codeRome
*
* @return Ad
*/
public function setCodeRome($codeRome = null)
{
$this->codeRome = $codeRome;
return $this;
}
/**
* Get codeRome.
*
* @return string|null
*/
public function getCodeRome()
{
return $this->codeRome;
}
/**
* Set competences.
*
* @param json_document|null $competences
*
* @return Ad
*/
public function setCompetences($competences = null)
{
$this->competences = $competences;
return $this;
}
/**
* Get competences.
*
* @return json_document|null
*/
public function getCompetences()
{
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');
}
}
@@ -70,6 +70,7 @@ class AdType extends AbstractType
$builder
->add('reference', TextType::class, array(
'label' => 'Référence de l\'annonce',
'required' => true,
'attr' => array(
'placeholder' => 'Ex : OFFRE_521',
'class' => 'form-control'
@@ -210,6 +211,7 @@ class AdType extends AbstractType
'mapped' => false,
'label' =>'Compétences',
'data' => $competences,
'required' => false,
'attr' => array(
'class' => 'form-control',
)
@@ -14,7 +14,8 @@ class MediaType extends AbstractType
$builder->add('title', TextType::class, array(
'label' => 'Titre de la vidéo',
'required' => true
'empty_data' => 'Titre de la vidéo',
'required' => false
))
->add('media', HiddenType::class, array(
'attr' => array(

Some files were not shown because too many files have changed in this diff Show More