Compare commits

...

12 Commits

Author SHA1 Message Date
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
llaniau 564ac42b40 Landing pages 2021-03-09 12:25:29 +01:00
llaniau 3dc5d247f4 landing page 2021-03-08 19:43:01 +01:00
llaniau c0e94bcf7a marque employeur, bug d'affichage 2021-02-24 17:16:54 +01:00
llaniau d9bb152863 Inscription - tel 2021-02-24 15:40:29 +01:00
llaniau 1e52338d37 V2.7.3 2021-02-24 14:06:51 +01:00
llaniau b701d07741 candidatures - retour de recette 2021-02-24 14:04:50 +01:00
llaniau bcd93dee2c Candidature - bugs recette 2021-02-23 18:52:31 +01:00
38 changed files with 2537 additions and 926 deletions
@@ -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>
@@ -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 %}
@@ -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 ? 02 30 05 06 31
</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 -->
@@ -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>
@@ -0,0 +1,220 @@
<!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>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;400;500;700;900&display=swap" rel="stylesheet">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}{% endblock %}</title>
<link rel="shortcut icon" href="/landing/img/talentstubeIco.svg" type="image/x-icon">
<link rel="icon" href="/landing/img/favicon.ico" type="image/x-icon">
<link href="/landing/css/bootstrap.min.css" rel="stylesheet">
<link href="/landing/css/owl.carousel.css" rel="stylesheet">
<link href="/landing/css/main.css" rel="stylesheet">
<link href="/landing/css/fontawesome.min.css" rel="stylesheet">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="/landing/js/modernizr.min.js"></script>
<!--Ajout pour le référencement-->
{# <link rel="canonical" href="" /> #}
{% 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 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" />
{% endblock %}
</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>Demandez votre rendez-vous</h2>
<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="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="phone" class="form-control" id="telephone" placeholder="Votre téléphone">
</div>
<div class="form-group">
<p class="text-danger" id="erreur">Veuillez compléter l'ensemble des champs ci-dessus pour
demander un rendez-vous</p>
</div>
</div>
</div>
</div>
</div>
<div class="row" id="felicitationRdvContainer" class="text-center">
<div class="text-center">
<img src="/landing/img/demande-rendez-vous.svg">
<h2>Merci!</h2>
<p>Votre demande a bien été envoyée. Un conseiller vous contactera <strong>sous 48h</strong>.
En attendant, nous allons vous rediriger vers notre blog afin de vous faire découvrir tous nos
conseils pour un recrutement réussi.</p>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="bttn" onClick="demanderRdv();" id="boutonDemandeRdv">Demander un rendez-vous</button>
</div>
</div>
</div>
</div>
<!--Modal : Formulaire End -->
{% endblock %}
{% block main %}
{% endblock %}
<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>
<!--<script src="js/jquery.animateNumber.min.js"></script>-->
<!--<script src="js/jquery.form.min.js"></script>-->
{% block javascripts %}
{% endblock %}
<script>
$("#erreur").hide();
$("#felicitationRdvContainer").hide();
function demanderRdv() {
if ($("#nom").val() == "" || $("#prenom").val() == "" || $("#email").val() == "" || $("#telephone").val() == "") {
$("#erreur").show();
} else {
$("#erreur").hide();
$("#boutonDemandeRdv").hide();
$("#felicitationRdvContainer").show();
$("#demandeRdvContainer").hide();
$.ajax({
//L'URL de la requête
url: "/app_dev.php/api/demanderRdv?nom=" + $("#nom").val() + "&prenom=" + $("#prenom").val() + "&email=" +
$("#email").val() + "&telephone=" + $("#telephone").val() + "&page=Demande rdv module vidéo",
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 rdv done");
setTimeout(function () {
document.location.href = "https://blog.talentstube.com/articles-entreprise/";
}, 8000);
})
//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 rdvfail");
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 rdv effectuée");
});
}
}
function fermerVideo() {
var videoURL = $('#player').prop('src');
videoURL = videoURL.replace("&autoplay=1", "");
$('#player').prop('src', '');
$('#player').prop('src', videoURL);
}
$('#exampleModalCenter').on('hidden.bs.modal', function (e) {
console.log("exampleModalCenter11");
fermerVideo();
})
</script>
</body>
</html>
@@ -15,7 +15,7 @@
<!-- Required Meta Tags Always Come First -->
<meta charset="utf-8">
<meta name="robots" content="noindex,nofollow">
{# <meta name="robots" content="noindex,nofollow"> #}
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% block meta %}
{% endblock %}
@@ -111,12 +111,14 @@ Au plaisir d’échanger avec vous,
<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">
<button type="button" class="btn btn-primary" disabled data-toggle="modal"
<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">
<a href="#" class="btn btn-primary" data-toggle="tooltip"
title="Cochez une ou plusieurs candidatures avant de pouvoir les partager.">Partager les
candidatures</a>
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>
@@ -195,8 +197,10 @@ Au plaisir d’échanger avec vous,
<span class="label label-warning">Entretien programmé</span>
{% elseif answer.statusReponse =="A_TRAITER"%}
<span class="label label-info">À traiter</span>
{% else %}
{% elseif answer.statusReponse =="CONTACTE"%}
<span class="label">Contacté</span>
{% else %}
<span class="label label-info">À traiter</span>
{% endif %}
</td>
@@ -394,7 +394,9 @@
console.log(this.value);
//competences.push(competence);
//on remplace la virgule par un esapce car sinon bug (les compétences sont séparés par une virgule)
var chaine = this.value.replace(",", " ");
var chaine = this.value.replace("'", " ");
chaine = chaine.replace(",", " ");
//On limite a 10 compétences, au dela, on les enregistre pas dans le champ ad_competences
if (nbCompetencesSelect < 11) {
competences += chaine + ",";
@@ -408,6 +410,7 @@
}
}).get();
console.log(competences);
// on renseigne le champ ad_competences
$("#ad_competences").val(competences);
//Gestion des erreurs si aucune compétence
@@ -519,7 +522,8 @@
suggestion: function (data) {
//comment sont formaté les suggestion de l'auto completion
$(".tt-dataset-metiers").show();
var chaine = data.metier_libelle.replace("'", "\\'");
var chaine = data.metier_libelle.replace("'", " ");
var chaine = chaine.replace("'", "&#44;");
return '<div onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
chaine +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences"><a href="#" >' +
@@ -594,17 +598,18 @@
checked = "checked";
}
var chaine = object.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_" + object.code +
"' name='competences_ad[]'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competence_" + object
.code + "' value='" + chaine + "_" + object.code + "'> " + object.libelle +
"<br/></div>");
chaine = chaine.replace(",", " ");
chaine = chaine.replace('"', " ");
$("#competencesAd").append('<div id="competence_ad_' + object.code +
'" name="competences_ad[]"><input type="checkbox" ' + checked +
' onChange="genererCompetences(this);" id="competence_' + object
.code + '" value="' + chaine + "_" + object.code + '"> ' + object.libelle +
'<br/></div>');
$("#competencesAdPopup").append("<div id='competence_ad_popup_" + object.code +
"'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competencepopup_" + object
.code + "' value='" + object.code + "'> " + object.libelle + "<br/></div>");
$("#competencesAdPopup").append('<div id="competence_ad_popup_' + object.code +
'"><input type="checkbox" ' + checked +
' onChange="genererCompetences(this);" id="competencepopup_' + object
.code + '" value="' + object.code + '"> ' + object.libelle + '<br/></div>');
if (object.competenceCle == false) {
$("#competence_ad_" + object.code).hide();
}
@@ -624,7 +629,7 @@
//checked = "checked";
//}
var chaine = competence.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_" + competence.code +
"' name='competences_ad[]'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competence_" +
@@ -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,161 @@
</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="EMBAUCHE">Embauché</option>
<option value="REFUSE">Refusé</option>
<option value="ENTRETIEN">Entretien programmé</option>
<option value="A_TRAITER">À traiter</option>
<option value="CONTACTE">Contacté</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 +260,133 @@
<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": [
[0, '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 %}
@@ -23,6 +23,8 @@
{% if answer.ad%}
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
</a>
{% else %}
<a href="{{ path('company_answer_list') }}">Candidature spontanée</a>
{% endif %}
</li>
<li class="breadcrumb-item active"><a href="#"> candidat {{ answer.user.firstname }}
@@ -42,6 +44,9 @@
<div class="col-xl-10 col-sm-12">
{% if answer.ad%}
<h5> <a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}</a></h5>
{% else %}
<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>
</div>
@@ -53,21 +58,22 @@
<div class="row profil-candidature">
<div class="col-xl-8 col-md-12 p-t-10">
<h4 class="bold">{{ answer.user.firstname }} {{ answer.user.lastname }}</h4>
<p><i class="material-icons fs-16 tab-icon icons-candidatures">home</i>
<p>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
<i class="material-icons fs-16 tab-icon icons-candidatures">home</i>
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</p>
{% if answer.user.company.extra["phoneTalent"] is defined %}
<i class="material-icons fs-16 tab-icon icons-candidatures">phone</i><span id="telBouton"
class="visible"><a href="#" onClick="afficherNumero()">Afficher le numéro de
téléphone</a></span>{% if answer.user.company.extra["phoneTalent"] is defined %} <span
id="telSpan" class="invisible">Tel : {{ answer.user.company.extra["phoneTalent"] }}<span>
{% endif %}
{% endif %}
</div>
<div class="col-xl-4 col-md-12 profil-candidature-action">
<div class="dropdown candidature-action">
@@ -84,6 +90,8 @@
Entretien programmé
{% elseif answer.statusReponse =='A_TRAITER' %}
À traiter
{% else %}
À traiter
{% endif %}
</span>
@@ -99,38 +107,23 @@
onClick="changerStatutAnswer('EMBAUCHE', 'Embauché')">Embauché</button>
</div>
</div>
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons">Contacter le candidat</button>
<a href="#" data-toggle="tab" role="tab"
data-target="#messagerieVideo" onClick="switcherMenu()">
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons">Contacter le candidat</button></a>
</div>
</div>
<ul class="nav nav-tabs nav-tabs-simple d-none d-md-flex d-lg-flex d-xl-flex" role="tablist"
data-init-reponsive-tabs="dropdownfx">
<li class="nav-item">
<a class="active" data-toggle="tab" role="tab" data-target="#candidature"
href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}" id="candidatureLien">Candidature</a>
href="#" id="candidatureLien">Candidature</a>
</li>
<li class="nav-item">
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}" data-toggle="tab" role="tab"
<a href="#" data-toggle="tab" role="tab"
data-target="#messagerieVideo" id="messagerieVideoLien">Messagerie</a>
</li>
</ul>
<div class="nav-tab-dropdown cs-wrapper full-width d-lg-none d-xl-none d-md-none">
<div class="cs-select cs-skin-slide full-width" tabindex="0"><span class="cs-placeholder">Candidature</span>
<div class="cs-options">
<ul>
<li data-option="" data-value="#candidature"><span>Candidature</span></li>
<li data-option="" data-value="#messagerieVideo"><span>Messagerie vidéo</span></li>
<li data-option="" data-value="#messagerie"><span>Messagerie
texte</span></li>
</ul>
</div><select class="cs-select cs-skin-slide full-width" data-init-plugin="cs-select">
<option value="#candidature" selected="">Candidature</option>
<option value="#messagerieVideo">Messagerie vidéo</option>
<option value="#messagerie">Messagerie
texte</option>
</select>
<div class="cs-backdrop"></div>
</div>
</div>
</div>
<div class="col-xl-12 bg-white details-candidature">
<div class="tab-content">
@@ -166,6 +159,11 @@
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
function switcherMenu(){
$("#messagerieVideoLien").addClass("active");
$("#candidatureLien").removeClass("active");
console.log("messagerie active");
}
var urlDropzone = '{{ path("upload_media_message", {"id": message.getId()}) }}';
var urlDelete = '{{ path("delete_media_message", {"id": message.getId() }) }}'
var idObject = null;
@@ -14,10 +14,12 @@
</div>
<div class="card-body row">
{% if answer.user.company.cv %}
<div class="col-8">
<h5><i class="material-icons fs-18 tab-icon icons-candidatures">text_snippet</i>Curriculum vitae
</h5>
</div>
<div class="col-4">
<a href="/uploads/cv/{{ answer.user.company.cv }}" target="_blank">
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons m-b-10">Télécharger
@@ -32,7 +34,7 @@
<iframe width="100%" height="600"
src="/uploads/cv/{{ answer.user.company.cv }}"></iframe>
{% endif %}
{% endif %}
<!--<iframe width="100%" height="600" src="http://docs.google.com/gview?url=http://qualite-en-recherche.cnrs.fr/IMG/doc/pr-m1-09-ressources_humaines-30-1.doc&embedded=true"></iframe>-->
</div>
@@ -43,20 +45,19 @@
<!-- START card -->
<div class="card-body">
{{ form_start(formNote) }}
<div class="form-group">
<i class="material-icons fs-18 tab-icon icons-candidatures">comment</i><label for="">
<h5>Commentaires</h5>
</label>
<div class="form-group form-group-default required">
<h5><i class="material-icons fs-18 tab-icon icons-candidatures">comment</i>Commentaires</h5>
{# <textarea class="form-control" id="exampleFormControlTextarea1"
placeholder="Ce commentaire sera visible uniquement par vous et les autres utilisateurs de lespace recruteur."
rows="5"></textarea> #}
<label for="note_ajax_content" >Ajouter un commentaire</label>
{{ form_widget(formNote.content) }}
</div>
<button class="btn btn btn-lg btn-outline-primary" type="submit">Valider le commentaire</button>
{{ form_end(formNote) }}
{% for note in answer.notes %}
{% for note in answer.notes|reverse %}
<div class="card card-body">
<h6 class="card-title">{{ note.author.firstname }} {{ note.author.lastname }}</h6>
<p class="card-text">{{ note.content }}</p>
@@ -15,7 +15,7 @@
value="{{ app.user.firstname }} {{ app.user.lastname }}" />
</div>
<div class="form-group form-group-default" style="min-height:250px;">
<div class="form-group form-group-default required" style="min-height:250px;">
<label for="contact_talent_message" class="active">Message</label>
{# <textarea id="contact_talent_message"
name="contact_talent[message]" required="required"
@@ -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>
@@ -0,0 +1,230 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Valorisez votre métier d'aide à domicile et recrutez grâce à la 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: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">
<meta property="og:site_name" content="Talents Tube">
<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" />
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block main %}
<main>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section-aide-domicile">
<!--HTML5 Video-->
<video autoplay loop muted id="bgvid" poster="">
<source src="/landing/video/recrutement-aide-a-domicile.mp4" type="video/mp4" alt="Recrutement d'aide à domicile">
<!--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
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>Comment réussir son recrutement d'aide à domicile ?</h1>
<p>Vous recevez des candidatures qui ne répondent pas à votre besoin ?</p>
<p>Vous en avez assez de refuser des prises en charge, faute de salariés ?</p>
<p>Vous voulez recruter vos aides à domicile autrement ?</p><br>
<p>Choisissez Talents Tube, la plateforme pour l'emploi 100% vidéo !</p>
</div>
<!--welcome-message end-->
<div class=" video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</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/secteur-aide-domicile-peine-a-recruter.jpg"
alt="Le secteur de l'aide à domicile peine à recruter" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Les difficultés de recrutement d'aide à domicile freinent votre développement ?</h2>
<p>Vous n'êtes pas les seuls à chercher des solutions originales pour attirer et recruter de nouveaux
candidats, c'est un constat partagé : l'aide à domicile peine à recruter. <strong>Une structure sur cinq
doit refuser des prises en charge, faute de salariés</strong> !
Sous financée et avec des besoins en recrutement d'aide à domicile de plus en plus importants, votre
structure déplore <strong>des emplois qui ne trouvent pas de candidats</strong>. Pour cause, votre
<strong>métier méconnu, souvent dévalorisé</strong> ne séduit pas les candidats potentiels. Il existe un
décalage entre les préjugés et la réalité du métier.
<p><b>Mais comment recruter des aides à domicile ?</b></p>
<p>Pour attirer et réussir vos recrutements d'aide à domicile, <strong>vous devez communiquer, valoriser
votre métier</strong> : un métier varié, riche humainement et qui a du sens.</p>
<p>Et pour cela, quoi de mieux que <strong>la vidéo</strong> ?</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 vos recrutements d'aide à domicile</h2>
<p>L'offre d'emploi vidéo est un projet fédérateur qui permet d'<strong>impliquer vos
collaborateurs</strong>. Ils sont <strong>fiers de pouvoir présenter le métier d'aide à
domicile</strong> et leur quotidien. Cette dynamique de recrutement <strong>participe à la valorisation
et à la reconnaissance</strong> de vos équipes.
<p><b>L'offre d'emploi vidéo pour attirer et recruter des aides à domicile</b> :</p>
<ul class="list-puces">
<li>Une occasion en or de <strong>montrer votre métier dans sa vérité</strong>, au dela des mots et des
descriptions convenues</li>
<li>Pas besoin dune super video pour donner du corps et du sens à votre futur candidat</li>
<li><strong>Montrez votre entreprise et votre équipe</strong>, affichez votre esprit dentreprise dans
une video dont votre équipe sera fière</li>
</ul>
</div>
<div class="col-md-5 bloc-gauche-2"> <img
src="/landing/img/reussir-son-recrutement-aide-a-domicile-avec-la-video.jpg"
alt="Réussir son recrutement d'aide à domicile avec la vidéo" 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/candidatures-aide-a-domicile-en-video.jpg"
alt="Candidatures d'aide à domicile en vidéo" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Recevez des candidatures d'aide à domicile uniques et authentiques </h2>
<p>Les compétences techniques ne sont pas le seul critère de recrutement.
Pour exercer le métier d'aide à domicile, <strong>les compétences humaines sont primordiales</strong> afin
d'assurer le bien-être et la satisfaction des bénéficiaires.</p>
<p><b>Mais comment détecter ces compétences sur un CV papier ? Impossible !</b></p>
<p>Ce qui différencie les candidats c'est l'amour des gens, une recherche de sens dans l'emploi et l'envie
de s'épanouir dans l'aide de l'autre. Autant d'<strong>éléments qui ne peuvent être exprimés sur une
feuille de papier</strong>.
<p><strong>Grâce à la candidature vidéo</strong>, découvrez qui se cache derrière le CV papier. Au déla
des compétences, <strong>rencontrez des personnalités</strong> !</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 des services à la personne, ont choisi Talents Tube pour recruter autrement !</h3>
</header>
<div class="row">
<div class="col-md-12">
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/58d59033851aa9d4d633cd895d794fcf.jpeg"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/58d59033851aa9d4d633cd895d794fcf.jpeg"
alt="admr difficulté à recruter aide à domicile " width="100" height="32"></figure>
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/62206ab199713e2828e409f705b9ec9d.png"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/62206ab199713e2828e409f705b9ec9d.png"
alt="onela difficultsé à recruter aide à domicile" width="100" height="100"></figure>
</div>
</div>
</div>
</section>
<!--sponsor end-->
<!--venue-->
<section class="venue section-spacing" id="venue_aideADomicile">
<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>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>
</div>
<!--goodbye-message end-->
</div>
</div>
</div>
</div>
</div>
</section>
</main>
{% endblock %}
{% block javascripts %}
{% endblock %}
@@ -0,0 +1,242 @@
{% extends "baseLanding.html.twig" %}
{% block title %}Valorisez votre métier en tension et recrutez des candidats grâce à la 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: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">
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block main %}
<main>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section-metier-tension">
<!--HTML5 Video-->
<video autoplay loop muted id="bgvid" poster="">
<source src="/landing/video/metier-en-tension-montrez-vous.mp4" type="video/mp4"
alt="Métier en tension, montrez-vous !">
<!--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
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>Métier en tension : Montrez-vous pour attirer et recruter de nouveaux collaborateurs !</h1>
<p>Votre métier est en tension et souffre d'un déficit d'image ?
Vous n'arrivez plus à recruter et cela freine le développement de votre activité ?</p>
<p>Et si Talents Tube avait la solution idéale pour réussir vos recrutements !</p>
</div>
<!--welcome-message end-->
<div class=" video-header">
<button class="bttn" data-toggle="modal" data-target="#exampleModal">Demander un rendez-vous</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/secteur-aide-domicile-peine-a-recruter.jpg"
alt="Les métiers en tension peinent à recruter" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Votre métier est en tension et les difficultés de recrutement freinent votre développement ?</h2>
<p>Vous rencontrez des <strong>difficultés à recruter</strong> de nouveaux collaborateurs.
<strong>Votre métier est peu valorisé, méconnu et souffre d'un déficit d'image</strong>. Il
n'attire plus et encore moins les nouvelles générations. Et pourtant, votre métier a considérablement
évolué ces dernières années. L'image que les candidats s'en font n'est pas en adéquation avec la réalité.
Sachez que votre métier n'est pas le seul dans ce cas, plusieurs secteurs sont touchés par une pénurie de
candidats. </p>
<p><strong>Mais comment réussir à recruter ?</strong></p>
<p>Pour attirer et réussir vos recrutements sur un métier en tension, vous devez <strong>communiquer</strong>
!
Donnez la parole à vos collaborateurs pour <strong>dévoiler votre métier</strong> aux
candidats.
Et pour cela, <strong>quoi de mieux que la vidéo</strong> ?</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 faire connaître votre métier</h2>
<p>Votre offre d'emploi mérite un coup de jeune <strong>pour attirer de nouveaux
candidats</strong>. Grâce à l'<strong>offre d'emploi vidéo</strong>, vous allez mettre des
images sur votre métier afin de le faire connaître au public. Votre offre d'emploi sera mieux expliquée,
portée par des vrais visages de l'entreprise.</p>
<p>Faites vivre une <strong>expérience unique</strong> à vos candidats. Ils pourront ainsi
<strong>découvrir, bien au-delà des mots, votre métier</strong>, leur future équipe,
l'ambiance et l'environnement de travail que vous proposez. </p>
<p>Cette offre d'emploi plus attractive vous permettra de <strong>capter l'attention de
candidats que vous n'auriez pas réussi à atteindre autrement</strong>.</p>
</div>
<div class="col-md-5 bloc-gauche-2"> <img src="/landing/img/candidatures-metier-en-tension-en-video.jpg"
alt="Recruter sur un métier en tension grâce à la vidéo" 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/candidatures-aide-a-domicile-en-video.jpg"
alt="Candidatures métier en tension en vidéo" data-no-retina> </div>
<div class="col-md-7 bloc-droit-1" style="padding: 2em 4em;">
<h2>Recevez des candidatures que vous n'auriez pas eu autrement</h2>
<p>Parce que la <strong>personnalité des candidats est un élément primordial</strong> dans
vos recrutements, avec Talents Tube découvrez-les au-delà du CV papier. Grâce à la <strong>candidature
vidéo</strong>, les candidats s'adressent directement à vous et expriment
en toute authenticité, pourquoi ils souhaitent rejoindre VOTRE entreprise. Et parce que vous avez dévoilé
votre métier en vidéo, le candidat peut davantage se projeter dans votre entreprise. Il peut
<strong>exprimer bien plus que ce qu'il n'aurait pu présenter sur une simple feuille de
papier</strong>.</p>
<p><strong>Moins de CV, plus de talent grâce à la candidature vidéo</strong> :</p>
<ul class="list-puces">
<li>Gagnez du temps de pré-sélection et rencontrez uniquement les candidats réellement impliqués</li>
<li>Découvrez des candidats « pépite » qui ne seraient pas sortis du lot dans la pile des candidatures
papier</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, pourquoi pas vous ?</h2>
<h3>Ces entreprises ont choisi Talents Tube pour recruter en vidéo ! </h3>
</header>
<div class="row">
<div class="col-md-12">
<figure><img
src="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/58d59033851aa9d4d633cd895d794fcf.jpeg"
alt="admr secteur aide à domicile en tension"
data-at2x="https://recruteur.talentstube.com/media/cache/profile_thumb/uploads/img/58d59033851aa9d4d633cd895d794fcf.jpeg"
width="100" height="32"></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="tpc ouest secteur btp en tension" width="100" height="100"></figure>
<figure><img
src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/7700369aae83d9b84ac0f42a0e63277f.jpeg"
data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/7700369aae83d9b84ac0f42a0e63277f.jpeg"
alt="la centrale des ramoneurs, difficulté de recrutement" width="100" height="100"></figure>
<figure><img
src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/60ac27698d9f443a1acc4fbdebd07a9e.png"
data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/60ac27698d9f443a1acc4fbdebd07a9e.png"
alt="intermarché, métier en tension" width="100" height="100"></figure>
</div>
</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>
<figure><img src="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/0a4c111bc35a4b2ab654ab8fce9f1d53.png" data-at2x="https://recruteur.talentstube.com//media/cache/profile_thumb/uploads/img/0a4c111bc35a4b2ab654ab8fce9f1d53.png" alt="sponsor"></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="sponsor"></figure>
</div>
</div>-->
</div>
</section>
<!--sponsor end-->
<!--venue-->
<section class="venue section-spacing" id="venue_metierTension">
<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>Demandez un RDV gratuitement</h2>
<p>Plus quune dernière étape avant de rendre votre métier en tension 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>
</div>
<!--goodbye-message end-->
</div>
</div>
</div>
</div>
</div>
</section>
</main>
{% endblock %}
{% block javascripts %}
{% endblock %}
@@ -1,37 +1,8 @@
<!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>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;400;500;700;900&display=swap" rel="stylesheet">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Réalisez une offre demploi originale vous-même</title>
<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">
<link rel="shortcut icon" href="/landing/img/talentstubeIco.svg" type="image/x-icon">
<link rel="icon" href="/landing/img/favicon.ico" type="image/x-icon">
<link href="/landing/css/bootstrap.min.css" rel="stylesheet">
<link href="/landing/css/owl.carousel.css" rel="stylesheet">
<link href="/landing/css/main.css" rel="stylesheet">
<link href="/landing/css/fontawesome.min.css" rel="stylesheet">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="/landing/js/modernizr.min.js"></script>
<!--Ajout pour le référencement-->
{# <link rel="canonical" href="" /> #}
<meta property="og:locale" content="fr_FR" />
{% 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 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" />
@@ -39,114 +10,13 @@
<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" />
</head>
{% endblock %}
{% block modalCallToAction %}
{{ parent() }}
{% endblock %}
{% block main %}
<main>
<body>
<!-- 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 -->
<!-- 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>Demandez votre rendez-vous</h2>
<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="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="phone" class="form-control" id="telephone" placeholder="Votre téléphone">
</div>
<div class="form-group">
<p class="text-danger" id="erreur">Veuillez compléter l'ensemble des champs ci-dessus pour
demander un rendez-vous</p>
</div>
</div>
</div>
</div>
</div>
<div class="row" id="felicitationRdvContainer" class="text-center">
<div class="text-center">
<img src="/landing/img/demande-rendez-vous.svg">
<h2>Merci!</h2>
<p>Votre demande a bien été envoyée. Un conseiller vous contactera <b>sous 48h</b>.
En attendant, nous allons vous rediriger vers notre blog afin de vous faire découvrir tous nos
conseils pour un recrutement réussi.</p>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="bttn" onClick="demanderRdv();" id="boutonDemandeRdv">Demander un rendez-vous</button>
</div>
</div>
</div>
</div>
<!--Modal : Formulaire End -->
<main>
<data id="mj-w-res-data" data-token="3ff0355b417f4f6e84deb70f12fcbca8" class="mj-w-data" data-apikey="2jWA"
data-w-id="HpL" data-lang="fr_FR" data-base="https://app.mailjet.com" data-width="640" data-height="588"
data-statics="statics"></data>
<!--Header : Menu et Vidéo en fond-->
<header class="hero-section">
<!--HTML5 Video-->
@@ -350,85 +220,8 @@
</div>
</section>
</main>
<script type="text/javascript" src="https://app.mailjet.com/statics/js/widget.modal.js"></script>
<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>
<!--<script src="js/jquery.animateNumber.min.js"></script>-->
<!--<script src="js/jquery.form.min.js"></script>-->
<script>
$("#erreur").hide();
$("#felicitationRdvContainer").hide();
{% endblock %}
{% block javascripts %}
function demanderRdv() {
if ($("#nom").val() == "" || $("#prenom").val() == "" || $("#email").val() == "" || $("#telephone").val() == "") {
$("#erreur").show();
} else {
$("#erreur").hide();
$("#boutonDemandeRdv").hide();
$("#felicitationRdvContainer").show();
$("#demandeRdvContainer").hide();
$.ajax({
//L'URL de la requête
url: "/app_dev.php/api/demanderRdv?nom=" + $("#nom").val() + "&prenom=" + $("#prenom").val() + "&email=" +
$("#email").val() + "&telephone=" + $("#telephone").val() + "&page=Demande rdv module vidéo",
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 rdv done");
setTimeout(function () {
document.location.href = "https://blog.talentstube.com/articles-entreprise/";
}, 8000);
})
//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) {
aconsole.log("Requête demande rdvfail");
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 rdv effectuée");
});
}
}
function fermerVideo() {
var videoURL = $('#player').prop('src');
videoURL = videoURL.replace("&autoplay=1", "");
$('#player').prop('src', '');
$('#player').prop('src', videoURL);
}
$('#exampleModalCenter').on('hidden.bs.modal', function (e) {
console.log("exampleModalCenter11");
fermerVideo();
})
</script>
</body>
</html>
{% endblock %}
@@ -69,8 +69,8 @@
</div>
</div>
<div class="col m-t-20">
<button id="submit" class="btn btn-lg btn-primary disabled"
type="submit">Définir comme vidéo marque employeur</button>
<button id="submit" class="btn btn-lg btn-primary disabled" type="submit">Définir comme
vidéo marque employeur</button>
{% set messageTooltiped = "Votre vidéo ne doit pas dépasser les 500Mo.\n
Les formats de vidéo acceptés sont les suivants : .mp4, .mov, .qt, .mkv, .avi, .m4v, .webm." %}
<i class="fa fa-question-circle tooltipped" data-position="top" data-delay="50"
@@ -80,12 +80,13 @@
</div>
</div>
{% if app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
<div class="col video_premier z-depth-3 m-t-30 m-b-30">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
{% if app.user.company.presentationVideo %}
<div><strong><span data-id="{{ media.id }}" class="titleVideo">{{ media.title }}</span></strong>
<div><strong><span data-id="{{ media.id }}"
class="titleVideo">{{ media.title }}</span></strong>
</div>
{% else %}
{% set label_title_video = "" %}
@@ -116,6 +117,7 @@
<div class="card-body">
<h4>Gestion de mes vidéos</h4>
{% set iteration = 0 %}
{% set nbMedias = medias|length%}
{% for media in medias %}
{% set classVideo = "" %}
{% if app.user.company.presentationVideo %}
@@ -124,10 +126,10 @@
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
{% if iteration is divisible by(2) or iteration==0%}
<div class="row p-t-10 p-b-10">
{% endif %}
{% set iteration = iteration+1 %}
{# {% if iteration is divisible by(2) or iteration==0%}
<div class="row p-t-10 p-b-10">
{% endif %} #}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
@@ -140,7 +142,7 @@
<div class="col card-fog choice-fog">
<div class="card-fog-container">
<a data-id="{{ media.getId() }}"
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
class="btn btn-default btn-default-video tooltipped"
data-position="top"
data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
Choisir cette vidéo
@@ -158,23 +160,23 @@
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
{% endif %}
<div class="card-fog delete-fog {{ classFog }}">
<div class="card-fog delete-fog ">
<div class="card-fog-container">
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
<div class="card-fog-message">
{# <div class="card-fog-message">
Vous ne pouvez pas supprimer cette vidéo.<br />
<i data-position="top" data-tooltip="{{ messageTooltipFog }}"
class="fa fa-question-circle tooltipped" aria-hidden="true"></i>
</div>
</div> #}
{% else %}
<a class="btn btn-default halfway-fab waves-effect waves-light red delete_unattached_media tooltipped"
href="{{ path("delete_unattached_media",{"id" : media.getId()}) }}"
target="_blank">Supprimer</a>
{% endif %}
</div>
</div>
{# <div class="card-content">
<p>
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
@@ -184,11 +186,11 @@
</div>
</div>
</div>
{# cas d'un nombre impair de video #}
{% if medias|length == iteration+1%}
<div class="col">
{# cas d'un nombre impair de video #}
{# {% if nbMedias == iteration+1 and iteration is divisible by(2)%}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
@@ -196,12 +198,15 @@
<div class="row m-t-10 m-b-10">
</div>
</div>
</div>
{% 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 is divisible by(2) or iteration==0 or medias|length == iteration+1%}
</div>
{% endif %}
</div>
{% 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%}
</div>
{% endif %}
{% set iteration = iteration+1 %} #}
{% else %}
{# {% set nbMedias = nbMedias-1%} #}
{% endif %}
{% endfor %}
+2 -4
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.2'
version: '2.7.5'
@@ -160,9 +160,7 @@ doctrine_mongodb:
liip_imagine :
resolvers :
default :
web_path:
web_root: %kernel.root_dir%/..'
cache_prefix: media/cache
web_path: ~
filter_sets :
cache : ~
profile_thumb :
@@ -403,7 +403,7 @@ class AnswerController extends Controller
if ($this->container->get( 'kernel' )->getEnvironment() == "dev") {
$contactMail = "dev@talentstube.com";
}
if($message->getVideo() == null){
// if($message->getVideo() == null){
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents Tube",
@@ -420,35 +420,35 @@ class AnswerController extends Controller
]
]
];
}else{
$thumbnailsArray = $message->getVideo()->getThumbnails();
$img="";
if($thumbnailsArray){
if($thumbnailsArray[0]){
if($thumbnailsArray[0]['sizes']){
$img = $thumbnailsArray[0]['sizes'][4]['link'];
}
}
}
// }else{
// $thumbnailsArray = $message->getVideo()->getThumbnails();
// $img="";
// if($thumbnailsArray){
// if($thumbnailsArray[0]){
// if($thumbnailsArray[0]['sizes']){
// $img = $thumbnailsArray[0]['sizes'][4]['link'];
// }
// }
// }
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents tube",
'Subject' => "Découvrez la réponse de lentreprise pour votre candidature.",
'MJ-TemplateID' =>2196010 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
[
'Email' => $contactMail,
'Vars' => [
'prenom' => $answer->getUser()->getFirstname(),
'entreprise' => $this->getUser()->getCompany()->getBrandName(),
'imgReponseEntreprise' => $img,
]
]
]
];
}
// $body = [
// 'FromEmail' => "noreply@talentstube.io",
// 'FromName' => "Talents tube",
// 'Subject' => "Découvrez la réponse de lentreprise pour votre candidature.",
// 'MJ-TemplateID' =>2196010 ,
// 'MJ-TemplateLanguage' => true,
// 'Recipients' => [
// [
// 'Email' => $contactMail,
// 'Vars' => [
// 'prenom' => $answer->getUser()->getFirstname(),
// 'entreprise' => $this->getUser()->getCompany()->getBrandName(),
// 'imgReponseEntreprise' => $img,
// ]
// ]
// ]
// ];
// }
@@ -534,27 +534,259 @@ 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)
{
// 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
$companyId = $this->getUser()->getCompany()->getId();
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 = $companyId;
// 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 'video':
{
if ($answer->getVideo()->getThumbnails()){
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
}else{
$img= "";
}
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$responseTemp = "<a href='".$link."'><img src='".$img."'></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->getCompany()){
if($answer->getAd()){
$responseTemp = $answer->getAd()->getTitle();
}else{
$responseTemp = "Candidature spontanée";
}
}else{
$responseTemp = "ND";
}
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")
*/
@@ -68,8 +68,9 @@ class SecurityController extends FOSRestController
$email = htmlspecialchars($request->get('email'));
$password = htmlspecialchars($request->get('password'));
$adId = htmlspecialchars($request->get('adId'));
if (!isset($firstname) || !isset($lastname) || !isset($email) || !isset($password))
$phoneTalent = htmlspecialchars($request->get('phone'));
if (!isset($firstname) || !isset($lastname) || !isset($email) || !isset($password) )
$status = array('status' => "failure", 'message' => 'empty parameters');
else {
$userManager = $this->get('fos_user.user_manager');
@@ -89,7 +90,8 @@ class SecurityController extends FOSRestController
$user->setEnabled(false);
$user->setRoles(array('ROLE_TALENT'));
$tokengen = $this->get('fos_user.util.token_generator');
$user->setConfirmationToken($tokengen->generateToken());
@@ -101,11 +103,27 @@ class SecurityController extends FOSRestController
$company->setAlias($alias);
$company->setType("TALENT");
$company->setDescription("Annonce consultée : ".$adId);
$company->setWebsite("");
$company->setLinkedin("");
$company->setTwitter("");
$company->setTitleTalent("");
$extra['twitter']=" ";
$extra['linkedin']=" ";
$extra['phoneTalent']=$phoneTalent;
$extra['titleTalent']=" ";
$extra['situationTalent']=" ";
$extra['descriptionTalent']=" ";
$company->setExtra($extra);
$user->setCompany($company);
$userManager->updateUser($user);
}
// $userManager->updatePassword($user);//pas besoin car fait dans updateUser , vraiment bizarre....
$status = array('status' => "success", 'confirmationToken' => $user->getConfirmationToken(), 'email' => $user->getEmail(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'adId' => $adId);
$status = array('status' => "success", 'confirmationToken' => $user->getConfirmationToken(), 'email' => $user->getEmail(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'phone' => $company->getPhoneTalent(), 'adId' => $adId);
}
}
return new JsonResponse($status);
@@ -124,6 +124,7 @@ class CompanyController extends Controller
'notice',
$this->get('translator')->trans('Le logo de votre entreprise a bien été modifié')
);
return $this->redirect($this->generateUrl('company_profile'));
}
@@ -411,20 +411,31 @@ class DefaultController extends Controller
if(isset($_SERVER['HTTP_REFERER'])) {
$previous = $_SERVER['HTTP_REFERER']." / ".$_SERVER['REQUEST_URI'];
}
//return $this->render('page_static/marque_employeur.html.twig');
//return $this->render('page_static/offre_emploi.html.twig');
//return $this->render('page_static/accompagnement_video_company.html.twig');
//return $this->render('page_static/reussir_video_company.html.twig');
//return $this->render('page_static/accompagnement_video_talent.html.twig');
//return $this->render('page_static/cvvideo.html.twig');
//return $this->render('page_static/reussir_video_talent.html.twig');
//return $this->render('page_static/video_territoire.html.twig');
return $this->render('landing/offreEmploiOriginal.html.twig', [
'previous' => $previous,
]);
}
/**
* @Route("/metier-en-tension", name="metier_en_tension")
*/
public function metierTensionAction()
{
return $this->render('landing/metierTension.html.twig', [
]);
}
/**
* @Route("/recrutement-aide-a-domicile", name="recrutement_aide_a_domicile")
*/
public function aideADomicileAction()
{
return $this->render('landing/aideADomicile.html.twig', [
]);
}
/**
* @param Request $request
@@ -37,7 +37,7 @@ class MediaController extends Controller
{
$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);
@@ -114,9 +114,9 @@ class MediaController extends Controller
]);
}
public function convertKekab($string){
$search = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', "/");
$search = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', "/", "'");
//Préférez str_replace à strtr car strtr travaille directement sur les octets, ce qui pose problème en UTF-8
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', "s");
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', "", "");
$string = str_replace($search, $replace, $string);
$string = strtolower (str_replace(" ", "-", $string));
@@ -108,10 +108,10 @@ class Answer
/**
* @var string
*
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true)
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true, options={"default":"A_TRAITER"})
*
*/
private $statusReponse;
private $statusReponse ='A_TRAITER';
/**
* @var string
@@ -16,9 +16,12 @@ class NoteAjaxType extends AbstractType
->add('content', TextareaType::class, array(
'label' => 'Note',
'required' => true,
'attr' => array(
'class' => 'form-control',
'rows' =>"5"
'rows' =>"5",
'style' =>"min-height:4em;",
'placeholder' => 'Ce commentaire sera visible uniquement par vous et les autres utilisateurs de lespace recruteur.',
)
));
}
@@ -62,6 +62,19 @@ class AdRepository extends AbstractRepository
->andWhere('a.id = '.$adId);
return $qb
->getQuery()
->getResult();
}
public function getAdByCompany($companyId){
$qb = $this
->createQueryBuilder('a')
->select('a')
->leftjoin('a.company', 'comp')
->where('comp.id = '.$companyId);
return $qb
->getQuery()
->getResult();
@@ -201,20 +201,20 @@ class AnswerRepository extends AbstractRepository
// ->join('department.region', 'region');
// Other conditions than the ones sent by the Ajax call ?
if ($otherConditions === null)
if ($otherConditions )
{
// No
// However, add a "always true" condition to keep an uniform treatment in all cases
$query->where("1=1");
$countQuery->where("1=1");
}
else
{
// Add condition
$query->where($otherConditions);
$countQuery->where($otherConditions);
$query->where("company.id=".$otherConditions);
$countQuery->where("company.id=".$otherConditions);
$query->andWhere("a.status='SENDED'");
$countQuery->andWhere("a.status='SENDED'");
}else{
}
// Fields Search
foreach ($columns as $key => $column)
{
@@ -231,25 +231,54 @@ class AnswerRepository extends AbstractRepository
{
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(user.lastname) LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(user.lastname) LIKE lower(\'%'.$searchItem.'%\')';
break;
}
case 'nomPrenom':
{
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(user.lastname) LIKE lower(\'%'.$searchItem.'%\') or lower(user.firstname) LIKE lower(\'%'.$searchItem.'%\')';
break;
}
case 'offre':
{
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
if($searchItem=="spontaneous"){
$searchQuery = 'lower(ad.title) is null';
}else{
$searchQuery = 'lower(ad.title) LIKE lower(\'%'.$searchItem.'%\')';
}
break;
}
case 'status':
{
// $searchQuery = 'town.postalCode LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(a.status) LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(a.status) LIKE lower(\'%'.$searchItem.'%\')';
break;
}
case 'statusReponse':
{
// $searchQuery = 'town.postalCode LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(a.statusReponse) LIKE lower(\'%'.$searchItem.'%\')';
if($searchItem=="A_TRAITER"){
$searchQuery .= ' or a.statusReponse is null';
}
break;
}
case 'prenom':
{
// $searchQuery = 'department.name LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(user.firstname) LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(user.firstname) LIKE lower(\'%'.$searchItem.'%\')';
break;
}
case 'entreprise':
{
// $searchQuery = 'department.name LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(company.brandName) LIKE \'%'.$searchItem.'%\' or lower(ad.title) LIKE \'%'.$searchItem.'%\'';
$searchQuery = 'lower(company.brandName) LIKE lower(\'%'.$searchItem.'%\') or lower(ad.title) LIKE lower(\'%'.$searchItem.'%\')';
break;
}
case 'ad_id':
@@ -178,6 +178,11 @@ Créer une offre d'emploi vidéo / Gérer mes offres d'emploi / Gérer mes candi
box-shadow: 0px 2px 5px rgb(30 35 39 / 5%);
transition: background-color 0.3s;
transition: box-shadow 0.5s;
color: #fff !important;
}
.card-action a {
color: #fff !important;
}
.card-action:hover {
@@ -250,4 +255,4 @@ Détails d'une candidature
border:2px dashed rgba(33, 33, 33, 0.14);
border-radius:5px;
padding:20px;
}
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+10 -1
View File
@@ -5,7 +5,16 @@
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!-- created with Free Online Sitemap Generator www.xml-sitemaps.com -->
<url>
<loc>https://recruteur.talentstube.com/recrutement-aide-a-domicile</loc>
<lastmod>2021-03-09T16:05:39+00:00</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://recruteur.talentstube.com/metier-en-tension</loc>
<lastmod>2021-03-09T16:05:39+00:00</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://recruteur.talentstube.com/offre-emploi-originale</loc>
<lastmod>2021-02-10T16:05:39+00:00</lastmod>