Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 078a62e588 | |||
| 73e709c6c9 | |||
| ec71b87747 | |||
| a5636bf2b5 | |||
| c0e25f5d10 | |||
| fc860c32ad | |||
| 69522b4836 | |||
| 1aea17557e | |||
| ab74dae813 | |||
| c46f0c29a3 | |||
| 5b1d296817 | |||
| 564ac42b40 | |||
| 3dc5d247f4 | |||
| c0e94bcf7a | |||
| d9bb152863 | |||
| 1e52338d37 | |||
| b701d07741 | |||
| bcd93dee2c | |||
| 7a54bbe673 | |||
| 47043ac6bc | |||
| f094ee739e | |||
| bad5ad0d1c | |||
| 8701a4beb9 |
@@ -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>
|
||||
|
||||
+219
-177
@@ -1,30 +1,35 @@
|
||||
{% extends 'admin/base_admin.html.twig' %}
|
||||
{% block js %}
|
||||
{# <link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
|
||||
{# <link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.4.1/css/buttons.dataTables.min.css"> #}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
|
||||
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
|
||||
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
|
||||
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
|
||||
|
||||
|
||||
|
||||
{# <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script>
|
||||
{# <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
@@ -35,13 +40,13 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block contentHeader %}
|
||||
<h1>
|
||||
Liste des Candidatures
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
|
||||
<li class="active">Annonces</li>
|
||||
</ol>
|
||||
<h1>
|
||||
Liste des Candidatures
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
|
||||
<li class="active">Annonces</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
@@ -50,51 +55,54 @@
|
||||
.dataTables_filter {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<table width="100%" class="table " style="background-color: #3c8dbc">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">RECHERCHE</th>
|
||||
|
||||
</tr>
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<table width="100%" class="table " style="background-color: #3c8dbc">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">RECHERCHE</th>
|
||||
|
||||
</thead>
|
||||
<tr>
|
||||
<th width="4%"><input id='input1' type='text' class='form-control' placeholder='par id' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
|
||||
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='par nom' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
<th width="11%"><input id='input4' type='text' class='form-control' placeholder='par prénom' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
<th width="25%"><input id='input5' type='text' class='form-control' placeholder='par entreprise / offre' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
|
||||
<th width="15%">
|
||||
<select id='input7'>
|
||||
<option value="sended">Envoyé</option>
|
||||
<option value="draft">Brouillon</option>
|
||||
</select>
|
||||
</th>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<table id="towns_dt_table" width="100%" class="table table-hover table-bordered">
|
||||
{# Add a tfoot which will actually be used to place the individual search boxes #}
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th width="4%">id</th>
|
||||
<th width="6%">Date d'envoi</th>
|
||||
<th width="11%">Nom</th>
|
||||
<th width="11%">Prénom</th>
|
||||
<th width="25%">Annonce / entreprise</th>
|
||||
<th width="28%">Vidéo</th>
|
||||
<th width="15%">Statut</th>
|
||||
<th width="10%">Actions</th>
|
||||
</tr>
|
||||
{# <tr>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tr>
|
||||
<th width="4%"><input id='input1' type='text' class='form-control' placeholder='par id'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
|
||||
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='par nom'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
<th width="11%"><input id='input4' type='text' class='form-control' placeholder='par prénom'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
<th width="25%"><input id='input5' type='text' class='form-control' placeholder='par entreprise / offre'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
|
||||
<th width="15%">
|
||||
<select id='input7'>
|
||||
<option value="sended">Tous les statuts</option>
|
||||
<option value="sended">Envoyé</option>
|
||||
<option value="draft">Brouillon</option>
|
||||
</select>
|
||||
</th>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
<table id="towns_dt_table" width="100%" class="table table-hover table-bordered">
|
||||
{# Add a tfoot which will actually be used to place the individual search boxes #}
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th width="4%">id</th>
|
||||
<th width="6%">Date d'envoi</th>
|
||||
<th width="11%">Nom</th>
|
||||
<th width="11%">Prénom</th>
|
||||
<th width="25%">Annonce / entreprise</th>
|
||||
<th width="28%">Vidéo</th>
|
||||
<th width="15%">Statut</th>
|
||||
<th width="10%">Actions</th>
|
||||
</tr>
|
||||
{# <tr>
|
||||
<th><input id='input1' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
<th></th>
|
||||
<th><input id='input3' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
@@ -102,25 +110,25 @@
|
||||
<th></th>
|
||||
<th><input id='input5' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/></th>
|
||||
</tr> #}
|
||||
</tfoot>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Date d'envoi</th>
|
||||
<th>Nom</th>
|
||||
<th>Prénom</th>
|
||||
<th>Annonce / entreprise</th>
|
||||
<th>Vidéo</th>
|
||||
<th>Statut</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</tfoot>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Date d'envoi</th>
|
||||
<th>Nom</th>
|
||||
<th>Prénom</th>
|
||||
<th>Annonce / entreprise</th>
|
||||
<th>Vidéo</th>
|
||||
<th>Statut</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
|
||||
|
||||
{# <table id="answer_list_table" class="table table-hover table-bordered">
|
||||
{# <table id="answer_list_table" class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-xs-2">Date d'envoi</th>
|
||||
@@ -169,118 +177,152 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table> #}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
// Add a text input to each footer cell
|
||||
var pos = 1;
|
||||
$('#towns_dt_table tfoot th').each( function () {
|
||||
var title = $(this).text();
|
||||
//$(this).html( "<input id='input" + pos + "' type='text' class='form-control' placeholder='' style='font-family:Arial, FontAwesome; width:100%'/>" );
|
||||
// Add a text input to each footer cell
|
||||
|
||||
pos ++;
|
||||
});
|
||||
|
||||
|
||||
|
||||
var table = $('#towns_dt_table').DataTable({
|
||||
|
||||
|
||||
buttons: [
|
||||
'copy', 'csv', 'excel', 'pdf', 'print'
|
||||
],
|
||||
|
||||
"columnDefs": [
|
||||
{ "name": "ad_id", "targets": 0 , "searchable": true, "orderable": true},
|
||||
{ "name": "date_envoi", "targets": 1 , "searchable": true, "orderable": true},
|
||||
{ "name": "nom", "targets": 2 , "searchable": true, "orderable": true},
|
||||
{ "name": "prenom", "targets": 3 , "searchable": true, "orderable": true},
|
||||
{ "name": "entreprise", "targets": 4, "searchable": true, "orderable": true },
|
||||
{ "name": "video", "targets": 5 },
|
||||
{ "name": "status", "targets": 6 , "searchable": true, "orderable": true},
|
||||
{ "name": "actions", "targets": 7 },
|
||||
],
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
||||
"ajax": {
|
||||
"url": '{{ path('alimenterCandidatures') }}',
|
||||
"type": 'POST'
|
||||
|
||||
var table = $('#towns_dt_table').DataTable({
|
||||
|
||||
|
||||
buttons: [
|
||||
'copy', 'csv', 'excel', 'pdf', 'print'
|
||||
],
|
||||
|
||||
"columnDefs": [{
|
||||
"name": "ad_id",
|
||||
"targets": 0,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
"paging" : true,
|
||||
"info" : true,
|
||||
"searching": true,
|
||||
"bFilter":true,
|
||||
"responsive": true,
|
||||
"pageLength": 10,
|
||||
"order": [[0, 'desc']],
|
||||
"language": {
|
||||
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
|
||||
{
|
||||
"name": "date_envoi",
|
||||
"targets": 1,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
|
||||
});
|
||||
{
|
||||
"name": "nom",
|
||||
"targets": 2,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "prenom",
|
||||
"targets": 3,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "entreprise",
|
||||
"targets": 4,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"targets": 5
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"targets": 6,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "actions",
|
||||
"targets": 7
|
||||
},
|
||||
],
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
||||
|
||||
|
||||
// Apply the search
|
||||
pos = 1;
|
||||
table.columns().every( function () {
|
||||
var that = this;
|
||||
|
||||
$("#input"+pos).on( 'keyup change', function () {
|
||||
if ( that.search() !== this.value )
|
||||
{
|
||||
that
|
||||
.search( this.value )
|
||||
.draw();
|
||||
}
|
||||
});
|
||||
pos++;
|
||||
});
|
||||
|
||||
$('#towns_dt_table_filter').hide();
|
||||
|
||||
|
||||
|
||||
|
||||
"ajax": {
|
||||
"url": '{{ path('alimenterCandidatures') }}',
|
||||
"type": 'POST'
|
||||
},
|
||||
"paging": true,
|
||||
"info": true,
|
||||
"searching": true,
|
||||
"bFilter": true,
|
||||
"responsive": true,
|
||||
"pageLength": 10,
|
||||
"order": [
|
||||
[0, 'desc']
|
||||
],
|
||||
"language": {
|
||||
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
|
||||
},
|
||||
|
||||
});
|
||||
function changerStatut(value, id){
|
||||
var idAnswer = id;
|
||||
|
||||
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
|
||||
var select = $(this);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: route,
|
||||
dataType: "json",
|
||||
success: function (msg) {
|
||||
console.log("ok");
|
||||
$("#status_"+id).text(value);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
function verifierDelete(id){
|
||||
console.log(id);
|
||||
var r = confirm("Êtes vous sûr de supprimer cette candidature ?\nSupprimer cette candidature supprimera le média associé\n");
|
||||
if (r == true) {
|
||||
txt = "You pressed OK!";
|
||||
location.href = "/app_dev.php/admin/config/answer/"+id+"/delete";
|
||||
return true;
|
||||
} else {
|
||||
txt = "You pressed Cancel!";
|
||||
|
||||
|
||||
|
||||
// Apply the search
|
||||
pos = 1;
|
||||
table.columns().every(function () {
|
||||
var that = this;
|
||||
|
||||
$("#input" + pos).on('keyup change', function () {
|
||||
if (that.search() !== this.value) {
|
||||
that
|
||||
.search(this.value)
|
||||
.draw();
|
||||
}
|
||||
});
|
||||
pos++;
|
||||
});
|
||||
|
||||
$('#towns_dt_table_filter').hide();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
function changerStatut(value, id) {
|
||||
var idAnswer = id;
|
||||
|
||||
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
|
||||
var select = $(this);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: route,
|
||||
dataType: "json",
|
||||
success: function (msg) {
|
||||
console.log("ok");
|
||||
$("#status_" + id).text(value);
|
||||
|
||||
}
|
||||
console.log(txt);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function verifierDelete(id) {
|
||||
console.log(id);
|
||||
var r = confirm(
|
||||
"Êtes vous sûr de supprimer cette candidature ?\nSupprimer cette candidature supprimera le média associé\n"
|
||||
);
|
||||
if (r == true) {
|
||||
txt = "You pressed OK!";
|
||||
location.href = "/app_dev.php/admin/config/answer/" + id + "/delete";
|
||||
return true;
|
||||
} else {
|
||||
txt = "You pressed Cancel!";
|
||||
}
|
||||
</script>
|
||||
console.log(txt);
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
@@ -24,7 +24,7 @@
|
||||
{% block css %}
|
||||
|
||||
{% endblock %}
|
||||
<!--[if lt IE 9]>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
+104
@@ -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 -->
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
{% extends 'admin/base_admin.html.twig' %}
|
||||
|
||||
|
||||
{% block contentHeader %}
|
||||
<h1>
|
||||
Pages
|
||||
<small>Liste</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
|
||||
<li class="active">Batch candidatures</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<a href="{{ path('admin_batch_candidature_init') }}">
|
||||
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton">
|
||||
<span>Lancer le batch</span>
|
||||
|
||||
</button>
|
||||
</a>
|
||||
<b>A NE LANCER QU'UNE FOIS</b>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,34 @@
|
||||
{% extends 'admin/base_admin.html.twig' %}
|
||||
|
||||
|
||||
{% block contentHeader %}
|
||||
<h1>
|
||||
Pages
|
||||
<small>Liste</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
|
||||
<li class="active">Batch sur les messages</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<a href="{{ path('admin_batch_message_comment') }}">
|
||||
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton">
|
||||
<span>Lancer le batch</span>
|
||||
|
||||
</button>
|
||||
</a>
|
||||
<b>A NE LANCER QU'UNE FOIS</b>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -133,7 +133,19 @@
|
||||
</small>
|
||||
</li>
|
||||
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li class="">
|
||||
<a href="/logout">
|
||||
<span class="principal">Se déconnecter</span>
|
||||
</a>
|
||||
|
||||
<span class="icon-thumbnail">
|
||||
<span class="material-icons">
|
||||
logout
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -73,6 +73,18 @@
|
||||
<i class="fa fa-file-text-o" aria-hidden="true"></i><span>Pages</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="treeview">
|
||||
<a href="#"><i class="fa fa-file-video-o"></i> <span>Batchs</span>
|
||||
<span class="pull-right-container">
|
||||
<i class="fa fa-angle-left pull-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<ul class="treeview-menu">
|
||||
<li><a href="{{ path('admin_batch_message') }}">Basculer les anciens messages</a></li>
|
||||
<li><a href="{{ path('admin_batch_candidatures') }}">Statuts des anciennes candidatures</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li class="treeview">
|
||||
<a href="#"><i class="fa fa-users" aria-hidden="true"></i> <span>Utilisateurs</span>
|
||||
<span class="pull-right-container">
|
||||
|
||||
@@ -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 d’offres d’emploi 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 d’emploi originale vous-même" />
|
||||
<meta property="og:description"
|
||||
content="Créez des vidéos d’offres d’emploi 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>
|
||||
@@ -1,6 +1,29 @@
|
||||
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
|
||||
{% extends 'admin/base_dashboard.html.twig' %}
|
||||
{% extends 'admin/base_dashboard_candidatures.html.twig' %}
|
||||
{% block javascriptSupl %}
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
|
||||
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
|
||||
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block dashContent %}
|
||||
<!-- START JUMBOTRON -->
|
||||
@@ -55,8 +78,10 @@ Lien : https://recruteur.talentstube.com/partage/{{ ad.id }}
|
||||
Mot de passe : ######
|
||||
Au plaisir d’échanger avec vous,
|
||||
</textarea>
|
||||
<br/>
|
||||
<p>* Les données collectées dans les candidatures vidéo sont strictement confidentielles et entrent dans le champ de la protection des données personnelles d’un candidat. Les vidéos peuvent être partagées uniquement dans le cadre du processus de recrutement.
|
||||
<br />
|
||||
<p>* Les données collectées dans les candidatures vidéo sont strictement confidentielles et entrent dans
|
||||
le champ de la protection des données personnelles d’un candidat. Les vidéos peuvent être partagées
|
||||
uniquement dans le cadre du processus de recrutement.
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@@ -82,12 +107,13 @@ Au plaisir d’échanger avec vous,
|
||||
<h5> </h5>
|
||||
<p>En cliquant sur confirmer, cette candidature ne sera plus accessible dans l’espace visiteurs.</p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="hidden" id="caseRecocher">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="annulerCheckbox()">Annuler</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Confirmer</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"
|
||||
onClick="annulerCheckbox()">Annuler</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Confirmer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -103,8 +129,173 @@ Au plaisir d’échanger avec vous,
|
||||
</div>
|
||||
</div> #}
|
||||
|
||||
<div class="col-xl-12">
|
||||
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
|
||||
<div class="row profil-candidature">
|
||||
<div class="col-xl-6 col-md-12 p-t-10">
|
||||
<h5>{{ ad.title }}</h5>
|
||||
<h6>Publiée le {{ ad.publishedAt|date("d/m/Y") }}</h6>
|
||||
</div>
|
||||
<div class="col-xl-6 col-md-12 p-t-20 text-right">
|
||||
<a href="#" class="" data-toggle="tooltip"
|
||||
title="Cochez une ou plusieurs candidatures avant de pouvoir les partager.">
|
||||
<button type="button" class="btn btn-primary m-b-10 btn-lg " disabled data-toggle="modal"
|
||||
data-target="#partageModal" id="partageCandidats">
|
||||
Partager les
|
||||
candidatures
|
||||
</button>
|
||||
</a>
|
||||
<!--<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
|
||||
<span class="material-icons fs-16 m-r-5">delete</span>
|
||||
<span class="">Clôturer</span>
|
||||
</button>-->
|
||||
<a href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}">
|
||||
<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
|
||||
<span class="material-icons fs-16 m-r-5">create</span>
|
||||
<span class="">Éditer l'offre</span>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<style type="text/css">
|
||||
/* Hide default search box */
|
||||
.dataTables_filter {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<div id="reponses" class="table-responsive m-t-20">
|
||||
<table width="100%" class="table " style="">
|
||||
<tr>
|
||||
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='Recherche par nom'
|
||||
style='font-family:Arial, FontAwesome; width:100%' />
|
||||
</th>
|
||||
|
||||
<div class="row bg-bordered p-20">
|
||||
<th width="11%"><input id='input4' type='text' class='form-control'
|
||||
placeholder='Recherche par prénom' style='font-family:Arial, FontAwesome; width:100%' />
|
||||
</th>
|
||||
<th width="25%">
|
||||
<select id='input8' class='form-control'>
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="A_TRAITER">À traiter</option>
|
||||
<option value="CONTACTE">Contacté</option>
|
||||
<option value="ENTRETIEN">Entretien programmé</option>
|
||||
<option value="REFUSE">Refusé</option>
|
||||
<option value="EMBAUCHE">Embauché</option>
|
||||
</select>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="candidatures_dt_table" width="100%" class="table table-hover ">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="4%"></th>
|
||||
<th width="4%">Vidéo</th>
|
||||
<th width="6%">Nom</th>
|
||||
<th width="6%">Prénom</th>
|
||||
<th width="11%">Date de reception</th>
|
||||
<th width="11%">Intitulé de l'offre</th>
|
||||
<th width="21%">Localisation</th>
|
||||
<th width="15%">Statut</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for answer in answers %}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" id="answer_{{answer.id}}" name="answers" class="nav-trigger"
|
||||
onChange="verifierIsChecked({{answer.id}})" {% if answer.isShared %} checked
|
||||
{% endif %} />
|
||||
<label for="nav-trigger" class="navicon-button x">
|
||||
<div class="navicon"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
{% if answer.video.thumbnails.0 is defined %}
|
||||
{% set img = answer.video.thumbnails.0.sizes.1.link %}
|
||||
{% else %}
|
||||
{% set img = " " %}
|
||||
{% endif %}
|
||||
<img src="{{ img }}">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
|
||||
{{ answer.user.firstname }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ answer.sendTime()|date('d/m/Y') }}
|
||||
</td>
|
||||
<td>
|
||||
{% if answer.user.getGeoloc %}
|
||||
{% for adress in answer.user.getGeoloc %}
|
||||
|
||||
{{ adress["locality"] }}, {{ adress["postal_code"] }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
Non renseignée
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
|
||||
<td>
|
||||
{% if answer.statusReponse =="EMBAUCHE" %}
|
||||
<span class="label label-success">Embauché</span>
|
||||
{% elseif answer.statusReponse =="REFUSE"%}
|
||||
<span class="label label-important">Refusé</span>
|
||||
{% elseif answer.statusReponse =="ENTRETIEN"%}
|
||||
<span class="label label-warning">Entretien programmé</span>
|
||||
{% elseif answer.statusReponse =="A_TRAITER"%}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% elseif answer.statusReponse =="CONTACTE"%}
|
||||
<span class="label">Contacté</span>
|
||||
{% else %}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
|
||||
<td class="v-align-middle">
|
||||
<a title="{{ad.title}}" href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
<i class="pg-icon">eye</i>
|
||||
</a>
|
||||
{# <a href="#" class="note-action c-pointer" data-func="add"
|
||||
data-answer="{{ answer.id }}">
|
||||
<i class="pg-icon">note</i>
|
||||
</a> #}
|
||||
{# {% for note in answer.notes %}
|
||||
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
|
||||
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
|
||||
<i class="pg-icon">comment</i>
|
||||
</a>
|
||||
{% endfor %} #}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if answers|length == 0 %}
|
||||
<tr>
|
||||
<th colspan="7" class="text-center">Aucune candidature pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{# <div class="row bg-bordered p-20">
|
||||
|
||||
|
||||
|
||||
@@ -213,7 +404,7 @@ Au plaisir d’échanger avec vous,
|
||||
</div>
|
||||
<!-- END CONTAINER FLUID -->
|
||||
|
||||
</div>
|
||||
</div> #}
|
||||
|
||||
<div id="note-modal"></div>
|
||||
|
||||
@@ -223,23 +414,23 @@ Au plaisir d’échanger avec vous,
|
||||
{% block javascriptsEnd %}
|
||||
<!-- BEGIN VENDOR JS -->
|
||||
|
||||
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
|
||||
|
||||
|
||||
<!-- END PAGE LEVEL JS -->
|
||||
<!-- END PAGE LEVEL JS -->
|
||||
<script type="text/javascript">
|
||||
function parcourirAllCheckbox() {
|
||||
var allCheckboxes = $("input[type=checkbox]");
|
||||
var allCheckboxes = $("input[type=checkbox]");
|
||||
var auMoinUneCheckboxCoche = false;
|
||||
// Put all the unique name attributes in an array.
|
||||
var checkboxCocheId= null;
|
||||
var checkboxCocheId = null;
|
||||
allCheckboxes.each(function () {
|
||||
var isChecked = $(this).prop('checked');
|
||||
if (isChecked == true) {
|
||||
auMoinUneCheckboxCoche = true;
|
||||
|
||||
var tabId =$(this).prop('id').split("_");
|
||||
|
||||
var tabId = $(this).prop('id').split("_");
|
||||
checkboxCocheId = tabId[1];
|
||||
console.log(checkboxCocheId);
|
||||
}
|
||||
@@ -257,19 +448,19 @@ Au plaisir d’échanger avec vous,
|
||||
|
||||
}
|
||||
|
||||
function annulerCheckbox(){
|
||||
function annulerCheckbox() {
|
||||
//recuprer l'id de la checkbox
|
||||
var checkboxId = $("#caseRecocher").val();
|
||||
//$("#answer_" + checkboxId).prop(checked, true);
|
||||
document.getElementById("answer_" + checkboxId).checked = true;
|
||||
console.log("annuler action checkbox "+checkboxId);
|
||||
console.log("annuler action checkbox " + checkboxId);
|
||||
verifierIsChecked(checkboxId);
|
||||
}
|
||||
|
||||
function verifierIsChecked(id) {
|
||||
var auMoinUneCheckboxCoche = false;
|
||||
parcourirAllCheckbox();
|
||||
if($("#answer_" + id).prop('checked')==false){
|
||||
if ($("#answer_" + id).prop('checked') == false) {
|
||||
console.log("cette checkbox était cochée avant");
|
||||
//$('#decocheModal').modal('open');
|
||||
$('#decocheModal').modal('show');
|
||||
@@ -300,7 +491,7 @@ Au plaisir d’échanger avec vous,
|
||||
const obj = JSON.parse(data);
|
||||
console.log(obj.code);
|
||||
var texteMail = $("#codeShare").val();
|
||||
$("#codeShare").val(texteMail.replace('######', obj.code));
|
||||
$("#codeShare").val(texteMail.replace('######', obj.code));
|
||||
})
|
||||
|
||||
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
|
||||
@@ -330,11 +521,142 @@ Au plaisir d’échanger avec vous,
|
||||
});
|
||||
$('#partageModal').modal('hide');
|
||||
$('#decocheModal').modal('hide');
|
||||
}
|
||||
);
|
||||
$(window).load(function() {
|
||||
});
|
||||
$(window).load(function () {
|
||||
$('#partageModal').modal('hide');
|
||||
$('#decocheModal').modal('hide');
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
// Add a text input to each footer cell
|
||||
var pos = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
var table = $('#candidatures_dt_table').DataTable({
|
||||
|
||||
|
||||
|
||||
"columnDefs": [
|
||||
{
|
||||
"name": "partage",
|
||||
"targets": 0,
|
||||
"searchable": false,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "video",
|
||||
"targets": 1,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "nom",
|
||||
"targets": 2,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "prenom",
|
||||
"targets": 3,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "dateReception",
|
||||
"targets": 4,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "offre",
|
||||
"targets": 5,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "localisation",
|
||||
"targets": 6,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "statusReponse",
|
||||
"targets": 7,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
],
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
||||
"ajax": {
|
||||
"url": "{{ path('alimenterCandidaturesAd',{'id':ad.id}) }}",
|
||||
"type": 'POST',
|
||||
},
|
||||
"paging": true,
|
||||
"info": true,
|
||||
"searching": true,
|
||||
"bFilter": true,
|
||||
"responsive": true,
|
||||
"pageLength": 100,
|
||||
"order": [
|
||||
[0, 'desc']
|
||||
],
|
||||
"language": {
|
||||
"sProcessing": "En cours de chargement...",
|
||||
"sSearch": "Rechercher :",
|
||||
"sLengthMenu": "Afficher _MENU_ candidatures",
|
||||
"sInfo": "Candidature de _START_ à _END_ sur _TOTAL_ candidatures",
|
||||
"sInfoEmpty": "Candidature 0 à 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écédent",
|
||||
"sNext": "Suivant",
|
||||
"sLast": "Dernier"
|
||||
},
|
||||
"oAria": {
|
||||
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
|
||||
"sSortDescending": ": activer pour trier la colonne par ordre dé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 %}
|
||||
@@ -326,20 +326,7 @@
|
||||
{{ form_end(form) }}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane slide-left padding-20 sm-no-padding disabled" id="tab2">
|
||||
<div class="row row-same-height">
|
||||
<div class="col-md-5 b-r b-dashed b-grey ">
|
||||
<div class="padding-30 sm-padding-5 sm-m-t-15 m-t-50">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<div class="padding-30 sm-padding-5">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -407,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 + ",";
|
||||
@@ -421,6 +410,7 @@
|
||||
}
|
||||
|
||||
}).get();
|
||||
console.log(competences);
|
||||
// on renseigne le champ ad_competences
|
||||
$("#ad_competences").val(competences);
|
||||
//Gestion des erreurs si aucune compétence
|
||||
@@ -532,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("'", ",");
|
||||
return '<div onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
|
||||
chaine +
|
||||
'\')" data-toggle="modal" data-target="#competencesModal" id="competences"><a href="#" >' +
|
||||
@@ -607,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();
|
||||
}
|
||||
@@ -637,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_" +
|
||||
|
||||
@@ -37,7 +37,30 @@
|
||||
<!-- END JUMBOTRON -->
|
||||
|
||||
<!-- MODALS-->
|
||||
<!-- Modal 0 -->
|
||||
<div class="modal fade in bd-example-modal-lg" id="popupSubmitModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="popupSubmitModalLabel" aria-hidden="false" data-show="false">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="popupSubmitModalLabel">Votre offre d’emploi vidéo est en cours de validation par l'équipe Talents Tube</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<p>Vous recevrez un e-mail lorsque votre offre d’emploi sera publiée sur la plateforme.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="submitFormAd()">Fermer</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal 1 -->
|
||||
<div class="modal fade bd-example-modal-lg" id="competencesModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="competencesModalLabel" aria-hidden="false" data-show="false">
|
||||
@@ -308,15 +331,21 @@
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<button aria-label="" type="submit"
|
||||
<button type="button" class="btn btn-lg btn-primary btn-cons btn-animated from-left" data-toggle="modal"
|
||||
data-target="#popupSubmitModal" id="saveAdButton">
|
||||
<span>Suivant</span>
|
||||
<span class="hidden-block">
|
||||
<i class="material-icons tab-icon">videocam</i>
|
||||
</span>
|
||||
</button>
|
||||
{# <button aria-label="" type="submit"
|
||||
class="btn btn-lg btn-primary btn-cons btn-animated from-left" id="saveAdButton"
|
||||
disabled="">
|
||||
<span>Suivant</span>
|
||||
<span class="hidden-block">
|
||||
<i class="material-icons tab-icon">videocam</i>
|
||||
</span>
|
||||
</button>
|
||||
</button> #}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -324,20 +353,7 @@
|
||||
{{ form_end(form) }}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane slide-left padding-20 sm-no-padding disabled" id="tab2">
|
||||
<div class="row row-same-height">
|
||||
<div class="col-md-5 b-r b-dashed b-grey ">
|
||||
<div class="padding-30 sm-padding-5 sm-m-t-15 m-t-50">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<div class="padding-30 sm-padding-5">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -718,5 +734,10 @@
|
||||
// on génere le json a chaque fois
|
||||
genererJson();
|
||||
}
|
||||
|
||||
//function appelée lors de la confirmation de popup
|
||||
function submitFormAd(){
|
||||
$('form[name="ad_soft"]').submit();
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -8,164 +8,264 @@
|
||||
<li class="breadcrumb-item active">Offres d'emploi</li>
|
||||
</ol>
|
||||
<!-- END BREADCRUMB -->
|
||||
<div class="row">
|
||||
<div class="col-xl-12 col-lg-12 ">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<a class="btn-square" target="_self" href="{{ path('company_ad_create') }}">
|
||||
<button aria-label=""
|
||||
class="btn btn-primary btn-cons">{{ 'ad.company.add.label'|trans }}</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END JUMBOTRON -->
|
||||
|
||||
|
||||
<!-- Début modifications Corentin -->
|
||||
<div class="col-xl-12">
|
||||
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
|
||||
<div class="row ">
|
||||
<div class="col-xl-12 col-md-12 p-t-20 text-right">
|
||||
<a class="btn-square" target="_self" href="{{ path('company_ad_create') }}">
|
||||
<button type="button" aria-label="" class="btn btn-primary btn-lg m-b-10">
|
||||
<span class="material-icons fs-16 m-r-5">movie</span>
|
||||
<span class="">Créer une offre d'emploi vidéo</span>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="reponses" class="table-responsive m-t-20">
|
||||
<table class="table table-hover" id="basicTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan=4 class="colonne1 bold">Gestion des offres</th>
|
||||
<th colspan=5 class="colonne2 bold">Gestion des candidatures</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="colonne1" style="width:25%;">Intitulé du poste</th>
|
||||
<th class="colonne1" style="width:15%;">Statut</th>
|
||||
<th class="colonne1" style="width:10%;">Vues de l'offre</th>
|
||||
<th class="colonne1" style="width:10%;">Actions</th>
|
||||
<th class="colonne2" style="width:8%;">À traiter</th>
|
||||
<th class="colonne2" style="width:8%;">Contacté</th>
|
||||
<th class="colonne2" style="width:8%;">Refusé</th>
|
||||
<th class="colonne2" style="width:8%;">Entretien programmé</th>
|
||||
<th class="colonne2" style="width:8%;">Embauché</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ad in ads %}
|
||||
<tr>
|
||||
<td>
|
||||
<h6>
|
||||
{% if ad.countAnswers > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
{{ ad.title }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ ad.title }}
|
||||
{% endif %}
|
||||
|
||||
</h6>
|
||||
<br>
|
||||
<span>{{ ad.location.gmap_address.formatted_address }}</span><br>
|
||||
<span>Date de création : {{ ad.publishedAt|date("d/m/Y") }}</span>
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.getStatus() == "DECLINED" %}
|
||||
<span class="">{{ ad.getStatus()|trans }}</span>
|
||||
{% elseif ad.getStatus() == "PUBLISHED" %}
|
||||
<span class="label label-success">Publiée</span>
|
||||
{% elseif ad.getStatus() == "CLOSED" %}
|
||||
<span class="label label-important">Clôturée</span>
|
||||
{% elseif ad.getStatus() == "DRAFT" %}
|
||||
<span class="label ">Brouillon</span>
|
||||
{% elseif ad.getStatus() == "TO_PUBLISH" %}
|
||||
<span class="label label-warning">En attente de validation</span>
|
||||
{% else %}
|
||||
<span class="">{{ ad.getStatus()|trans }}</span>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{% if arrayByAds is defined %}
|
||||
{{ arrayByAds[ad.id]["count"] }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Edit#}
|
||||
<a class=" td-none" href="{{ path('company_ad_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
{% else %}
|
||||
{#Soft Edit#}
|
||||
<a class=" td-none" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Video#}
|
||||
<a class="tooltipped td-none" href="{{ path('create_media', { 'id': ad.id }) }}">
|
||||
<i class="material-icons">
|
||||
videocam
|
||||
</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "PUBLISHED" %}
|
||||
{#Extension#}
|
||||
{# ENLEVE LE 01/09 #}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}"
|
||||
href="{{ path('company_ad_extension', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">calendar</i>
|
||||
</a> #}
|
||||
{#Force ending#}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.closed.label'|trans }}"
|
||||
href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
|
||||
<i class="material-icons">
|
||||
close
|
||||
</i>
|
||||
</a> #}
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "TO_PUBLISH" or ad.getStatus() == "VALIDATED" or ad.getStatus() == "CLOSED" or ad.getStatus() == "EXPIRED" %}
|
||||
{#Edit Dates#}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}"
|
||||
href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
|
||||
<i class="material-icons">
|
||||
close
|
||||
</i>
|
||||
</a> #}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.countAnswersParStatut.nbATraiter > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswersParStatut.nbATraiter }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.countAnswersParStatut.nbContacte > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswersParStatut.nbContacte }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.countAnswersParStatut.nbRefuse > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswersParStatut.nbRefuse }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.countAnswersParStatut.nbEntretien > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswersParStatut.nbEntretien }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if ad.countAnswersParStatut.nbEmbauche > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswersParStatut.nbEmbauche }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{# <tr>
|
||||
<td>
|
||||
<a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">
|
||||
<h6>Directeur de la communication (F/H)</h6>
|
||||
</a><br>
|
||||
<span>Nantes, 44000</span><br>
|
||||
<span>Date de création : 22/03/2021</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="label label-success">Publiée</span>
|
||||
</td>
|
||||
<td>578</td>
|
||||
<td>
|
||||
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
</td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">3</a></td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">4</a></td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">4</a></td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">8</a></td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">1</a></td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6>Responsable RRH (F/H)</h6><br>
|
||||
<span>Vannes, 56000</span><br>
|
||||
<span>Date de création : 01/02/2021</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="label label-warning">En attente de validation</span>
|
||||
</td>
|
||||
<td>0</td>
|
||||
<td>
|
||||
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">
|
||||
<h6>Alternant communication(F/H)</h6>
|
||||
</a><br>
|
||||
<span>Pontivy, 56000</span><br>
|
||||
<span>Date de création : 15/01/2021</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="label label-important">Clôturée</span>
|
||||
</td>
|
||||
|
||||
<td>1459</td>
|
||||
<td>
|
||||
<a class=" td-none" href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/124/editer" style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">12</a></td>
|
||||
<td>0</td>
|
||||
<td><a href="https://pp.talentstube.com/entreprise/me/espace-oe/annonce/116/reponse">1</a></td>
|
||||
</tr> #}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Fin modifications Corentin -->
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
<div class="card-title">Offres d'emploi
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover" id="basicTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
|
||||
Comman Practice Followed
|
||||
-->
|
||||
|
||||
<th style="width:20%">{{ 'ad.company.list.title'|trans }}</th>
|
||||
<th style="width:20%">{{ 'ad.company.list.answers'|trans }}</th>
|
||||
<th style="width:20%">{{ 'ad.company.list.views'|trans }}</th>
|
||||
<th style="width:20%">{{ 'ad.company.list.status'|trans }}</th>
|
||||
<th style="width:20%">{{ 'ad.company.list.actions'|trans }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% for ad in ads %}
|
||||
<tr>
|
||||
|
||||
<td class="v-align-middle ">
|
||||
{% if ad.countAnswers > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
{{ ad.title }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ ad.title }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if ad.countAnswers > 0 %}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':ad.id}) }}">
|
||||
<i class="fa fa-eye"></i> {{ ad.countAnswers }}
|
||||
</a>
|
||||
{% else %}
|
||||
0
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if arrayByAds is defined %}
|
||||
{{ arrayByAds[ad.id]["count"] }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if ad.getStatus() == "DECLINED" %}
|
||||
<div class="">
|
||||
<span class="">{{ ad.getStatus()|trans }}</span>
|
||||
<i class="c-pointer fa fa-info-circle color-red" aria-hidden="true"></i>
|
||||
</div>
|
||||
{% else %}
|
||||
<span class="">{{ ad.getStatus()|trans }}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Edit#}
|
||||
<a class=" td-none" href="{{ path('company_ad_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
{% else %}
|
||||
{#Soft Edit#}
|
||||
<a class=" td-none" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Video#}
|
||||
<a class="tooltipped td-none" href="{{ path('create_media', { 'id': ad.id }) }}">
|
||||
<i class="material-icons">
|
||||
videocam
|
||||
</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "PUBLISHED" %}
|
||||
{#Extension#}
|
||||
{# ENLEVE LE 01/09 #}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.dates.extension.label'|trans }}"
|
||||
href="{{ path('company_ad_extension', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">calendar</i>
|
||||
</a> #}
|
||||
{#Force ending#}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.closed.label'|trans }}"
|
||||
href="{{ path('company_ad_closed', { 'id': ad.id }) }}" style="margin-right: 10px">
|
||||
<i class="material-icons">
|
||||
close
|
||||
</i>
|
||||
</a> #}
|
||||
{% endif %}
|
||||
|
||||
{% if ad.getStatus() == "TO_PUBLISH" or ad.getStatus() == "VALIDATED" or ad.getStatus() == "CLOSED" or ad.getStatus() == "EXPIRED" %}
|
||||
{#Edit Dates#}
|
||||
{# <a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.dates.edit.label'|trans }}"
|
||||
href="{{ path('company_ad_step3', { 'id': ad.id }) }}" style="margin-right: 10px">
|
||||
<i class="material-icons">
|
||||
close
|
||||
</i>
|
||||
</a> #}
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if ads|length == 0 %}
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">Aucune offre pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
<!-- END CONTAINER FLUID
|
||||
-->
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
|
||||
{% extends 'admin/base_dashboard.html.twig' %}
|
||||
{% extends 'admin/base_dashboard_candidatures.html.twig' %}
|
||||
{% block javascriptSupl %}
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
|
||||
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
|
||||
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
|
||||
{% endblock %}
|
||||
{% block dashContent %}
|
||||
|
||||
|
||||
@@ -22,7 +46,7 @@
|
||||
|
||||
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
{# <div class=" container-fluid container-fixed-lg bg-white">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
@@ -59,15 +83,7 @@
|
||||
href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
<i class="pg-icon">eye</i>
|
||||
</a>
|
||||
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
|
||||
<i class="pg-icon">note</i>
|
||||
</a>
|
||||
{% for note in answer.notes %}
|
||||
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
|
||||
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
|
||||
<i class="pg-icon">comment</i>
|
||||
</a>
|
||||
{% endfor %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
@@ -80,62 +96,162 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
</div> #}
|
||||
<!-- END CONTAINER FLUID -->
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
/* Hide default search box */
|
||||
.dataTables_filter {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
<div class="card-title">Candidatures spontanées
|
||||
<div class="card-title">Candidatures
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive" id="spontaneous">
|
||||
<table class="table table-hover" id="basicTable">
|
||||
<table width="100%" class="table " style="">
|
||||
|
||||
<tr>
|
||||
|
||||
|
||||
<th width="11%"><input id='input2' type='text' class='form-control'
|
||||
placeholder='Recherche par nom' style='font-family:Arial, FontAwesome; width:100%' />
|
||||
</th>
|
||||
|
||||
<th width="11%"><input id='input3' type='text' class='form-control'
|
||||
placeholder='Recherche par prénom' style='font-family:Arial, FontAwesome; width:100%' />
|
||||
</th>
|
||||
<th width="25%">
|
||||
<select id='input5' class='form-control'>
|
||||
<option value="">Toutes les offres</option>
|
||||
<option value="spontaneous">Candidatures spontanées</option>
|
||||
{% for offre in offres %}
|
||||
<option value="{{offre.title}}">{{offre.title}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</th>
|
||||
<th width="25%">
|
||||
<select id='input7' class='form-control'>
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="A_TRAITER">À traiter</option>
|
||||
<option value="CONTACTE">Contacté</option>
|
||||
<option value="ENTRETIEN">Entretien programmé</option>
|
||||
<option value="REFUSE">Refusé</option>
|
||||
<option value="EMBAUCHE">Embauché</option>
|
||||
</select>
|
||||
</th>
|
||||
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
<table id="candidatures_dt_table" width="100%" class="table table-hover ">
|
||||
{# Add a tfoot which will actually be used to place the individual search boxes #}
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="4%">Vidéo</th>
|
||||
<th width="6%">Nom</th>
|
||||
<th width="6%">Prénom</th>
|
||||
<th width="11%">Date de reception</th>
|
||||
<th width="11%">Intitulé de l'offre</th>
|
||||
<th width="25%">Localisation</th>
|
||||
<th width="15%">Statut</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
|
||||
{#
|
||||
<table class="table table-hover " id="">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
|
||||
Comman Practice Followed
|
||||
-->
|
||||
<th style="width:33%">{{ 'profile.talent.lastname'|trans }}
|
||||
<th style="width:15%">{{ 'profile.talent.video'|trans }}
|
||||
</th>
|
||||
<th style="width:15%">{{ 'profile.talent.lastname'|trans }}
|
||||
{{ 'profile.talent.firstname'|trans }}</th>
|
||||
<th style="width:33%">{{ 'global.datereception.label'|trans }}</th>
|
||||
<th style="width:33%" class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
|
||||
<th style="width:15%">{{ 'global.datereception.label'|trans }}</th>
|
||||
<th style="width:15%">{{ 'ad.company.list.title'|trans }}</th>
|
||||
<th style="width:15%">{{ 'ad.company.list.location'|trans }}</th>
|
||||
<th style="width:15%" class="center-align">{{ 'ad.company.list.statut'|trans }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for answer in spontaneous %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
{% if answer.video.thumbnails.0 is defined %}
|
||||
{% set img = answer.video.thumbnails.0.sizes.1.link %}
|
||||
{% else %}
|
||||
{% set img = " " %}
|
||||
{% endif %}
|
||||
<img src="{{ img }}">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
|
||||
{{ answer.user.firstname }}</a>
|
||||
</td>
|
||||
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
|
||||
<td class="center-align">
|
||||
<a title="" href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
<i class="pg-icon">eye</i>
|
||||
</a>
|
||||
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
|
||||
<i class="pg-icon">note</i>
|
||||
</a>
|
||||
{% for note in answer.notes %}
|
||||
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
|
||||
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
|
||||
<i class="pg-icon">comment</i>
|
||||
</a>
|
||||
<td>
|
||||
|
||||
{% if answer.ad %}
|
||||
{{ answer.ad.title }}
|
||||
{% else %}
|
||||
Candidature spontanée
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if answer.user.getGeoloc %}
|
||||
{% for adress in answer.user.getGeoloc %}
|
||||
|
||||
{{ adress["locality"] }}, {{ adress["postal_code"] }}
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
Non renseignée
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="center-align">
|
||||
{% if answer.statusReponse =="EMBAUCHE" %}
|
||||
<span class="label label-success">Embauché</span>
|
||||
{% elseif answer.statusReponse =="REFUSE"%}
|
||||
<span class="label label-important">Refusé</span>
|
||||
{% elseif answer.statusReponse =="ENTRETIEN"%}
|
||||
<span class="label label-warning">Entretien programmé</span>
|
||||
{% elseif answer.statusReponse =="A_TRAITER"%}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% elseif answer.statusReponse =="CONTACTE"%}
|
||||
<span class="label">Contacté</span>
|
||||
{% else %}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if spontaneous|length == 0 %}
|
||||
<tr><th colspan="3" class="text-center">Aucune candidature pour le moment</th></tr>
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">Aucune candidature pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</table> #}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -145,4 +261,130 @@
|
||||
|
||||
|
||||
<div id="note-modal"></div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
// Add a text input to each footer cell
|
||||
var pos = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
var table = $('#candidatures_dt_table').DataTable({
|
||||
|
||||
|
||||
|
||||
"columnDefs": [{
|
||||
"name": "video",
|
||||
"targets": 0,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "nom",
|
||||
"targets": 1,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "prenom",
|
||||
"targets": 2,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "dateReception",
|
||||
"targets": 3,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "offre",
|
||||
"targets": 4,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "localisation",
|
||||
"targets": 5,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "statusReponse",
|
||||
"targets": 6,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
],
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
||||
"ajax": {
|
||||
"url": "{{ path('alimenterCandidaturesCompany') }}",
|
||||
"type": 'POST',
|
||||
},
|
||||
"paging": true,
|
||||
"info": true,
|
||||
"searching": true,
|
||||
"bFilter": true,
|
||||
"responsive": true,
|
||||
"pageLength": 10,
|
||||
"order": [
|
||||
[0, 'desc']
|
||||
],
|
||||
"language": {
|
||||
"sProcessing": "En cours de chargement...",
|
||||
"sSearch": "Rechercher :",
|
||||
"sLengthMenu": "Afficher _MENU_ candidatures",
|
||||
"sInfo": "Candidature de _START_ à _END_ sur _TOTAL_ candidatures",
|
||||
"sInfoEmpty": "Candidature 0 à 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écédent",
|
||||
"sNext": "Suivant",
|
||||
"sLast": "Dernier"
|
||||
},
|
||||
"oAria": {
|
||||
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
|
||||
"sSortDescending": ": activer pour trier la colonne par ordre dé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 %}
|
||||
@@ -19,9 +19,13 @@
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="/entreprise/me/">Accueil</a></li>
|
||||
<li class="breadcrumb-item "><a href="{{ path('company_answer_list') }}">Candidatures</a></li>
|
||||
<li class="breadcrumb-item"><a
|
||||
href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
|
||||
<li class="breadcrumb-item">
|
||||
{% 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 }}
|
||||
{{ answer.user.lastname }}</a>
|
||||
@@ -34,50 +38,116 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- END JUMBOTRON -->
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="card card-borderless">
|
||||
<ul class="nav nav-tabs nav-tabs-simple" role="tablist" data-init-reponsive-tabs="dropdownfx">
|
||||
<li class="nav-item">
|
||||
<a class="active" data-toggle="tab" role="tab" data-target="#candidature" href="#"
|
||||
id="candidatureLien">Candidature</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#" data-toggle="tab" role="tab" data-target="#messagerieVideo"
|
||||
id="messagerieVideoLien">Messagerie vidéo</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#" data-toggle="tab" role="tab" data-target="#messagerie"
|
||||
id="messagerieLien">Messagerie
|
||||
texte</a>
|
||||
</li>
|
||||
|
||||
{# <li class="nav-item">
|
||||
<a href="#" data-toggle="tab" role="tab" data-target="#comment" id="commentLien">Commentaire</a>
|
||||
</li> #}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<!-- ========== bloc candidature ========== -->
|
||||
|
||||
{% include 'company/answer_show_candidature.html.twig' %}
|
||||
|
||||
<!-- ========== bloc message video ========== -->
|
||||
|
||||
{% include 'company/answer_show_message_video.html.twig' %}
|
||||
|
||||
<!-- ========== bloc message texte ========== -->
|
||||
|
||||
{% include 'company/answer_show_message_texte.html.twig' %}
|
||||
|
||||
<!-- ========== bloc commentaire ========== -->
|
||||
|
||||
{# {% include 'company/answer_show_comment.html.twig' %} #}
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<div class="card-body">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-12 ">
|
||||
<div class="card card-borderless col-xl-12 col-sm-12">
|
||||
<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>
|
||||
{% 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 %}
|
||||
|
||||
{% 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">
|
||||
<button class="btn btn-primary btn-lg dropdown-toggle" type="button" id="dropdownMenu2"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="libelleBouton">
|
||||
{% if answer.statusReponse =='CONTACTE' %}
|
||||
Contacté
|
||||
{% elseif answer.statusReponse =='REFUSE' %}
|
||||
Refusé
|
||||
{% elseif answer.statusReponse =='EMBAUCHE' %}
|
||||
Embauché
|
||||
{% elseif answer.statusReponse =='ENTRETIEN' %}
|
||||
Entretien programmé
|
||||
{% elseif answer.statusReponse =='A_TRAITER' %}
|
||||
À traiter
|
||||
{% else %}
|
||||
À traiter
|
||||
{% endif %}
|
||||
|
||||
</span>
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
|
||||
<button class="dropdown-item" type="button" onClick="changerStatutAnswer('A_TRAITER', 'A traiter')">A traiter</button>
|
||||
<button class="dropdown-item" type="button"
|
||||
onClick="changerStatutAnswer('CONTACTE', 'Contacté')">Contacté</button>
|
||||
<button class="dropdown-item" type="button"
|
||||
onClick="changerStatutAnswer('REFUSE', 'Refusé')">Refusé</button>
|
||||
<button class="dropdown-item" type="button" onClick="changerStatutAnswer('ENTRETIEN', 'Entretien programmé')">Entretien programmé</button>
|
||||
<button class="dropdown-item" type="button"
|
||||
onClick="changerStatutAnswer('EMBAUCHE', 'Embauché')">Embauché</button>
|
||||
</div>
|
||||
</div>
|
||||
<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="#" id="candidatureLien">Candidature</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#" data-toggle="tab" role="tab"
|
||||
data-target="#messagerieVideo" id="messagerieVideoLien">Messagerie</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-xl-12 bg-white details-candidature">
|
||||
<div class="tab-content">
|
||||
<!-- ========== bloc candidature ========== -->
|
||||
|
||||
{% include 'company/answer_show_candidature.html.twig' %}
|
||||
|
||||
<!-- ========== bloc message video ========== -->
|
||||
|
||||
{% include 'company/answer_show_message_video.html.twig' %}
|
||||
|
||||
<!-- ========== bloc message texte ========== -->
|
||||
|
||||
{# {% include 'company/answer_show_message_texte.html.twig' %} #}
|
||||
|
||||
<!-- ========== bloc commentaire ========== -->
|
||||
|
||||
{# {% include 'company/answer_show_comment.html.twig' %} #}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -89,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;
|
||||
@@ -105,6 +180,46 @@
|
||||
<script src="{{ asset('/js/demo.js') }}"></script>
|
||||
<script src="{{ asset('/js/scripts.js') }}"></script>
|
||||
<script type="text/javascript">
|
||||
function changerStatutAnswer(item, valeurBouton) {
|
||||
console.log(item);
|
||||
console.log({{answer.id}});
|
||||
$("#libelleBouton").text(valeurBouton);
|
||||
$.ajax({
|
||||
//L'URL de la requête
|
||||
url: "/app_dev.php/anwser/updateStatus/{{answer.id}}",
|
||||
//url: '{{ path("anwser_share", {"id":'+id+'}) }}',
|
||||
//La méthode d'envoi (type de requête)
|
||||
method: "GET",
|
||||
data: 'status=' + item,
|
||||
//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("La requête s'est terminée avec succes. Infos : " + JSON.stringify(response));
|
||||
})
|
||||
|
||||
//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("La requête s'est terminée en échec. Infos : " + JSON.stringify(error));
|
||||
})
|
||||
|
||||
//Ce code sera exécuté que la requête soit un succès ou un échec
|
||||
.always(function () {
|
||||
console.log("Requête effectuée");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function afficherNumero() {
|
||||
$("#telBouton").hide();
|
||||
$("#telSpan").removeClass("invisible").addClass("visible");
|
||||
|
||||
}
|
||||
$(".card-action").click(function () {
|
||||
var idVideo = $(this).data("id");
|
||||
var titleVideo = $(this).data("title");
|
||||
|
||||
+105
-8
@@ -1,4 +1,97 @@
|
||||
<!-- ========== bloc candidature ========== -->
|
||||
<div class="tab-pane active" id="candidature">
|
||||
<div class="row ">
|
||||
<div class="col-xl-7 col-lg-6">
|
||||
|
||||
<!-- START card -->
|
||||
|
||||
<div class="full-height">
|
||||
<div class="card-body">
|
||||
<h5><i class="material-icons fs-18 tab-icon icons-candidatures">videocam</i>Candidature vidéo</h5>
|
||||
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
width="100%" height="300px" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
|
||||
</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
|
||||
le CV</button>
|
||||
</a>
|
||||
</div>
|
||||
{% if extension=="doc" or extension=="docx" %}
|
||||
<iframe width="100%" height="600"
|
||||
src="http://docs.google.com/gview?url=https://www.recruteur.talentstube.com/uploads/cv/{{ answer.user.company.cv }}"></iframe>
|
||||
|
||||
{% else %}
|
||||
<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>
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
<div class="col-xl-5 col-lg-6">
|
||||
<!-- START card -->
|
||||
<div class="card-body">
|
||||
{{ form_start(formNote) }}
|
||||
<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 l’espace 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|reverse %}
|
||||
<div class="card card-body">
|
||||
<h6 class="card-title">{{ note.author.firstname }} {{ note.author.lastname }}</h6>
|
||||
<p class="card-text">{{ note.content }}</p>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
||||
</div>
|
||||
<!-- === Début : Bloc aide - À garder pour la prochaine v2
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<i class="material-icons fs-18 tab-icon icons-candidatures">help_center</i><label for="">
|
||||
<h5>Besoin d'aide</h5>
|
||||
</label>
|
||||
</div>
|
||||
<div class="lien-aide">
|
||||
<a href="">Comment répondre aux candidats en vidéo ?</a>
|
||||
</div>
|
||||
<div class="lien-aide">
|
||||
<a href="">Comment contacter un candidat ?</a>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- === Début : Bloc aide - À garder pour la prochaine v2-->
|
||||
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ========== bloc message texte + video ========== -->
|
||||
{#
|
||||
|
||||
<div class="tab-pane active" id="">
|
||||
<div class="row ">
|
||||
<div class="col-xl-7 col-lg-6 bg-white">
|
||||
<!-- START card -->
|
||||
@@ -16,8 +109,9 @@
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
<div class="card-title">
|
||||
|
||||
{% if answer.ad%}
|
||||
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -40,11 +134,12 @@
|
||||
{{ answer.user.lastname }}
|
||||
</p>
|
||||
<p class="small hint-text m-t-5">
|
||||
{% if answer.user.company %}
|
||||
{% if answer.user.company %}
|
||||
{% if answer.user.company.cv %}
|
||||
<a href="/uploads/cv/{{ answer.user.company.cv }}" target="_blank"><button aria-label="" type="button" class="btn btn-outline-primary">Télécharger le cv</button></a>
|
||||
<a href="/uploads/cv/{{ answer.user.company.cv }}" target="_blank"><button aria-label=""
|
||||
type="button" class="btn btn-outline-primary">Télécharger le cv</button></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -87,7 +182,7 @@
|
||||
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
|
||||
Comman Practice Followed
|
||||
-->
|
||||
|
||||
|
||||
<th style="width:15%">Objet</th>
|
||||
<th style="width:15%">Envoyé le</th>
|
||||
<th style="width:70%">Message</th>
|
||||
@@ -124,14 +219,16 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if answer.messages|length == 0 %}
|
||||
<tr><th colspan="3" class="text-center">Aucun message pour le moment</th></tr>
|
||||
<tr>
|
||||
<th colspan="3" class="text-center">Aucun message pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div> #}
|
||||
+1
-1
@@ -93,7 +93,7 @@
|
||||
</div> #}
|
||||
</div>
|
||||
<div class="form-group form-group-default required">
|
||||
{{ form_row(form.status) }}
|
||||
{# {{ form_row(form.status) }} #}
|
||||
</div>
|
||||
<div class="form-group required">
|
||||
{{ form_row(form.message) }}
|
||||
|
||||
+175
-48
@@ -1,62 +1,189 @@
|
||||
<div class="tab-pane fondBlanc" id="messagerieVideo">
|
||||
<div class="row fondBlanc">
|
||||
<div class="tab-pane" id="messagerieVideo">
|
||||
<div class="row">
|
||||
<div class="col-xl-7 col-lg-6">
|
||||
<div class="full-height">
|
||||
<div class="card-body">
|
||||
<h5><i
|
||||
class="material-icons fs-18 tab-icon icons-candidatures">message</i>Envoyer
|
||||
un message au candidat</h5>
|
||||
{{ form_start(formVideo) }}
|
||||
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
|
||||
<div class="form-group form-group-default">
|
||||
<label class="active">De : </label>
|
||||
<input name="to" data-role="tagsinput" disabled
|
||||
class="form-control tagsinput" type="text"
|
||||
value="{{ app.user.firstname }} {{ app.user.lastname }}" />
|
||||
</div>
|
||||
|
||||
<!-- START ITEM -->
|
||||
<div class="col-lg-4 fondBlanc">
|
||||
<div class="card card-default bg-success">
|
||||
<div class="card-header separator">
|
||||
<div class="card-title">Réponse vidéo
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3>
|
||||
<span class="semi-bold">Et si vous répondiez à </span> {{ answer.user.firstname }} {{ answer.user.lastname }} <b>en vidéo</b></h3>
|
||||
<p>Découvrez <a href="https://blog.talentstube.com/articles-entreprise/comment-faire-une-video-avec-une-webcam/" target="_blank">nos conseils</a> pour réaliser une vidéo de réponse.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END ITEM -->
|
||||
<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"
|
||||
class="form-control"
|
||||
placeholder="Rédigez un message de réponse"></textarea> #}
|
||||
{{ form_widget(formVideo.message) }}
|
||||
</div>
|
||||
<!--<h6>Et si vous répondiez à [Nom du candidat] en vidéo ?</h6>-->
|
||||
<p class="m-l-10 bold">Vous pouvez joindre une vidéo de réponse</p>
|
||||
<p class="m-l-10">Pour une meilleure expérience candidat, motivez les
|
||||
raisons de votre choix en vidéo.</p>
|
||||
{% include 'message/message_create_import.twig' %}
|
||||
<div class="form-group m-t-20" ;>
|
||||
<button type="submit" aria-label=""
|
||||
class="btn btn-primary btn-lg disabled">Envoyer le
|
||||
message</button>
|
||||
</div>
|
||||
<div class="m-t-30">
|
||||
<div class="row fondBlanc">
|
||||
<h5><i
|
||||
class="material-icons fs-18 tab-icon icons-candidatures">inbox</i>Historique
|
||||
des messages envoyés</h5>
|
||||
</div>
|
||||
<div class="row fondBlanc">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover" id="basicTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
|
||||
Comman Practice Followed
|
||||
-->
|
||||
<th style="width:20%">Envoyé le</th>
|
||||
<th style="width:30%">Expéditeur</th>
|
||||
<th style="width:50%">Message</th>
|
||||
</tr>
|
||||
{% if answer.messages %}
|
||||
{% for message in answer.messages if message.status != "DRAFT" %}
|
||||
{% set class = '' %}
|
||||
{% if loop.index > 1 %}
|
||||
{% set class = 'history-hidden' %}
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td class="v-align-middle">
|
||||
|
||||
{{ message.uTime|date('d-m-Y h:m') }}
|
||||
|
||||
</td>
|
||||
<td class="v-align-middle ">
|
||||
{% if message.sender.company.type =="COMPANY" %}
|
||||
Recruteur
|
||||
{% elseif message.sender.company.type =="TALENT" %}
|
||||
Talent
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if message.video %}
|
||||
<div
|
||||
class="embed-responsive embed-responsive-16by9">
|
||||
<iframe
|
||||
src="https://player.vimeo.com/video/{{ message.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
width="100%" height="300"
|
||||
frameborder="0"
|
||||
webkitallowfullscreen
|
||||
mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ message.content|nl2br }}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if answer.messages|length == 0 %}
|
||||
<tr>
|
||||
<th colspan="3" class="text-center">Aucun
|
||||
message pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END COMPOSE EMAIL -->
|
||||
|
||||
{{ form_end(formVideo) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="tab-pane fondBlanc" id="">
|
||||
<div class="row fondBlanc">
|
||||
|
||||
<!-- START ITEM -->
|
||||
<div class="col-lg-4 fondBlanc">
|
||||
<div class="card card-default bg-success">
|
||||
<div class="card-header separator">
|
||||
<div class="card-title">Réponse vidéo
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3>
|
||||
<span class="semi-bold">Et si vous répondiez à </span> Celia Machin
|
||||
Auriol <b>en vidéo</b>
|
||||
</h3>
|
||||
<p>Découvrez <a
|
||||
href="https://blog.talentstube.com/articles-entreprise/comment-faire-une-video-avec-une-webcam/"
|
||||
target="_blank">nos conseils</a> pour réaliser une vidéo de
|
||||
réponse.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END ITEM -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="col-md-12 col-lg-8 col-xlg-8 md-m-t-10">
|
||||
<!-- START WIDGET widget_weatherWidget-->
|
||||
<div class="widget-17 card no-border no-margin widget-loader-circle">
|
||||
<div class="widget-16-header p-r-20 p-l-20 p-t-10 d-flex">
|
||||
<span class="icon-thumbnail bg-contrast-low pull-left text-color pg-icon">M</span>
|
||||
<div class="flex-1 full-width overflow-ellipsis">
|
||||
<p class="hint-text all-caps font-montserrat small no-margin overflow-ellipsis ">
|
||||
Contacter
|
||||
</p>
|
||||
<h6 class="no-margin overflow-ellipsis ">par vidéo</h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ form_start(formVideo) }}
|
||||
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
|
||||
<div class="col-md-12 col-lg-8 col-xlg-8 md-m-t-10">
|
||||
<!-- START WIDGET widget_weatherWidget-->
|
||||
<div class="widget-17 card no-border no-margin widget-loader-circle">
|
||||
<div class="widget-16-header p-r-20 p-l-20 p-t-10 d-flex">
|
||||
<span
|
||||
class="icon-thumbnail bg-contrast-low pull-left text-color pg-icon">M</span>
|
||||
<div class="flex-1 full-width overflow-ellipsis">
|
||||
<p
|
||||
class="hint-text all-caps font-montserrat small no-margin overflow-ellipsis ">
|
||||
Contacter
|
||||
</p>
|
||||
<h6 class="no-margin overflow-ellipsis ">par vidéo</h6>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ form_start(formVideo) }}
|
||||
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
|
||||
|
||||
|
||||
|
||||
{% include 'message/message_create_import.twig' %}
|
||||
<br />
|
||||
{{ form_widget(formVideo.status, { 'id': 'contact_talent_status_video' }) }}
|
||||
{{ form_rest(formVideo) }}
|
||||
<br />
|
||||
<div class="bottom-form">
|
||||
<button type="submit" class="btn btn-default disabled">Envoyer</button>
|
||||
</div>
|
||||
{% include 'message/message_create_import.twig' %}
|
||||
<br />
|
||||
{# {{ form_widget(formVideo.status, { 'id': 'contact_talent_status_video' }) }} #}
|
||||
{{ form_rest(formVideo) }}
|
||||
<br />
|
||||
<div class="bottom-form">
|
||||
<button type="submit" class="btn btn-default disabled">Envoyer</button>
|
||||
</div>
|
||||
|
||||
{{ form_end(formVideo) }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- END WIDGET -->
|
||||
</div>
|
||||
{{ form_end(formVideo) }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- END WIDGET -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,7 +1,31 @@
|
||||
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
|
||||
{% extends 'admin/base_dashboard.html.twig' %}
|
||||
{% block dashContent %}
|
||||
<!-- MODALS-->
|
||||
<!-- Modal 0 -->
|
||||
<div class="modal fade in bd-example-modal-lg" id="popupSubmitModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="popupSubmitModalLabel" aria-hidden="false" data-show="false">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="popupSubmitModalLabel">Votre offre d’emploi vidéo est en cours de validation par l'équipe Talents Tube</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<p>Vous recevrez un e-mail lorsque votre offre d’emploi sera publiée sur la plateforme.</p>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onClick="submitFormAd()">Fermer</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bg-bordered p-0">
|
||||
{# {% include 'company/ad_steps.html.twig' with {'tab':2} %} #}
|
||||
|
||||
@@ -158,7 +182,9 @@ vidéo d'offre d'emploi. <a href="https://blog.talentstube.com/contact" target="
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<button aria-label="" id="submit" type="submit" class="btn btn-primary btn-lg m-b-10 hide"
|
||||
|
||||
<button aria-label="" id="submit" data-toggle="modal"
|
||||
data-target="#popupSubmitModal" type="" class="btn btn-primary btn-lg m-b-10 hide"
|
||||
type="button">
|
||||
<span>Publier l'offre</span>
|
||||
|
||||
@@ -294,7 +320,11 @@ vidéo d'offre d'emploi. <a href="https://blog.talentstube.com/contact" target="
|
||||
{% else %}
|
||||
var videoExist = false;
|
||||
{% endif %}
|
||||
|
||||
//function appelée lors de la confirmation de popup
|
||||
function submitFormAd(){
|
||||
|
||||
$('#form_media').submit();
|
||||
}
|
||||
</script>
|
||||
<script src="{{ asset('/js/dropzoneV2.js') }}"></script>
|
||||
{% endblock %}
|
||||
@@ -86,42 +86,52 @@
|
||||
<!-- START card -->
|
||||
<div class="col-lg-12">
|
||||
<div class="card card-default container">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md">
|
||||
<a href="{{path('company_ad_create')}}">
|
||||
<button class="card-action" type="button">
|
||||
<a href="{{path('company_ad_create')}}">
|
||||
|
||||
<span class="material-icons">movie_creation</span>
|
||||
<div class="row lien-fleche" style="justify-content: center; align-items: center">
|
||||
<h6 class="col-10">Créer une offre d’emploi 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 d’emploi</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>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
alt="{{ company.brandname }}"/>
|
||||
|
||||
{% else %}
|
||||
<div class="circle-letters square-letters font-2">{{ company.brandname|first|upper }}</div>
|
||||
{# <div class="circle-letters square-letters font-2">{{ company.brandname|first|upper }}</div> #}
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
@@ -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 d’une 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 d’entreprise 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 qu’une 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 d’emploi originale vous-même</title>
|
||||
<meta name="description" content="Créez des vidéos d’offres d’emploi 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 d’emploi originale vous-même{% endblock %}
|
||||
{% block meta %}
|
||||
<meta name="description" content="Créez des vidéos d’offres d’emploi 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 d’emploi originale vous-même" />
|
||||
<meta property="og:description" content="Créez des vidéos d’offres d’emploi originales avec Talents Tube. Réalisez vos vidéos rapidement avec un smartphone et recrutez" />
|
||||
@@ -39,9 +10,11 @@
|
||||
<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>
|
||||
|
||||
<body>
|
||||
{% endblock %}
|
||||
{% block modalCallToAction %}
|
||||
{{ parent() }}
|
||||
{% endblock %}
|
||||
{% block main %}
|
||||
<!-- Modal : Vidéo -->
|
||||
<div class="modal fade bd-example-modal-lg" id="exampleModalCenter" tabindex="-1" role="dialog"
|
||||
aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||
@@ -67,86 +40,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<!--Modal : Vidéo End -->
|
||||
<main>
|
||||
|
||||
<!-- 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 +245,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 %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% block dropzone %}
|
||||
<div id="dropzone-row" class="row">
|
||||
<div class="col s12">
|
||||
<div class="dropzone dz-clickable" id="my-awesome-dropzone">
|
||||
<div class="dropzone dz-clickable text-center" id="my-awesome-dropzone">
|
||||
<div id="template-container-dz">
|
||||
<div id="template" class="file-row">
|
||||
<div class="dz-preview">
|
||||
|
||||
@@ -24,185 +24,205 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% set video = null %}
|
||||
|
||||
<div class=" container-fluid container-fixed-lg">
|
||||
<div class="col-lg-8 bloc-header">
|
||||
{% set video = null %}
|
||||
<div class="card card-default container">
|
||||
<div class="card-body">
|
||||
<div class="row" style="min-height:10rem;">
|
||||
<div class="col-8">
|
||||
<h4 class="header-title" style="font-size:2em;line-height:1.5em;">Vous souhaitez booster vos
|
||||
recrutements ?</h4>
|
||||
<p>Ajoutez une vidéo marque employeur pour présenter votre entreprise et attirer de nouveaux
|
||||
talents.</p>
|
||||
</div>
|
||||
<div class="col-4"
|
||||
style="background-repeat: no-repeat; background-image: url('https://blog.talentstube.com/wp-content/uploads/2021/02/marque-employeur-entreprise.svg');background-size: contain;background-position: center;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div id="addVideo">
|
||||
<div class="modal-content">
|
||||
<div class="row">
|
||||
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
|
||||
<div class="input-field col s8">
|
||||
{{ form_rest(form) }}
|
||||
<div class="card col p-t-20 p-b-15">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
<div class="col">
|
||||
<h4>Importer une vidéo Marque Employeur</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s4 right-align">
|
||||
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</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"
|
||||
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
<div class="col s12">
|
||||
</div>
|
||||
<div class="row ">
|
||||
<div class="col ">
|
||||
{% include 'media/dropzone.html.twig' with {'deleting': 'false'} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8 m-t-50">
|
||||
|
||||
{% if app.user.company.presentationVideo %}
|
||||
{% set media = app.user.company.presentationVideo %}
|
||||
|
||||
<div class="video_premier card z-depth-3">
|
||||
<div class="card-content">
|
||||
<h4> Vous souhaitez booster vos recrutements ?</h4>
|
||||
<p>Ajoutez une vidéo marque employeur pour présenter
|
||||
votre entreprise et attirer de nouveaux talents.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="video_premier card z-depth-3">
|
||||
<div class="card-image">
|
||||
{% if app.user.company.presentationVideo %}
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
|
||||
width="100%" height="550" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
{# {% else %}
|
||||
<div class="no-presentation-video">
|
||||
<strong>
|
||||
Vous ne disposez pas de vidéo de présentation !
|
||||
</strong><br/>
|
||||
Cliquez sur le bouton ci-dessous pour la sélectionner dans votre bibliothèque.
|
||||
</div> #}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p>
|
||||
{# {% if app.user.getCompany().hasCompanyVideo() != true and is_granted('ROLE_COMPANY') %}
|
||||
{% set storePath = path('company_process_cart_video_corporate') %}
|
||||
{% set message = "Vous ne disposez pas de l'option présentation vidéo pour votre entreprise, il est nécessaire de vous procurer
|
||||
l'option sur la boutique talents tube.<br /><br /><a class='btn btn-default' href='"~storePath~"'>boutique Talents Tube</a>" %}
|
||||
{{ message|raw }}
|
||||
{% else %} #}
|
||||
{% if app.user.company.presentationVideo %}
|
||||
<div><strong><span data-id="{{ media.id }}" class="titleVideo">{{ media.title }}</span></strong>
|
||||
</div>
|
||||
{% else %}
|
||||
{% set label_title_video = "" %}
|
||||
{% if is_granted('ROLE_COMPANY') %}
|
||||
{% set label_title_video = "Mon entreprise en vidéo" %}
|
||||
{% elseif is_granted('ROLE_TALENT') %}
|
||||
{% set label_title_video = "Mon CV Générique" %}
|
||||
{% endif %}
|
||||
<strong>{{ label_title_video }}</strong>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{# <a class="btn btn-default">
|
||||
{% if app.user.company.presentationVideo %}
|
||||
Remplacer ma vidéo marque employeur
|
||||
{% else %}
|
||||
Choisir une vidéo marque employeur
|
||||
{% endif %}
|
||||
</a> #}
|
||||
|
||||
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<div class="">
|
||||
<strong>
|
||||
Guide
|
||||
</strong><br />
|
||||
Pour choisir votre vidéo marque employeur, cliquer sur le bouton remplacer et choisissez une
|
||||
vidéo dans la liste ci dessous
|
||||
</div>
|
||||
{# {% endif %} #}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-lg-12 m-t-50">
|
||||
<h4>Gestion de mes vidéos</h4>
|
||||
{% if medias|length > 0 or is_granted('ROLE_COMPANY') or is_granted('ROLE_TERRITORY')%}
|
||||
<div class="col-lg-12">
|
||||
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une vidéo</a>
|
||||
<a class="btn btn-delete-video btn-round tooltipped red right" href="#!" data-position="top"
|
||||
data-tooltip="Supprimer des vidéos"><i class="fa fa-trash" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for media in medias %}
|
||||
{% set classVideo = "" %}
|
||||
{% if app.user.company.presentationVideo %}
|
||||
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
|
||||
{% else %}
|
||||
{% set idPresentationVideo = false %}
|
||||
{% endif %}
|
||||
{% if idPresentationVideo != media.id %}
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card card-video-action z-depth-1">
|
||||
<div class="card-image">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
|
||||
width="100%" height="230px" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
<div class="card-fog choice-fog">
|
||||
<div class="card-fog-container">
|
||||
<a data-id="{{ media.getId() }}"
|
||||
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
|
||||
data-position="top" data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
|
||||
Choisir cette vidéo
|
||||
</a>
|
||||
<div class="row">
|
||||
<div class="col m-t-20">
|
||||
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
|
||||
<div class="input-field col">
|
||||
<div>
|
||||
{{ form_rest(form) }}
|
||||
</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>
|
||||
{% 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"
|
||||
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
</div>
|
||||
{% set classFog ="" %}
|
||||
{% set messageTooltipFog ="" %}
|
||||
{% if media.getAds().toArray() %}
|
||||
{% set classFog = "fogLight" %}
|
||||
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
|
||||
{% endif %}
|
||||
|
||||
{% if media.getAnswers().toArray() %}
|
||||
{% set classFog = "fogLight" %}
|
||||
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
|
||||
{% endif %}
|
||||
<div class="card-fog delete-fog {{ classFog }}">
|
||||
<div class="card-fog-container">
|
||||
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
|
||||
<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>
|
||||
{% if 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>
|
||||
{% 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>
|
||||
{% set label_title_video = "" %}
|
||||
{% if is_granted('ROLE_COMPANY') %}
|
||||
{% set label_title_video = "Mon entreprise en vidéo" %}
|
||||
{% elseif is_granted('ROLE_TALENT') %}
|
||||
{% set label_title_video = "Mon CV Générique" %}
|
||||
{% endif %}
|
||||
<strong>{{ label_title_video }}</strong>
|
||||
{% endif %}
|
||||
|
||||
{% set media = app.user.company.presentationVideo %}
|
||||
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
|
||||
width="100%" height="550" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<p>
|
||||
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
|
||||
data-position="top" data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-lg-8">
|
||||
<div class="card card-default card-body">
|
||||
<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 %}
|
||||
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
|
||||
{% else %}
|
||||
{% 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 %} #}
|
||||
|
||||
<div class="col">
|
||||
<div class="card-image">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<iframe
|
||||
src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
|
||||
width="100%" height="230px" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
<div class="row m-t-10 m-b-10">
|
||||
<div class="col card-fog choice-fog">
|
||||
<div class="card-fog-container">
|
||||
<a data-id="{{ media.getId() }}"
|
||||
class="btn btn-default btn-default-video tooltipped"
|
||||
data-position="top"
|
||||
data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
|
||||
Choisir cette vidéo
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% set classFog ="" %}
|
||||
{% set messageTooltipFog ="" %}
|
||||
{% if media.getAds().toArray() %}
|
||||
{% set classFog = "fogLight" %}
|
||||
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
|
||||
{% endif %}
|
||||
|
||||
{% if media.getAnswers().toArray() %}
|
||||
{% set classFog = "fogLight" %}
|
||||
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
|
||||
{% endif %}
|
||||
<div class="card-fog delete-fog ">
|
||||
<div class="card-fog-container">
|
||||
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
|
||||
{# <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> #}
|
||||
{% 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"
|
||||
data-position="top" data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
|
||||
</p>
|
||||
</div> #}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{# 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">
|
||||
|
||||
</div>
|
||||
<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+1 is divisible by(2) or nbMedias==1%}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% set iteration = iteration+1 %} #}
|
||||
{% else %}
|
||||
{# {% set nbMedias = nbMedias-1%} #}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
|
||||
<div class="input-group">
|
||||
{{ form_widget(formLogo.file) }}
|
||||
{{ form_rest(formLogo) }}
|
||||
<button aria-label="" type="button" class="btn btn-outline-primary btn-lg" onclick="profile_logo_file.click()">Choisir votre logo</button>
|
||||
{# {{ form_widget(formLogo.file) }} #}
|
||||
{# {{ form_rest(formLogo) }} #}
|
||||
<button aria-label="" type="button" class="btn btn-outline-primary btn-lg m-r-10" onclick="profile_logo_file.click()">Choisir votre logo</button>
|
||||
<button class="btn btn-primary btn-lg" type="submit" id="inputGroupFileAddon04">Valider le logo</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ twig:
|
||||
globals:
|
||||
push_public_key: "%push_params.public_key%"
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
version: '2.7.1'
|
||||
version: '2.8.1'
|
||||
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ doctrine_mongodb:
|
||||
liip_imagine :
|
||||
resolvers :
|
||||
default :
|
||||
web_path : ~
|
||||
web_path: ~
|
||||
filter_sets :
|
||||
cache : ~
|
||||
profile_thumb :
|
||||
|
||||
@@ -59,6 +59,7 @@ security:
|
||||
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/admin/, roles: ROLE_ADMIN }
|
||||
- { path: ^/admin/template, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/admin/moderation/, role: [ROLE_MODERATOR,ROLE_SUPER_ADMIN, ROLE_WEBMASTER] }
|
||||
- { path: ^/admin/config/, role: [ROLE_WEBMASTER,ROLE_SUPER_ADMIN] }
|
||||
- { path: ^/talent/me/, roles: ROLE_TALENT }
|
||||
@@ -71,6 +72,7 @@ security:
|
||||
- { path: ^/api/reset_password, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST]}
|
||||
- { path: ^/api/confirmAccount, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST]}
|
||||
- { path: ^/api/answers, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
|
||||
- { path: ^/api/answers/updateStatus, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
|
||||
- { path: ^/api/answer/[0-9]+/messages, roles: IS_AUTHENTICATED_FULLY, methods: [GET]}
|
||||
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY, methods: [POST, PUT, DELETE, PATCH] }
|
||||
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [GET]}
|
||||
@@ -85,4 +87,4 @@ security:
|
||||
ROLE_ADMIN: ROLE_USER
|
||||
ROLE_TALENT: ROLE_USER
|
||||
ROLE_COMPANY: ROLE_USER
|
||||
ROLE_TERRITORY: ROLE_USER
|
||||
ROLE_TERRITORY: ROLE_USER
|
||||
|
||||
@@ -19,7 +19,12 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
//MAILJET
|
||||
use AppBundle\Entity\Mailjet;
|
||||
// use AppBundle\Entity\Response;
|
||||
use AppBundle\Entity\Resources;
|
||||
use AppBundle\Entity\Config;
|
||||
use AppBundle\Entity\Client;
|
||||
|
||||
class AdController extends Controller
|
||||
{
|
||||
@@ -305,6 +310,29 @@ class AdController extends Controller
|
||||
$adManager = $this->get('app.ad_manager');
|
||||
$adManager->updateAd($ad);
|
||||
$this->addFlash('notice', 'Annonce enregistrée');
|
||||
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
|
||||
// $link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
|
||||
|
||||
$body = [
|
||||
'FromEmail' => "noreply@talentstube.io",
|
||||
'FromName' => "Talents Tube",
|
||||
'Subject' => "Creation/Modification Offre d'emploi ".$ad->getCompany()->getBrandName(),
|
||||
'MJ-TemplateID' =>2612525 ,
|
||||
'MJ-TemplateLanguage' => true,
|
||||
'Recipients' => [
|
||||
[
|
||||
'Email' => 'dev@talentstube.com',
|
||||
'Vars' => [
|
||||
'entreprise' => $ad->getCompany()->getBrandName(),
|
||||
'offre' => $ad->getTitle(),
|
||||
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
$response = $mj->post(Resources::$Email, ['body' => $body]);
|
||||
$response->success() && var_dump($response->getData());
|
||||
return $this->redirectToRoute('company_ad');
|
||||
}
|
||||
return $this->render('company/ad_edit.html.twig', [
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace AppBundle\Controller\Admin;
|
||||
|
||||
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use AppBundle\Entity\Message;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use DateTime;
|
||||
class BatchController extends Controller
|
||||
{
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/batch/message", name="admin_batch_message")
|
||||
*/
|
||||
public function adminBatchMessageAction()
|
||||
{
|
||||
//recuperer les messages qui ont un comment
|
||||
|
||||
return $this->render('admin/batch_message.html.twig', [
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/batch/message/comment", name="admin_batch_message_comment")
|
||||
*/
|
||||
public function adminBatchMessageCommentAction()
|
||||
{
|
||||
//recuperer les answers qui ont un comment
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findAllComment();
|
||||
|
||||
//parcours des answers avec comment
|
||||
foreach ($answers as $a) {
|
||||
if($a->getAd()){
|
||||
$message = new Message('Chat', $a->getComment(), $a->getUser(), $a->getAd()->getCreator(), 'Message du talent', $a);
|
||||
|
||||
$message->setUTime($a->getUTime());
|
||||
$message->setCTime($a->getCTime());
|
||||
|
||||
$em->persist($message);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $this->render('admin/dashboard.html.twig', array());
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/batch/candidature", name="admin_batch_candidatures")
|
||||
*/
|
||||
public function adminBatchCandidaturesAction()
|
||||
{
|
||||
|
||||
return $this->render('admin/batch_candidatures.html.twig', [
|
||||
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/batch/candidature/init", name="admin_batch_candidature_init")
|
||||
*/
|
||||
public function adminBatchcandidatureInitAction()
|
||||
{
|
||||
//recuperer les messages qui ont un comment
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$messages = $em->getRepository('AppBundle:Message')->getMessageAnswers();
|
||||
|
||||
//parcours des answers avec comment
|
||||
foreach ($messages as $m) {
|
||||
|
||||
$answer = $m->getAnswer();
|
||||
if(!$answer->getStatusReponse() ){
|
||||
dump($answer);
|
||||
$answer->setStatusReponse("CONTACTE");
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
dump($answer);
|
||||
}
|
||||
|
||||
}
|
||||
return $this->render('admin/dashboard.html.twig', array());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,6 +24,8 @@ class PageController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/page/{id}/edit", name="admin_page_edit")
|
||||
*/
|
||||
@@ -63,4 +65,6 @@ class PageController extends Controller
|
||||
return $this->redirectToRoute('admin_page_list');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace AppBundle\Controller;
|
||||
|
||||
use AppBundle\Entity\Ad;
|
||||
use AppBundle\Entity\Answer;
|
||||
use AppBundle\Entity\Note;
|
||||
use AppBundle\Form\NoteAjaxType;
|
||||
use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Form\AnswerType;
|
||||
@@ -48,6 +50,22 @@ class AnswerController extends Controller
|
||||
return new JsonResponse(array('success' => "true", 'code' => $ad->getCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/anwser/updateStatus/{id}", name="anwser_update_status")
|
||||
*/
|
||||
public function anwserUpdateStatusAction(Request $request, Answer $answer)
|
||||
{
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answer->setStatusReponse($request->query->get('status'));
|
||||
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
return new JsonResponse(array('success' => "true", 'code' => ""));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -385,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",
|
||||
@@ -402,37 +420,36 @@ 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 l’entreprise pour votre candidature",
|
||||
'MJ-TemplateID' =>2196010 ,
|
||||
'MJ-TemplateLanguage' => true,
|
||||
'Recipients' => [
|
||||
[
|
||||
'Email' => $contactMail,
|
||||
'Vars' => [
|
||||
'prenom' => $answer->getUser()->getFirstname(),
|
||||
'entreprise' => $this->getUser()->getCompany()->getBrandName(),
|
||||
'imgReponseEntreprise' => $img,
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
$response = $mj->post(Resources::$Email, ['body' => $body]);
|
||||
$response->success() && var_dump($response->getData());
|
||||
// $body = [
|
||||
// 'FromEmail' => "noreply@talentstube.io",
|
||||
// 'FromName' => "Talents tube",
|
||||
// 'Subject' => "Découvrez la réponse de l’entreprise pour votre candidature.",
|
||||
// 'MJ-TemplateID' =>2196010 ,
|
||||
// 'MJ-TemplateLanguage' => true,
|
||||
// 'Recipients' => [
|
||||
// [
|
||||
// 'Email' => $contactMail,
|
||||
// 'Vars' => [
|
||||
// 'prenom' => $answer->getUser()->getFirstname(),
|
||||
// 'entreprise' => $this->getUser()->getCompany()->getBrandName(),
|
||||
// 'imgReponseEntreprise' => $img,
|
||||
// ]
|
||||
// ]
|
||||
// ]
|
||||
// ];
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -470,20 +487,42 @@ class AnswerController extends Controller
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$message->setSubject('Candidature : ' . $title);
|
||||
$message->setContent($messageText);
|
||||
$message->setStatus($form['status']->getData());
|
||||
$message->setAnswer($answer);
|
||||
$message->setStatus('CONTACTED');
|
||||
$em->persist($message);
|
||||
$em->flush();
|
||||
|
||||
$response = $mj->post(Resources::$Email, ['body' => $body]);
|
||||
$response->success() && var_dump($response->getData());
|
||||
return $this->redirectToRoute('company_answer_show', ['id' => $answer->getId()]);
|
||||
}
|
||||
|
||||
$formMessage = $form->createView();
|
||||
$formVideo = $form;
|
||||
$formVideo->remove('message');
|
||||
|
||||
//$formVideo->remove('message');
|
||||
$note = new Note($user);
|
||||
$formNote = $this->createForm(NoteAjaxType::class, $note);
|
||||
$formNote->handleRequest($request);
|
||||
if ($formNote->isSubmitted() && $formNote->isValid()) {
|
||||
$answer->addNote($note);
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
$referer = $request->headers->get('referer');
|
||||
return $this->redirect($referer);
|
||||
}
|
||||
$extension="";
|
||||
if($answer->getUser()->getCompany()->getCv()){
|
||||
//$fichier = new SplFileInfo($answer->getUser()->getCompany()->getCv());
|
||||
|
||||
$fichier = explode(".", $answer->getUser()->getCompany()->getCv());
|
||||
$extension=$fichier[1];
|
||||
}
|
||||
return $this->render('company/answer_show.html.twig', [
|
||||
'answer' => $answer,
|
||||
'extension' => $extension,
|
||||
'form' => $formMessage,
|
||||
'formVideo' => $formVideo->createView(),
|
||||
'formNote' => $formNote->createView(),
|
||||
'type' => $type,
|
||||
'videos' => $videos,
|
||||
'message' => $message
|
||||
@@ -495,27 +534,283 @@ class AnswerController extends Controller
|
||||
*/
|
||||
public function companyListAnswerAction()
|
||||
{
|
||||
|
||||
|
||||
// $answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
// $spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
|
||||
// array(
|
||||
// 'company' => $user->getCompany()->getId(),
|
||||
// 'status' => 'SENDED'
|
||||
// ),
|
||||
// array(
|
||||
// 'cTime' => 'DESC'
|
||||
// )
|
||||
// );
|
||||
$user = $this->getUser();
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
$spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
|
||||
array(
|
||||
'company' => $user->getCompany()->getId(),
|
||||
'status' => 'SENDED',
|
||||
'ad' => null
|
||||
),
|
||||
array(
|
||||
'uTime' => 'DESC'
|
||||
)
|
||||
);
|
||||
$offres = $em->getRepository('AppBundle:Ad')->getAdByCompany($user->getCompany()->getId());
|
||||
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'spontaneous' => $spontaneous,
|
||||
// 'answers' => $answers,
|
||||
// 'spontaneous' => $spontaneous,
|
||||
'offres' => $offres,
|
||||
'type' => 'answer'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/alimenterCandidaturesCompany", name="alimenterCandidaturesCompany")
|
||||
*/
|
||||
public function listDatatablesAction(Request $request)
|
||||
{
|
||||
$companyId = $this->getUser()->getCompany()->getId();
|
||||
return $this->recupererCandidature($request, "company", $companyId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/alimenterCandidaturesAd/{id}", name="alimenterCandidaturesAd")
|
||||
*/
|
||||
public function listDatatablesAdAction(Request $request, $id)
|
||||
{
|
||||
|
||||
return $this->recupererCandidature($request, "ad", $id);
|
||||
}
|
||||
|
||||
public function recupererCandidature($request, $type, $id){
|
||||
// Set up required variables
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$this->repository = $em->getRepository('AppBundle:Answer');
|
||||
//$this->translator = $this->get('translator');
|
||||
// Get the parameters from DataTable Ajax Call
|
||||
|
||||
if ($request->getMethod() == 'POST')
|
||||
{
|
||||
$draw = intval($request->request->get('draw'));
|
||||
$start = $request->request->get('start');
|
||||
$length = $request->request->get('length');
|
||||
$search = $request->request->get('search');
|
||||
$orders = $request->request->get('order');
|
||||
$columns = $request->request->get('columns');
|
||||
|
||||
}
|
||||
else // If the request is not a POST one, die hard
|
||||
die;
|
||||
|
||||
// Process Parameters
|
||||
|
||||
// Orders
|
||||
foreach ($orders as $key => $order)
|
||||
{
|
||||
// Orders does not contain the name of the column, but its number,
|
||||
// so add the name so we can handle it just like the $columns array
|
||||
$orders[$key]['name'] = $columns[$order['column']]['name'];
|
||||
}
|
||||
|
||||
// Further filtering can be done in the Repository by passing necessary arguments
|
||||
$otherConditions = array("type" => $type, "id" => $id);
|
||||
|
||||
// Get results from the Repository
|
||||
$results = $this->repository->getRequiredDTData($start, $length, $orders, $search, $columns, $otherConditions);
|
||||
|
||||
// Returned objects are of type Town
|
||||
$objects = $results["results"];
|
||||
// Get total number of objects
|
||||
$total_objects_count = $this->repository->comptage();
|
||||
// Get total number of results
|
||||
$selected_objects_count = count($objects);
|
||||
// Get total number of filtered data
|
||||
$filtered_objects_count = $results["countResult"];
|
||||
|
||||
// Construct response
|
||||
$response = '{
|
||||
"draw": '.$draw.',
|
||||
"recordsTotal": '.$total_objects_count.',
|
||||
"recordsFiltered": '.$filtered_objects_count.',
|
||||
"data": [';
|
||||
|
||||
$i = 0;
|
||||
|
||||
foreach ($objects as $key => $answer)
|
||||
{
|
||||
$response .= '["';
|
||||
|
||||
$j = 0;
|
||||
$nbColumn = count($columns);
|
||||
foreach ($columns as $key => $column)
|
||||
{
|
||||
// In all cases where something does not exist or went wrong, return -
|
||||
$responseTemp = "-";
|
||||
|
||||
switch($column['name'])
|
||||
{
|
||||
case 'partage':
|
||||
{
|
||||
if($answer->getIsShared()){
|
||||
$checked = "checked";
|
||||
}else{
|
||||
$checked = "";
|
||||
}
|
||||
$responseTemp ="<input type='checkbox' id='answer_".$answer->getId()."' name='answers' class='nav-trigger' onChange='verifierIsChecked(".$answer->getId().")' ".$checked." /><label for='nav-trigger' class='navicon-button x'><div class='navicon'></div></label>";
|
||||
|
||||
break;
|
||||
}
|
||||
case 'video':
|
||||
{
|
||||
|
||||
if ($answer->getVideo()->getThumbnails()){
|
||||
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
|
||||
}else{
|
||||
//$img= "https://blog.talentstube.com/wp-content/uploads/2021/01/default_picture_company.jpg";
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($answer);
|
||||
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
|
||||
}
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = " <a href='".$link."'><img src='".$img."' width='200px' height='150px'></a>";
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 'nom':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getLastname()."</a>";
|
||||
break;
|
||||
}
|
||||
|
||||
case 'prenom':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getFirstname()."</a>";
|
||||
break;
|
||||
}
|
||||
|
||||
case 'dateReception':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$responseTemp = $answer->getSendTime()->format('d/m/Y H:i:s');
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'offre':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
|
||||
|
||||
if($answer->getAd()){
|
||||
$responseTemp = $answer->getAd()->getTitle();
|
||||
}else{
|
||||
$responseTemp = "Candidature spontanée";
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'date_envoi':
|
||||
{
|
||||
if($answer->getSendTime()){
|
||||
$responseTemp = date_format($answer->getSendTime(), 'd-m-Y H:i:s');;
|
||||
}else{
|
||||
$responseTemp ="ND";
|
||||
}
|
||||
// This cannot happen if inner join is used
|
||||
// However it can happen if left or right joins are used
|
||||
|
||||
break;
|
||||
}
|
||||
case 'ad_id':
|
||||
{
|
||||
$video = $answer->getVideo();
|
||||
$responseTemp ="ND";
|
||||
if($video){
|
||||
$responseTemp = 'ID Candidature :'.$answer->getId().'<br />';
|
||||
$videoRenommee = str_replace("/videos/", "", $video->getCdnUrl());
|
||||
//TODO : revoir ca car une vue dans un controller ca n'est pas top!!!!!
|
||||
$responseTemp .= "<iframe src='https://player.vimeo.com/video/".$videoRenommee."?embedparameter=value' width='auto' height='auto' frameborder='0' allowfullscreen></iframe>";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 'statusReponse':
|
||||
{
|
||||
// if($answer->getstatus()=="SENDED"){
|
||||
// $status= "ENVOYE";
|
||||
// }else{
|
||||
// $status=$answer->getstatus();
|
||||
// }
|
||||
// $responseTemp = "<span id='status_".$answer->getId()."'> ".$status."</span> ";
|
||||
if ($answer->getStatusReponse() =="EMBAUCHE" ){
|
||||
$responseTemp = "<span class='label label-success'>Embauché</span> ";
|
||||
|
||||
}elseif ($answer->getStatusReponse() =="REFUSE" ){
|
||||
$responseTemp = "<span class='label label-important'>Refusé</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="ENTRETIEN" ){
|
||||
$responseTemp = "<span class='label label-warning'>Entretien programmé</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="A_TRAITER" ){
|
||||
$responseTemp = "<span class='label label-info'>À traiter</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="CONTACTE" ){
|
||||
$responseTemp = "<span class='label'>Contacté</span> ";
|
||||
}else {
|
||||
$responseTemp = "<span class='label label-info'>À traiter</span> ";
|
||||
}
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'localisation':
|
||||
{
|
||||
if($answer->getUser()->getGeoloc()) {
|
||||
|
||||
foreach ($answer->getUser()->getGeoloc() as &$adress) {
|
||||
$responseTemp =$adress["locality"] .", ". $adress["postal_code"];
|
||||
}
|
||||
|
||||
}else {
|
||||
$responseTemp ="Non renseignée";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the found data to the json
|
||||
$response .= $responseTemp;
|
||||
|
||||
if(++$j !== $nbColumn)
|
||||
$response .='","';
|
||||
}
|
||||
|
||||
$response .= '"]';
|
||||
|
||||
// Not on the last item
|
||||
if(++$i !== $selected_objects_count)
|
||||
$response .= ',';
|
||||
}
|
||||
|
||||
$response .= ']}';
|
||||
|
||||
// Send all this stuff back to DataTables
|
||||
$returnResponse = new JsonResponse();
|
||||
$returnResponse->setJson($response);
|
||||
|
||||
return $returnResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/entreprise/me/espace-oe/candidature-spontanee/", name="company_spontaneous_list")
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -109,6 +109,7 @@ class CompanyController extends Controller
|
||||
'notice',
|
||||
$this->get('translator')->trans('company.profile.save.title')
|
||||
);
|
||||
return $this->redirectToRoute('company_dashboard');
|
||||
}
|
||||
|
||||
|
||||
@@ -123,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
|
||||
|
||||
@@ -35,9 +35,9 @@ class MediaController extends Controller
|
||||
*/
|
||||
public function companyMediaAction(Request $request)
|
||||
{
|
||||
$event = new UserEvent($this->getUser());
|
||||
//$event = new UserEvent($this->getUser());
|
||||
$company = $this->getUser()->getCompany();
|
||||
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
//$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
|
||||
$form = $this->createForm(MediaType::class);
|
||||
@@ -66,8 +66,8 @@ class MediaController extends Controller
|
||||
*/
|
||||
public function territoryMediaAction(Request $request)
|
||||
{
|
||||
$event = new UserEvent($this->getUser());
|
||||
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
//$event = new UserEvent($this->getUser());
|
||||
//$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
|
||||
$form = $this->createForm(MediaType::class);
|
||||
@@ -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));
|
||||
@@ -155,10 +155,37 @@ class MediaController extends Controller
|
||||
$numberOfMonth = 6;
|
||||
$unpublishedDate = new \DateTime('now');
|
||||
$unpublishedDate = $unpublishedDate->add(new \DateInterval('P' . $numberOfMonth . 'M'));
|
||||
|
||||
$ad->setStatus("TO_PUBLISH");
|
||||
// ENVOI DE MAIL a l'equipe TT pour prevenir d'une modif d'annonce
|
||||
$ad->setUnpublishedAt($unpublishedDate);
|
||||
$em->persist($ad);
|
||||
$em->flush();
|
||||
|
||||
$mj = new Client($this->getParameter('mailjet_public'), $this->getParameter('mailjet_private'));
|
||||
// $link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
|
||||
|
||||
$body = [
|
||||
'FromEmail' => "noreply@talentstube.io",
|
||||
'FromName' => "Talents Tube",
|
||||
'Subject' => "Creation/Modification Offre d'emploi ".$ad->getCompany()->getBrandName(),
|
||||
'MJ-TemplateID' =>2612525 ,
|
||||
'MJ-TemplateLanguage' => true,
|
||||
'Recipients' => [
|
||||
[
|
||||
'Email' => 'dev@talentstube.com',
|
||||
'Vars' => [
|
||||
'entreprise' => $ad->getCompany()->getBrandName(),
|
||||
'offre' => $ad->getTitle(),
|
||||
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
$response = $mj->post(Resources::$Email, ['body' => $body]);
|
||||
$response->success() && var_dump($response->getData());
|
||||
|
||||
return $this->redirectToRoute('company_ad');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -558,6 +558,35 @@ class Ad
|
||||
return $i;
|
||||
}
|
||||
|
||||
public function countAnswersParStatut()
|
||||
{
|
||||
$answers = $this->answers;
|
||||
$nbATraiter = 0;
|
||||
$nbContacte = 0;
|
||||
$nbEntretien = 0;
|
||||
$nbRefuse = 0;
|
||||
$nbEmbauche = 0;
|
||||
foreach ($answers as $a) {
|
||||
if ($a->getStatusReponse() == "A_TRAITER" AND $a->getStatus() =="SENDED" ) {
|
||||
$nbATraiter++;
|
||||
}
|
||||
else if ($a->getStatusReponse() == "CONTACTE" AND $a->getStatus() =="SENDED") {
|
||||
$nbContacte++;
|
||||
}
|
||||
else if ($a->getStatusReponse() == "ENTRETIEN" AND $a->getStatus() =="SENDED") {
|
||||
$nbEntretien++;
|
||||
}
|
||||
else if ($a->getStatusReponse() == "REFUSE" AND $a->getStatus() =="SENDED") {
|
||||
$nbRefuse++;
|
||||
}
|
||||
else if ($a->getStatusReponse() == "EMBAUCHE" AND $a->getStatus() =="SENDED"){
|
||||
$nbEmbauche++;
|
||||
}
|
||||
}
|
||||
return array("nbATraiter"=> $nbATraiter, "nbContacte"=>$nbContacte, "nbEntretien" =>$nbEntretien, "nbRefuse" => $nbRefuse, "nbEmbauche"=>$nbEmbauche);
|
||||
//return $nbATraiter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*
|
||||
|
||||
@@ -105,6 +105,14 @@ class Answer
|
||||
*/
|
||||
private $vote;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true, options={"default":"A_TRAITER"})
|
||||
*
|
||||
*/
|
||||
private $statusReponse ='A_TRAITER';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
@@ -259,6 +267,54 @@ class Answer
|
||||
return $this->vote;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set status.
|
||||
*
|
||||
* @param int|null $status
|
||||
*
|
||||
* @return Answer
|
||||
*/
|
||||
public function setStatus($status = null)
|
||||
{
|
||||
$this->status = $status;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get status.
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set statusReponse.
|
||||
*
|
||||
* @param string|null $statusReponse
|
||||
*
|
||||
* @return Answer
|
||||
*/
|
||||
public function setStatusReponse($statusReponse = null)
|
||||
{
|
||||
$this->statusReponse = $statusReponse;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get status.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getStatusReponse()
|
||||
{
|
||||
return $this->statusReponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ad.
|
||||
*
|
||||
|
||||
@@ -88,6 +88,7 @@ class User extends BaseUser
|
||||
* @Groups({"ad_detail", "ad_list", "answer_detail", "company_detail"})
|
||||
*/
|
||||
private $geoloc;
|
||||
private $geolocLocality;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Company", inversedBy="users", cascade={"persist"})
|
||||
@@ -653,6 +654,18 @@ class User extends BaseUser
|
||||
return $this->geoloc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get geolocLocality.
|
||||
*
|
||||
* @return json_document|null
|
||||
*/
|
||||
public function getGeolocLocality()
|
||||
{
|
||||
|
||||
$this->geolocLocality=$this->geoloc;
|
||||
return $this->geolocLocality;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set facebookId.
|
||||
*
|
||||
|
||||
@@ -70,6 +70,7 @@ class AdType extends AbstractType
|
||||
$builder
|
||||
->add('reference', TextType::class, array(
|
||||
'label' => 'Référence de l\'annonce',
|
||||
'required' => true,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Ex : OFFRE_521',
|
||||
'class' => 'form-control'
|
||||
|
||||
@@ -16,28 +16,29 @@ class ContactTalentType extends AbstractType
|
||||
'label' => false,
|
||||
'required' => true,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Rédigez un message de réponse',
|
||||
'class' => 'form-control'
|
||||
'placeholder' => 'Rédigez un message de réponse.',
|
||||
'class' => 'form-control',
|
||||
'style'=>"min-height:250px;"
|
||||
)
|
||||
));
|
||||
if(!isset($options['data']['subject']) || ($options['data']['subject'] == true)){
|
||||
$arraySubjects = array(
|
||||
'Choisir un statut' => null,
|
||||
'POSITIVE' => 'POSITIVE',
|
||||
'INFOS' => 'INFOS',
|
||||
'CONTACTED.RDV' => 'CONTACTED.RDV',
|
||||
'NEGATIVE' => 'NEGATIVE'
|
||||
);
|
||||
$builder
|
||||
->add('status', ChoiceType::class, array(
|
||||
'label' => false,
|
||||
'required' => true,
|
||||
'choices' => $arraySubjects,
|
||||
'attr' => array(
|
||||
'id' => 'test',
|
||||
'class' => 'form-control'
|
||||
)
|
||||
));
|
||||
}
|
||||
// if(!isset($options['data']['subject']) || ($options['data']['subject'] == true)){
|
||||
// $arraySubjects = array(
|
||||
// 'Choisir un statut' => null,
|
||||
// 'POSITIVE' => 'POSITIVE',
|
||||
// 'INFOS' => 'INFOS',
|
||||
// 'CONTACTED.RDV' => 'CONTACTED.RDV',
|
||||
// 'NEGATIVE' => 'NEGATIVE'
|
||||
// );
|
||||
// $builder
|
||||
// ->add('status', ChoiceType::class, array(
|
||||
// 'label' => false,
|
||||
// 'required' => true,
|
||||
// 'choices' => $arraySubjects,
|
||||
// 'attr' => array(
|
||||
// 'id' => 'test',
|
||||
// 'class' => 'form-control'
|
||||
// )
|
||||
// ));
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ namespace AppBundle\Form;
|
||||
|
||||
use AppBundle\Entity\Note;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
@@ -11,10 +11,18 @@ class NoteAjaxType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
//
|
||||
$builder
|
||||
->add('content', TextType::class, array(
|
||||
->add('content', TextareaType::class, array(
|
||||
'label' => 'Note',
|
||||
'required' => true,
|
||||
|
||||
'attr' => array(
|
||||
'class' => 'form-control',
|
||||
'rows' =>"5",
|
||||
'style' =>"min-height:4em;",
|
||||
'placeholder' => 'Ce commentaire sera visible uniquement par vous et les autres utilisateurs de l’espace recruteur.',
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ class ProfileLogoType extends AbstractType
|
||||
'required' => false,
|
||||
|
||||
'attr' => array(
|
||||
'accept' => "image/x-png,image/gif,image/jpeg",
|
||||
// 'style' => 'display: none;',
|
||||
'accept' => "image/x-png,image/jpeg",
|
||||
'style' => 'display: none;',
|
||||
),
|
||||
'constraints' => [
|
||||
new File([
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -190,31 +190,39 @@ class AnswerRepository extends AbstractRepository
|
||||
->join('a.user', 'user')
|
||||
->leftjoin('a.ad', 'ad')
|
||||
->leftjoin('a.video', 'video')
|
||||
->leftjoin('a.company', 'company');
|
||||
->leftjoin('a.company', 'c')
|
||||
->leftjoin('ad.company', 'company');
|
||||
$countQuery
|
||||
->join('a.user', 'user')
|
||||
->leftjoin('a.ad', 'ad')
|
||||
->leftjoin('a.video', 'video')
|
||||
->leftjoin('a.company', 'company');
|
||||
->leftjoin('a.company', 'c')
|
||||
->leftjoin('ad.company', 'company');
|
||||
// $countQuery
|
||||
// ->join('town.department', 'department')
|
||||
// ->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);
|
||||
if($otherConditions["type"]=="company"){
|
||||
$query->where("(company.id=".$otherConditions["id"]." OR c.id=".$otherConditions["id"].")");
|
||||
$countQuery->where("(company.id=".$otherConditions["id"]." OR c.id=".$otherConditions["id"].")");
|
||||
}elseif($otherConditions["type"]=="ad"){
|
||||
$query->where("(ad.id=".$otherConditions["id"].")");
|
||||
$countQuery->where("(ad.id=".$otherConditions["id"].")");
|
||||
}
|
||||
|
||||
$query->andWhere("a.status='SENDED'");
|
||||
$countQuery->andWhere("a.status='SENDED'");
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Fields Search
|
||||
foreach ($columns as $key => $column)
|
||||
{
|
||||
@@ -231,25 +239,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':
|
||||
@@ -351,13 +388,21 @@ class AnswerRepository extends AbstractRepository
|
||||
|
||||
|
||||
$medias = $qb->getQuery()->getResult();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return $medias;
|
||||
}
|
||||
|
||||
public function findAllComment()
|
||||
{
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select(['a'])
|
||||
->where('a.comment IS NOT NULL');
|
||||
|
||||
|
||||
|
||||
$answers = $qb->getQuery()->getResult();
|
||||
|
||||
return $answers;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,23 @@ class MessageRepository extends \Doctrine\ORM\EntityRepository
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getMessageAnswers()
|
||||
{
|
||||
$qb = $this
|
||||
->createQueryBuilder('m')
|
||||
->select('m', 'a')
|
||||
->join('m.answer', 'a')
|
||||
->where('m.status <> :status')
|
||||
->andWhere('a.statusReponse is null')
|
||||
->andWhere('a.comment is null')
|
||||
->setParameter(':status', 'DRAFT')
|
||||
|
||||
;
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
}
|
||||
|
||||
// add status = SENDED;
|
||||
@@ -75,6 +75,7 @@ class StatsManager
|
||||
|
||||
}
|
||||
$date = $record->getCtime();
|
||||
if(!$date) $date=date('Y-m-d');
|
||||
$stringDate = $date->format('Y-m-d');
|
||||
$arrayRecords['company'][$stringDate][$idCompany] = 0;
|
||||
if (!isset($arrayRecords['ad'][$stringDate][$ad->getId()])) {
|
||||
@@ -176,6 +177,7 @@ class StatsManager
|
||||
public function getCompanyDashboard($idCompany, $dateArray)
|
||||
{
|
||||
$arrByAd = array();
|
||||
$stringDate =null;
|
||||
$arrDatasetsAd = array();
|
||||
$arrDatasetsCompany = array();
|
||||
$arrayRecords = array();
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
liip_imagine_filter_runtime:
|
||||
path: /media/cache/resolve/{filter}/rc/{hash}/{path}
|
||||
path: /media/cache/{filter}/rc/{hash}/{path}
|
||||
defaults:
|
||||
_controller: '%liip_imagine.controller.filter_runtime_action%'
|
||||
methods:
|
||||
@@ -9,7 +9,7 @@ liip_imagine_filter_runtime:
|
||||
path: .+
|
||||
|
||||
liip_imagine_filter:
|
||||
path: /media/cache/resolve/{filter}/{path}
|
||||
path: /media/cache/{filter}/{path}
|
||||
defaults:
|
||||
_controller: '%liip_imagine.controller.filter_action%'
|
||||
methods:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
}
|
||||
|
||||
.green {
|
||||
background-color: green;
|
||||
background-color: #21c87a;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
@@ -209,4 +214,57 @@ Créer une offre d'emploi vidéo / Gérer mes offres d'emploi / Gérer mes candi
|
||||
.fleche-stats {
|
||||
color: #1689fb;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
/******** Pages de liste de candidatures liées à une offre d'emploi ********/
|
||||
|
||||
|
||||
#reponses td{vertical-align:middle;}
|
||||
|
||||
|
||||
/****************
|
||||
Détails d'une candidature
|
||||
*****************/
|
||||
|
||||
.profil-candidature{
|
||||
min-height:150px;
|
||||
}
|
||||
|
||||
.profil-candidature-action{
|
||||
padding-top:45px;
|
||||
}
|
||||
|
||||
.candidature-action{
|
||||
margin-bottom:15px;
|
||||
}
|
||||
|
||||
|
||||
.details-candidature {
|
||||
padding-top:1em;
|
||||
padding-bottom:1em;
|
||||
}
|
||||
|
||||
.icons-candidatures{
|
||||
vertical-align: middle;margin-right:10px;
|
||||
}
|
||||
|
||||
.bloc-commentaire{
|
||||
margin-bottom:20px;
|
||||
}
|
||||
|
||||
.dropzone{
|
||||
border:2px dashed rgba(33, 33, 33, 0.14);
|
||||
border-radius:5px;
|
||||
padding:20px;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
Liste d'offres d'emploi
|
||||
*******************************************/
|
||||
|
||||
tr .colonne1{
|
||||
background-color:#F3F3F4;
|
||||
}
|
||||
|
||||
tr .colonne2{
|
||||
background-color:#E9E9EA;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ if ($("#dropzone-row").length) {
|
||||
// location.reload();
|
||||
// } else {
|
||||
if (response.success == 200) {
|
||||
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo a été bien enregistrée.</div>')
|
||||
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo est enregistrée.</div>')
|
||||
//CAS VIDEO NON ATTACHEE
|
||||
if ($("#form_media").length) {
|
||||
$("#form_media .id_media").attr('value', response.mediaId);
|
||||
|
||||
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 |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user