Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 69522b4836 | |||
| 1aea17557e | |||
| ab74dae813 | |||
| c46f0c29a3 | |||
| 5b1d296817 |
@@ -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 %}
|
||||
+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 -->
|
||||
@@ -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>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<!-- Required Meta Tags Always Come First -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
{# <meta name="robots" content="noindex,nofollow"> #}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{% block meta %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
{# {% extends 'company/base_dashboard_company.html.twig' %} #}
|
||||
{% extends 'admin/base_dashboard.html.twig' %}
|
||||
{% extends 'admin/base_dashboard_candidatures.html.twig' %}
|
||||
{% block javascriptSupl %}
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.6.4/css/buttons.dataTables.min.css">
|
||||
{# <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.flash.min.js"></script> #}
|
||||
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.html5.min.js"></script>
|
||||
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="https://cdn.datatables.net/buttons/1.6.4/js/buttons.print.min.js"></script>
|
||||
{% endblock %}
|
||||
{% block dashContent %}
|
||||
|
||||
|
||||
@@ -22,7 +46,7 @@
|
||||
|
||||
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
{# <div class=" container-fluid container-fixed-lg bg-white">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
@@ -72,62 +96,161 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
</div> #}
|
||||
<!-- END CONTAINER FLUID -->
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
/* Hide default search box */
|
||||
.dataTables_filter {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
<!-- START card -->
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
<div class="card-title">Candidatures spontanées
|
||||
<div class="card-title">Candidatures
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive" id="spontaneous">
|
||||
<table class="table table-hover" id="basicTable">
|
||||
<table width="100%" class="table " style="">
|
||||
|
||||
<tr>
|
||||
|
||||
|
||||
<th width="11%"><input id='input2' type='text' class='form-control' placeholder='Recherche par nom'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
|
||||
<th width="11%"><input id='input3' type='text' class='form-control' placeholder='Recherche par prénom'
|
||||
style='font-family:Arial, FontAwesome; width:100%' /></th>
|
||||
<th width="25%">
|
||||
<select id='input5' class='form-control'>
|
||||
<option value="">Toutes les offres</option>
|
||||
<option value="spontaneous">Candidatures spontanées</option>
|
||||
{% for offre in offres %}
|
||||
<option value="{{offre.title}}">{{offre.title}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</th>
|
||||
<th width="25%">
|
||||
<select id='input7' class='form-control'>
|
||||
<option value="">Tous les statuts</option>
|
||||
<option value="EMBAUCHE">Embauché</option>
|
||||
<option value="REFUSE">Refusé</option>
|
||||
<option value="ENTRETIEN">Entretien programmé</option>
|
||||
<option value="A_TRAITER">À traiter</option>
|
||||
<option value="CONTACTE">Contacté</option>
|
||||
|
||||
</select>
|
||||
</th>
|
||||
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
<table id="candidatures_dt_table" width="100%" class="table table-hover ">
|
||||
{# Add a tfoot which will actually be used to place the individual search boxes #}
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="4%">Vidéo</th>
|
||||
<th width="6%">Nom</th>
|
||||
<th width="6%">Prénom</th>
|
||||
<th width="11%">Date de reception</th>
|
||||
<th width="11%">Intitulé de l'offre</th>
|
||||
<th width="25%">Localisation</th>
|
||||
<th width="15%">Statut</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
|
||||
{#
|
||||
<table class="table table-hover " id="">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
|
||||
Comman Practice Followed
|
||||
-->
|
||||
<th style="width:33%">{{ 'profile.talent.lastname'|trans }}
|
||||
<th style="width:15%">{{ 'profile.talent.video'|trans }}
|
||||
</th>
|
||||
<th style="width:15%">{{ 'profile.talent.lastname'|trans }}
|
||||
{{ 'profile.talent.firstname'|trans }}</th>
|
||||
<th style="width:33%">{{ 'global.datereception.label'|trans }}</th>
|
||||
<th style="width:33%" class="center-align">{{ 'ad.company.list.actions'|trans }}</th>
|
||||
<th style="width:15%">{{ 'global.datereception.label'|trans }}</th>
|
||||
<th style="width:15%">{{ 'ad.company.list.title'|trans }}</th>
|
||||
<th style="width:15%">{{ 'ad.company.list.location'|trans }}</th>
|
||||
<th style="width:15%" class="center-align">{{ 'ad.company.list.statut'|trans }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for answer in spontaneous %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
{% if answer.video.thumbnails.0 is defined %}
|
||||
{% set img = answer.video.thumbnails.0.sizes.1.link %}
|
||||
{% else %}
|
||||
{% set img = " " %}
|
||||
{% endif %}
|
||||
<img src="{{ img }}">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
|
||||
{{ answer.user.firstname }}</a>
|
||||
</td>
|
||||
<td>{{ answer.sendTime()|date('d/m/Y') }}</td>
|
||||
<td class="center-align">
|
||||
<a title="" href="{{ path('company_answer_show',{'id':answer.id }) }}">
|
||||
<i class="pg-icon">eye</i>
|
||||
</a>
|
||||
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
|
||||
<i class="pg-icon">note</i>
|
||||
</a>
|
||||
{% for note in answer.notes %}
|
||||
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
|
||||
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
|
||||
<i class="pg-icon">comment</i>
|
||||
</a>
|
||||
<td>
|
||||
|
||||
{% if answer.ad %}
|
||||
{{ answer.ad.title }}
|
||||
{% else %}
|
||||
Candidature spontanée
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if answer.user.getGeoloc %}
|
||||
{% for adress in answer.user.getGeoloc %}
|
||||
|
||||
{{ adress["locality"] }}, {{ adress["postal_code"] }}
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
Non renseignée
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="center-align">
|
||||
{% if answer.statusReponse =="EMBAUCHE" %}
|
||||
<span class="label label-success">Embauché</span>
|
||||
{% elseif answer.statusReponse =="REFUSE"%}
|
||||
<span class="label label-important">Refusé</span>
|
||||
{% elseif answer.statusReponse =="ENTRETIEN"%}
|
||||
<span class="label label-warning">Entretien programmé</span>
|
||||
{% elseif answer.statusReponse =="A_TRAITER"%}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% elseif answer.statusReponse =="CONTACTE"%}
|
||||
<span class="label">Contacté</span>
|
||||
{% else %}
|
||||
<span class="label label-info">À traiter</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if spontaneous|length == 0 %}
|
||||
<tr><th colspan="3" class="text-center">Aucune candidature pour le moment</th></tr>
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">Aucune candidature pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</table> #}
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -137,4 +260,133 @@
|
||||
|
||||
|
||||
<div id="note-modal"></div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
|
||||
// Add a text input to each footer cell
|
||||
var pos = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
var table = $('#candidatures_dt_table').DataTable({
|
||||
|
||||
|
||||
|
||||
"columnDefs": [{
|
||||
"name": "video",
|
||||
"targets": 0,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "nom",
|
||||
"targets": 1,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "prenom",
|
||||
"targets": 2,
|
||||
"type": 'html',
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "dateReception",
|
||||
"targets": 3,
|
||||
"searchable": true,
|
||||
"orderable": true
|
||||
},
|
||||
{
|
||||
"name": "offre",
|
||||
"targets": 4,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "localisation",
|
||||
"targets": 5,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
{
|
||||
"name": "statusReponse",
|
||||
"targets": 6,
|
||||
"searchable": true,
|
||||
"orderable": false
|
||||
},
|
||||
],
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
||||
"ajax": {
|
||||
"url": '{{ path('alimenterCandidaturesCompany') }}',
|
||||
"type": 'POST',
|
||||
},
|
||||
"paging": true,
|
||||
"info": true,
|
||||
"searching": true,
|
||||
"bFilter": true,
|
||||
"responsive": true,
|
||||
"pageLength": 10,
|
||||
"order": [
|
||||
[0, 'desc']
|
||||
],
|
||||
"language": {
|
||||
"sProcessing": "En cours de chargement...",
|
||||
"sSearch": "Rechercher :",
|
||||
"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 %}
|
||||
@@ -24,7 +24,7 @@
|
||||
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
|
||||
</a>
|
||||
{% else %}
|
||||
Candidature spontanée
|
||||
<a href="{{ path('company_answer_list') }}">Candidature spontanée</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="breadcrumb-item active"><a href="#"> candidat {{ answer.user.firstname }}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% extends "baseLanding.html.twig" %}
|
||||
{% block title %}Valorisez votre métier en tension et recrutez des candidats grâce à la vidéo{% endblock %}
|
||||
{% block title %}Valorisez votre métier 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.">
|
||||
|
||||
@@ -178,8 +178,7 @@
|
||||
<div class="container">
|
||||
<header>
|
||||
<h2>Ils ont recruté en vidéo, pourquoi pas vous ?</h2>
|
||||
<h3>Plus qu'une dernière étape avant de rendre votre métier en tension plus attractif.<br>Osez recruter
|
||||
autrement ! </h3>
|
||||
<h3>Ces entreprises ont choisi Talents Tube pour recruter en vidéo ! </h3>
|
||||
</header>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
@@ -223,7 +222,7 @@
|
||||
<!--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>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>
|
||||
|
||||
@@ -126,9 +126,9 @@
|
||||
{% set idPresentationVideo = false %}
|
||||
{% endif %}
|
||||
{% if idPresentationVideo != media.id %}
|
||||
{% if iteration is divisible by(2) or iteration==0%}
|
||||
{# {% if iteration is divisible by(2) or iteration==0%}
|
||||
<div class="row p-t-10 p-b-10">
|
||||
{% endif %}
|
||||
{% endif %} #}
|
||||
|
||||
<div class="col">
|
||||
<div class="card-image">
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
|
||||
{# cas d'un nombre impair de video #}
|
||||
{% if nbMedias == iteration+1 and iteration is divisible by(2)%}
|
||||
{# {% if nbMedias == iteration+1 and iteration is divisible by(2)%}
|
||||
<div class="col">
|
||||
<div class="card-image">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
@@ -199,14 +199,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %} #}
|
||||
{# fermeture de div pour aller à la ligne quand le nombre de video est un multiple de deux et par défaut au début iteration==0 #}
|
||||
{% if iteration+1 is divisible by(2) or nbMedias==1%}
|
||||
{# {% if iteration+1 is divisible by(2) or nbMedias==1%}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% set iteration = iteration+1 %}
|
||||
{% set iteration = iteration+1 %} #}
|
||||
{% else %}
|
||||
{% set nbMedias = nbMedias-1%}
|
||||
{# {% set nbMedias = nbMedias-1%} #}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ twig:
|
||||
globals:
|
||||
push_public_key: "%push_params.public_key%"
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
version: '2.7.4'
|
||||
version: '2.7.5'
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -534,27 +534,259 @@ class AnswerController extends Controller
|
||||
*/
|
||||
public function companyListAnswerAction()
|
||||
{
|
||||
|
||||
|
||||
// $answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
// $spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
|
||||
// array(
|
||||
// 'company' => $user->getCompany()->getId(),
|
||||
// 'status' => 'SENDED'
|
||||
// ),
|
||||
// array(
|
||||
// 'cTime' => 'DESC'
|
||||
// )
|
||||
// );
|
||||
$user = $this->getUser();
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
$spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
|
||||
array(
|
||||
'company' => $user->getCompany()->getId(),
|
||||
'status' => 'SENDED',
|
||||
'ad' => null
|
||||
),
|
||||
array(
|
||||
'uTime' => 'DESC'
|
||||
)
|
||||
);
|
||||
$offres = $em->getRepository('AppBundle:Ad')->getAdByCompany($user->getCompany()->getId());
|
||||
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'spontaneous' => $spontaneous,
|
||||
// 'answers' => $answers,
|
||||
// 'spontaneous' => $spontaneous,
|
||||
'offres' => $offres,
|
||||
'type' => 'answer'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/alimenterCandidaturesCompany", name="alimenterCandidaturesCompany")
|
||||
*/
|
||||
public function listDatatablesAction(Request $request)
|
||||
{
|
||||
// Set up required variables
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$this->repository = $em->getRepository('AppBundle:Answer');
|
||||
//$this->translator = $this->get('translator');
|
||||
// Get the parameters from DataTable Ajax Call
|
||||
$companyId = $this->getUser()->getCompany()->getId();
|
||||
if ($request->getMethod() == 'POST')
|
||||
{
|
||||
$draw = intval($request->request->get('draw'));
|
||||
$start = $request->request->get('start');
|
||||
$length = $request->request->get('length');
|
||||
$search = $request->request->get('search');
|
||||
$orders = $request->request->get('order');
|
||||
$columns = $request->request->get('columns');
|
||||
|
||||
}
|
||||
else // If the request is not a POST one, die hard
|
||||
die;
|
||||
|
||||
// Process Parameters
|
||||
|
||||
// Orders
|
||||
foreach ($orders as $key => $order)
|
||||
{
|
||||
// Orders does not contain the name of the column, but its number,
|
||||
// so add the name so we can handle it just like the $columns array
|
||||
$orders[$key]['name'] = $columns[$order['column']]['name'];
|
||||
}
|
||||
|
||||
// Further filtering can be done in the Repository by passing necessary arguments
|
||||
$otherConditions = $companyId;
|
||||
|
||||
// Get results from the Repository
|
||||
$results = $this->repository->getRequiredDTData($start, $length, $orders, $search, $columns, $otherConditions);
|
||||
|
||||
// Returned objects are of type Town
|
||||
$objects = $results["results"];
|
||||
// Get total number of objects
|
||||
$total_objects_count = $this->repository->comptage();
|
||||
// Get total number of results
|
||||
$selected_objects_count = count($objects);
|
||||
// Get total number of filtered data
|
||||
$filtered_objects_count = $results["countResult"];
|
||||
|
||||
// Construct response
|
||||
$response = '{
|
||||
"draw": '.$draw.',
|
||||
"recordsTotal": '.$total_objects_count.',
|
||||
"recordsFiltered": '.$filtered_objects_count.',
|
||||
"data": [';
|
||||
|
||||
$i = 0;
|
||||
|
||||
foreach ($objects as $key => $answer)
|
||||
{
|
||||
$response .= '["';
|
||||
|
||||
$j = 0;
|
||||
$nbColumn = count($columns);
|
||||
foreach ($columns as $key => $column)
|
||||
{
|
||||
// In all cases where something does not exist or went wrong, return -
|
||||
$responseTemp = "-";
|
||||
|
||||
switch($column['name'])
|
||||
{
|
||||
case 'video':
|
||||
{
|
||||
if ($answer->getVideo()->getThumbnails()){
|
||||
$img= $answer->getVideo()->getThumbnails()[0]['sizes'][1]['link'];
|
||||
}else{
|
||||
$img= "";
|
||||
|
||||
|
||||
|
||||
}
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = "<a href='".$link."'><img src='".$img."'></a>";
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'nom':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getLastname()."</a>";
|
||||
break;
|
||||
}
|
||||
|
||||
case 'prenom':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$responseTemp = "<a href='".$link."'>".$answer->getUser()->getFirstname()."</a>";
|
||||
break;
|
||||
}
|
||||
|
||||
case 'dateReception':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
$responseTemp = $answer->getSendTime()->format('d/m/Y H:i:s');
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'offre':
|
||||
{
|
||||
// We know from the class definition that the postal code cannot be null
|
||||
// But if that werent't the case, its value should have been tested
|
||||
// before assigning it to $responseTemp
|
||||
|
||||
if($answer->getCompany()){
|
||||
if($answer->getAd()){
|
||||
$responseTemp = $answer->getAd()->getTitle();
|
||||
}else{
|
||||
$responseTemp = "Candidature spontanée";
|
||||
}
|
||||
}else{
|
||||
$responseTemp = "ND";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'date_envoi':
|
||||
{
|
||||
if($answer->getSendTime()){
|
||||
$responseTemp = date_format($answer->getSendTime(), 'd-m-Y H:i:s');;
|
||||
}else{
|
||||
$responseTemp ="ND";
|
||||
}
|
||||
// This cannot happen if inner join is used
|
||||
// However it can happen if left or right joins are used
|
||||
|
||||
break;
|
||||
}
|
||||
case 'ad_id':
|
||||
{
|
||||
$video = $answer->getVideo();
|
||||
$responseTemp ="ND";
|
||||
if($video){
|
||||
$responseTemp = 'ID Candidature :'.$answer->getId().'<br />';
|
||||
$videoRenommee = str_replace("/videos/", "", $video->getCdnUrl());
|
||||
//TODO : revoir ca car une vue dans un controller ca n'est pas top!!!!!
|
||||
$responseTemp .= "<iframe src='https://player.vimeo.com/video/".$videoRenommee."?embedparameter=value' width='auto' height='auto' frameborder='0' allowfullscreen></iframe>";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 'statusReponse':
|
||||
{
|
||||
// if($answer->getstatus()=="SENDED"){
|
||||
// $status= "ENVOYE";
|
||||
// }else{
|
||||
// $status=$answer->getstatus();
|
||||
// }
|
||||
// $responseTemp = "<span id='status_".$answer->getId()."'> ".$status."</span> ";
|
||||
if ($answer->getStatusReponse() =="EMBAUCHE" ){
|
||||
$responseTemp = "<span class='label label-success'>Embauché</span> ";
|
||||
|
||||
}elseif ($answer->getStatusReponse() =="REFUSE" ){
|
||||
$responseTemp = "<span class='label label-important'>Refusé</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="ENTRETIEN" ){
|
||||
$responseTemp = "<span class='label label-warning'>Entretien programmé</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="A_TRAITER" ){
|
||||
$responseTemp = "<span class='label label-info'>À traiter</span> ";
|
||||
}elseif ($answer->getStatusReponse() =="CONTACTE" ){
|
||||
$responseTemp = "<span class='label'>Contacté</span> ";
|
||||
}else {
|
||||
$responseTemp = "<span class='label label-info'>À traiter</span> ";
|
||||
}
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case 'localisation':
|
||||
{
|
||||
if($answer->getUser()->getGeoloc()) {
|
||||
|
||||
foreach ($answer->getUser()->getGeoloc() as &$adress) {
|
||||
$responseTemp =$adress["locality"] .", ". $adress["postal_code"];
|
||||
}
|
||||
|
||||
}else {
|
||||
$responseTemp ="Non renseignée";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the found data to the json
|
||||
$response .= $responseTemp;
|
||||
|
||||
if(++$j !== $nbColumn)
|
||||
$response .='","';
|
||||
}
|
||||
|
||||
$response .= '"]';
|
||||
|
||||
// Not on the last item
|
||||
if(++$i !== $selected_objects_count)
|
||||
$response .= ',';
|
||||
}
|
||||
|
||||
$response .= ']}';
|
||||
|
||||
// Send all this stuff back to DataTables
|
||||
$returnResponse = new JsonResponse();
|
||||
$returnResponse->setJson($response);
|
||||
|
||||
return $returnResponse;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/entreprise/me/espace-oe/candidature-spontanee/", name="company_spontaneous_list")
|
||||
*/
|
||||
|
||||
@@ -37,7 +37,7 @@ class MediaController extends Controller
|
||||
{
|
||||
$event = new UserEvent($this->getUser());
|
||||
$company = $this->getUser()->getCompany();
|
||||
$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
//$this->get('event_dispatcher')->dispatch(PrestashopBridgeEvents::USER_PROD_UPDATE, $event);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $this->getUser()));
|
||||
$form = $this->createForm(MediaType::class);
|
||||
|
||||
@@ -16,10 +16,12 @@ class NoteAjaxType extends AbstractType
|
||||
->add('content', TextareaType::class, array(
|
||||
'label' => 'Note',
|
||||
'required' => true,
|
||||
|
||||
'attr' => array(
|
||||
'class' => 'form-control',
|
||||
'rows' =>"5",
|
||||
'style' =>"min-height:4em;"
|
||||
'style' =>"min-height:4em;",
|
||||
'placeholder' => 'Ce commentaire sera visible uniquement par vous et les autres utilisateurs de l’espace recruteur.',
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
@@ -62,6 +62,19 @@ class AdRepository extends AbstractRepository
|
||||
->andWhere('a.id = '.$adId);
|
||||
|
||||
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getAdByCompany($companyId){
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select('a')
|
||||
->leftjoin('a.company', 'comp')
|
||||
->where('comp.id = '.$companyId);
|
||||
|
||||
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
|
||||
@@ -201,20 +201,20 @@ class AnswerRepository extends AbstractRepository
|
||||
// ->join('department.region', 'region');
|
||||
|
||||
// Other conditions than the ones sent by the Ajax call ?
|
||||
if ($otherConditions === null)
|
||||
if ($otherConditions )
|
||||
{
|
||||
// No
|
||||
// However, add a "always true" condition to keep an uniform treatment in all cases
|
||||
$query->where("1=1");
|
||||
$countQuery->where("1=1");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add condition
|
||||
$query->where($otherConditions);
|
||||
$countQuery->where($otherConditions);
|
||||
$query->where("company.id=".$otherConditions);
|
||||
$countQuery->where("company.id=".$otherConditions);
|
||||
$query->andWhere("a.status='SENDED'");
|
||||
$countQuery->andWhere("a.status='SENDED'");
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Fields Search
|
||||
foreach ($columns as $key => $column)
|
||||
{
|
||||
@@ -231,25 +231,54 @@ class AnswerRepository extends AbstractRepository
|
||||
{
|
||||
|
||||
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(user.lastname) LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(user.lastname) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
break;
|
||||
}
|
||||
case 'nomPrenom':
|
||||
{
|
||||
|
||||
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(user.lastname) LIKE lower(\'%'.$searchItem.'%\') or lower(user.firstname) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
break;
|
||||
}
|
||||
case 'offre':
|
||||
{
|
||||
|
||||
// $searchQuery = 'town.name LIKE \'%'.$searchItem.'%\'';
|
||||
if($searchItem=="spontaneous"){
|
||||
$searchQuery = 'lower(ad.title) is null';
|
||||
}else{
|
||||
$searchQuery = 'lower(ad.title) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 'status':
|
||||
{
|
||||
// $searchQuery = 'town.postalCode LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(a.status) LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(a.status) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
break;
|
||||
}
|
||||
case 'statusReponse':
|
||||
{
|
||||
// $searchQuery = 'town.postalCode LIKE \'%'.$searchItem.'%\'';
|
||||
|
||||
$searchQuery = 'lower(a.statusReponse) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
if($searchItem=="A_TRAITER"){
|
||||
$searchQuery .= ' or a.statusReponse is null';
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'prenom':
|
||||
{
|
||||
// $searchQuery = 'department.name LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(user.firstname) LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(user.firstname) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
break;
|
||||
}
|
||||
case 'entreprise':
|
||||
{
|
||||
// $searchQuery = 'department.name LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(company.brandName) LIKE \'%'.$searchItem.'%\' or lower(ad.title) LIKE \'%'.$searchItem.'%\'';
|
||||
$searchQuery = 'lower(company.brandName) LIKE lower(\'%'.$searchItem.'%\') or lower(ad.title) LIKE lower(\'%'.$searchItem.'%\')';
|
||||
break;
|
||||
}
|
||||
case 'ad_id':
|
||||
|
||||
@@ -178,6 +178,11 @@ Créer une offre d'emploi vidéo / Gérer mes offres d'emploi / Gérer mes candi
|
||||
box-shadow: 0px 2px 5px rgb(30 35 39 / 5%);
|
||||
transition: background-color 0.3s;
|
||||
transition: box-shadow 0.5s;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.card-action a {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.card-action:hover {
|
||||
@@ -250,4 +255,4 @@ Détails d'une candidature
|
||||
border:2px dashed rgba(33, 33, 33, 0.14);
|
||||
border-radius:5px;
|
||||
padding:20px;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user