Compare commits
82 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4518a8a5e2 | |||
| c6a00a24c7 | |||
| 68ca21136a | |||
| d14bea9c1a | |||
| b2a6e425aa | |||
| fd48045549 | |||
| 512d269f53 | |||
| 3743166ac2 | |||
| 72c72a5986 | |||
| f3e2cb2cf1 | |||
| c83832cdc1 | |||
| dc4fbb6d63 | |||
| 58f9c35f7b | |||
| 9e79171e62 | |||
| 8e7f6d1d08 | |||
| 271883412d | |||
| 6c0b2e1fe5 | |||
| 80c4dc5910 | |||
| b008f12954 | |||
| d0f6533984 | |||
| c60b2ce9fe | |||
| 8bfc3a37c0 | |||
| aa162dff57 | |||
| 29cc1e2658 | |||
| 47d9a08311 | |||
| 2072f1f231 | |||
| 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 |
@@ -8,3 +8,5 @@
|
||||
/backup
|
||||
/conf/env/*.env
|
||||
volume/www/website/.idea
|
||||
/volume/www/website/store/themes/talentstube-20170413/cache/*
|
||||
/volume/www/website/store/img/tmp/*
|
||||
|
||||
@@ -84,7 +84,7 @@ db-restore-website:
|
||||
|
||||
db-restore-store:
|
||||
@echo "Restoring file to database (backup/store-mysql.sql)"
|
||||
@docker exec -i $(CLIENT).mysql.$(ENV) mysql -uroot database < backup/store-mysql.sql
|
||||
@docker exec -i $(CLIENT).store-mysql.$(ENV) mysql -uroot database < backup/store-mysql.sql
|
||||
|
||||
cc:
|
||||
@echo "Clearing symfony cache"
|
||||
|
||||
@@ -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,11 +8,14 @@ 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 / {
|
||||
|
||||
@@ -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;
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
define('_DB_SERVER_', 'tt-website.store-php.prod');
|
||||
define('_DB_SERVER_', 'tt-website.store-mysql.prod');
|
||||
define('_DB_NAME_', 'database');
|
||||
define('_DB_USER_', 'user');
|
||||
define('_DB_PASSWD_', 'O}lk|45&J,kT+DDM{uk[');
|
||||
|
||||
+19
-11
@@ -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 %}
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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,9 +22,11 @@
|
||||
<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) }}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
{% 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>
|
||||
<a href="{{ path('admin_dashboard') }}">
|
||||
<i class="fa fa-dashboard"></i>
|
||||
Dashboard</a>
|
||||
</li>
|
||||
<li>Secret</li>
|
||||
<li class="active">Utilisateurs</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
@@ -18,41 +22,49 @@
|
||||
<div class="box-body">
|
||||
<table id="user_list_table" class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nom</th>
|
||||
<th>Prénom</th>
|
||||
<th class="col-md-3">Email</th>
|
||||
<th>Etat</th>
|
||||
<th>Roles</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<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>{% 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>
|
||||
{% for r in u.roles %}
|
||||
{% if r != "ROLE_USER" %}
|
||||
<span class="badge bg-blue" style="font-weight: 400;">{{ r }}</span>
|
||||
{% 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 %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete-user" href="{{ path('admin_user_delete',{'id':u.id}) }}" data-toggle="tooltip"
|
||||
title="Supprimer">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</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>
|
||||
@@ -74,15 +86,38 @@
|
||||
"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": 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();
|
||||
|
||||
@@ -95,14 +130,14 @@
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Confirmer',
|
||||
action: function(){
|
||||
action: function () {
|
||||
console.log(this.$target);
|
||||
location.href = this.$target.attr('href');
|
||||
return true;
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
text: 'Annuler',
|
||||
cancel: {
|
||||
text: 'Annuler'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block metarobot %}<meta name="robots" content="noindex,follow">{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if typeObject == 'Ad' %}
|
||||
{% set subtitle = 'Candidature à l\'offre d\'emploi:' %}
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
<h3>Profil du talent : </h3>
|
||||
<div class="profil">
|
||||
<p class="profil-picture">
|
||||
{% if answer.user.getWebPath() %}
|
||||
<img src="{{ answer.user.getWebPath() | imagine_filter('profile_square') }}"
|
||||
alt="{{ answer.user.firstname }} {{ answer.user.lastname }}"
|
||||
class="circle responsive-img"/>
|
||||
{% endif %}
|
||||
</p>
|
||||
<i class="fa fa-user-circle"
|
||||
aria-hidden="true"></i> {{ answer.user.firstname }} {{ answer.user.lastname }}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
@@ -12,10 +12,12 @@
|
||||
<span class="playerbtn"></span>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% if a.isPromoted %}
|
||||
<div class="isPromoted">
|
||||
OFFRE POURVUE
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if a.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
{% endif %}
|
||||
<div class="col s12 m8 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m4 l5 company-infos col-noPadding">
|
||||
|
||||
@@ -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} %}
|
||||
|
||||
@@ -35,19 +35,21 @@
|
||||
<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 %}
|
||||
{#{% 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/": ""}) }}"
|
||||
width="100%" height="640" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
{% else %}#}
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
width="100%" height="640" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{#{% endif %}#}
|
||||
{% if ad.isPromoted %}
|
||||
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
|
||||
<div class="isPromoted">
|
||||
OFFRE POURVUE
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -96,16 +98,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,80 +37,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
<div class="col s12 m2 ad-picture col-logo-lg">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}">
|
||||
{% if c.logo is not null %}
|
||||
<img src="{{ c.webPath | imagine_filter('profile_thumb') }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col s12 m6 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m5 l4 col-noPadding company-infos m-l-30">
|
||||
<div class="item-list-website">
|
||||
<h2>
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
class="hover-blue2">
|
||||
<b>{{ c.brandName }}</b>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<br/>
|
||||
{{ c.init }}
|
||||
{% if c.city != null %}
|
||||
{{ c.city }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-tags row-noMargin">
|
||||
<div class="col s11 col-noPadding" style="position:relative;">
|
||||
<div class="chip center-align">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getPublishedAds|length %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
|
||||
cours</strong>
|
||||
{% else %}
|
||||
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
|
||||
cours</strong>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}"
|
||||
class="item-list-media">
|
||||
{% if c.presentationVideo %}
|
||||
{% if c.presentationVideo.thumbnails.0.sizes is defined %}
|
||||
|
||||
<img class="thumbnail_list"
|
||||
src="{{ c.presentationVideo.thumbnails.0.sizes.4.link }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
|
||||
{% endif %}
|
||||
<span class="playerbtn"></span>
|
||||
{% else %}
|
||||
<img class="thumbnail_list"
|
||||
src="{{ asset('/img/default_picture_company.svg') }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="borderList"></div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% include 'default/company_listing.html.twig' with {'companies':companies} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{% 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">
|
||||
|
||||
<div class="col s12 m2 ad-picture col-logo-lg">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}">
|
||||
{% if c.logo is not null %}
|
||||
<img src="{{ c.webPath | imagine_filter('profile_thumb') }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col s12 m6 col-noPadding">
|
||||
<div class="row row-infos row-noMargin">
|
||||
<div class="col s4 m5 l4 col-noPadding company-infos m-l-30">
|
||||
<div class="item-list-website">
|
||||
<h2>
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
class="hover-blue2">
|
||||
<b>{{ c.brandName }}</b>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<br/>
|
||||
{{ c.init }}
|
||||
{% if c.city != null %}
|
||||
{{ c.city }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-tags row-noMargin">
|
||||
<div class="col s11 col-noPadding" style="position:relative;">
|
||||
<div class="chip center-align">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getPublishedAds|length %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
|
||||
cours</strong>
|
||||
{% else %}
|
||||
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
|
||||
cours</strong>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('company_show',{'alias': c.alias }) }}"
|
||||
title="{{ c.brandname }}"
|
||||
class="item-list-media">
|
||||
{% if c.presentationVideo %}
|
||||
{% if c.presentationVideo.thumbnails.0.sizes is defined %}
|
||||
|
||||
<img class="thumbnail_list"
|
||||
src="{{ c.presentationVideo.thumbnails.0.sizes.4.link }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
|
||||
{% endif %}
|
||||
<span class="playerbtn"></span>
|
||||
{% else %}
|
||||
<img class="thumbnail_list"
|
||||
src="{{ asset('/img/default_picture_company.svg') }}"
|
||||
alt="{{ c.brandName }}"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="borderList"></div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -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>
|
||||
@@ -50,7 +53,7 @@
|
||||
</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>
|
||||
@@ -61,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>
|
||||
|
||||
@@ -33,7 +33,10 @@
|
||||
<div id="liste-jobs" class="fuild-container bg-grey-3 button-plus">
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les offres <span>d'emploi</span></h2></div>
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">Les offres d'emploi</h2>
|
||||
<h3 class="subtitles-homepage">Postulez en CV vidéo ou vidéo de motivation</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s12 col-noPadding">
|
||||
@@ -47,7 +50,7 @@
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<a href="{{ path('ad_search_result') }}" title="Découvrir toutes les offres d'emploi"
|
||||
class="btn btn-default btn-round btn-all-jobs">Découvrir toutes les offres d'emploi
|
||||
class="btn btn-default btn-round btn-all-jobs">Voir les offres
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,15 +63,14 @@
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">
|
||||
La marque employeur des <span>entreprises de talents</span>
|
||||
</h2>
|
||||
<h2 class="blue-text no-margin-top">Ils recrutent</h2>
|
||||
<h3 class="subtitles-homepage">Ils méritent votre candidature spontanée, découvrez leur réalité, leur marque employeur.</h3>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
@@ -76,7 +78,7 @@
|
||||
</div>
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<a href="{{ path('company_list') }}" title="Toutes les entreprise" class="btn btn-default btn-round btn-all-talents">Découvrir toutes les entreprises</a>
|
||||
<a href="{{ path('company_list') }}" title="Toutes les entreprise" class="btn btn-default btn-round btn-all-talents">Voir les entreprises</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -90,8 +92,8 @@
|
||||
<div id="liste-talents" class="bg-dark2 button-plus">
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les CV vidéo
|
||||
<span>à la une</span></h2></div>
|
||||
<div class="col s12"><h2 class="blue-text no-margin-top">Les talents</h2></div>
|
||||
<h3 class="subtitles-homepage">Découvrez leurs CV vidéo et vidéo de motivation.</h3>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="owl-carousel owl-carousel-home home-talent-carousel">
|
||||
@@ -107,10 +109,11 @@
|
||||
<div class="container">
|
||||
<div class="row center-align">
|
||||
<div class="col s12">
|
||||
<h2 class="blue-text no-margin-top">Les territoires <span>pour vivre et travailler</span></h2>
|
||||
<h2 class="blue-text no-margin-top">Les territoires</h2>
|
||||
<h3 class="subtitles-homepage">Venez vivre et travailler chez nous.</h3>
|
||||
{% 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">
|
||||
@@ -120,8 +123,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-t-30">
|
||||
<a title="territoire de {{ territory.brandname }}" class="btn btn-default" href="{{ path('territory_show',{'alias': territory.alias }) }}">
|
||||
Voir le territoire de <span>{{ territory.brandname }}</span>
|
||||
<a title="Voir les territoires" class="btn btn-default" href="{{ path('territory_list') }}">
|
||||
Voir les territoires</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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 }}"/>
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -67,7 +67,10 @@
|
||||
<p class="m-0">
|
||||
<a class="td-none color-grey3"
|
||||
href="{{ path('territory_show',{'alias': c.alias, '_fragment':'offers' }) }}">
|
||||
{% set nbAds = c.getTerritoryAds|length %}
|
||||
{% set nbAds = 0 %}
|
||||
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
|
||||
{% set nbAds = nbAds + 1 %}
|
||||
{% endfor %}
|
||||
{% if nbAds > 1 %}
|
||||
<strong>{{ nbAds }} offres d'emploi en
|
||||
cours sur ce territoire</strong>
|
||||
|
||||
@@ -88,11 +88,6 @@
|
||||
<div class="item-detail-description">
|
||||
<p>{{ company.description|nl2br }}</p>
|
||||
</div>
|
||||
{% if company.descriptionAdmin %}
|
||||
<div class="item-detail-description-bo">
|
||||
<p>{{ company.descriptionAdmin|raw }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3 class="blue-text">Les mots clés</h3>
|
||||
{% for tag in company.publicTag %}
|
||||
<p class="chip">{{ tag }}</p>
|
||||
@@ -100,16 +95,45 @@
|
||||
</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 %}
|
||||
<br class="clear" />
|
||||
<div class="row m-t-50">
|
||||
<div class="col s12 center-align">
|
||||
<a class="btn-default btn-grey" href="#offers">OFFRES D'EMPLOI</a> /
|
||||
<a class="btn-default btn-grey" href="#companies">ENTREPRISES</a>
|
||||
</div>
|
||||
</div>
|
||||
{% if companyAds|length > 0 %}
|
||||
<div id="offers" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les offres d’emploi pour {{ company.brandname }}</h1>
|
||||
<h1>Les offres d’emploi du territoire : {{ company.brandname }}</h1>
|
||||
<div id="liste-resultats">
|
||||
{% include 'default/ad_listing.html.twig' with {'ads':companyAds} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if companies|length > 0 %}
|
||||
<div id="companies" class="row">
|
||||
<div class="col s12">
|
||||
<h1>Les entreprises du territoire : {{ company.brandname }}</h1>
|
||||
<div id="liste-resultats">
|
||||
{% include 'default/company_listing.html.twig' with {'companies':companies} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div id="liste-testimony" class="bg-white">
|
||||
<div class="container">
|
||||
<div class="row flexcontainer row-noMargin">
|
||||
<div class="row row-noMargin">
|
||||
<div class="owl-carousel owl-carousel-testimony">
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
@@ -16,6 +16,7 @@
|
||||
Nous avons eu beaucoup d’appréciations positives grâce à cette communication.
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
@@ -32,6 +33,7 @@
|
||||
Atout supplémentaire : nos annonces en vidéo ont contribué à développer notre marque employeur !
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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);
|
||||
@@ -298,16 +298,22 @@ class AdController extends Controller
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
if (is_null($data['job'])) {
|
||||
return $this->redirectToRoute('homepage');
|
||||
//return $this->redirectToRoute('homepage');
|
||||
$session->remove('jobSearch');
|
||||
unset($data['job']);
|
||||
} else {
|
||||
$session->set('jobSearch', $data['job']);
|
||||
}
|
||||
$session->set('jobSearch', $data['job']);
|
||||
|
||||
if (!is_null($data['contrat'])) {
|
||||
$session->set('contratSearch', $data['contrat']);
|
||||
} else {
|
||||
$session->remove('contratSearch');
|
||||
}
|
||||
$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;
|
||||
@@ -319,23 +325,25 @@ class AdController extends Controller
|
||||
|
||||
return $this->render('default/ad_search_result.html.twig', [
|
||||
'ads' => $ads,
|
||||
'noResults' => $noResults
|
||||
'noResults' => $noResults,
|
||||
'isPromotedAds' => $promoted
|
||||
]);
|
||||
|
||||
} 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 +353,18 @@ 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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,16 +3,11 @@
|
||||
namespace AppBundle\Controller\Admin;
|
||||
|
||||
use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Media;
|
||||
use AppBundle\Entity\Answer;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Entity\Bookmark;
|
||||
use AppBundle\Form\Admin\TalentAdminType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
||||
class TalentController extends Controller
|
||||
{
|
||||
|
||||
@@ -47,112 +42,4 @@ class TalentController extends Controller
|
||||
'talent' => $talent,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/list", name="admin_config_user")
|
||||
*/
|
||||
public function adminUserListAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
|
||||
|
||||
|
||||
return $this->render('admin/users_list.html.twig', array(
|
||||
'users' => $t,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/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_user');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/delete", name="admin_user_delete")
|
||||
*/
|
||||
public function adminUserDeleteAction(Request $request, $id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
|
||||
|
||||
$userManager = $this->get('fos_user.user_manager');;
|
||||
$user = $userManager->findUserBy(array('id' => $id));
|
||||
if(\is_null($user)) {
|
||||
// user not found, generate $notFoundResponse
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
' user not found !'
|
||||
);
|
||||
}
|
||||
|
||||
\assert(!\is_null($user));
|
||||
$company = $user->getCompany();
|
||||
if($company){
|
||||
$company->setPresentationVideo(null);
|
||||
}
|
||||
$this->deleteRelation($user);
|
||||
$userManager->deleteUser($user);
|
||||
if($company){
|
||||
$em->remove($company);
|
||||
}
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute('admin_config_user');
|
||||
}
|
||||
|
||||
public function deleteRelation($user) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('user' => $user));
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator'=> $user));
|
||||
$sendMessage = $em->getRepository('AppBundle:Message')->findBy(array('sender'=> $user));
|
||||
$recipMessage = $em->getRepository('AppBundle:Message')->findBy(array('recipient'=> $user));
|
||||
$bookmarks = $em->getRepository('AppBundle:Bookmark')->findBy(array('creator'=> $user));
|
||||
|
||||
if ($sendMessage) {
|
||||
foreach ($sendMessage as $key => $message) {
|
||||
$message->setSender(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($recipMessage) {
|
||||
foreach ($recipMessage as $key => $message) {
|
||||
$message->setRecipient(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($bookmarks) {
|
||||
foreach ($bookmarks as $key => $bookmark) {
|
||||
$em->remove($bookmark);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($answers) {
|
||||
foreach ($answers as $key => $answer) {
|
||||
$em->remove($answer);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
if ($medias) {
|
||||
foreach ($medias as $key => $media) {
|
||||
$em->remove($media);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,10 +174,16 @@ class TerritoryController extends Controller
|
||||
$mediaManager->getThumbnails($ad);
|
||||
}
|
||||
}
|
||||
|
||||
$companiesArray = array();
|
||||
$territoryCompanies = $em->getRepository('AppBundle:TerritoryAd')->getFrontTerritoryCompanies($company->getId());
|
||||
foreach ($territoryCompanies as $territoryCompany) {
|
||||
$companiesArray[] = $territoryCompany->getCompany();
|
||||
}
|
||||
|
||||
return $this->render('territory/territory_show.html.twig', [
|
||||
'company' => $company,
|
||||
'companyAds' => $companyAds
|
||||
'companyAds' => $companyAds,
|
||||
'companies' => $companiesArray
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -85,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
|
||||
@@ -120,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
|
||||
***********************/
|
||||
@@ -135,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
|
||||
***********************/
|
||||
@@ -171,7 +177,8 @@ class Company
|
||||
* Custom Function
|
||||
***********************/
|
||||
|
||||
public function init(){
|
||||
public function init()
|
||||
{
|
||||
$this->initAddress();
|
||||
$this->initTags();
|
||||
$this->initExtra();
|
||||
@@ -252,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +281,6 @@ class Company
|
||||
* Getter & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
@@ -498,7 +504,7 @@ class Company
|
||||
*/
|
||||
public function setPresentationVideo(\AppBundle\Entity\Media $presentationVideo = null)
|
||||
{
|
||||
$this->presentation_video = $presentationVideo;
|
||||
$this->presentationVideo = $presentationVideo;
|
||||
|
||||
return $this;
|
||||
}
|
||||
@@ -510,7 +516,7 @@ class Company
|
||||
*/
|
||||
public function getPresentationVideo()
|
||||
{
|
||||
return $this->presentation_video;
|
||||
return $this->presentationVideo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -601,7 +607,6 @@ class Company
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set emphasis.
|
||||
*
|
||||
@@ -805,4 +810,28 @@ class Company
|
||||
{
|
||||
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
|
||||
***********************/
|
||||
@@ -285,7 +281,6 @@ class User extends BaseUser
|
||||
* Getters & Setters
|
||||
***********************/
|
||||
|
||||
|
||||
/**
|
||||
* Set firstname.
|
||||
*
|
||||
|
||||
@@ -16,7 +16,7 @@ class AdSearchType extends AbstractType
|
||||
$builder
|
||||
->add('job', TextType::class, array(
|
||||
'label' => false,
|
||||
'required' => true,
|
||||
'required' => false,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Rechercher une offre d\'emploi vidéo par mots clés',
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -9,6 +9,7 @@ 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\TextareaType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\UrlType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
@@ -23,7 +24,7 @@ class CompanyAdminType extends AbstractType
|
||||
$builder
|
||||
->add('brandName', TextType::class, array('label' => 'profile.company.brandname'))
|
||||
->add('businessName', TextType::class, array('label' => 'profile.company.businessname'))
|
||||
->add('description', TextType::class, array('label' => 'profile.company.description'))
|
||||
->add('description', TextareaType::class, array('label' => 'profile.company.description'))
|
||||
->add('website', UrlType::class, array(
|
||||
'label' => 'profile.company.website',
|
||||
'required' => false,
|
||||
@@ -37,6 +38,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
|
||||
|
||||
@@ -87,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()
|
||||
|
||||
@@ -21,6 +21,16 @@ class TerritoryAdRepository extends \Doctrine\ORM\EntityRepository
|
||||
return $qb;
|
||||
}
|
||||
|
||||
public function getFrontTerritoryCompanies($id)
|
||||
{
|
||||
$qb = $this->createQueryBuilder('t');
|
||||
$qb->where('t.territory = :id')
|
||||
->andWhere($qb->expr()->isNotNull('t.company'))
|
||||
->setParameter('id', $id);
|
||||
|
||||
return $qb->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getTerritoryAds($id)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,20 @@ class UserRepository extends EntityRepository
|
||||
$qb->select('u')
|
||||
->from($this->_entityName, 'u')
|
||||
->where('u.roles LIKE :roles')
|
||||
->setParameter('roles', '%"'.$role.'"%');
|
||||
->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();
|
||||
}
|
||||
|
||||
@@ -52,11 +52,12 @@ class AdSearcher
|
||||
}
|
||||
$boolQuery = new \Elastica\Query\BoolQuery();
|
||||
$fieldQuery = new \Elastica\Query\MultiMatch();
|
||||
$fieldQuery->setQuery($data['job']);
|
||||
$fieldQuery->setFields(['title', 'publicTag', 'company.brandname']);
|
||||
$boolQuery->addMust($fieldQuery);
|
||||
if(isset($data['job'])){
|
||||
$fieldQuery->setQuery($data['job']);
|
||||
$fieldQuery->setFields(['title', 'publicTag', 'company.brandname']);
|
||||
$boolQuery->addMust($fieldQuery);
|
||||
}
|
||||
|
||||
|
||||
if($data['contrat']){
|
||||
$fieldQueryContract = new \Elastica\Query\Match();
|
||||
$fieldQueryContract->setFieldQuery('contract_type', $data['contrat']);
|
||||
@@ -96,7 +97,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);
|
||||
|
||||
+7
-7
@@ -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,
|
||||
@@ -254,6 +269,24 @@ $(document).ready(function () {
|
||||
$("#ad_search_location").val(JSON.stringify(gmap_address));
|
||||
}
|
||||
}
|
||||
$("#ad_search_location_gmap").keydown(function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
e.preventDefault();
|
||||
var geocoder = new google.maps.Geocoder();
|
||||
geocoder.geocode({ 'address': $(this).val()}, function(results, status) {
|
||||
if (status == google.maps.GeocoderStatus.OK) {
|
||||
if( results[0]['types'][0] == "locality"){
|
||||
var gmap_address = {'gmap_address': results[0]}
|
||||
$("#ad_search_location").val(JSON.stringify(gmap_address));
|
||||
$("form[name='ad_search']").submit();
|
||||
}
|
||||
} else {
|
||||
Materialize.toast('Aucune position trouvé pour cette ville.', 4000);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('.bm-talent').on('click', 'span', function () {
|
||||
@@ -333,6 +366,17 @@ $(document).ready(function () {
|
||||
$('#modal_voeux').find('.modal-close').on('click',function(){
|
||||
$('#modal_voeux').find("iframe").attr('src',"");
|
||||
});
|
||||
|
||||
//Smoothscroll
|
||||
$(function() {
|
||||
$("a[href*='#']:not([href='#'])").click(function() {
|
||||
var anchor = $(this.hash);
|
||||
anchor = anchor.length ? anchor : $("[name=" + this.hash.slice(1) +"]");
|
||||
if ( anchor.length ) {
|
||||
$("html, body").animate( { scrollTop: anchor.offset().top }, 1500);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
$('.roleUser').click(function(){
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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,7 +14461,10 @@ 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 {
|
||||
@@ -14583,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 {
|
||||
@@ -14743,6 +14788,9 @@ a:hover {
|
||||
strong {
|
||||
font-weight: 600; }
|
||||
|
||||
.clear {
|
||||
clear: both; }
|
||||
|
||||
#global_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
@@ -14778,7 +14826,8 @@ h1 {
|
||||
|
||||
h2 {
|
||||
font-size: 35px;
|
||||
margin: 60px 0 45px 0; }
|
||||
margin: 60px 0 15px 0;
|
||||
font-weight: 500; }
|
||||
h2 span {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid; }
|
||||
@@ -14799,6 +14848,14 @@ h6 {
|
||||
font-size: 17px;
|
||||
margin: 0px 0 10px 0; }
|
||||
|
||||
.subtitles-homepage {
|
||||
margin-bottom: 30px;
|
||||
color: #999CA2;
|
||||
font-weight: 400;
|
||||
font-family: 'Raleway';
|
||||
font-size: 13px;
|
||||
margin: 0 0 30px 0; }
|
||||
|
||||
.z-depth-2 {
|
||||
box-shadow: 1px 5px 20px rgba(0, 0, 0, 0.1); }
|
||||
|
||||
@@ -15117,6 +15174,20 @@ h6 {
|
||||
line-height: 40px;
|
||||
box-shadow: none; }
|
||||
|
||||
.btn-grey {
|
||||
padding: 10px 15px;
|
||||
margin: 10px 0 20px 0;
|
||||
width: 100%;
|
||||
text-transform: inherit;
|
||||
background: #E0E0E0;
|
||||
border: 0;
|
||||
color: #333A40;
|
||||
font-weight: normal;
|
||||
box-shadow: none; }
|
||||
.btn-grey:hover {
|
||||
background: #bababa;
|
||||
color: #333A40; }
|
||||
|
||||
.button-plus {
|
||||
position: relative; }
|
||||
.button-plus:after {
|
||||
@@ -15606,6 +15677,7 @@ table.highlight > tbody > tr:hover {
|
||||
#answerPage .col-content.bg-arrow {
|
||||
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF; }
|
||||
#answerPage #modal-tuto {
|
||||
width: 80%;
|
||||
min-height: 540px;
|
||||
background: #FFFFFF; }
|
||||
#answerPage #modal-tuto .col-content {
|
||||
@@ -15650,6 +15722,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 {
|
||||
@@ -15670,7 +15758,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 {
|
||||
@@ -15725,18 +15814,37 @@ table.highlight > tbody > tr:hover {
|
||||
margin: 0 5px 0 20px; }
|
||||
|
||||
/* Offre Pourvue */
|
||||
#adRow,
|
||||
#adRow .ad-picture {
|
||||
position: relative; }
|
||||
#adRow .isPromoted {
|
||||
font-family: raleway, sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
color: #1E2327;
|
||||
letter-spacing: 4px;
|
||||
background-color: #FCB857;
|
||||
height: 33px;
|
||||
line-height: 32px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
text-align: center; }
|
||||
|
||||
#adVideo {
|
||||
position: relative; }
|
||||
#adRow .isPromoted,
|
||||
#adVideo .isPromoted {
|
||||
font-family: raleway, sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
color: #1E2327;
|
||||
letter-spacing: 4px;
|
||||
background-color: #FCB857;
|
||||
height: 33px;
|
||||
line-height: 32px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
left: -3px; }
|
||||
#adRow .isPromoted img,
|
||||
#adVideo .isPromoted img {
|
||||
width: 101px;
|
||||
height: 101px; }
|
||||
top: 0px;
|
||||
text-align: center; }
|
||||
|
||||
.card-image {
|
||||
position: relative; }
|
||||
@@ -15748,6 +15856,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 {
|
||||
@@ -15757,6 +15880,18 @@ table.highlight > tbody > tr:hover {
|
||||
#company_show .item-detail-date {
|
||||
font-size: 13px; }
|
||||
#company_show #offers h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 33px;
|
||||
text-transform: uppercase; }
|
||||
#company_show #companies h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 70px;
|
||||
margin-bottom: 33px;
|
||||
text-transform: uppercase; }
|
||||
#company_show #companies h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 70px;
|
||||
@@ -15767,6 +15902,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 *****/ }
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
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 |
@@ -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>']
|
||||
});
|
||||
@@ -95,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,
|
||||
@@ -254,6 +269,24 @@ $(document).ready(function () {
|
||||
$("#ad_search_location").val(JSON.stringify(gmap_address));
|
||||
}
|
||||
}
|
||||
$("#ad_search_location_gmap").keydown(function (e) {
|
||||
if (e.keyCode == 13) {
|
||||
e.preventDefault();
|
||||
var geocoder = new google.maps.Geocoder();
|
||||
geocoder.geocode({ 'address': $(this).val()}, function(results, status) {
|
||||
if (status == google.maps.GeocoderStatus.OK) {
|
||||
if( results[0]['types'][0] == "locality"){
|
||||
var gmap_address = {'gmap_address': results[0]}
|
||||
$("#ad_search_location").val(JSON.stringify(gmap_address));
|
||||
$("form[name='ad_search']").submit();
|
||||
}
|
||||
} else {
|
||||
Materialize.toast('Aucune position trouvé pour ce lieu.', 4000);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('.bm-talent').on('click', 'span', function () {
|
||||
@@ -333,5 +366,16 @@ $(document).ready(function () {
|
||||
$('#modal_voeux').find('.modal-close').on('click',function(){
|
||||
$('#modal_voeux').find("iframe").attr('src',"");
|
||||
});
|
||||
|
||||
//Smoothscroll
|
||||
$(function() {
|
||||
$("a[href*='#']:not([href='#'])").click(function() {
|
||||
var anchor = $(this.hash);
|
||||
anchor = anchor.length ? anchor : $("[name=" + this.hash.slice(1) +"]");
|
||||
if ( anchor.length ) {
|
||||
$("html, body").animate( { scrollTop: anchor.offset().top }, 1500);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
@@ -13,8 +13,8 @@ $grey2: #AAAAAA;
|
||||
$grey3: #F2F3F5;
|
||||
$grey4: #333A40;
|
||||
$grey5 : #535353;
|
||||
$grey6 : #999CA2;
|
||||
$orange: #ff9800;
|
||||
|
||||
|
||||
$font-1: "Raleway", sans-serif;
|
||||
$font-2: "Varela Round", sans-serif;
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF;;
|
||||
}
|
||||
#modal-tuto{
|
||||
width: 80%;
|
||||
min-height: 540px;
|
||||
background: $white;
|
||||
.col-content{
|
||||
@@ -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 ****************************/
|
||||
|
||||
@@ -282,6 +282,22 @@
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-grey {
|
||||
padding: 10px 15px;
|
||||
margin: 10px 0 20px 0;
|
||||
width: 100%;
|
||||
text-transform: inherit;
|
||||
background: $grey1;
|
||||
border: 0;
|
||||
color: $grey4;
|
||||
font-weight: normal;
|
||||
box-shadow: none;
|
||||
&:hover{
|
||||
background: darken($grey1,15%);
|
||||
color: $grey4;
|
||||
}
|
||||
}
|
||||
|
||||
.button-plus {
|
||||
position: relative;
|
||||
&:after {
|
||||
|
||||
@@ -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,7 +351,10 @@
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,10 @@ strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.clear{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#global_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -65,7 +69,8 @@ h1 {
|
||||
|
||||
h2 {
|
||||
font-size: 35px;
|
||||
margin: 60px 0 45px 0;
|
||||
margin: 60px 0 15px 0;
|
||||
font-weight: 500;
|
||||
span {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid;
|
||||
@@ -92,6 +97,17 @@ h6 {
|
||||
margin: 0px 0 10px 0;
|
||||
}
|
||||
|
||||
|
||||
.subtitles-homepage{
|
||||
margin-bottom : 30px;
|
||||
color : $grey6;
|
||||
font-weight: 400;
|
||||
font-family: 'Raleway';
|
||||
font-size: 13px;
|
||||
margin: 0 0 30px 0;
|
||||
}
|
||||
|
||||
|
||||
.z-depth-2{
|
||||
box-shadow : 1px 5px 20px rgba(0,0,0,0.1)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
@@ -96,17 +97,40 @@
|
||||
|
||||
/* Offre Pourvue */
|
||||
|
||||
#adRow,
|
||||
#adRow{
|
||||
.ad-picture{
|
||||
position: relative;
|
||||
}
|
||||
.isPromoted {
|
||||
font-family: raleway, sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
color: #1E2327;
|
||||
letter-spacing : 4px;
|
||||
background-color : #FCB857;
|
||||
height : 33px;
|
||||
line-height: 32px;
|
||||
width : 100%;
|
||||
position: absolute;
|
||||
bottom : 30px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
#adVideo {
|
||||
position: relative;
|
||||
.isPromoted {
|
||||
font-family: raleway, sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
color: #1E2327;
|
||||
letter-spacing : 4px;
|
||||
background-color : #FCB857;
|
||||
height : 33px;
|
||||
line-height: 32px;
|
||||
width : 100%;
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
left: -3px;
|
||||
img {
|
||||
width: 101px;
|
||||
height: 101px;
|
||||
}
|
||||
top : 0px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,3 +146,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;
|
||||
}
|
||||
@@ -11,6 +11,24 @@
|
||||
font-size: 13px;
|
||||
}
|
||||
#offers {
|
||||
h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 30px;
|
||||
margin-bottom: 33px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
#companies {
|
||||
h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 70px;
|
||||
margin-bottom: 33px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
#companies {
|
||||
h1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
@@ -28,4 +46,13 @@
|
||||
margin: 20px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#company_show .row-promoted{
|
||||
h3{
|
||||
span{
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
Reference in New Issue
Block a user