Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2dd559fa64 | |||
| 90ae12995f | |||
| 7aa4a92cb6 | |||
| 6a9b48d629 | |||
| 032d10bb50 | |||
| 7731dd2c23 | |||
| 8c6e8f14a4 | |||
| f1c795e8cd | |||
| 5dd437d939 | |||
| 59f6854379 | |||
| c2450d3929 | |||
| 2f626dbad5 | |||
| 8bccabbcf6 | |||
| 766335bb19 | |||
| 708e1f1c87 | |||
| 1d0e0e4c48 | |||
| a790f99adb | |||
| e98a2488eb | |||
| 8b7a79ef8d | |||
| 645cf1f05a | |||
| 974629794d | |||
| f23e906168 | |||
| 5a47ac168e | |||
| a35647ca1d | |||
| 231a692369 | |||
| 1ad2d8bf1a | |||
| 2047322161 | |||
| f90c907942 | |||
| a2d0a9539f | |||
| d5f448483c | |||
| 8f12cddd86 | |||
| 0f195907c5 | |||
| 8dabe7ba82 | |||
| 0bfed4b932 | |||
| bf875db942 | |||
| 5c47a00d0e | |||
| 0f8fe7732e | |||
| bed4cbc7b1 | |||
| b09ca38415 | |||
| c0f09f715c | |||
| 4cb07a74b6 |
+2
-1
@@ -6,4 +6,5 @@
|
||||
!/volume/www
|
||||
/volume/www/**/conf/nginx.conf
|
||||
/backup
|
||||
/conf/env/*.env
|
||||
/conf/env/*.env
|
||||
volume/www/website/.idea
|
||||
|
||||
@@ -16,7 +16,7 @@ server {
|
||||
|
||||
# DEV
|
||||
location / {
|
||||
try_files $uri /app_dev.php$is_args$args;
|
||||
try_files $uri /app.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ ^/(app_dev|config)\.php(/|$) {
|
||||
|
||||
+10
-15
@@ -1,17 +1,12 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block urlCanonical %}
|
||||
#!
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<h2 class="center-align">Page introuvable</h2>
|
||||
<p class="center-align">
|
||||
Cette page n'existe plus.<br/><br/>
|
||||
<a class="btn btn-default" href="{{ path('homepage') }}">Retour à l'accueil</a>
|
||||
</p>
|
||||
</div>
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<h2 class="center-align m-t-100">Page introuvable</h2>
|
||||
<p class="center-align">
|
||||
Cette page n'existe plus.<br/><br/>
|
||||
<a class="btn btn-default" href="{{ path('homepage') }}">Retour à l'accueil</a>
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -13,6 +13,8 @@
|
||||
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/dist/css/AdminLTE.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/dist/css/skins/skin-blue.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/plugins/datatables/dataTables.bootstrap.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/plugins/datatables/dataTables.bootstrap.css') }}">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css">
|
||||
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
|
||||
|
||||
{% block css %}
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
{% extends 'admin/base_admin.html.twig' %}
|
||||
|
||||
|
||||
{% block contentHeader %}
|
||||
<h1>
|
||||
Utilisateurs
|
||||
<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">Utilisateurs</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<table id="user_list_table" class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nom</th>
|
||||
<th>Prénom</th>
|
||||
<th class="col-md-3">Email</th>
|
||||
<th>Roles</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for u in users %}
|
||||
<tr>
|
||||
<td>{{ u.lastname }}</td>
|
||||
<td>{{ u.firstname }}</td>
|
||||
<td>{{ u.email }}</td>
|
||||
<td>
|
||||
{% for r in u.roles %}
|
||||
{% if r != "ROLE_USER" %}
|
||||
<span class="badge bg-blue" style="font-weight: 400;">{{ r }}</span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete-user" href="{{ path('admin_user_delete',{'id':u.id}) }}" data-toggle="tooltip"
|
||||
title="Supprimer">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#user_list_table').DataTable({
|
||||
"paging": true,
|
||||
"lengthChange": true,
|
||||
"searching": true,
|
||||
"ordering": true,
|
||||
"info": true,
|
||||
"autoWidth": false,
|
||||
"language": {
|
||||
"url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
|
||||
},
|
||||
"columnDefs": [
|
||||
{"targets": 0, "searchable": true, "orderable": true},
|
||||
{"targets": 1, "searchable": true, "orderable": true},
|
||||
{"targets": 2, "searchable": true, "orderable": true},
|
||||
{"targets": 3, "searchable": true, "orderable": true, "className": "text-center"},
|
||||
{"targets": 4, "searchable": false, "orderable": false, "className": "text-center"},
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
$('[data-toggle="popover"]').popover();
|
||||
|
||||
$(".delete-user").confirm({
|
||||
title: "Êtes vous sûr de supprimer cet utilisateur ?",
|
||||
content: "Supprimer cet utilisateur supprimera, son compte, son entreprise, ses réponses, médias",
|
||||
type: 'red',
|
||||
boxWidth: '30%',
|
||||
useBootstrap: false,
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Confirmer',
|
||||
action: function(){
|
||||
console.log(this.$target);
|
||||
location.href = this.$target.attr('href');
|
||||
return true;
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: 'Annuler',
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
@@ -7,10 +7,10 @@
|
||||
<div class="owl-carousel tuto-carousel">
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_1.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">30 Minutes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Préparez un discours <strong>clair</strong> et <strong>concis</strong></u>
|
||||
@@ -31,10 +31,10 @@
|
||||
</div>
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_2.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">2 Minutes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Préparer votre lieu de tournage :</u>
|
||||
@@ -51,10 +51,10 @@
|
||||
</div>
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_3.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">10 secondes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Quelques informations à savoir avant le grand bain :</u>
|
||||
@@ -67,7 +67,7 @@
|
||||
<li>Recommencez autant de fois que nécessaire.</li>
|
||||
</ul>
|
||||
<br /><br />
|
||||
Bon courage !
|
||||
C’est à vous !
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -30,26 +30,28 @@
|
||||
{% endblock %}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
{# OG et TC #}
|
||||
{% block ogtc %}
|
||||
{#Twitter Card data pour les données enrichies sur Twitter#}
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube : Le 1er job board 100% vidéo">
|
||||
<meta name="twitter:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !">
|
||||
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
|
||||
{% if app.request.attributes.get('_route') != null %}
|
||||
{% block ogtc %}
|
||||
{#Twitter Card data pour les données enrichies sur Twitter#}
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube : Le 1er job board 100% vidéo">
|
||||
<meta name="twitter:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !">
|
||||
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
|
||||
|
||||
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
|
||||
<meta property="og:title" content="Talents Tube : Le 1er job board 100% vidéo" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
|
||||
<meta property="og:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !" />
|
||||
<meta property="og:site_name" content="Talents Tube" />
|
||||
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
|
||||
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
|
||||
<meta property="og:title" content="Talents Tube : Le 1er job board 100% vidéo" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
|
||||
<meta property="og:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !" />
|
||||
<meta property="og:site_name" content="Talents Tube" />
|
||||
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
|
||||
|
||||
{% endblock %}
|
||||
{# Canonical #}
|
||||
<link rel="canonical"
|
||||
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{% endblock %}">
|
||||
{% endblock %}
|
||||
{# Canonical #}
|
||||
<link rel="canonical"
|
||||
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{% endblock %}">
|
||||
{% endif %}
|
||||
{# CSS #}
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&subset=latin-ext"
|
||||
|
||||
@@ -106,11 +106,11 @@
|
||||
$('.fa-refresh').show();
|
||||
var month1 = obj.date1.getMonth();
|
||||
var day1 = obj.date1.getDate();
|
||||
var year1 = obj.date1.getUTCFullYear();
|
||||
var year1 = obj.date1.getFullYear();
|
||||
var month2 = obj.date2.getMonth();
|
||||
var day2 = obj.date2.getDate();
|
||||
var year2 = obj.date2.getUTCFullYear();
|
||||
var date1 = (month1 + 1) + "/" + day1 + "/" + year1 +" 00:00:00";
|
||||
var year2 = obj.date2.getFullYear();
|
||||
var date1 = (month1 + 1) + "/" + day1 + "/" + year1 +" 00:00:01";
|
||||
var date2 = (month2 + 1) +"/" + day2 + "/" + year2 +" 23:59:59";
|
||||
getChartData(date1, date2);
|
||||
});
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
@@ -35,13 +35,17 @@
|
||||
<div class="col s12 m12 l8 xl9">
|
||||
{% if ad.video and ad.status != "CLOSED" %}
|
||||
<div class="row m-b-0" id="adVideo">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
width="100%" height="640" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
{% if ad.id == 36 %}
|
||||
<img class="responsive-img" src="{{asset('/img/Albea_alternance_stage_vie_1.jpg')}}">
|
||||
{% else %}
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
width="100%" height="640" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if ad.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
{% endif %}
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
<a class="white-text td-none" href="https://twitter.com/TalentsTuber" title="Twitter" target="_blank">
|
||||
<i class="fa fa-twitter" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="white-text td-none" href="https://www.youtube.com/channel/UCRNqiJCLAorO0aCzNQu-8ww" title="Youtube" target="_blank">
|
||||
<i class="fa fa-youtube" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="white-text td-none" href="https://www.linkedin.com/company/talentstube" title="Linkedin" target="_blank">
|
||||
<i class="fa fa-linkedin-square" aria-hidden="true"></i>
|
||||
</a>
|
||||
|
||||
@@ -15,10 +15,6 @@
|
||||
Le concept en vidéo
|
||||
<img src="{{asset('img/bouton-play.png')}}" />
|
||||
</a>
|
||||
<a data-target="modal_voeux" href="#!" class="btn btn-default btn-round btn-voeux modal-trigger">
|
||||
Voeux 2018 en vidéo
|
||||
<img src="{{asset('img/bouton-play.png')}}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="header-video-inner">
|
||||
<video loop="" preload="metadata" autoplay="" id="vid" muted>
|
||||
@@ -203,6 +199,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'testimony/testimony_list.html.twig' %}
|
||||
</div>
|
||||
<div id="modal_concept" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
@@ -215,17 +212,6 @@
|
||||
<a href="#!" class="modal-action modal-close btn btn-default button-round-small">Fermer</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal_voeux" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<div class="video-container">
|
||||
<iframe id="iframe_concept" src="" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close btn btn-default button-round-small">Fermer</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
@@ -12,4 +12,9 @@
|
||||
|
||||
{% block description %}{{ page.description }}{% endblock %}
|
||||
|
||||
{% block content %}{{ page.content|raw }}{% endblock %}
|
||||
{% block content %}
|
||||
{{ page.content|raw }}
|
||||
{% if isTestimony is defined %}
|
||||
{% include 'testimony/testimony_list.html.twig' %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -185,7 +185,7 @@
|
||||
var urlDelete = '';
|
||||
var idObject = null;
|
||||
var typeObject = null;
|
||||
var videoExist = true;
|
||||
var videoExist = false;
|
||||
var mediaDefaultUrl = '{{ path("media_default") }}';
|
||||
var idUser = '{{ app.user.id }}';
|
||||
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
|
||||
|
||||
@@ -80,12 +80,11 @@
|
||||
<div id="modalProfilePicture" class="modal">
|
||||
<div class="modal-content">
|
||||
<h4>Edition de votre photo de profil</h4>
|
||||
{#<div class="row">
|
||||
<div class="row">
|
||||
{{ render(controller(
|
||||
'AppBundle:Media:profilePicture'
|
||||
)) }}
|
||||
</div>#}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Fermer</a>
|
||||
|
||||
@@ -113,10 +113,7 @@
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script src="https://player.vimeo.com/api/player.js"></script>
|
||||
<script>
|
||||
var iframe = document.querySelector('iframe');
|
||||
var player = new Vimeo.Player(iframe);
|
||||
$(document).ready(function(){
|
||||
$.get( "{{ path('talent_ajaxRecStat',{'id': talent.id }) }}", function( data ) {
|
||||
});
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
<div id="liste-testimony" class="bg-white">
|
||||
<div class="container">
|
||||
<div class="row flexcontainer row-noMargin">
|
||||
<div class="owl-carousel owl-carousel-testimony">
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class="col s12 l2">
|
||||
<img class="circle z-depth-3" src="{{ asset('img/testimony/de-charry.jpg')}}" alt="Jean-Philippe, Gérant, cabinet de Charry"/>
|
||||
</div>
|
||||
<div class="col s12 l8 left-align">
|
||||
<h3><strong>Jean-Philippe</strong>, Gérant, Cabinet de Charry</h3>
|
||||
<p>
|
||||
Notre entreprise amorce une nouvelle dynamique grâce à la vidéo de recrutement.<br />
|
||||
Nous accueillons demain notre nouvel agent commercial, basé à Auray/Lorient.<br />
|
||||
Il sera suivi de près par un autre très bientôt...<br />
|
||||
Nous avons eu beaucoup d’appréciations positives grâce à cette communication.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class="col l2">
|
||||
<img class="circle z-depth-3" src="{{ asset('img/testimony/lionel.jpg')}}" alt="Jean-Philippe, Gérant, cabinet de Charry"/>
|
||||
</div>
|
||||
<div class="col s12 l8 left-align text-testimony">
|
||||
<h3><strong>Lionel</strong>, dirigeant, LB Groupe</h3>
|
||||
<p>
|
||||
Talents Tube nous a permis de recruter deux collaborateurs sur des profils bien spécifiques en un temps rapide.<br />
|
||||
L’offre d’emploi vidéo a permis d’atteindre des candidats aux profils plus divers qu’une annonce classique sur papier ou web.<br />
|
||||
Les CV vidéo ont permis de gagner un temps précieux au niveau de la présélection.<br />
|
||||
Atout supplémentaire : nos annonces en vidéo ont contribué à développer notre marque employeur !
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,4 +40,5 @@ assetic:
|
||||
- 'js/vendors/typeahead.js'
|
||||
- 'js/company.js'
|
||||
- 'js/backend.js'
|
||||
- 'js/tags.js'
|
||||
- 'js/tags.js'
|
||||
- 'js/vendors/jquery-confirm.min.js'
|
||||
@@ -182,13 +182,11 @@ hwi_oauth:
|
||||
paths:
|
||||
email: email
|
||||
profilepicture: picture.data.url
|
||||
options:
|
||||
display: popup
|
||||
#csrf: true
|
||||
linkedin:
|
||||
type: linkedin
|
||||
client_id: 77ywkne3b8tcnk
|
||||
client_secret: HB9Zdx42s7RPLUqm
|
||||
client_id: 86m6hegwyj8lbo
|
||||
client_secret: LIOibqDszsP2vQSr
|
||||
infos_url: "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,location,email-address,picture-urls::(original))?format=json"
|
||||
options:
|
||||
#csrf: true
|
||||
|
||||
@@ -27,3 +27,4 @@ parameters:
|
||||
|
||||
elastic_host: tt-website.elasticsearch.prod
|
||||
elastic_port: 9200
|
||||
delivery_addresses: thomas@e-declic.com
|
||||
@@ -3,8 +3,8 @@ security:
|
||||
in_memory:
|
||||
memory: ~
|
||||
fos_userbundle:
|
||||
#id: fos_user.user_provider.username_email
|
||||
id: app.user_provider
|
||||
id: fos_user.user_provider.username_email
|
||||
#id: app.user_provider
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
@@ -13,6 +13,11 @@ security:
|
||||
|
||||
main:
|
||||
pattern: ^/
|
||||
remember_me:
|
||||
secret: '%kernel.secret%'
|
||||
lifetime: 14515200
|
||||
path: /
|
||||
always_remember_me: true
|
||||
form_login:
|
||||
provider: fos_userbundle
|
||||
csrf_token_generator: security.csrf.token_manager
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
namespace AppBundle\Controller\Admin;
|
||||
|
||||
use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Media;
|
||||
use AppBundle\Entity\Answer;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Entity\Bookmark;
|
||||
use AppBundle\Form\Admin\TalentAdminType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
@@ -43,4 +47,98 @@ class TalentController extends Controller
|
||||
'talent' => $talent,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/list", name="admin_config_user")
|
||||
*/
|
||||
public function adminUserListAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
|
||||
|
||||
|
||||
return $this->render('admin/users_list.html.twig', array(
|
||||
'users' => $t,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/delete", name="admin_user_delete")
|
||||
*/
|
||||
public function adminUserDeleteAction(Request $request, $id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
|
||||
|
||||
$userManager = $this->get('fos_user.user_manager');;
|
||||
$user = $userManager->findUserBy(array('id' => $id));
|
||||
if(\is_null($user)) {
|
||||
// user not found, generate $notFoundResponse
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
' user not found !'
|
||||
);
|
||||
}
|
||||
|
||||
\assert(!\is_null($user));
|
||||
$company = $user->getCompany();
|
||||
if($company){
|
||||
$company->setPresentationVideo(null);
|
||||
}
|
||||
$this->deleteRelation($user);
|
||||
$userManager->deleteUser($user);
|
||||
if($company){
|
||||
$em->remove($company);
|
||||
}
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute('admin_config_user');
|
||||
}
|
||||
|
||||
public function deleteRelation($user) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('user' => $user));
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator'=> $user));
|
||||
$sendMessage = $em->getRepository('AppBundle:Message')->findBy(array('sender'=> $user));
|
||||
$recipMessage = $em->getRepository('AppBundle:Message')->findBy(array('recipient'=> $user));
|
||||
$bookmarks = $em->getRepository('AppBundle:Bookmark')->findBy(array('creator'=> $user));
|
||||
|
||||
if ($sendMessage) {
|
||||
foreach ($sendMessage as $key => $message) {
|
||||
$message->setSender(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($recipMessage) {
|
||||
foreach ($recipMessage as $key => $message) {
|
||||
$message->setRecipient(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($bookmarks) {
|
||||
foreach ($bookmarks as $key => $bookmark) {
|
||||
$em->remove($bookmark);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($answers) {
|
||||
foreach ($answers as $key => $answer) {
|
||||
$em->remove($answer);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($medias) {
|
||||
foreach ($medias as $key => $media) {
|
||||
$em->remove($media);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,12 +109,17 @@ class CompanyController extends Controller
|
||||
$this->get('translator')->trans('company.account.save.title')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$formFactory = $this->container->get('fos_user.change_password.form.factory');
|
||||
$formPw = $formFactory->createForm();
|
||||
$formPw->setData($user);
|
||||
$formPw->handleRequest($request);
|
||||
if ($formPw->isSubmitted() && $formPw->isValid()) {
|
||||
$userManager->updateUser($user);
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
$this->get('translator')->trans('company.account.save.title')
|
||||
);
|
||||
}
|
||||
return $this->render('company/my_account.html.twig', [
|
||||
'form' => $form->createView(),
|
||||
|
||||
@@ -188,7 +188,8 @@ class PageController extends Controller
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('OFFREEMPLOI');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
'page' => $page,
|
||||
'isTestimony' => true
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -201,7 +202,8 @@ class PageController extends Controller
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('MARQUEEMPLOYEUR');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
'page' => $page,
|
||||
'isTestimony' => true
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -199,6 +199,22 @@ class User extends BaseUser
|
||||
return null === $this->photo ? null : $this->getUploadDir() . '/' . $this->photo;
|
||||
}
|
||||
|
||||
public function getFile()
|
||||
{
|
||||
return $this->file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set file
|
||||
*
|
||||
* @param UploadedFile $file
|
||||
*
|
||||
*/
|
||||
public function setFile(UploadedFile $file = null)
|
||||
{
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @return array|string
|
||||
|
||||
@@ -12,4 +12,14 @@ use Doctrine\ORM\EntityRepository;
|
||||
*/
|
||||
class UserRepository extends EntityRepository
|
||||
{
|
||||
public function findByRole($role)
|
||||
{
|
||||
$qb = $this->_em->createQueryBuilder();
|
||||
$qb->select('u')
|
||||
->from($this->_entityName, 'u')
|
||||
->where('u.roles LIKE :roles')
|
||||
->setParameter('roles', '%"'.$role.'"%');
|
||||
|
||||
return $qb->getQuery()->getResult();
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -227,6 +227,19 @@ $(document).ready(function () {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($(".owl-carousel-testimony").length ) {
|
||||
$(".owl-carousel-testimony").owlCarousel({
|
||||
items:1,
|
||||
nav: true,
|
||||
margin: 28,
|
||||
loop: true,
|
||||
autoplay: true,
|
||||
autoplayHoverPause: true,
|
||||
center:true,
|
||||
navText: ['<span class="left-arrow"></span>', '<span class="right-arrow"></span>']
|
||||
});
|
||||
}
|
||||
|
||||
/*GMAP Search*/
|
||||
if ($("#ad_search_location_gmap").length) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -14427,6 +14427,59 @@ a.link-white-underline {
|
||||
@media (min-width: 1136px) and (max-width: 1226px) {
|
||||
.owl-carousel .owl-item .card-company .card-content-company .col-infos {
|
||||
font-size: 14px; } }
|
||||
#liste-testimony .item .row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
min-height: 200px;
|
||||
margin-top: 60px;
|
||||
margin-bottom: 0; }
|
||||
#liste-testimony .item .row .col h3 {
|
||||
font-family: Raleway;
|
||||
font-size: 18px;
|
||||
font-weight: 300;
|
||||
margin: 30px 0 18px 0; }
|
||||
#liste-testimony .item .row .col p {
|
||||
font-size: 14px; }
|
||||
#liste-testimony .item .row .text-testimony {
|
||||
padding-right: 85px; }
|
||||
#liste-testimony .owl-dots {
|
||||
margin: 15px 0 30px 0;
|
||||
text-align: center;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
#liste-testimony .owl-dots .owl-dot {
|
||||
display: inline-block;
|
||||
zoom: 1; }
|
||||
#liste-testimony .owl-dots .owl-dot span {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
margin: 5px 7px;
|
||||
background: #D6D6D6;
|
||||
display: block;
|
||||
-webkit-backface-visibility: visible;
|
||||
transition: opacity .2s ease;
|
||||
border-radius: 30px; }
|
||||
#liste-testimony .owl-dots .owl-dot.active span, #liste-testimony .owl-dots .owl-dot:hover span {
|
||||
background: #155EE5; }
|
||||
#liste-testimony .owl-nav {
|
||||
width: 103%;
|
||||
z-index: 10; }
|
||||
|
||||
@media (max-width: 990px) {
|
||||
#liste-testimony .item .row {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
min-height: 200px;
|
||||
margin-top: 60px;
|
||||
margin-bottom: 0; }
|
||||
#liste-testimony .item .row .col {
|
||||
text-align: center; }
|
||||
#liste-testimony .item .row .col img {
|
||||
max-width: 200px;
|
||||
margin: 0 auto; }
|
||||
#liste-testimony .item .row .text-testimony {
|
||||
padding-right: 0; } }
|
||||
/* sidebar */
|
||||
#sidebar {
|
||||
background: none; }
|
||||
@@ -15553,6 +15606,7 @@ table.highlight > tbody > tr:hover {
|
||||
#answerPage .col-content.bg-arrow {
|
||||
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF; }
|
||||
#answerPage #modal-tuto {
|
||||
min-height: 540px;
|
||||
background: #FFFFFF; }
|
||||
#answerPage #modal-tuto .col-content {
|
||||
margin-bottom: 0; }
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 545 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 214 KiB |
@@ -50,6 +50,8 @@ $(document).ready(function(){
|
||||
openModal();
|
||||
}
|
||||
$(".view-tuto").on('click', function(){
|
||||
var toIndex = 0;
|
||||
$(".tuto-carousel").trigger("to.owl.carousel", [toIndex, 1, true]);
|
||||
openModal();
|
||||
});
|
||||
|
||||
|
||||
@@ -227,6 +227,19 @@ $(document).ready(function () {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($(".owl-carousel-testimony").length ) {
|
||||
$(".owl-carousel-testimony").owlCarousel({
|
||||
items:1,
|
||||
nav: true,
|
||||
margin: 28,
|
||||
loop: true,
|
||||
autoplay: true,
|
||||
autoplayHoverPause: true,
|
||||
center:true,
|
||||
navText: ['<span class="left-arrow"></span>', '<span class="right-arrow"></span>']
|
||||
});
|
||||
}
|
||||
|
||||
/*GMAP Search*/
|
||||
if ($("#ad_search_location_gmap").length) {
|
||||
|
||||
@@ -2,4 +2,6 @@
|
||||
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
|
||||
|
||||
User-agent: *
|
||||
Disallow:
|
||||
Disallow: /login/facebook*
|
||||
Disallow: /login/linkedin*
|
||||
Disallow: /annonce/*/repondre/*
|
||||
@@ -10,7 +10,6 @@
|
||||
margin-top: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.tuto-carousel{
|
||||
.owl-item {
|
||||
display: inline !important;
|
||||
@@ -49,7 +48,7 @@
|
||||
}
|
||||
.carousel-fixed-item{
|
||||
margin-right: 45px;
|
||||
margin-top: -40px;
|
||||
margin-top:-40px;
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
}
|
||||
@@ -75,6 +74,7 @@
|
||||
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF;;
|
||||
}
|
||||
#modal-tuto{
|
||||
min-height: 540px;
|
||||
background: $white;
|
||||
.col-content{
|
||||
margin-bottom: 0;
|
||||
|
||||
@@ -345,4 +345,81 @@
|
||||
.owl-carousel .owl-item .card-company .card-content-company .col-infos {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
//Carousel Testimony
|
||||
|
||||
#liste-testimony{
|
||||
.item{
|
||||
.row{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
min-height:200px;
|
||||
margin-top: 60px;
|
||||
margin-bottom: 0;
|
||||
.col{
|
||||
h3{
|
||||
font-family: Raleway;
|
||||
font-size: 18px;
|
||||
font-weight: 300;
|
||||
margin: 30px 0 18px 0;
|
||||
|
||||
}
|
||||
p{
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.text-testimony{
|
||||
padding-right:85px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.owl-dots{
|
||||
margin: 15px 0 30px 0;
|
||||
text-align:center;
|
||||
-webkit-tap-highlight-color:transparent;
|
||||
}
|
||||
.owl-dots .owl-dot{display:inline-block;zoom:1}
|
||||
.owl-dots .owl-dot span{
|
||||
width:13px;
|
||||
height:13px;
|
||||
margin:5px 7px;
|
||||
background:#D6D6D6;
|
||||
display:block;
|
||||
-webkit-backface-visibility:visible;
|
||||
transition:opacity .2s ease;
|
||||
border-radius:30px;
|
||||
}
|
||||
.owl-dots .owl-dot.active span,.owl-dots .owl-dot:hover span{
|
||||
background:#155EE5;
|
||||
}
|
||||
.owl-nav{
|
||||
width:103%;
|
||||
z-index: 10;
|
||||
}
|
||||
}
|
||||
@media (max-width: 990px){
|
||||
#liste-testimony{
|
||||
.item{
|
||||
.row{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
min-height:200px;
|
||||
margin-top: 60px;
|
||||
margin-bottom: 0;
|
||||
.col{
|
||||
text-align: center;
|
||||
img{
|
||||
max-width: 200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
.text-testimony{
|
||||
padding-right:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user