Compare commits
100 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a55828306a | |||
| 2757340f8e | |||
| 6ef1ab86c1 | |||
| 76fa1bdb59 | |||
| 96a9a58af6 | |||
| 1e199008b3 | |||
| 7464000fea | |||
| 7ae1389c7b | |||
| 8b2e6612be | |||
| 457d6c4e5a | |||
| 0b59a5bbaa | |||
| a0aebfa52c | |||
| 38d84a0257 | |||
| d3d8339a6f | |||
| 8ef169197d | |||
| 1cf0e33b07 | |||
| fbfadf425f | |||
| 2d097a0424 | |||
| 27963ab492 | |||
| c801d92143 | |||
| 737af1052b | |||
| 85b1e2406d | |||
| 5cb2f6d2cb | |||
| b070ae8e28 | |||
| 5b9c7e57fe | |||
| 8f8e2c3b2f | |||
| d0e7ee8b74 | |||
| c0445c9ad3 | |||
| 65dfac1af5 | |||
| 50831adf20 | |||
| 6f7d329cc6 | |||
| 5f2e5fddbf | |||
| e905cb063c | |||
| 44ae8a01fb | |||
| 703b8891e6 | |||
| 724e175a6c | |||
| e9a7da75bc | |||
| 5612f87999 | |||
| b63983b61e | |||
| 43858b06ff | |||
| f012f91ca4 | |||
| 2ba454f2ab | |||
| 2426dc5abc | |||
| 703ec9a1bb | |||
| 4a72e4dfe6 | |||
| 607f7706ca | |||
| b0b1179bdc | |||
| 0e2494797e | |||
| 69a7595966 | |||
| e404b4d876 | |||
| fa8b21b93c | |||
| 8e8312c0f9 | |||
| 0297191e07 | |||
| e64ce55b66 | |||
| eda0562edc | |||
| 01f5823885 | |||
| 9ed2745e8d | |||
| 82c4911770 | |||
| 8df9b7af43 | |||
| 71259c40c6 | |||
| 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 | |||
| 77d695f67a |
@@ -6,4 +6,5 @@
|
||||
!/volume/www
|
||||
/volume/www/**/conf/nginx.conf
|
||||
/backup
|
||||
/conf/env/*.env
|
||||
/conf/env/*.env
|
||||
volume/www/website/.idea
|
||||
|
||||
@@ -10,6 +10,8 @@ RUN rm /etc/nginx/conf.d/default.conf \
|
||||
&& sed -i 's|include /etc/nginx/conf.d/\*.conf;|include /etc/nginx/conf.d/\*.conf;\ninclude /etc/nginx/sites-enabled/\*.conf;\n|' /etc/nginx/nginx.conf
|
||||
|
||||
COPY log_format.conf /etc/nginx/conf.d/
|
||||
COPY tt-dev.crt /etc/nginx/ssl/server.crt
|
||||
COPY tt-dev.key /etc/nginx/ssl/server.key
|
||||
|
||||
RUN apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDrjCCApYCCQD0c9mokUtilTANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC
|
||||
RlIxDDAKBgNVBAgMA0JaSDEOMAwGA1UEBwwFQXVyYXkxGTAXBgNVBAoMEHRhbGVu
|
||||
dHN0dWJlLnRlc3QxETAPBgNVBAsMCGUtZGVjbGljMRkwFwYDVQQDDBB0YWxlbnRz
|
||||
dHViZS50ZXN0MSIwIAYJKoZIhvcNAQkBFhN0aG9tYXNAZS1kZWNsaWMuY29tMB4X
|
||||
DTE4MDQzMDA5MTkwMVoXDTE5MDQzMDA5MTkwMVowgZgxCzAJBgNVBAYTAkZSMQww
|
||||
CgYDVQQIDANCWkgxDjAMBgNVBAcMBUF1cmF5MRkwFwYDVQQKDBB0YWxlbnRzdHVi
|
||||
ZS50ZXN0MREwDwYDVQQLDAhlLWRlY2xpYzEZMBcGA1UEAwwQdGFsZW50c3R1YmUu
|
||||
dGVzdDEiMCAGCSqGSIb3DQEJARYTdGhvbWFzQGUtZGVjbGljLmNvbTCCASIwDQYJ
|
||||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBANVTxapL6RtTjEoO4wWTswIqTW/zTI4B
|
||||
bETbPHYOeb8+kgLTxH04ETmVzPYz0b5RfkotY0EZzwntv3c5JsLnqqrQAXN4fcl3
|
||||
iIXCXMKUo1Nrbp0yAMGzGDmnpmvABE/nkg0ZJ3YeKV9xkEYcyMCU+DhUuazd1W3d
|
||||
odjMs/BHeuoZau9HRE+6lE+/tqWhHrmgRghP8g2Z2g8lrHak5BuQNwnvVmg6oJae
|
||||
94DWygKV7ZJ3vBHRkLIOaG+mVI8FRjrlHQke/tFStD2dd3TgsqvzYBM3f1VBm85y
|
||||
qhyIxr2s+xgOl2/Z0VZzmVgI2jAPhvN8VNvXtlFM6BOkyHAFwm7jCtcCAwEAATAN
|
||||
BgkqhkiG9w0BAQsFAAOCAQEAjlPu5wtZwW0jP0cBBBvZWLRe9+Wlz9uJXiOb2AMF
|
||||
ibYeKgcGNbruY8Ayvmm++C/mMpkm50NG5ycEiO5rB/1665zB5ibWAswRD+F5rjzx
|
||||
8qM4YsUVDkiuW5ul0RI2KO6llAbdQaCfaqXtsCZ+b/XVwe41S1ZkvigLaL99pscU
|
||||
ghgD9yz/RY6C7PHPS+8dF0Uc+YND3vqWfAhUQCXdXetXndPMxwBOXnT08RQOWMBK
|
||||
lTSHIsFACFhynL3wfQ6xH4+/TQkquxzqqh3MeB1LpqHiFChCoNmBPKWf7ZvFkg/p
|
||||
4DzXTkLs6G6/WM7DuBmwB6e5tevJfe/BSkzCLaJKABDaOA==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVU8WqS+kbU4xK
|
||||
DuMFk7MCKk1v80yOAWxE2zx2Dnm/PpIC08R9OBE5lcz2M9G+UX5KLWNBGc8J7b93
|
||||
OSbC56qq0AFzeH3Jd4iFwlzClKNTa26dMgDBsxg5p6ZrwARP55INGSd2HilfcZBG
|
||||
HMjAlPg4VLms3dVt3aHYzLPwR3rqGWrvR0RPupRPv7aloR65oEYIT/INmdoPJax2
|
||||
pOQbkDcJ71ZoOqCWnveA1soCle2Sd7wR0ZCyDmhvplSPBUY65R0JHv7RUrQ9nXd0
|
||||
4LKr82ATN39VQZvOcqociMa9rPsYDpdv2dFWc5lYCNowD4bzfFTb17ZRTOgTpMhw
|
||||
BcJu4wrXAgMBAAECggEACj5ikIHiqLBDXU8Hsb3c666yVzzcoTkKROguKBEb4YYU
|
||||
ptQabFTj5tr9o5jranMpWFCDop2lpnlnJ0d0SAmt1VP1reDMUX9O6/VgVOukSB4x
|
||||
ipTbGnIKKMKXKDdpPZkGF2Ds1ywtmmqund9F+JFute3DmLxyQjtRSULTJSeZjGIj
|
||||
kk4mUHIZr71q2KocBEhDZhoaf6aiM3tfyXIlg0C6GzcfGKk4a2C6Ia7D24icPLa7
|
||||
JE4Omh6w8duQsme8YeFbbixLlwm+74qvo7k8ubqZAvvODQlKz4xiT1App4cTq6nm
|
||||
PbAuFvLX0DtkndBSgAUa3h8iuchdv15M2FkUWkenaQKBgQD7iup0vZqqIFh6Sk08
|
||||
k3Skbit6TXwMt4yjP9/JTgMaIO5LfZiht2xyxN4gN2XVp6k4Jn5SPxGuGV+e5QSr
|
||||
9R04x5wN6NwZAprL70UuztHZdXpzNVogF4hF4LdGDT8CbeFF5ciiTQaAKwX9euOT
|
||||
HRf6RGT80qiKVcZ+C3zhR6CxAwKBgQDZG39+6DzdGetLzls7B6R1PPV7RLOn6bts
|
||||
jbxSkx/VksHkS1Q4lG1fXM2q/VdSTFg/gNNKzLCADDVrO9KonvVrvMZlshiSLXTJ
|
||||
GVgfe+UGSL7VjbH4G4bAqznK5zK8ADI1BRyCU3UrzFqRHoV9h9e2qIfjJrK4taX7
|
||||
G5KAukDUnQKBgQC6GBLOnTtgY5+xkWjEyP6Ba7QkvlBpBB465FWGk31+BiDlnpyd
|
||||
/5pu6jC/OtzPDUQG84t/A4Pr/n+ciShEo4mj6SENtVmn8yJcf776Gy5rKBuYQj9U
|
||||
ALTjpZVRcRlNjccctBwT3tJRXgMHfbQBsYN8tr7TwHHKLh00QQF5lUlPywKBgB2a
|
||||
SkAbmnDrX9HuSTI7UIlLzo0ISRbUH+IlUVBRDz4nzJg8TTeJxYADP2fZM1bdYgsG
|
||||
ncjNMCPFhmMgvRCQ3BXcn5CuP/tuh0YEVqe0VP4OXTbxIxsZZb5Pmom4DIrl2/Ku
|
||||
x7xddNSMAK1Y5ArBwv/86spmNGhLHF6o28kBnGVhAoGAOcGzpJi1l0BzNUKBS512
|
||||
XlLUYswFW6OqcEk1iGTvEFUzZ9Agp2Yc7HZ3MrmCAjugx37tAfNKQglF2/AJ9Uuy
|
||||
yoUpPtdXX6CuPTMkzCkvAYbRGohE/cw7ZjI6vTqoEPiyrQA1lJYTIMQm3FYivjJl
|
||||
z84K0Vlv64BeiIpJrvzW+2A=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -5,6 +5,7 @@ services:
|
||||
nginx:
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ../volume/www:/home/www:cached
|
||||
restart: "no"
|
||||
|
||||
@@ -8,15 +8,18 @@ upstream store_php {
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
listen 443 ssl;
|
||||
server_name talentstube.test;
|
||||
root /home/www/website/www/web;
|
||||
client_max_body_size 500M;
|
||||
sendfile off;
|
||||
ssl_certificate /etc/nginx/ssl/server.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/server.key;
|
||||
|
||||
# DEV
|
||||
location / {
|
||||
try_files $uri /app_dev.php$is_args$args;
|
||||
try_files $uri /app.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ ^/(app_dev|config)\.php(/|$) {
|
||||
|
||||
@@ -9,4 +9,6 @@ rewrite ^/plateforme$ https://www.talentstube.com/ permanent;
|
||||
rewrite ^/page/les-conseils$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video permanent;
|
||||
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
|
||||
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
|
||||
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
|
||||
@@ -3,18 +3,26 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container contentWrapper">
|
||||
<div class="row">
|
||||
<div class="col push-s3 s6">
|
||||
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% if targetUrl %}
|
||||
<p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
|
||||
{% endif %}
|
||||
<br /><br />
|
||||
|
||||
<div class="container contentWrapper">
|
||||
<div class="row">
|
||||
<div class="col push-s3 s6">
|
||||
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% if targetUrl %}
|
||||
<p>
|
||||
<a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
<br/><br/>
|
||||
{% if app.request.cookies.get('redirect_register')is defined %}
|
||||
<div class="center">
|
||||
<a href="{{ app.request.cookies.get('redirect_register') }}" class="btn btn-default">Poursuivre votre candidature</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block metarobot %}
|
||||
|
||||
@@ -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 %}
|
||||
@@ -3,7 +3,8 @@
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<div class="owl-carousel territory-carousel">
|
||||
{% for territory in territories %}
|
||||
|
||||
{% for territory in territories if territory.territory.isPrivate != true %}
|
||||
{% set territory = territory.territory %}
|
||||
<div class="item">
|
||||
<h2 class="blue-text no-margin-top">
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<div class="box box-primary">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ ad.title }}</h3>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("ad_show",{'alias':ad.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
@@ -41,7 +42,7 @@
|
||||
<h3 class="box-title">Informations</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }}
|
||||
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }} {{ form_row(form.isPrivate) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -66,6 +66,10 @@
|
||||
title="Modifier">
|
||||
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a href="{{ path('admin_ad_refresh_img',{'id':ad.id}) }}" data-toggle="tooltip"
|
||||
title="Mise à jour image vimeo">
|
||||
<i class="fa fa-picture-o" aria-hidden="true"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -22,9 +22,11 @@
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ company.brandName }}</h3>
|
||||
<br><span>{{ company.mainUser.email }}</span>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("company_show",{'alias':company.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
{{ form_row(form.isPrivate) }}
|
||||
{{ form_row(form.emphasis) }}
|
||||
{{ form_row(form.emphasisOrder) }}
|
||||
{{ form_row(form.brandName) }}
|
||||
|
||||
@@ -58,6 +58,10 @@
|
||||
style="margin-left: 5px;">
|
||||
<i class="fa fa-cart-plus" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a href="{{ path('admin_company_refresh_img',{'id':company.id}) }}" data-toggle="tooltip"
|
||||
title="Mise à jour image vimeo">
|
||||
<i class="fa fa-picture-o" aria-hidden="true"></i>
|
||||
</a>
|
||||
{% if is_granted('ROLE_ALLOWED_TO_SWITCH') %}
|
||||
<a href="{{ path('company_dashboard',{'_switch_user':company.MainUser.username}) }}"
|
||||
data-toggle="tooltip" title="Se connecter avec ce compte"
|
||||
@@ -88,7 +92,7 @@
|
||||
"language": {
|
||||
"url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
|
||||
},
|
||||
"order": [[1, 'desc']],
|
||||
"order": [[0, 'desc']],
|
||||
"columnDefs": [
|
||||
{"targets": 0, "searchable": true, "orderable": true},
|
||||
{"targets": 1, "searchable": true, "orderable": true},
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
{"targets": 4, "searchable": true, "orderable": true, "className": "text-center"},
|
||||
{"targets": 5, "searchable": false, "orderable": false, "className": "text-center"},
|
||||
],
|
||||
"order": [[1, "asc"]]
|
||||
"order": [[0, "desc"]]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -22,13 +22,16 @@
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">{{ territory.brandName }}</h3>
|
||||
<br><span>{{ territory.mainUser.email }}</span>
|
||||
<br/><i class="fa fa-link"></i>Url : {{ path("territory_show",{'alias':territory.alias})}}<br />
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{{ form_errors(form) }}
|
||||
{{ form_row(form.isPrivate) }}
|
||||
{{ form_row(form.emphasis) }}
|
||||
{{ form_row(form.emphasisOrder) }}
|
||||
{{ form_row(form.brandName) }}
|
||||
{{ form_row(form.description) }}
|
||||
{{ form_row(form.descriptionAdmin) }}
|
||||
{{ form_row(form.website) }}
|
||||
{{ form_row(form.tagsComma) }}
|
||||
{{ form_row(form.file) }}
|
||||
@@ -60,11 +63,24 @@
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block css %}
|
||||
<link rel="stylesheet" href="{{ asset('codemirror/lib/codemirror.css') }}">
|
||||
{% endblock %}
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('[data-toggle="popover"]').popover();
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
<script src="{{ asset('codemirror/lib/codemirror.js') }}"></script>
|
||||
<script src="{{ asset('codemirror/mode/xml/xml.js') }}"></script>
|
||||
<script src="{{ asset('codemirror/mode/javascript/javascript.js') }}"></script>
|
||||
<script src="{{ asset('codemirror/mode/css/css.js') }}"></script>
|
||||
<script src="{{ asset('codemirror/mode/vbscript/vbscript.js') }}"></script>
|
||||
<script src="{{ asset('codemirror/mode/htmlmixed/htmlmixed.js') }}"></script>
|
||||
<script>
|
||||
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById('territory_admin_descriptionAdmin'), {
|
||||
lineNumbers: true,
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -100,7 +100,7 @@
|
||||
{"targets": 3, "searchable": true, "orderable": true, "className": "text-center"},
|
||||
{"targets": 4, "searchable": false, "orderable": false, "className": "text-center"},
|
||||
],
|
||||
"order": [[1, "asc"]]
|
||||
"order": [[0, "desc"]]
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
{% 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>Secret</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 class="col-md-2">Nom</th>
|
||||
<th class="col-md-2">Prénom</th>
|
||||
<th class="col-md-3">Email</th>
|
||||
<th class="col-md-1">Rôle</th>
|
||||
<th class="col-md-3">Etat</th>
|
||||
<th class="col-md-1">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" and r == "ROLE_TALENT" %}
|
||||
<span class="badge bg-blue" style="font-weight: 400;">{{ r }}</span>
|
||||
{% elseif r != "ROLE_USER" and r == "ROLE_COMPANY" %}
|
||||
<span class="badge bg-orange" style="font-weight: 400;">{{ r }}</span>
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% if u.enabled %}
|
||||
Activé
|
||||
{% else %}
|
||||
Désactivé
|
||||
<br/>
|
||||
<a href="{{ path('admin_user_resend',{'id':u.id}) }}">Renvoyer le mail de confirmation</a>
|
||||
{% endif %}
|
||||
</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"
|
||||
}, {
|
||||
"targets": 5,
|
||||
"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"
|
||||
|
||||
@@ -90,18 +90,20 @@
|
||||
<p class="chip">{{ tag }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col s12 m-t-20 ">
|
||||
{% if not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply center-align">
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': company.id}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if not is_granted('ROLE_COMPANY') %}
|
||||
<div class="row bg-bordered row-promoted">
|
||||
<div class="col s12 center-align">
|
||||
<h3>Vous souhaitez rejoindre <span class="color-blue1">{{ company.brandname }}</span> ?</h3>
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': company.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div id="offers" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les offres d’emploi pour {{ company.brandname }}</h1>
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div class="col s12">
|
||||
<div class="card z-depth-3">
|
||||
<div class="card-image">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div id="adRow" class="row item-list-bis z-depth-2 row-noMargin">
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('ad_show',{'alias': a.alias }) }}" title="{{ a.title }}" class="item-list-media">
|
||||
|
||||
@@ -34,6 +34,15 @@
|
||||
</div>
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="header-resultats">
|
||||
{% if isPromotedAds %}
|
||||
<div><span class="color-blue2">{{ ads|length }}</span> offres d'emploi pourvues</div>
|
||||
<div><span><a href="{{ path('ad_search_result') }}">Voir les offres d'emploi en cours</a></span></div>
|
||||
{% else %}
|
||||
<div><span class="color-blue2">{{ ads|length }}</span> offres d'emploi en cours</div>
|
||||
<div><span><a href="{{ path('ad_search_result', {'promoted': true }) }}">Voir les offres d'emploi pourvues</a></span></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="liste-resultats">
|
||||
{% if ads|length > 0 and noResults == false %}
|
||||
{% include 'default/ad_listing.html.twig' with {'ads':ads} %}
|
||||
@@ -48,7 +57,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
<div class="col s12 m12 l8 xl9">
|
||||
{% if ad.video and ad.status != "CLOSED" %}
|
||||
<div class="row m-b-0" id="adVideo">
|
||||
{#{% if ad.id == 38 %}
|
||||
<img class="responsive-img" src="{{asset('/img/GROUPE-ROCHER-TT.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/": ""}) }}"
|
||||
@@ -42,6 +45,7 @@
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
{#{% endif %}#}
|
||||
{% if ad.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
{% endif %}
|
||||
@@ -92,16 +96,29 @@
|
||||
{{ 'ad.talent.isAnswer.label'|trans }}
|
||||
</div>
|
||||
{% elseif not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% if not ad.isPromoted %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% if ad.isPromoted %}
|
||||
<div class="row bg-bordered row-promoted">
|
||||
<div class="col s12 center-align">
|
||||
<h3>Vous souhaitez rejoindre <span class="color-blue1">{{ ad.company.brandname }}</span> ?</h3>
|
||||
<a href="{{ path('talent_spontaneous_application_create',{'id': ad.company.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Candidature spontanée
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col s12 hide-on-large-only m-b-50">
|
||||
{% include 'default/ad_sidebar.html.twig' with {'ad': ad, 'showBrand': true} %}
|
||||
</div>
|
||||
|
||||
@@ -56,12 +56,18 @@
|
||||
{{ 'ad.talent.isAnswer.label'|trans }}
|
||||
</div>
|
||||
{% elseif not is_granted('ROLE_COMPANY') %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% if not ad.isPromoted %}
|
||||
<p class="item-detail-reply">
|
||||
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
|
||||
class="btn btn-default">
|
||||
Postuler
|
||||
</a>
|
||||
</p>
|
||||
{% else %}
|
||||
<div class="item-detail-ispromoted">
|
||||
Offre pourvue
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for company in companies %}
|
||||
{% for company in companies if company.isPrivate != true %}
|
||||
<div class="col s12">
|
||||
<div class="card z-depth-3 card-company">
|
||||
<div class="card-content card-content-company">
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% for c in companies if c.isPrivate != true %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<footer class="page-footer">
|
||||
<div class="container">
|
||||
<div class="row footer-info">
|
||||
<div class="col xl2 l2 m6 s6">
|
||||
<div class="col xl2 l2 m6 s12 col-footer-logo">
|
||||
<img src="{{ asset('/img/logo-mini-white.svg') }}" alt="Talents Tube 1er job board 100% vidéo">
|
||||
</div>
|
||||
<div class="col xl3 l3 m6 s6">
|
||||
@@ -16,6 +16,9 @@
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('company_list') }}" title="Listes entreprises">Nos entreprises</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('territory_list') }}" title="Listes des territoires">Nos territoires</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="white-text" href="https://blog.talentstube.com/contact.html" title="Talents Tube ">Contact</a>
|
||||
</li>
|
||||
@@ -41,13 +44,16 @@
|
||||
<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>
|
||||
</p>
|
||||
<h5 class="white-text">Contactez-nous !</h5>
|
||||
<a class="white-text" href="mailto:bonjour@talentstube.com">Par mail</a>
|
||||
<p class="white-text" >02 97 68 14 02</p>
|
||||
<p class="white-text">02 30 05 06 31</p>
|
||||
<p class="footer-newsletter">
|
||||
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
|
||||
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
|
||||
@@ -58,7 +64,11 @@
|
||||
</div>
|
||||
<div class="row footer-more-links">
|
||||
<div class="col s12 center-align">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2017 Talents Tube</a>
|
||||
<p class="text-center white-text">Entreprise soutenue par</p>
|
||||
<a href="https://www.bretagne.bzh/"><img src="{{ asset('img/RB_monochrome_blanc.svg')}}" alt="Region Bretagne"></a><br>
|
||||
</div>
|
||||
<div class="col s12 center-align m-t-30">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2018 Talents Tube</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,16 +9,12 @@
|
||||
{# VIDEO #}
|
||||
<div class="col l12 m12 s12 home-content col-noPadding">
|
||||
<div id="homeTeaser" class="valign-wrapper">
|
||||
<h1 class="white-text center-align">1er job board <span>100% vidéo</span></h1><br />
|
||||
<h1 class="white-text center-align">1ère plateforme pour l’emploi <span>100% vidéo</span></h1><br />
|
||||
<div class="link-home-head">
|
||||
<a data-target="modal_concept" href="#!" class="btn btn-default btn-round btn-concept modal-trigger">
|
||||
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>
|
||||
@@ -72,7 +68,7 @@
|
||||
<div class="row">
|
||||
<div class="col s12 col-noPadding">
|
||||
<div class="owl-carousel owl-carousel-home home-company-carousel">
|
||||
{% if talents|length > 0 %}
|
||||
{% if companies|length > 0 %}
|
||||
{% include 'default/company_card.html.twig' with {'companies': companies } %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -114,7 +110,7 @@
|
||||
<h2 class="blue-text no-margin-top">Les territoires <span>pour vivre et travailler</span></h2>
|
||||
{% if territories %}
|
||||
<div class="owl-carousel owl-carousel-home territory-carousel">
|
||||
{% for territory in territories if territory.presentationVideo %}
|
||||
{% for territory in territories if territory.presentationVideo and territory.isPrivate != true %}
|
||||
<div class="item">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
@@ -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 %}
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="item">
|
||||
<a href="{{ path('talent_show',{'alias': talent.alias }) }}"
|
||||
title="{{ user.firstname }} {{ user.lastname }}">
|
||||
{% if user.socialPicture is not null %}
|
||||
{% if user.socialPicture is not null and user.photo is null %}
|
||||
<img class="circle z-depth-3" src="{{ user.socialPicture }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
{% elseif user.photo %}
|
||||
<img class="circle z-depth-3" src="{{ user.webPath | imagine_filter('profile_square') }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
<div class="profil center-align">
|
||||
{% set company = user.company %}
|
||||
<div class="profil-picture">
|
||||
{% if user.photo %}
|
||||
<img src="{{ user.webPath | imagine_filter('profile_square') }}"
|
||||
alt="{{ user.firstname }} {{ user.lastname|first|upper }}"
|
||||
class="circle responsive-img"/>
|
||||
{% if user.socialPicture is not null and user.photo is null %}
|
||||
<img class="circle responsive-img" src="{{ user.socialPicture }}" alt="{{ user.firstname }} {{ user.lastname|first|upper }}"/>
|
||||
{% elseif user.photo %}
|
||||
<img class="circle responsive-img" src="{{ user.webPath | imagine_filter('profile_square') }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
{% else %}
|
||||
<div class="circle-letters font-2">{{ user.firstname|first|upper }}{{ user.lastname|first|upper }}</div>
|
||||
{% endif %}
|
||||
@@ -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 ) {
|
||||
});
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% for c in companies if c.isPrivate != true %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
|
||||
@@ -95,6 +95,17 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if company.descriptionAdmin %}
|
||||
<div class="col s12 m12 l8 xl9 right">
|
||||
<div class="row bg-bordered">
|
||||
<div class="col s12">
|
||||
<div class="item-detail-description-bo">
|
||||
<p>{{ company.descriptionAdmin|raw }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if companyAds|length > 0 %}
|
||||
<div id="offers" class="row">
|
||||
<div class="col s12">
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<div id="liste-testimony" class="bg-white">
|
||||
<div class="container">
|
||||
<div class="row 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 class="clear"></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 class="clear"></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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -288,9 +288,9 @@ class AdController extends Controller
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @Route("/annonce/recherche/", name="ad_search_result")
|
||||
* @Route("/annonce/recherche/{promoted}", defaults={"promoted"=false}, name="ad_search_result")
|
||||
*/
|
||||
public function adSearchResultAction(Request $request)
|
||||
public function adSearchResultAction(Request $request, $promoted)
|
||||
{
|
||||
$session = $request->getSession();
|
||||
$form = $this->createForm(AdSearchType::class);
|
||||
@@ -307,7 +307,7 @@ class AdController extends Controller
|
||||
$adSearcher = $this->get('app.ad_searcher');
|
||||
$ads = $adSearcher->process($data);
|
||||
if(empty($ads)){
|
||||
$ads = $this->getPublishedAds();
|
||||
$ads = $this->getPublishedAds($promoted);
|
||||
$noResults = true;
|
||||
} else {
|
||||
$noResults = false;
|
||||
@@ -324,18 +324,19 @@ class AdController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$ads = $this->getPublishedAds();
|
||||
$ads = $this->getPublishedAds($promoted);
|
||||
}
|
||||
|
||||
return $this->render('default/ad_search_result.html.twig', [
|
||||
'ads' => $ads,
|
||||
'noResults' => false
|
||||
'noResults' => false,
|
||||
'isPromotedAds' => $promoted
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function getPublishedAds()
|
||||
public function getPublishedAds($promoted)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$repo = $em->getRepository('AppBundle:Ad');
|
||||
@@ -345,6 +346,17 @@ class AdController extends Controller
|
||||
$mediaManager->getThumbnails($ad);
|
||||
}
|
||||
|
||||
return $this->filterPromoted($ads, $promoted);
|
||||
}
|
||||
|
||||
public function filterPromoted($result, $promoted = "false")
|
||||
{
|
||||
$ads = array();
|
||||
foreach ($result as $ad) {
|
||||
if ($ad->getIsPromoted() === (boolean)$promoted) {
|
||||
$ads[] = $ad;
|
||||
}
|
||||
}
|
||||
return $ads;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
||||
class AdController extends Controller
|
||||
{
|
||||
|
||||
@@ -111,7 +110,6 @@ class AdController extends Controller
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/ad/{id}/edit", name="admin_ad_edit")
|
||||
*/
|
||||
@@ -130,6 +128,16 @@ class AdController extends Controller
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/ad/{id}/refresh-img", name="admin_ad_refresh_img")
|
||||
*/
|
||||
public function adminAdRefreshImgAction(Request $request, Ad $ad)
|
||||
{
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($ad, true);
|
||||
return $this->redirectToRoute('admin_ad_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/ad/{id}/show", name="admin_ad_show")
|
||||
*/
|
||||
|
||||
@@ -12,7 +12,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
||||
class CompanyController extends Controller
|
||||
{
|
||||
|
||||
@@ -88,4 +87,14 @@ class CompanyController extends Controller
|
||||
'newP' => $newsP,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/company/{id}/refresh-img", name="admin_company_refresh_img")
|
||||
*/
|
||||
public function adminCompanyRefreshImgAction(Request $request, Company $company)
|
||||
{
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($company, true);
|
||||
return $this->redirectToRoute('admin_config_company');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
||||
class TalentController extends Controller
|
||||
{
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
|
||||
@@ -30,7 +29,7 @@ class UserController extends Controller
|
||||
}
|
||||
}
|
||||
return $this->render('admin/user_list.html.twig', [
|
||||
'users' => $users
|
||||
'users' => $users,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -64,4 +63,142 @@ class UserController extends Controller
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/list", name="admin_config_others_user")
|
||||
*/
|
||||
public function adminOthersUsersListAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findTalentsAndCompanies();
|
||||
return $this->render('admin/users_list.html.twig', array(
|
||||
'users' => $t,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/resend", name="admin_user_resend")
|
||||
*/
|
||||
public function adminUserResendAction(Request $request, $id)
|
||||
{
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->findUserBy(array('id' => $id));
|
||||
$mailer = $this->get('fos_user.mailer');
|
||||
$mailer->sendConfirmationEmailMessage($user);
|
||||
|
||||
return $this->redirectToRoute('admin_config_users');
|
||||
}
|
||||
|
||||
/**
|
||||
* @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);
|
||||
$em->persist($company);
|
||||
$em->flush();
|
||||
}
|
||||
$this->deleteRelation($user);
|
||||
$em->remove($user);
|
||||
$em->flush();
|
||||
if ($company) {
|
||||
$em->remove($company);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// if ($company) {
|
||||
// $em->remove($company);
|
||||
// }
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute('admin_config_others_user');
|
||||
}
|
||||
|
||||
public function deleteRelation($user)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$sendMessage = $em->getRepository('AppBundle:Message')->findBy(array('sender' => $user));
|
||||
if ($sendMessage) {
|
||||
foreach ($sendMessage as $key => $message) {
|
||||
$message->setSender(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$recipMessage = $em->getRepository('AppBundle:Message')->findBy(array('recipient' => $user));
|
||||
if ($recipMessage) {
|
||||
foreach ($recipMessage as $key => $message) {
|
||||
$message->setRecipient(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$bookmarks = $em->getRepository('AppBundle:Bookmark')->findBy(array('creator' => $user));
|
||||
if ($bookmarks) {
|
||||
foreach ($bookmarks as $key => $bookmark) {
|
||||
$em->remove($bookmark);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('user' => $user));
|
||||
if ($answers) {
|
||||
foreach ($answers as $key => $answer) {
|
||||
$em->remove($answer);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('creator' => $user));
|
||||
if ($ads) {
|
||||
foreach ($ads as $key => $ad) {
|
||||
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
|
||||
foreach ($bms as $key2 => $bm) {
|
||||
$em->remove($bm);
|
||||
}
|
||||
$em->remove($ad);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('company' => $user->getCompany()));
|
||||
if ($ads) {
|
||||
foreach ($ads as $key => $ad) {
|
||||
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
|
||||
foreach ($bms as $key2 => $bm) {
|
||||
$em->remove($bm);
|
||||
}
|
||||
$em->remove($ad);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $user));
|
||||
if ($medias) {
|
||||
foreach ($medias as $key => $media) {
|
||||
$em->remove($media);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,33 +8,29 @@ use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Form\AnswerType;
|
||||
use AppBundle\Form\ContactTalentType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher,
|
||||
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
|
||||
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
|
||||
class AnswerController extends Controller
|
||||
{
|
||||
/**
|
||||
/**
|
||||
* @Route("/anwser/edit/comment/{id}", name="anwser_edit_comment")
|
||||
*/
|
||||
public function anwserEditCommentAction(Request $request, Answer $answer)
|
||||
{
|
||||
if($answer) {
|
||||
{
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answer->setComment($request->get('comment'));
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
@@ -57,15 +53,16 @@ class AnswerController extends Controller
|
||||
return $this->finishAnswerAction($request, $company, $answer);
|
||||
}
|
||||
|
||||
public function finishAnswerAction($request, $object, $answer) {
|
||||
public function finishAnswerAction($request, $object, $answer)
|
||||
{
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if($object instanceof Ad) {
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$varReqAnswer = "ad";
|
||||
$contact = $object->getCreator();
|
||||
$title = $answer->getAd()->getTitle();
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$varReqAnswer = "company";
|
||||
$contact = $object->getMainUser();
|
||||
@@ -74,7 +71,7 @@ class AnswerController extends Controller
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
if($answer) {
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$existAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $this->getUser(), $varReqAnswer => $object));
|
||||
if (!$this->getUser()->hasRole('ROLE_TALENT')) {
|
||||
@@ -82,7 +79,7 @@ class AnswerController extends Controller
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_not_allowed', true);
|
||||
} else {
|
||||
if($existAnswer && ($existAnswer->getId() !== $answer->getid())){
|
||||
if ($existAnswer && ($existAnswer->getId() !== $answer->getid())) {
|
||||
$em->remove($answer);
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_already_send', true);
|
||||
@@ -91,31 +88,31 @@ class AnswerController extends Controller
|
||||
$session->getFlashBag()->add('popup_answer_already_send', false);
|
||||
$answer->setStatus('SENDED');
|
||||
$em->persist($answer);
|
||||
|
||||
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($answer);
|
||||
$thumbnailsArray = $answer->getVideo()->getThumbnails();
|
||||
$img = $thumbnailsArray[0]['sizes'][3]['link'];
|
||||
$mailManager = $this->get('app.mail_manager');
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()),UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$mailManager->sendMail(
|
||||
'Candidature TalentsTube ',
|
||||
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="'.$img.'" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour '.$contact->getLastname().' '.$contact->getFirstname().',</p>
|
||||
<p>Le talent '.$answer->getUser()->getFirstname().' '.$answer->getUser()->getLastname().' a répondu à votre annonce '.$title.'.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $contact->getLastname() . ' ' . $contact->getFirstname() . ',</p>
|
||||
<p>Le talent ' . $answer->getUser()->getFirstname() . ' ' . $answer->getUser()->getLastname() . ' a répondu à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="'.$link.'" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$contact,
|
||||
@@ -123,9 +120,9 @@ class AnswerController extends Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
return $this->redirect($this->generateUrl($route, array('alias' => $object->getAlias())));
|
||||
@@ -147,22 +144,25 @@ class AnswerController extends Controller
|
||||
return $this->generateStep2($request, $company, $type);
|
||||
}
|
||||
|
||||
public function generateStep2(Request $request, $object, $type) {
|
||||
if($object instanceof Ad) {
|
||||
public function generateStep2(Request $request, $object, $type)
|
||||
{
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$routeStep2 = 'answer_create_ad_step2';
|
||||
$routeStep3 = 'answer_create_ad_step3';
|
||||
$varReqAnswer = "ad";
|
||||
$typeObject = "Ad";
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$routeStep2 = 'answer_create_company_step2';
|
||||
$routeStep3 = 'answer_create_company_step3';
|
||||
$varReqAnswer = "company";
|
||||
$typeObject = "Company";
|
||||
}
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user = $this->getUser();
|
||||
@@ -182,18 +182,18 @@ class AnswerController extends Controller
|
||||
}
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
if(!$mustLogin){
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId())));
|
||||
if (!$mustLogin) {
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId())));
|
||||
}
|
||||
}
|
||||
|
||||
/*Definition des urls de destination pour ouath login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId()));
|
||||
/*Definition des urls de destination pour oauth login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId()));
|
||||
$this->get('twig')->addGlobal('destination_login', $destination_login);
|
||||
$session = new Session();
|
||||
$session->set('registration_destination', $destination_login);
|
||||
|
||||
return $this->render('answer/answer_create_'.$type.'.twig', array(
|
||||
$res = $this->render('answer/answer_create_' . $type . '.twig', array(
|
||||
'routeObject' => $route,
|
||||
'typeObject' => $typeObject,
|
||||
'object' => $object,
|
||||
@@ -202,23 +202,27 @@ class AnswerController extends Controller
|
||||
'video' => $video,
|
||||
'videos' => $videos,
|
||||
$varReqAnswer => $object,
|
||||
'mustLogin' => $mustLogin
|
||||
'mustLogin' => $mustLogin,
|
||||
));
|
||||
$redirectReg = $this->generateUrl($routeStep2, array('id' => $object->getId(), 'type' => $type));
|
||||
$res->headers->setCookie(new Cookie('redirect_register', $redirectReg));
|
||||
return $res;
|
||||
}
|
||||
|
||||
private function createAnonymousUser() {
|
||||
private function createAnonymousUser()
|
||||
{
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->createUser();
|
||||
$uniqId = uniqId();
|
||||
$user->setUsername("anonym_".$uniqId);
|
||||
$user->setUsername("anonym_" . $uniqId);
|
||||
$user->setFirstname("anonym");
|
||||
$user->setLastname("anonym");
|
||||
$user->setEmail("anonym_".$uniqId."@talentstube.com");
|
||||
$user->setEmail("anonym_" . $uniqId . "@talentstube.com");
|
||||
$user->setPlainPassword($uniqId);
|
||||
$user->setEnabled(false);
|
||||
$user->setRoles(array('ROLE_TALENT_TMP'));
|
||||
$company = new Company();
|
||||
$company->setAlias("anonym_".$uniqId);
|
||||
$company->setAlias("anonym_" . $uniqId);
|
||||
$company->setType("TALENT_TMP");
|
||||
$user->setCompany($company);
|
||||
$userManager->updateUser($user);
|
||||
@@ -267,7 +271,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $company,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -306,7 +310,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $ad,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -368,7 +372,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'answer'
|
||||
'type' => 'answer',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -382,7 +386,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('company' => $user->getCompany()->getId(), 'status' => 'SENDED'));
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'spontaneous'
|
||||
'type' => 'spontaneous',
|
||||
|
||||
]);
|
||||
}
|
||||
@@ -423,7 +427,7 @@ class AnswerController extends Controller
|
||||
{
|
||||
$message = array('success' => 200,
|
||||
'filename' => null,
|
||||
'originalFilename' => null
|
||||
'originalFilename' => null,
|
||||
);
|
||||
foreach ($request->files as $uploadedFile) {
|
||||
$mediaManager = $this->get('media_manager');
|
||||
@@ -447,5 +451,4 @@ class AnswerController extends Controller
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -97,6 +97,13 @@ class Ad
|
||||
*/
|
||||
private $isPromoted;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Annonce privé, non listée en front"})
|
||||
*/
|
||||
private $isPrivate;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
@@ -173,25 +180,30 @@ class Ad
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer", mappedBy="ad", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer", mappedBy="ad", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $answers;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\ProductAd", mappedBy="ad", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\ProductAd", mappedBy="ad", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $products;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $draftNotes;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="ad", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="ad", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $territories;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\BookmarkAd", mappedBy="ad", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $bookmarkAds;
|
||||
|
||||
|
||||
/***********************
|
||||
* Constructor
|
||||
@@ -1071,4 +1083,64 @@ class Ad
|
||||
{
|
||||
return $this->territories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isPrivate.
|
||||
*
|
||||
* @param bool|null $isPrivate
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setIsPrivate($isPrivate = null)
|
||||
{
|
||||
$this->isPrivate = $isPrivate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isPrivate.
|
||||
*
|
||||
* @return bool|null
|
||||
*/
|
||||
public function getIsPrivate()
|
||||
{
|
||||
return $this->isPrivate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add bookmarkAd.
|
||||
*
|
||||
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function addBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
|
||||
{
|
||||
$this->bookmarkAds[] = $bookmarkAd;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove bookmarkAd.
|
||||
*
|
||||
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
|
||||
*
|
||||
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
|
||||
*/
|
||||
public function removeBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
|
||||
{
|
||||
return $this->bookmarkAds->removeElement($bookmarkAd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get bookmarkAds.
|
||||
*
|
||||
* @return \Doctrine\Common\Collections\Collection
|
||||
*/
|
||||
public function getBookmarkAds()
|
||||
{
|
||||
return $this->bookmarkAds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,12 +71,12 @@ class Answer
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $notes;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message", mappedBy="answer", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message", mappedBy="answer", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $messages;
|
||||
|
||||
@@ -84,7 +84,6 @@ class Answer
|
||||
* Constructor
|
||||
***********************/
|
||||
|
||||
|
||||
public function __construct($user = null, $ad = null, $status = null, $company = null)
|
||||
{
|
||||
$this->notes = new \Doctrine\Common\Collections\ArrayCollection();
|
||||
@@ -116,12 +115,10 @@ class Answer
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***********************
|
||||
* Getters & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
|
||||
@@ -51,7 +51,7 @@ class Bookmark
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", mappedBy="sharedBookmarks" ,cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", mappedBy="sharedBookmarks" ,cascade={"persist", "remove"})
|
||||
*/
|
||||
private $sharedWith;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ class BookmarkAd
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist","remove"})
|
||||
*/
|
||||
private $notes;
|
||||
|
||||
@@ -42,7 +42,6 @@ class BookmarkAd
|
||||
*/
|
||||
private $ad;
|
||||
|
||||
|
||||
/***********************
|
||||
* Constructor
|
||||
***********************/
|
||||
@@ -57,7 +56,6 @@ class BookmarkAd
|
||||
* Getters & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
|
||||
@@ -48,7 +48,7 @@ class BookmarkUser
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $notes;
|
||||
|
||||
|
||||
@@ -56,6 +56,13 @@ class Company
|
||||
*/
|
||||
private $description;
|
||||
|
||||
/**
|
||||
* @var text
|
||||
*
|
||||
* @ORM\Column(name="description_admin", type="text", length=255, nullable=true)
|
||||
*/
|
||||
private $descriptionAdmin;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
@@ -78,10 +85,10 @@ class Company
|
||||
private $alias;
|
||||
|
||||
/**
|
||||
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Media", cascade={"persist"})
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Media", cascade={"persist", "remove"})
|
||||
* @ORM\JoinColumn(name="presentation_video_id", nullable=true)
|
||||
*/
|
||||
private $presentation_video;
|
||||
private $presentationVideo;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
@@ -113,6 +120,13 @@ class Company
|
||||
*/
|
||||
private $searchable;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Company privé, non listée en front"})
|
||||
*/
|
||||
private $isPrivate;
|
||||
|
||||
/***********************
|
||||
* OneToMany Array's
|
||||
***********************/
|
||||
@@ -128,26 +142,25 @@ class Company
|
||||
private $users;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="company", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="company", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $ads;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="territory", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="territory", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $territoryAds;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="company", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="company", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $territories;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="company", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="company", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $spontaneousApplications;
|
||||
|
||||
|
||||
/***********************
|
||||
* Constructor
|
||||
***********************/
|
||||
@@ -164,7 +177,8 @@ class Company
|
||||
* Custom Function
|
||||
***********************/
|
||||
|
||||
public function init(){
|
||||
public function init()
|
||||
{
|
||||
$this->initAddress();
|
||||
$this->initTags();
|
||||
$this->initExtra();
|
||||
@@ -245,8 +259,8 @@ class Company
|
||||
{
|
||||
$arrayPublishedAds = array();
|
||||
foreach ($this->getAds() as $ad) {
|
||||
if( $ad->getStatus() == "PUBLISHED") {
|
||||
array_push($arrayPublishedAds, $ad);
|
||||
if ($ad->getStatus() == "PUBLISHED") {
|
||||
array_push($arrayPublishedAds, $ad);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,7 +281,6 @@ class Company
|
||||
* Getter & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
@@ -491,7 +504,7 @@ class Company
|
||||
*/
|
||||
public function setPresentationVideo(\AppBundle\Entity\Media $presentationVideo = null)
|
||||
{
|
||||
$this->presentation_video = $presentationVideo;
|
||||
$this->presentationVideo = $presentationVideo;
|
||||
|
||||
return $this;
|
||||
}
|
||||
@@ -503,7 +516,7 @@ class Company
|
||||
*/
|
||||
public function getPresentationVideo()
|
||||
{
|
||||
return $this->presentation_video;
|
||||
return $this->presentationVideo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -594,7 +607,6 @@ class Company
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set emphasis.
|
||||
*
|
||||
@@ -774,4 +786,52 @@ class Company
|
||||
{
|
||||
return $this->spontaneousApplications;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set descriptionAdmin.
|
||||
*
|
||||
* @param string|null $descriptionAdmin
|
||||
*
|
||||
* @return Company
|
||||
*/
|
||||
public function setDescriptionAdmin($descriptionAdmin = null)
|
||||
{
|
||||
$this->descriptionAdmin = $descriptionAdmin;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get descriptionAdmin.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDescriptionAdmin()
|
||||
{
|
||||
return $this->descriptionAdmin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isPrivate.
|
||||
*
|
||||
* @param bool|null $isPrivate
|
||||
*
|
||||
* @return Company
|
||||
*/
|
||||
public function setIsPrivate($isPrivate = null)
|
||||
{
|
||||
$this->isPrivate = $isPrivate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get isPrivate.
|
||||
*
|
||||
* @return bool|null
|
||||
*/
|
||||
public function getIsPrivate()
|
||||
{
|
||||
return $this->isPrivate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class ProductAd
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Product", cascade={"persist"})
|
||||
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Product", cascade={"persist" , "remove"})
|
||||
*/
|
||||
private $product;
|
||||
|
||||
|
||||
@@ -69,49 +69,47 @@ class User extends BaseUser
|
||||
|
||||
private $file;
|
||||
|
||||
|
||||
/***********************
|
||||
* OneToMany Array's
|
||||
***********************/
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="user", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="user", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $answers;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="creator", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="creator", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $ads;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Product",mappedBy="user", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Product",mappedBy="user", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $products;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Media",mappedBy="creator", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Media",mappedBy="creator", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $medias;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Bookmark",mappedBy="creator", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Bookmark",mappedBy="creator", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $bookmarks;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Bookmark", inversedBy="sharedWith", cascade={"persist"})
|
||||
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Bookmark", inversedBy="sharedWith", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $sharedBookmarks;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="sender", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="sender", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $sendedMessages;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="recipient", cascade={"persist"})
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="recipient", cascade={"persist", "remove"})
|
||||
*/
|
||||
private $receivedMessages;
|
||||
|
||||
@@ -151,8 +149,6 @@ class User extends BaseUser
|
||||
*/
|
||||
private $socialPicture;
|
||||
|
||||
|
||||
|
||||
/***********************
|
||||
* Constructor
|
||||
***********************/
|
||||
@@ -199,6 +195,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
|
||||
@@ -269,7 +281,6 @@ class User extends BaseUser
|
||||
* Getters & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Set firstname.
|
||||
*
|
||||
|
||||
@@ -82,6 +82,10 @@ class AdType extends AbstractType
|
||||
->add('isVerified', CheckboxType::class, array(
|
||||
'label' => 'Vérifiée',
|
||||
'required' => false
|
||||
))
|
||||
->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Annonce privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
|
||||
// Emphasis
|
||||
|
||||
@@ -37,6 +37,10 @@ class CompanyAdminType extends AbstractType
|
||||
))
|
||||
->add('size', TextType::class, array(
|
||||
'label' => 'profile.company.size',
|
||||
))
|
||||
->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Page entreprise privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
// Addresses fields
|
||||
$builder
|
||||
|
||||
@@ -13,14 +13,15 @@ namespace AppBundle\Form\Admin;
|
||||
|
||||
use AppBundle\Entity\Company;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CountryType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FileType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\UrlType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\UrlType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FileType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CountryType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
|
||||
class TerritoryAdminType extends AbstractType
|
||||
{
|
||||
@@ -32,6 +33,7 @@ class TerritoryAdminType extends AbstractType
|
||||
$builder
|
||||
->add('brandName', TextType::class, array('label' => 'Nom'))
|
||||
->add('description', TextType::class, array('label' => 'profile.company.description', 'required' => false))
|
||||
->add('descriptionAdmin', TextareaType::class, array('label' => 'Description additionel réservé aux administrateur (Attention contenu affiché en front)', 'required' => false))
|
||||
->add('website', UrlType::class, array(
|
||||
'label' => 'profile.company.website',
|
||||
'required' => false,
|
||||
@@ -85,6 +87,10 @@ class TerritoryAdminType extends AbstractType
|
||||
'label' => 'Ordre',
|
||||
'required' => false
|
||||
));
|
||||
$builder->add('isPrivate', CheckboxType::class, array(
|
||||
'label' => 'Page territoire privé ( non listée en front )',
|
||||
'required' => false
|
||||
));
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
|
||||
@@ -14,6 +14,16 @@ class CompanyRepository extends EntityRepository
|
||||
{
|
||||
public function getCompanySortByAds()
|
||||
{
|
||||
$qb = $this
|
||||
->createQueryBuilder('c')
|
||||
->andWhere('c.type = :type')
|
||||
->setParameter(':type', "COMPANY")
|
||||
->andWhere('c.presentationVideo IS NOT NULL')
|
||||
->orderBy('c.cTime', 'DESC');
|
||||
|
||||
|
||||
$badCompany = $qb->getQuery()->getResult();
|
||||
|
||||
$qb = $this
|
||||
->createQueryBuilder('c')
|
||||
->from('AppBundle:Ad', 'a')
|
||||
@@ -21,10 +31,26 @@ class CompanyRepository extends EntityRepository
|
||||
->andWhere('a.status = :status')
|
||||
->orderBy('a.publishedAt', 'DESC')
|
||||
->setParameter(':status', "PUBLISHED");
|
||||
|
||||
$firstCompany = $qb->getQuery()->getResult();
|
||||
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
|
||||
$mergeArray = array();
|
||||
array_map(function($a, $b) use (&$mergeArray) {
|
||||
if($a){
|
||||
if(!isset($mergeArray[$a->getId()])) {
|
||||
$mergeArray[$a->getId()] = $a;
|
||||
}
|
||||
}
|
||||
if ($b) {
|
||||
if (!isset($mergeArray[$b->getId()])) {
|
||||
$mergeArray[$b->getId()] = $b;
|
||||
}
|
||||
}
|
||||
}, $firstCompany, $badCompany);
|
||||
|
||||
|
||||
return $mergeArray;
|
||||
}
|
||||
|
||||
public function getTerritorySortByAds()
|
||||
|
||||
@@ -12,4 +12,27 @@ 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();
|
||||
}
|
||||
|
||||
public function findTalentsAndCompanies()
|
||||
{
|
||||
$qb = $this->_em->createQueryBuilder();
|
||||
$qb->select('u')
|
||||
->from($this->_entityName, 'u')
|
||||
->where('u.roles LIKE :roleT')
|
||||
->orWhere('u.roles LIKE :roleC')
|
||||
->setParameter('roleC', '%ROLE_COMPANY%')
|
||||
->setParameter('roleT', '%ROLE_TALENT%');
|
||||
|
||||
return $qb->getQuery()->getResult();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ class AdSearcher
|
||||
{
|
||||
$ads = array();
|
||||
foreach ($result as $ad) {
|
||||
if ($ad->getStatus() == "PUBLISHED") {
|
||||
if ($ad->getStatus() == "PUBLISHED" && $ad->getIsPrivate() != true && $ad->getIsPromoted() != true) {
|
||||
$ads[] = $ad;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,21 +28,19 @@ class MediaManager
|
||||
$this->env = $env;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Rename video to vimeo
|
||||
*/
|
||||
|
||||
public function editName($video)
|
||||
{
|
||||
if($video){
|
||||
$response = $this->vimeo->request($video->getCdnUrl(), ['name'=>$video->getTitle()], 'PATCH');
|
||||
return array('success' => "true",'data' => $response);
|
||||
} else {
|
||||
public function editName($video)
|
||||
{
|
||||
if ($video) {
|
||||
$response = $this->vimeo->request($video->getCdnUrl(), ['name' => $video->getTitle()], 'PATCH');
|
||||
return array('success' => "true", 'data' => $response);
|
||||
} else {
|
||||
return array('success' => "false");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $entity
|
||||
@@ -50,7 +48,7 @@ class MediaManager
|
||||
*
|
||||
* Get Thumbnail of a video (Ad or Company)
|
||||
*/
|
||||
public function getThumbnails($entity)
|
||||
public function getThumbnails($entity, $force = false)
|
||||
{
|
||||
if ($entity instanceof Ad) {
|
||||
$video = $entity->getVideo();
|
||||
@@ -62,11 +60,11 @@ class MediaManager
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
if($video){
|
||||
if ($video) {
|
||||
$arrayThumb = $video->getThumbnails();
|
||||
if (empty($arrayThumb[0])) {
|
||||
if ($force == true || empty($arrayThumb[0])) {
|
||||
$response = $this->vimeo->request($video->getCdnUrl() . '/pictures', [], 'GET');
|
||||
if(!isset($response['body']['error'])){
|
||||
if (!isset($response['body']['error'])) {
|
||||
$video->setThumbnails($response['body']['data']);
|
||||
$this->em->persist($video);
|
||||
$this->em->flush();
|
||||
@@ -84,9 +82,9 @@ class MediaManager
|
||||
{
|
||||
$video = $entity;
|
||||
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
|
||||
if ( $this->env != "dev" ) {
|
||||
if ($this->env != "dev") {
|
||||
$response = $this->vimeo->request($video->getCdnUrl(), [], 'DELETE');
|
||||
}
|
||||
}
|
||||
$this->em->remove($video);
|
||||
$this->em->flush();
|
||||
|
||||
@@ -126,12 +124,12 @@ class MediaManager
|
||||
$metadata = array();
|
||||
//@TODO: trouver un fix pour la duration
|
||||
/*if($extension != "mkv"){
|
||||
$duration = $this->ffprobe->format($filePath)->get('duration');
|
||||
$metadata['duration'] = $duration;
|
||||
$duration = $this->ffprobe->format($filePath)->get('duration');
|
||||
$metadata['duration'] = $duration;
|
||||
}*/
|
||||
$thumbnails = array();
|
||||
//PUSH VIDEO TO Vimeo
|
||||
if ( $this->env == "dev" ) {
|
||||
//PUSH VIDEO TO Vimeo
|
||||
if ($this->env == "dev") {
|
||||
$uriVimeo = "/videos/215657518";
|
||||
$nameVimeo = "name";
|
||||
$linkVimeo = "/videos/215657518";
|
||||
@@ -143,8 +141,8 @@ class MediaManager
|
||||
$nameVimeo = $response['body']['name'];
|
||||
$linkVimeo = $response['body']['link'];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//SAVE MEDIA
|
||||
$media->setCreator($creator);
|
||||
$media->setTitle($fileName);
|
||||
@@ -157,15 +155,15 @@ class MediaManager
|
||||
$this->em->persist($media);
|
||||
if (!is_null($entity)) {
|
||||
if ($entity instanceof Answer) {
|
||||
if ($entity->getAd() == null){
|
||||
$media->setTitle("Candidature pour : ".$entity->getCompany()->getBrandName());
|
||||
if ($entity->getAd() == null) {
|
||||
$media->setTitle("Candidature pour : " . $entity->getCompany()->getBrandName());
|
||||
} else {
|
||||
$media->setTitle("Video réponse à : ".$entity->getAd()->getTitle());
|
||||
$media->setTitle("Video réponse à : " . $entity->getAd()->getTitle());
|
||||
}
|
||||
$entity->setVideo($media);
|
||||
$this->em->persist($entity);
|
||||
} elseif ($entity instanceof Ad) {
|
||||
$media->setTitle("Video annonce de : ".$entity->getTitle());
|
||||
$media->setTitle("Video annonce de : " . $entity->getTitle());
|
||||
$entity->setVideo($media);
|
||||
$this->em->persist($entity);
|
||||
} elseif ($entity instanceof User) {
|
||||
@@ -175,7 +173,7 @@ class MediaManager
|
||||
$this->em->persist($entity);
|
||||
}
|
||||
} else {
|
||||
$media->setTitle("Vidéo ".$creator->getLastname()." ".$creator->getFirstname());
|
||||
$media->setTitle("Vidéo " . $creator->getLastname() . " " . $creator->getFirstname());
|
||||
}
|
||||
if ($creator->getCompany()->getType() == "TALENT") {
|
||||
$media->setStatus("TO_MODERATE");
|
||||
@@ -187,14 +185,14 @@ class MediaManager
|
||||
'filename' => $media->getTitle(),
|
||||
'originalFilename' => $uploadedFile->getClientOriginalName(),
|
||||
'uriVimeo' => str_replace('videos', 'video', $uriVimeo),
|
||||
'mediaId' => $media->getId()
|
||||
'mediaId' => $media->getId(),
|
||||
);
|
||||
} else {
|
||||
$message = array('success' => 500,
|
||||
'message' => "Error Upload"
|
||||
'message' => "Error Upload",
|
||||
);
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,23 +131,26 @@ class StatsManager
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ksort($arrayRecords['ad']);
|
||||
foreach ($arrayRecords['ad'] as $recordAd) {
|
||||
$count = 0;
|
||||
foreach ($recordAd as $countView) {
|
||||
$count = $count + $countView;
|
||||
if (isset($arrayRecords['ad'])) {
|
||||
ksort($arrayRecords['ad']);
|
||||
foreach ($arrayRecords['ad'] as $recordAd) {
|
||||
$count = 0;
|
||||
foreach ($recordAd as $countView) {
|
||||
$count = $count + $countView;
|
||||
}
|
||||
$arrDatasetsAd[] = $count;
|
||||
}
|
||||
$arrDatasetsAd[] = $count;
|
||||
}
|
||||
|
||||
ksort($arrayRecords['company']);
|
||||
foreach ($arrayRecords['company'] as $recordCompany) {
|
||||
$count = 0;
|
||||
foreach ($recordCompany as $countView) {
|
||||
$count = $count + $countView;
|
||||
if (isset($arrayRecords['company'])) {
|
||||
ksort($arrayRecords['company']);
|
||||
foreach ($arrayRecords['company'] as $recordCompany) {
|
||||
$count = 0;
|
||||
foreach ($recordCompany as $countView) {
|
||||
$count = $count + $countView;
|
||||
}
|
||||
$arrDatasetsCompany[] = $count;
|
||||
}
|
||||
$arrDatasetsCompany[] = $count;
|
||||
}
|
||||
|
||||
sort($lineDatesLabel, SORT_NATURAL | SORT_FLAG_CASE);
|
||||
|
||||
@@ -71,14 +71,14 @@ class PrestaBridgeListener implements EventSubscriberInterface
|
||||
{
|
||||
if (!$this->avoidMode) {
|
||||
$user = $this->security->getToken()->getUser();
|
||||
$prestaBridge = new PrestashopBridge($this->pathToPrestashop, $this->idShop, $this->cookieKey);
|
||||
|
||||
if (!$prestaBridge->userExist($user->getEmail()))
|
||||
$prestaBridge->createUser($user);
|
||||
|
||||
$prestaBridge->login($user->getEmail());
|
||||
if($user->hasRole('ROLE_TALENT') || $user->hasRole('ROLE_COMPANY') || $user->hasRole('ROLE_TERRITORY')) {
|
||||
$prestaBridge = new PrestashopBridge($this->pathToPrestashop, $this->idShop, $this->cookieKey);
|
||||
if (!$prestaBridge->userExist($user->getEmail()))
|
||||
$prestaBridge->createUser($user);
|
||||
|
||||
$prestaBridge->login($user->getEmail());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
window.onresize = resize;
|
||||
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
function resize() {
|
||||
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
}
|
||||
$(document).ready(function () {
|
||||
//Slide sur tags
|
||||
if($('.frame').length) {
|
||||
@@ -50,15 +55,17 @@ $(document).ready(function () {
|
||||
var $window = jQuery(window);
|
||||
if($('#homeTeaser').length) {
|
||||
$window.scroll(function () {
|
||||
var position = $('#homeTeaser').position();
|
||||
if ( $(window).scrollTop() > ((position.top + $('#homeTeaser').height()) - 125) ) {
|
||||
$('.homeSearchWrapper').addClass("fix-search");
|
||||
$('.row_search').removeClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',65);
|
||||
} else {
|
||||
$('.homeSearchWrapper').removeClass("fix-search");
|
||||
$('.row_search').addClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',0);
|
||||
if(w > 960) {
|
||||
var position = $('#homeTeaser').position();
|
||||
if ( $(window).scrollTop() > ((position.top + $('#homeTeaser').height()) - 125) ) {
|
||||
$('.homeSearchWrapper').addClass("fix-search");
|
||||
$('.row_search').removeClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',65);
|
||||
} else {
|
||||
$('.homeSearchWrapper').removeClass("fix-search");
|
||||
$('.row_search').addClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',0);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -170,10 +177,18 @@ $(document).ready(function () {
|
||||
/*owl carousel*/
|
||||
if( $(".territory-carousel").length ) {
|
||||
//Carousel territoire
|
||||
console.log("carousel =="+w);
|
||||
if(w <= 640){
|
||||
var marginValue = 20;
|
||||
var paddingValue = 10;
|
||||
} else {
|
||||
var marginValue = 150;
|
||||
var paddingValue = 100;
|
||||
}
|
||||
$(".territory-carousel").owlCarousel({
|
||||
items:1,
|
||||
margin: 150,
|
||||
stagePadding: 100,
|
||||
margin: marginValue,
|
||||
stagePadding: paddingValue,
|
||||
nav: true,
|
||||
loop: true,
|
||||
center:true,
|
||||
@@ -227,6 +242,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) {
|
||||
|
||||
@@ -13096,6 +13096,11 @@ a.link-white-underline {
|
||||
.blocs-texte-video .btn {
|
||||
margin-bottom: 15px; }
|
||||
|
||||
@media screen and (max-width: 420px) {
|
||||
.blocs-texte-video h2 {
|
||||
font-size: 20px; }
|
||||
.blocs-texte-video a {
|
||||
font-size: 10px; } }
|
||||
/*Détail*/
|
||||
.btn-logo-company {
|
||||
padding: 10px;
|
||||
@@ -13129,7 +13134,7 @@ a.link-white-underline {
|
||||
padding-top: 10px; }
|
||||
|
||||
.profil-company {
|
||||
padding: 0 40px; }
|
||||
padding: 0 20px; }
|
||||
|
||||
/*************************** FLEX ****************************/
|
||||
.flexcontainer {
|
||||
@@ -13308,15 +13313,29 @@ a.link-white-underline {
|
||||
|
||||
#liste-jobs {
|
||||
padding-bottom: 40px; }
|
||||
@media screen and (max-width: 420px) {
|
||||
#liste-jobs h2 {
|
||||
font-size: 20px; } }
|
||||
|
||||
#liste-talents {
|
||||
padding: 120px 0 40px 0; }
|
||||
@media screen and (max-width: 420px) {
|
||||
#liste-talents h2 {
|
||||
font-size: 20px; } }
|
||||
|
||||
#liste-company {
|
||||
padding: 120px 0 40px 0; }
|
||||
@media screen and (max-width: 420px) {
|
||||
#liste-company h2 {
|
||||
font-size: 20px; } }
|
||||
|
||||
#liste-territoires {
|
||||
padding: 120px 0 40px 0; }
|
||||
@media screen and (max-width: 420px) {
|
||||
#liste-territoires h2 {
|
||||
font-size: 20px; }
|
||||
#liste-territoires a {
|
||||
font-size: 10px; } }
|
||||
|
||||
/*Blocs fixes accueil*/
|
||||
#endScroll {
|
||||
@@ -13622,6 +13641,13 @@ a.link-white-underline {
|
||||
.blocs-texte-video .inside-m {
|
||||
padding: 40px 40px 40px 80px; }
|
||||
|
||||
@media screen and (max-width: 420px) {
|
||||
.blocs-texte-video .inside-m {
|
||||
padding: 10px 10px 30px 10px; }
|
||||
|
||||
.row-bloc-video-2 {
|
||||
display: flex;
|
||||
flex-direction: column-reverse; } }
|
||||
.no-margin-top {
|
||||
margin-top: 0px; }
|
||||
|
||||
@@ -13986,6 +14012,16 @@ a.link-white-underline {
|
||||
.items-list-dark .item-list p.item-list-name, .items-list-dark .item-list p.item-list-city {
|
||||
border-color: #AAAAAA; }
|
||||
|
||||
#header-resultats {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-items: flex-end;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 15px;
|
||||
font-size: 1rem; }
|
||||
#header-resultats a {
|
||||
color: #000; }
|
||||
|
||||
#liste-resultats .item-list-bis {
|
||||
margin-bottom: 20px;
|
||||
background: #FFFFFF;
|
||||
@@ -14325,7 +14361,7 @@ a.link-white-underline {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 110%;
|
||||
width: 90vw;
|
||||
display: block;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
@@ -14334,45 +14370,46 @@ a.link-white-underline {
|
||||
.owl-carousel .owl-nav i {
|
||||
font-size: 30px; }
|
||||
.owl-carousel .owl-nav .owl-prev {
|
||||
backgound: none;
|
||||
float: left; }
|
||||
.owl-carousel .owl-nav .owl-prev .left-arrow {
|
||||
background: url(../img/left_light.png) no-repeat;
|
||||
height: 113px;
|
||||
width: 41px;
|
||||
background: url(../img/arrowleft.svg) no-repeat #1E2327;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
background-position: center center; }
|
||||
.owl-carousel .owl-nav .owl-prev .left-arrow:hover {
|
||||
background: url(../img/left_light_rollover.png) no-repeat; }
|
||||
.owl-carousel .owl-nav .owl-next {
|
||||
backgound: none;
|
||||
float: right; }
|
||||
.owl-carousel .owl-nav .owl-next .right-arrow {
|
||||
background: url(../img/right_light.png) no-repeat;
|
||||
height: 113px;
|
||||
width: 41px;
|
||||
background: url(../img/arrowright.svg) no-repeat #1E2327;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
background-position: center center; }
|
||||
.owl-carousel .owl-nav .owl-next .right-arrow:hover {
|
||||
background: url(../img/right_light_rollover.png) no-repeat; }
|
||||
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-prev .left-arrow {
|
||||
background: url(../img/left_dark.png) no-repeat;
|
||||
background-position: center center; }
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-prev .left-arrow:hover {
|
||||
background: url(../img/left_dark_rollover.png) no-repeat; }
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-next {
|
||||
backgound: none;
|
||||
float: right; }
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-next .right-arrow {
|
||||
background: url(../img/right_dark.png) no-repeat;
|
||||
background-position: center center; }
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-next .right-arrow:hover {
|
||||
background: url(../img/right_dark_rollover.png) no-repeat; }
|
||||
background-color: #32373D; }
|
||||
.bg-dark2 .owl-carousel .owl-nav .owl-next .right-arrow {
|
||||
background-color: #32373D; }
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.bg-dark1 .owl-carousel .owl-nav .owl-prev .left-arrow {
|
||||
background-color: #292E32; }
|
||||
.bg-dark1 .owl-carousel .owl-nav .owl-next .right-arrow {
|
||||
background-color: #292E32; }
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.owl-carousel .owl-nav {
|
||||
display: none; } }
|
||||
position: relative;
|
||||
margin-top: 50px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center; }
|
||||
.owl-carousel .owl-nav .owl-prev, .owl-carousel .owl-nav .owl-next {
|
||||
float: none; }
|
||||
.owl-carousel .owl-nav .owl-prev {
|
||||
margin-right: 40px; } }
|
||||
#liste-jobs .card .card-action {
|
||||
height: auto; }
|
||||
#liste-jobs .card .card-action a.btn-tags {
|
||||
@@ -14405,7 +14442,7 @@ a.link-white-underline {
|
||||
.territory-carousel h2 a:hover {
|
||||
text-decoration: none; }
|
||||
.territory-carousel .owl-nav {
|
||||
top: 55%; }
|
||||
top: 50%; }
|
||||
|
||||
@media (min-width: 600px) and (max-width: 700px) {
|
||||
.owl-carousel .owl-item .card-content-company .col-logo {
|
||||
@@ -14424,9 +14461,65 @@ a.link-white-underline {
|
||||
|
||||
.owl-carousel .owl-item .card-company .card-content-company .col-infos {
|
||||
font-size: 14px; } }
|
||||
@media (min-width: 1136px) and (max-width: 1226px) {
|
||||
@media (min-width: 1136px) {
|
||||
.owl-carousel .owl-nav {
|
||||
width: 110%; }
|
||||
|
||||
.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; }
|
||||
@@ -14530,6 +14623,11 @@ footer {
|
||||
footer .footer-more-links {
|
||||
margin-top: 80px;
|
||||
font-size: 13px; }
|
||||
@media screen and (max-width: 420px) {
|
||||
footer .col-footer-logo {
|
||||
text-align: center; }
|
||||
footer.page-footer {
|
||||
padding: 10px 0 20px 0; } }
|
||||
|
||||
/*onglets*/
|
||||
.tabs {
|
||||
@@ -15553,6 +15651,8 @@ 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 {
|
||||
width: 80%;
|
||||
min-height: 540px;
|
||||
background: #FFFFFF; }
|
||||
#answerPage #modal-tuto .col-content {
|
||||
margin-bottom: 0; }
|
||||
@@ -15596,6 +15696,22 @@ table.highlight > tbody > tr:hover {
|
||||
color: #FFF;
|
||||
text-decoration: none; }
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
#modal-tuto {
|
||||
width: 98%; }
|
||||
#modal-tuto .modal-content {
|
||||
padding: 10px; }
|
||||
#modal-tuto .modal-content h3 {
|
||||
font-size: 1.5rem; }
|
||||
#modal-tuto .modal-content .col {
|
||||
padding: 0; }
|
||||
#modal-tuto .modal-content .owl-dots {
|
||||
display: none; }
|
||||
#modal-tuto .modal-content .carousel-fixed-item {
|
||||
margin-top: 0;
|
||||
margin-right: 0;
|
||||
font-size: 13px;
|
||||
margin-bottom: 50px; } }
|
||||
/*Pages
|
||||
---------------------------------------------------*/
|
||||
#ad_show .bg-bordered {
|
||||
@@ -15616,7 +15732,8 @@ table.highlight > tbody > tr:hover {
|
||||
font-size: 13px; }
|
||||
#ad_show .brandImage {
|
||||
position: relative;
|
||||
margin: 2px; }
|
||||
margin: 2px;
|
||||
margin-top: 15px; }
|
||||
#ad_show .brandImage a {
|
||||
display: block; }
|
||||
#ad_show .brandImage a img {
|
||||
@@ -15694,6 +15811,21 @@ table.highlight > tbody > tr:hover {
|
||||
width: 101px;
|
||||
height: 101px; }
|
||||
|
||||
.item-detail-ispromoted {
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 10px 20px;
|
||||
color: #ff9800;
|
||||
border: 1px solid #ff9800;
|
||||
border-radius: 6px;
|
||||
text-transform: uppercase;
|
||||
font-size: 1.1rem; }
|
||||
|
||||
#ad_show .row-promoted {
|
||||
padding-bottom: 40px; }
|
||||
#ad_show .row-promoted h3 span {
|
||||
text-decoration: none; }
|
||||
|
||||
#company_show .chip {
|
||||
font-size: 14px; }
|
||||
#company_show h3 {
|
||||
@@ -15713,6 +15845,11 @@ table.highlight > tbody > tr:hover {
|
||||
font-size: 16px;
|
||||
margin: 20px 0; }
|
||||
|
||||
#company_show .row-promoted {
|
||||
padding-bottom: 40px; }
|
||||
#company_show .row-promoted h3 span {
|
||||
text-decoration: none; }
|
||||
|
||||
#page-static {
|
||||
font-size: 14px;
|
||||
/***** OLD STEP *****/ }
|
||||
|
||||
|
After Width: | Height: | Size: 545 KiB |
|
After Width: | Height: | Size: 546 KiB |
|
After Width: | Height: | Size: 27 KiB |
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 48.2 (47327) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>icon/arrowleft</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="icon/arrowleft">
|
||||
<polygon id="Shape" points="0 0 24 0 24 24 0 24"></polygon>
|
||||
<path d="M15.90375,4.24975 C15.582,3.91675 15.0465,3.91675 14.7135,4.24975 C14.39175,4.5715 14.39175,5.107 14.7135,5.428 L20.74875,11.46325 L0.83325,11.46325 C0.369,11.464 0,11.833 0,12.29725 C0,12.7615 0.369,13.1425 0.83325,13.1425 L20.74875,13.1425 L14.7135,19.1665 C14.39175,19.4995 14.39175,20.03575 14.7135,20.35675 C15.0465,20.68975 15.58275,20.68975 15.90375,20.35675 L23.36775,12.89275 C23.70075,12.571 23.70075,12.0355 23.36775,11.7145 L15.90375,4.24975 Z" fill="#FFFFFF" fill-rule="nonzero" transform="translate(11.808750, 12.303250) scale(-1, 1) translate(-11.808750, -12.303250) "></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m0 0h24v24h-24z"/><path d="m15.90375 4.24975c-.32175-.333-.85725-.333-1.19025 0-.32175.32175-.32175.85725 0 1.17825l6.03525 6.03525h-19.9155c-.46425.00075-.83325.36975-.83325.834s.369.84525.83325.84525h19.9155l-6.03525 6.024c-.32175.333-.32175.86925 0 1.19025.333.333.86925.333 1.19025 0l7.464-7.464c.333-.32175.333-.85725 0-1.17825z" fill="#fff" fill-rule="nonzero"/></g></svg>
|
||||
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 214 KiB |
@@ -16,6 +16,11 @@ function openModal(){
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
|
||||
padding = 0;
|
||||
if(width > 800){
|
||||
var padding = 45;
|
||||
}
|
||||
$('#modal-tuto').modal({
|
||||
dismissible: false,
|
||||
ready: function(modal, trigger) {
|
||||
@@ -25,7 +30,7 @@ $(document).ready(function(){
|
||||
nav: true,
|
||||
loop: false,
|
||||
margin: 50,
|
||||
stagePadding: 45,
|
||||
stagePadding: padding,
|
||||
navRewind:false,
|
||||
navText: ['<span class="left-arrow"></span>', '<span class="right-arrow"></span>']
|
||||
});
|
||||
@@ -50,6 +55,8 @@ $(document).ready(function(){
|
||||
openModal();
|
||||
}
|
||||
$(".view-tuto").on('click', function(){
|
||||
var toIndex = 0;
|
||||
$(".tuto-carousel").trigger("to.owl.carousel", [toIndex, 1, true]);
|
||||
openModal();
|
||||
});
|
||||
|
||||
@@ -93,19 +100,20 @@ function eraseCookie(name) {
|
||||
|
||||
/* GESTON de la webcam */
|
||||
var elementExists = document.getElementById("myCvVideo");
|
||||
|
||||
if(document.body.contains(elementExists)){
|
||||
var player = videojs("myCvVideo",
|
||||
{
|
||||
controls: true,
|
||||
width: 320,
|
||||
height: 240,
|
||||
fluid: false,
|
||||
plugins: {
|
||||
record: {
|
||||
audio: true,
|
||||
video: true,
|
||||
maxLength: 300,
|
||||
debug: true,
|
||||
videoMimeType: 'video/mp4',
|
||||
debug: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
window.onresize = resize;
|
||||
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
function resize() {
|
||||
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
}
|
||||
$(document).ready(function () {
|
||||
//Slide sur tags
|
||||
if($('.frame').length) {
|
||||
@@ -50,15 +55,17 @@ $(document).ready(function () {
|
||||
var $window = jQuery(window);
|
||||
if($('#homeTeaser').length) {
|
||||
$window.scroll(function () {
|
||||
var position = $('#homeTeaser').position();
|
||||
if ( $(window).scrollTop() > ((position.top + $('#homeTeaser').height()) - 125) ) {
|
||||
$('.homeSearchWrapper').addClass("fix-search");
|
||||
$('.row_search').removeClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',65);
|
||||
} else {
|
||||
$('.homeSearchWrapper').removeClass("fix-search");
|
||||
$('.row_search').addClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',0);
|
||||
if(w > 960) {
|
||||
var position = $('#homeTeaser').position();
|
||||
if ( $(window).scrollTop() > ((position.top + $('#homeTeaser').height()) - 125) ) {
|
||||
$('.homeSearchWrapper').addClass("fix-search");
|
||||
$('.row_search').removeClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',65);
|
||||
} else {
|
||||
$('.homeSearchWrapper').removeClass("fix-search");
|
||||
$('.row_search').addClass("z-depth-5");
|
||||
$('#liste-jobs').css('padding-top',0);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -170,10 +177,18 @@ $(document).ready(function () {
|
||||
/*owl carousel*/
|
||||
if( $(".territory-carousel").length ) {
|
||||
//Carousel territoire
|
||||
console.log("carousel =="+w);
|
||||
if(w <= 640){
|
||||
var marginValue = 20;
|
||||
var paddingValue = 10;
|
||||
} else {
|
||||
var marginValue = 150;
|
||||
var paddingValue = 100;
|
||||
}
|
||||
$(".territory-carousel").owlCarousel({
|
||||
items:1,
|
||||
margin: 150,
|
||||
stagePadding: 100,
|
||||
margin: marginValue,
|
||||
stagePadding: paddingValue,
|
||||
nav: true,
|
||||
loop: true,
|
||||
center:true,
|
||||
@@ -227,6 +242,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,8 @@
|
||||
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF;;
|
||||
}
|
||||
#modal-tuto{
|
||||
width: 80%;
|
||||
min-height: 540px;
|
||||
background: $white;
|
||||
.col-content{
|
||||
margin-bottom: 0;
|
||||
@@ -141,4 +142,28 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
#modal-tuto {
|
||||
width: 98%;
|
||||
.modal-content{
|
||||
h3{
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
padding:10px;
|
||||
.col{
|
||||
padding: 0;
|
||||
}
|
||||
.owl-dots{
|
||||
display: none;
|
||||
}
|
||||
.carousel-fixed-item{
|
||||
margin-top:0;
|
||||
margin-right:0;
|
||||
font-size: 13px;
|
||||
margin-bottom:50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,16 @@
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 420px){
|
||||
.blocs-texte-video{
|
||||
h2{
|
||||
font-size: 20px;
|
||||
}
|
||||
a{
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*Détail*/
|
||||
|
||||
@@ -70,7 +80,7 @@
|
||||
}
|
||||
|
||||
.profil-company {
|
||||
padding: 0 40px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
/*************************** FLEX ****************************/
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
width: 110%;
|
||||
width: 90vw;
|
||||
display: block;
|
||||
text-align: center;
|
||||
color:#000;
|
||||
@@ -203,31 +203,25 @@
|
||||
}
|
||||
|
||||
.owl-prev {
|
||||
backgound:none;
|
||||
float: left;
|
||||
.left-arrow{
|
||||
background: url(../img/left_light.png) no-repeat;
|
||||
height: 113px;
|
||||
width: 41px;
|
||||
background: url(../img/arrowleft.svg) no-repeat #1E2327;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
background-position: center center;
|
||||
&:hover{
|
||||
background: url(../img/left_light_rollover.png) no-repeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
.owl-next {
|
||||
backgound:none;
|
||||
float: right;
|
||||
.right-arrow{
|
||||
background: url(../img/right_light.png) no-repeat;
|
||||
height: 113px;
|
||||
width: 41px;
|
||||
background: url(../img/arrowright.svg) no-repeat #1E2327;
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
background-position: center center;
|
||||
&:hover{
|
||||
background: url(../img/right_light_rollover.png) no-repeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -236,29 +230,45 @@
|
||||
.owl-carousel .owl-nav{
|
||||
.owl-prev {
|
||||
.left-arrow{
|
||||
background: url(../img/left_dark.png) no-repeat;
|
||||
background-position: center center;
|
||||
&:hover{
|
||||
background: url(../img/left_dark_rollover.png) no-repeat;
|
||||
}
|
||||
background-color:#32373D;
|
||||
}
|
||||
}
|
||||
.owl-next {
|
||||
backgound:none;
|
||||
float: right;
|
||||
.right-arrow{
|
||||
background: url(../img/right_dark.png) no-repeat;
|
||||
background-position: center center;
|
||||
&:hover{
|
||||
background: url(../img/right_dark_rollover.png) no-repeat;
|
||||
}
|
||||
background-color:#32373D;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@media (max-width: 600px){
|
||||
.bg-dark1{
|
||||
.owl-carousel .owl-nav{
|
||||
display: none;
|
||||
.owl-prev {
|
||||
.left-arrow{
|
||||
background-color:#292E32;
|
||||
}
|
||||
}
|
||||
.owl-next {
|
||||
.right-arrow{
|
||||
background-color:#292E32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px){
|
||||
.owl-carousel .owl-nav{
|
||||
position: relative;
|
||||
margin-top: 50px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.owl-prev,.owl-next{
|
||||
float: none;
|
||||
}
|
||||
.owl-prev{
|
||||
margin-right: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,7 +322,7 @@
|
||||
}
|
||||
position: relative;
|
||||
.owl-nav {
|
||||
top: 55%;
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,8 +351,88 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1136px) and (max-width: 1226px){
|
||||
@media (min-width: 1136px){
|
||||
.owl-carousel .owl-nav{
|
||||
width: 110%;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -49,18 +49,41 @@
|
||||
|
||||
#liste-jobs {
|
||||
padding-bottom: 40px;
|
||||
@media screen and (max-width: 420px){
|
||||
h2{
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#liste-talents {
|
||||
padding: 120px 0 40px 0;
|
||||
@media screen and (max-width: 420px){
|
||||
h2{
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#liste-company {
|
||||
padding: 120px 0 40px 0;
|
||||
@media screen and (max-width: 420px){
|
||||
h2{
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#liste-territoires {
|
||||
padding: 120px 0 40px 0;
|
||||
@media screen and (max-width: 420px){
|
||||
h2{
|
||||
font-size: 20px;
|
||||
}
|
||||
a{
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*Blocs fixes accueil*/
|
||||
|
||||
@@ -51,4 +51,12 @@ footer{
|
||||
margin-top:80px;
|
||||
font-size:13px;
|
||||
}
|
||||
@media screen and (max-width: 420px){
|
||||
.col-footer-logo{
|
||||
text-align: center;
|
||||
}
|
||||
&.page-footer{
|
||||
padding: 10px 0 20px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,17 @@
|
||||
padding:40px 40px 40px 80px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 420px){
|
||||
.blocs-texte-video{
|
||||
.inside-m{
|
||||
padding: 10px 10px 30px 10px;
|
||||
}
|
||||
}
|
||||
.row-bloc-video-2{
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
.no-margin-top{
|
||||
margin-top:0px;
|
||||
}
|
||||
|
||||
@@ -55,6 +55,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
#header-resultats{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-items: flex-end;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 15px;
|
||||
font-size: 1rem;
|
||||
a{
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
#liste-resultats {
|
||||
.item-list-bis {
|
||||
margin-bottom: 20px;
|
||||
|
||||
@@ -212,4 +212,3 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
.brandImage {
|
||||
position: relative;
|
||||
margin: 2px;
|
||||
margin-top: 15px;
|
||||
a {
|
||||
display: block;
|
||||
img {
|
||||
@@ -122,3 +123,23 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-detail-ispromoted{
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 10px 20px;
|
||||
color: $orange;
|
||||
border: 1px solid $orange;
|
||||
border-radius: 6px;
|
||||
text-transform: uppercase;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
#ad_show .row-promoted{
|
||||
h3{
|
||||
span{
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
@@ -28,4 +28,13 @@
|
||||
margin: 20px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#company_show .row-promoted{
|
||||
h3{
|
||||
span{
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
padding-bottom: 40px;
|
||||
}
|
||||