Compare commits

...

49 Commits

Author SHA1 Message Date
Maxime Thévenot 38d84a0257 Fix : bad cookie setting 2018-06-08 10:04:10 +02:00
Maxime Thévenot d3d8339a6f Fix : set cookie for redirect after registration 2018-06-08 10:01:11 +02:00
Maxime Thévenot 8ef169197d Fix : redirection when creating account after spontaneous 2018-06-05 16:38:46 +02:00
Thomas MONCHICOURT 737af1052b Fix: recherceh url 2018-05-28 12:26:30 +02:00
Thomas MONCHICOURT 85b1e2406d Fix : optimisation mobile css 2018-05-25 16:49:33 +02:00
Thomas MONCHICOURT 5cb2f6d2cb Fix : style detail annonce 2018-05-25 15:23:12 +02:00
Thomas MONCHICOURT b070ae8e28 Fix : du fix … 2018-05-25 15:19:00 +02:00
Thomas MONCHICOURT 5b9c7e57fe Fix : check si variable existe 2018-05-25 15:15:32 +02:00
Thomas MONCHICOURT 8f8e2c3b2f Merge branch 'feat/offres_pourvues' into develop
# Conflicts:
#	volume/www/website/www/src/AppBundle/Utils/Services/AdSearcher.php
2018-05-25 15:15:05 +02:00
Thomas MONCHICOURT d0e7ee8b74 Fix : libelle 2018-05-25 15:06:40 +02:00
Thomas MONCHICOURT c0445c9ad3 Fix : orthographe 2018-05-25 15:03:44 +02:00
Thomas MONCHICOURT 65dfac1af5 Feat : mise en place de la page de detail ad et company #5964 @0h20 2018-05-25 14:50:05 +02:00
Thomas MONCHICOURT 50831adf20 Feat : Page de detail annonce #5964 @0h20 2018-05-25 12:33:12 +02:00
Thomas MONCHICOURT 6f7d329cc6 Feat : Mise en place d’un champ type privé pour ad et company #6472 @1h10 2018-05-25 11:33:39 +02:00
Thomas MONCHICOURT 5f2e5fddbf Feat: filtre offres pourvues #5964 2018-05-25 10:27:59 +02:00
Thomas MONCHICOURT e905cb063c feat : Modification de la recherche #5964 @0h20 2018-05-24 17:01:53 +02:00
Thomas MONCHICOURT 44ae8a01fb Merge branch 'master' into develop 2018-05-24 16:36:55 +02:00
Thomas MONCHICOURT 703b8891e6 Feat : Nouvelles fleches + recherche non fixe pour mobile #5966 @2h 2018-05-24 16:21:52 +02:00
Thomas MONCHICOURT 724e175a6c Feat : Ajout liens territoires dans le footer #5963 @0h10 2018-05-23 17:22:31 +02:00
Thomas MONCHICOURT e9a7da75bc Feat : remise en ligne annonce rocher 2018-05-18 12:26:34 +02:00
Thomas MONCHICOURT 5612f87999 Fix : probleme connexion user admin 2018-05-02 15:09:54 +02:00
Thomas MONCHICOURT b63983b61e Feat : modification profil talent #6313 @0h15 2018-05-02 14:19:00 +02:00
Thomas MONCHICOURT 43858b06ff Feat : modification Css 2018-04-30 15:21:57 +02:00
Thomas MONCHICOURT f012f91ca4 Merge branch 'master' of https://git.e-declic.net/talents-tube/website 2018-04-30 15:11:14 +02:00
Thomas MONCHICOURT 2ba454f2ab Feat : style responsive 2018-04-30 15:11:05 +02:00
Thomas MONCHICOURT 2426dc5abc Feat : correction tuto responsive @1h 2018-04-30 15:10:26 +02:00
Maxime Thévenot 703ec9a1bb Fix : bug on talent deleting 2018-04-26 17:18:42 +02:00
Maxime Thévenot 4a72e4dfe6 Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop
# Conflicts:
#	volume/www/website/www/src/AppBundle/Entity/Company.php
2018-04-26 16:42:01 +02:00
Maxime Thévenot 607f7706ca Feat : add capability to delete company from secret admin 2018-04-26 16:40:49 +02:00
Thomas MONCHICOURT b0b1179bdc Feat : Modification listing company #6269 @1h30 2018-04-24 14:16:19 +02:00
Thomas MONCHICOURT 0e2494797e Fix : Bloc vidéo après mot clés #6266 @0h25 2018-04-23 16:09:00 +02:00
Thomas MONCHICOURT 69a7595966 Fix : page detail territoire 2018-04-23 16:04:33 +02:00
Thomas MONCHICOURT e404b4d876 Merge branch 'develop' 2018-04-23 16:00:15 +02:00
Thomas MONCHICOURT fa8b21b93c Merge branch 'develop' of https://git.e-declic.net/talents-tube/website into develop 2018-04-23 15:59:43 +02:00
Thomas MONCHICOURT 8e8312c0f9 Feat : modification video territoire #6266 @0H15 2018-04-23 15:59:40 +02:00
Maxime Thévenot 0297191e07 Fix : update teritory sorting order 2018-04-20 15:23:45 +02:00
Maxime Thévenot e64ce55b66 Merge branch 'develop' 2018-04-20 15:16:04 +02:00
Thomas MONCHICOURT eda0562edc Feat : mise en ligne vidéo albéa + changement home 2018-04-20 15:11:53 +02:00
Maxime Thévenot 01f5823885 Feat : permit admin to refresh vimeo image + sorting list 2018-04-20 15:10:44 +02:00
Thomas MONCHICOURT 9ed2745e8d Feat : mise en ligne vidéo albéa + changement home 2018-04-17 09:33:37 +02:00
Thomas MONCHICOURT 82c4911770 Feat : Modification du code et mise en git #6185 @0h10 2018-04-16 09:34:10 +02:00
Thomas MONCHICOURT 8df9b7af43 Feat : Ajout champ description admin pour territoire #6181 @1h 2018-04-13 10:50:33 +02:00
Thomas MONCHICOURT 71259c40c6 Feat : Ajout d’un col list user + action resend confirm mail #6151 @0h20 2018-04-09 14:49:14 +02:00
Thomas MONCHICOURT 2dd559fa64 Feat : intervention albéa @0h15 2018-03-30 17:04:26 +02:00
Thomas MONCHICOURT 90ae12995f Fix : admin set presentation on null 2018-03-27 15:16:11 +02:00
Thomas MONCHICOURT 7aa4a92cb6 Feat : Ajout listing user en admin #6108 @2h 2018-03-27 14:29:52 +02:00
Thomas MONCHICOURT 6a9b48d629 Fix : modification linkedin 2018-03-15 14:27:13 +01:00
Thomas MONCHICOURT 032d10bb50 Fix: connexion FB 2018-03-15 12:34:07 +01:00
Thomas MONCHICOURT 7731dd2c23 Fix : erreur js vimeo 2018-03-06 09:56:05 +01:00
81 changed files with 1239 additions and 323 deletions
+2
View File
@@ -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/
+22
View File
@@ -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-----
+28
View File
@@ -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-----
+1
View File
@@ -5,6 +5,7 @@ services:
nginx:
ports:
- "80:80"
- "443:443"
volumes:
- ../volume/www:/home/www:cached
restart: "no"
+4 -1
View File
@@ -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 / {
+3 -1
View File
@@ -9,4 +9,6 @@ rewrite ^/plateforme$ https://www.talentstube.com/ permanent;
rewrite ^/page/les-conseils$ https://www.talentstube.com/accompagnement-entreprise permanent;
rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video permanent;
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
@@ -3,20 +3,25 @@
{% 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 destination_login is defined %}
<a href="{{ destination_login }}" class="btn btn-default">Poursuivre votre vandidature</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block metarobot %}
<meta name="robots" content="noindex,nofollow">
{% endblock %}
{% endblock %}
@@ -3,7 +3,8 @@
<div class="row center-align">
<div class="col s12">
<div class="owl-carousel territory-carousel">
{% for territory in territories %}
{% for territory in territories if territory.territory.isPrivate != true %}
{% set territory = territory.territory %}
<div class="item">
<h2 class="blue-text no-margin-top">
@@ -19,6 +19,7 @@
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">{{ ad.title }}</h3>
<br/><i class="fa fa-link"></i>Url : {{ path("ad_show",{'alias':ad.alias})}}<br />
</div>
<div class="box-body">
{{ form_errors(form) }}
@@ -41,7 +42,7 @@
<h3 class="box-title">Informations</h3>
</div>
<div class="box-body">
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }}
{{ form_row(form.status) }} {{ form_row(form.isPromoted) }} {{ form_row(form.isVerified) }} {{ form_row(form.isPrivate) }}
</div>
</div>
</div>
@@ -66,6 +66,10 @@
title="Modifier">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
<a href="{{ path('admin_ad_refresh_img',{'id':ad.id}) }}" data-toggle="tooltip"
title="Mise à jour image vimeo">
<i class="fa fa-picture-o" aria-hidden="true"></i>
</a>
</td>
</tr>
{% endfor %}
@@ -13,6 +13,8 @@
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/dist/css/AdminLTE.min.css') }}">
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/dist/css/skins/skin-blue.min.css') }}">
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/plugins/datatables/dataTables.bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('admin/AdminLTE/plugins/datatables/dataTables.bootstrap.css') }}">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css">
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
{% block css %}
@@ -22,9 +22,11 @@
<div class="box-header">
<h3 class="box-title">{{ company.brandName }}</h3>
<br><span>{{ company.mainUser.email }}</span>
<br/><i class="fa fa-link"></i>Url : {{ path("company_show",{'alias':company.alias})}}<br />
</div>
<div class="box-body">
{{ form_errors(form) }}
{{ form_row(form.isPrivate) }}
{{ form_row(form.emphasis) }}
{{ form_row(form.emphasisOrder) }}
{{ form_row(form.brandName) }}
@@ -58,6 +58,10 @@
style="margin-left: 5px;">
<i class="fa fa-cart-plus" aria-hidden="true"></i>
</a>
<a href="{{ path('admin_company_refresh_img',{'id':company.id}) }}" data-toggle="tooltip"
title="Mise à jour image vimeo">
<i class="fa fa-picture-o" aria-hidden="true"></i>
</a>
{% if is_granted('ROLE_ALLOWED_TO_SWITCH') %}
<a href="{{ path('company_dashboard',{'_switch_user':company.MainUser.username}) }}"
data-toggle="tooltip" title="Se connecter avec ce compte"
@@ -88,7 +92,7 @@
"language": {
"url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"order": [[1, 'desc']],
"order": [[0, 'desc']],
"columnDefs": [
{"targets": 0, "searchable": true, "orderable": true},
{"targets": 1, "searchable": true, "orderable": true},
@@ -94,7 +94,7 @@
{"targets": 4, "searchable": true, "orderable": true, "className": "text-center"},
{"targets": 5, "searchable": false, "orderable": false, "className": "text-center"},
],
"order": [[1, "asc"]]
"order": [[0, "desc"]]
});
});
</script>
@@ -22,13 +22,16 @@
<div class="box-header">
<h3 class="box-title">{{ territory.brandName }}</h3>
<br><span>{{ territory.mainUser.email }}</span>
<br/><i class="fa fa-link"></i>Url : {{ path("territory_show",{'alias':territory.alias})}}<br />
</div>
<div class="box-body">
{{ form_errors(form) }}
{{ form_row(form.isPrivate) }}
{{ form_row(form.emphasis) }}
{{ form_row(form.emphasisOrder) }}
{{ form_row(form.brandName) }}
{{ form_row(form.description) }}
{{ form_row(form.descriptionAdmin) }}
{{ form_row(form.website) }}
{{ form_row(form.tagsComma) }}
{{ form_row(form.file) }}
@@ -60,11 +63,24 @@
</div>
{{ form_end(form) }}
{% endblock %}
{% block css %}
<link rel="stylesheet" href="{{ asset('codemirror/lib/codemirror.css') }}">
{% endblock %}
{% block javascripts %}
<script>
$(document).ready(function () {
$('[data-toggle="popover"]').popover();
});
</script>
{% endblock %}
<script src="{{ asset('codemirror/lib/codemirror.js') }}"></script>
<script src="{{ asset('codemirror/mode/xml/xml.js') }}"></script>
<script src="{{ asset('codemirror/mode/javascript/javascript.js') }}"></script>
<script src="{{ asset('codemirror/mode/css/css.js') }}"></script>
<script src="{{ asset('codemirror/mode/vbscript/vbscript.js') }}"></script>
<script src="{{ asset('codemirror/mode/htmlmixed/htmlmixed.js') }}"></script>
<script>
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById('territory_admin_descriptionAdmin'), {
lineNumbers: true,
});
</script>
{% endblock %}
@@ -100,7 +100,7 @@
{"targets": 3, "searchable": true, "orderable": true, "className": "text-center"},
{"targets": 4, "searchable": false, "orderable": false, "className": "text-center"},
],
"order": [[1, "asc"]]
"order": [[0, "desc"]]
});
});
</script>
@@ -0,0 +1,147 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Utilisateurs
<small>Liste</small>
</h1>
<ol class="breadcrumb">
<li>
<a href="{{ path('admin_dashboard') }}">
<i class="fa fa-dashboard"></i>
Dashboard</a>
</li>
<li>Secret</li>
<li class="active">Utilisateurs</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<table id="user_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-md-2">Nom</th>
<th class="col-md-2">Prénom</th>
<th class="col-md-3">Email</th>
<th class="col-md-1">Rôle</th>
<th class="col-md-3">Etat</th>
<th class="col-md-1">Action</th>
</tr>
</thead>
<tbody>
{% for u in users %}
<tr>
<td>{{ u.lastname }}</td>
<td>{{ u.firstname }}</td>
<td>{{ u.email }}</td>
<td>
{% for r in u.roles %}
{% if r != "ROLE_USER" and r == "ROLE_TALENT" %}
<span class="badge bg-blue" style="font-weight: 400;">{{ r }}</span>
{% elseif r != "ROLE_USER" and r == "ROLE_COMPANY" %}
<span class="badge bg-orange" style="font-weight: 400;">{{ r }}</span>
{% endif %}
{% endfor %}
</td>
<td>
{% if u.enabled %}
Activé
{% else %}
Désactivé
<br/>
<a href="{{ path('admin_user_resend',{'id':u.id}) }}">Renvoyer le mail de confirmation</a>
{% endif %}
</td>
<td>
<a class="delete-user" href="{{ path('admin_user_delete',{'id':u.id}) }}" data-toggle="tooltip" title="Supprimer">
<i class="fa fa-trash"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
$(function () {
$('#user_list_table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"language": {
"url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"columnDefs": [
{
"targets": 0,
"searchable": true,
"orderable": true
}, {
"targets": 1,
"searchable": true,
"orderable": true
}, {
"targets": 2,
"searchable": true,
"orderable": true
}, {
"targets": 3,
"searchable": true,
"orderable": true,
"className": "text-center"
}, {
"targets": 4,
"searchable": false,
"orderable": false,
"className": "text-center"
}, {
"targets": 5,
"searchable": false,
"orderable": false,
"className": "text-center"
}
]
});
});
$(document).ready(function () {
$('[data-toggle="popover"]').popover();
$(".delete-user").confirm({
title: "Êtes vous sûr de supprimer cet utilisateur ?",
content: "Supprimer cet utilisateur supprimera, son compte, son entreprise, ses réponses, médias",
type: 'red',
boxWidth: '30%',
useBootstrap: false,
buttons: {
confirm: {
text: 'Confirmer',
action: function () {
console.log(this.$target);
location.href = this.$target.attr('href');
return true;
}
},
cancel: {
text: 'Annuler'
}
}
});
});
</script>
{% endblock %}
@@ -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 demploi 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">
@@ -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,6 +35,9 @@
<div class="col s12 m12 l8 xl9">
{% if ad.video and ad.status != "CLOSED" %}
<div class="row m-b-0" id="adVideo">
{#{% if ad.id == 38 %}
<img class="responsive-img" src="{{asset('/img/GROUPE-ROCHER-TT.jpg')}}">
{% else %}#}
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
@@ -42,6 +45,7 @@
allowfullscreen></iframe>
</div>
</div>
{#{% endif %}#}
{% if ad.isPromoted %}
<div class="isPromoted"><img src="{{asset('/img/offre-pourvue-gauche.png')}}" alt="promoted"></div>
{% endif %}
@@ -92,16 +96,29 @@
{{ 'ad.talent.isAnswer.label'|trans }}
</div>
{% elseif not is_granted('ROLE_COMPANY') %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% if not ad.isPromoted %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% endif %}
{% endif %}
{% endif %}
</div>
</div>
{% if ad.isPromoted %}
<div class="row bg-bordered row-promoted">
<div class="col s12 center-align">
<h3>Vous souhaitez rejoindre <span class="color-blue1">{{ ad.company.brandname }}</span> ?</h3>
<a href="{{ path('talent_spontaneous_application_create',{'id': ad.company.getId()}) }}"
class="btn btn-default">
Candidature spontanée
</a>
</div>
</div>
{% endif %}
<div class="col s12 hide-on-large-only m-b-50">
{% include 'default/ad_sidebar.html.twig' with {'ad': ad, 'showBrand': true} %}
</div>
@@ -56,12 +56,18 @@
{{ 'ad.talent.isAnswer.label'|trans }}
</div>
{% elseif not is_granted('ROLE_COMPANY') %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% if not ad.isPromoted %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
</p>
{% else %}
<div class="item-detail-ispromoted">
Offre pourvue
</div>
{% endif %}
{% endif %}
{% endif %}
</div>
@@ -1,4 +1,4 @@
{% for company in companies %}
{% for company in companies if company.isPrivate != true %}
<div class="col s12">
<div class="card z-depth-3 card-company">
<div class="card-content card-content-company">
@@ -37,7 +37,7 @@
<div class="row m-b-0 p-b-30">
<div class="col s12 m12">
<div id="liste-resultats">
{% for c in companies %}
{% for c in companies if c.isPrivate != true %}
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
<div class="row item-list-bis z-depth-2 row-noMargin">
@@ -1,7 +1,7 @@
<footer class="page-footer">
<div class="container">
<div class="row footer-info">
<div class="col xl2 l2 m6 s6">
<div class="col xl2 l2 m6 s12 col-footer-logo">
<img src="{{ asset('/img/logo-mini-white.svg') }}" alt="Talents Tube 1er job board 100% vidéo">
</div>
<div class="col xl3 l3 m6 s6">
@@ -16,6 +16,9 @@
<li>
<a class="white-text" href="{{ path('company_list') }}" title="Listes entreprises">Nos entreprises</a>
</li>
<li>
<a class="white-text" href="{{ path('territory_list') }}" title="Listes des territoires">Nos territoires</a>
</li>
<li>
<a class="white-text" href="https://blog.talentstube.com/contact.html" title="Talents Tube ">Contact</a>
</li>
@@ -9,7 +9,7 @@
{# VIDEO #}
<div class="col l12 m12 s12 home-content col-noPadding">
<div id="homeTeaser" class="valign-wrapper">
<h1 class="white-text center-align">1er job board <span>100% vidéo</span></h1><br />
<h1 class="white-text center-align">1ère plateforme pour lemploi <span>100% vidéo</span></h1><br />
<div class="link-home-head">
<a data-target="modal_concept" href="#!" class="btn btn-default btn-round btn-concept modal-trigger">
Le concept en vidéo &nbsp;&nbsp;&nbsp;
@@ -68,7 +68,7 @@
<div class="row">
<div class="col s12 col-noPadding">
<div class="owl-carousel owl-carousel-home home-company-carousel">
{% if talents|length > 0 %}
{% if companies|length > 0 %}
{% include 'default/company_card.html.twig' with {'companies': companies } %}
{% endif %}
</div>
@@ -110,7 +110,7 @@
<h2 class="blue-text no-margin-top">Les territoires <span>pour vivre et travailler</span></h2>
{% if territories %}
<div class="owl-carousel owl-carousel-home territory-carousel">
{% for territory in territories if territory.presentationVideo %}
{% for territory in territories if territory.presentationVideo and territory.isPrivate != true %}
<div class="item">
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
@@ -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 %}
@@ -113,10 +113,7 @@
{% block javascripts %}
{{ parent() }}
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
$(document).ready(function(){
$.get( "{{ path('talent_ajaxRecStat',{'id': talent.id }) }}", function( data ) {
});
@@ -36,7 +36,7 @@
<div class="row m-b-0 p-b-30">
<div class="col s12 m12">
<div id="liste-resultats">
{% for c in companies %}
{% for c in companies if c.isPrivate != true %}
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
<div class="row item-list-bis z-depth-2 row-noMargin">
@@ -95,6 +95,17 @@
</div>
</div>
</div>
{% if company.descriptionAdmin %}
<div class="col s12 m12 l8 xl9 right">
<div class="row bg-bordered">
<div class="col s12">
<div class="item-detail-description-bo">
<p>{{ company.descriptionAdmin|raw }}</p>
</div>
</div>
</div>
</div>
{% endif %}
{% if companyAds|length > 0 %}
<div id="offers" class="row">
<div class="col s12">
@@ -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 dappré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>
@@ -40,4 +40,5 @@ assetic:
- 'js/vendors/typeahead.js'
- 'js/company.js'
- 'js/backend.js'
- 'js/tags.js'
- 'js/tags.js'
- 'js/vendors/jquery-confirm.min.js'
+4 -4
View File
@@ -175,8 +175,8 @@ hwi_oauth:
resource_owners:
facebook:
type: facebook
client_id: 1423592277766931
client_secret: 0e0c18d225d064f36a87e46fb9a744eb
client_id: 1800752833559014
client_secret: 454de729b1e58f506f94c8b50ca5c011
scope: "email, public_profile, user_birthday"
infos_url: "https://graph.facebook.com/me?fields=id,email,first_name,last_name,gender,birthday,picture.type(square)"
paths:
@@ -185,8 +185,8 @@ hwi_oauth:
#csrf: true
linkedin:
type: linkedin
client_id: 781kj3gww936c2
client_secret: HB9Zdx42s7RPLUqm
client_id: 86m6hegwyj8lbo
client_secret: LIOibqDszsP2vQSr
infos_url: "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,location,email-address,picture-urls::(original))?format=json"
options:
#csrf: true
@@ -288,9 +288,9 @@ class AdController extends Controller
***********************/
/**
* @Route("/annonce/recherche/", name="ad_search_result")
* @Route("/annonce/recherche/{promoted}", defaults={"promoted"=false}, name="ad_search_result")
*/
public function adSearchResultAction(Request $request)
public function adSearchResultAction(Request $request, $promoted)
{
$session = $request->getSession();
$form = $this->createForm(AdSearchType::class);
@@ -307,7 +307,7 @@ class AdController extends Controller
$adSearcher = $this->get('app.ad_searcher');
$ads = $adSearcher->process($data);
if(empty($ads)){
$ads = $this->getPublishedAds();
$ads = $this->getPublishedAds($promoted);
$noResults = true;
} else {
$noResults = false;
@@ -324,18 +324,19 @@ class AdController extends Controller
} else {
$ads = $this->getPublishedAds();
$ads = $this->getPublishedAds($promoted);
}
return $this->render('default/ad_search_result.html.twig', [
'ads' => $ads,
'noResults' => false
'noResults' => false,
'isPromotedAds' => $promoted
]);
}
public function getPublishedAds()
public function getPublishedAds($promoted)
{
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('AppBundle:Ad');
@@ -345,6 +346,17 @@ class AdController extends Controller
$mediaManager->getThumbnails($ad);
}
return $this->filterPromoted($ads, $promoted);
}
public function filterPromoted($result, $promoted = "false")
{
$ads = array();
foreach ($result as $ad) {
if ($ad->getIsPromoted() === (boolean)$promoted) {
$ads[] = $ad;
}
}
return $ads;
}
@@ -10,7 +10,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class AdController extends Controller
{
@@ -111,7 +110,6 @@ class AdController extends Controller
));
}
/**
* @Route("/admin/config/ad/{id}/edit", name="admin_ad_edit")
*/
@@ -130,6 +128,16 @@ class AdController extends Controller
));
}
/**
* @Route("/admin/config/ad/{id}/refresh-img", name="admin_ad_refresh_img")
*/
public function adminAdRefreshImgAction(Request $request, Ad $ad)
{
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($ad, true);
return $this->redirectToRoute('admin_ad_list');
}
/**
* @Route("/admin/config/ad/{id}/show", name="admin_ad_show")
*/
@@ -12,7 +12,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class CompanyController extends Controller
{
@@ -88,4 +87,14 @@ class CompanyController extends Controller
'newP' => $newsP,
));
}
/**
* @Route("/admin/config/company/{id}/refresh-img", name="admin_company_refresh_img")
*/
public function adminCompanyRefreshImgAction(Request $request, Company $company)
{
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($company, true);
return $this->redirectToRoute('admin_config_company');
}
}
@@ -8,7 +8,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class TalentController extends Controller
{
@@ -11,7 +11,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\HttpException;
class UserController extends Controller
{
@@ -30,7 +29,7 @@ class UserController extends Controller
}
}
return $this->render('admin/user_list.html.twig', [
'users' => $users
'users' => $users,
]);
}
@@ -64,4 +63,142 @@ class UserController extends Controller
'form' => $form->createView(),
]);
}
/**
* @Route("/admin/config/user/list", name="admin_config_others_user")
*/
public function adminOthersUsersListAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$t = $em->getRepository('AppBundle:User')->findTalentsAndCompanies();
return $this->render('admin/users_list.html.twig', array(
'users' => $t,
));
}
/**
* @Route("/admin/config/user/{id}/resend", name="admin_user_resend")
*/
public function adminUserResendAction(Request $request, $id)
{
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->findUserBy(array('id' => $id));
$mailer = $this->get('fos_user.mailer');
$mailer->sendConfirmationEmailMessage($user);
return $this->redirectToRoute('admin_config_users');
}
/**
* @Route("/admin/config/user/{id}/delete", name="admin_user_delete")
*/
public function adminUserDeleteAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->findUserBy(array('id' => $id));
if (\is_null($user)) {
// user not found, generate $notFoundResponse
$this->addFlash(
'notice',
' user not found !'
);
}
\assert(!\is_null($user));
$company = $user->getCompany();
if ($company) {
$company->setPresentationVideo(null);
$em->persist($company);
$em->flush();
}
$this->deleteRelation($user);
$em->remove($user);
$em->flush();
if ($company) {
$em->remove($company);
$em->flush();
}
// if ($company) {
// $em->remove($company);
// }
$em->flush();
return $this->redirectToRoute('admin_config_others_user');
}
public function deleteRelation($user)
{
$em = $this->getDoctrine()->getManager();
$sendMessage = $em->getRepository('AppBundle:Message')->findBy(array('sender' => $user));
if ($sendMessage) {
foreach ($sendMessage as $key => $message) {
$message->setSender(null);
$message->setAnswer(null);
}
$em->flush();
}
$recipMessage = $em->getRepository('AppBundle:Message')->findBy(array('recipient' => $user));
if ($recipMessage) {
foreach ($recipMessage as $key => $message) {
$message->setRecipient(null);
$message->setAnswer(null);
}
$em->flush();
}
$bookmarks = $em->getRepository('AppBundle:Bookmark')->findBy(array('creator' => $user));
if ($bookmarks) {
foreach ($bookmarks as $key => $bookmark) {
$em->remove($bookmark);
}
$em->flush();
}
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('user' => $user));
if ($answers) {
foreach ($answers as $key => $answer) {
$em->remove($answer);
}
$em->flush();
}
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('creator' => $user));
if ($ads) {
foreach ($ads as $key => $ad) {
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
foreach ($bms as $key2 => $bm) {
$em->remove($bm);
}
$em->remove($ad);
}
$em->flush();
}
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('company' => $user->getCompany()));
if ($ads) {
foreach ($ads as $key => $ad) {
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
foreach ($bms as $key2 => $bm) {
$em->remove($bm);
}
$em->remove($ad);
}
$em->flush();
}
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $user));
if ($medias) {
foreach ($medias as $key => $media) {
$em->remove($media);
}
$em->flush();
}
}
}
@@ -8,33 +8,30 @@ 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\Response;
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 +54,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 +72,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 +80,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 +89,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 +121,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,14 +145,15 @@ 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";
$routeStep3 = 'answer_create_ad_step3';
$varReqAnswer = "ad";
$typeObject = "Ad";
}
if($object instanceof Company) {
if ($object instanceof Company) {
$route = "company_show";
$routeStep3 = 'answer_create_company_step3';
$varReqAnswer = "company";
@@ -162,7 +161,7 @@ class AnswerController extends Controller
}
$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 +181,22 @@ 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 = new Response();
$res->headers->setCookie(new Cookie('redirect_register', $destination_login));
$res->send();
return $this->render('answer/answer_create_' . $type . '.twig', array(
'routeObject' => $route,
'typeObject' => $typeObject,
'object' => $object,
@@ -202,23 +205,24 @@ class AnswerController extends Controller
'video' => $video,
'videos' => $videos,
$varReqAnswer => $object,
'mustLogin' => $mustLogin
'mustLogin' => $mustLogin,
));
}
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"));
}
}
}
@@ -97,6 +97,13 @@ class Ad
*/
private $isPromoted;
/**
* @var boolean
*
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Annonce privé, non listée en front"})
*/
private $isPrivate;
/**
* @var boolean
*
@@ -173,25 +180,30 @@ class Ad
***********************/
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer", mappedBy="ad", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer", mappedBy="ad", cascade={"persist", "remove"})
*/
private $answers;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\ProductAd", mappedBy="ad", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\ProductAd", mappedBy="ad", cascade={"persist", "remove"})
*/
private $products;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
*/
private $draftNotes;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="ad", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="ad", cascade={"persist", "remove"})
*/
private $territories;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\BookmarkAd", mappedBy="ad", cascade={"persist", "remove"})
*/
private $bookmarkAds;
/***********************
* Constructor
@@ -1071,4 +1083,64 @@ class Ad
{
return $this->territories;
}
/**
* Set isPrivate.
*
* @param bool|null $isPrivate
*
* @return Ad
*/
public function setIsPrivate($isPrivate = null)
{
$this->isPrivate = $isPrivate;
return $this;
}
/**
* Get isPrivate.
*
* @return bool|null
*/
public function getIsPrivate()
{
return $this->isPrivate;
}
/**
* Add bookmarkAd.
*
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
*
* @return Ad
*/
public function addBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
{
$this->bookmarkAds[] = $bookmarkAd;
return $this;
}
/**
* Remove bookmarkAd.
*
* @param \AppBundle\Entity\BookmarkAd $bookmarkAd
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeBookmarkAd(\AppBundle\Entity\BookmarkAd $bookmarkAd)
{
return $this->bookmarkAds->removeElement($bookmarkAd);
}
/**
* Get bookmarkAds.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getBookmarkAds()
{
return $this->bookmarkAds;
}
}
@@ -71,12 +71,12 @@ class Answer
***********************/
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
*/
private $notes;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message", mappedBy="answer", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message", mappedBy="answer", cascade={"persist", "remove"})
*/
private $messages;
@@ -84,7 +84,6 @@ class Answer
* Constructor
***********************/
public function __construct($user = null, $ad = null, $status = null, $company = null)
{
$this->notes = new \Doctrine\Common\Collections\ArrayCollection();
@@ -116,12 +115,10 @@ class Answer
}
/***********************
* Getters & Setters
***********************/
/**
* Get id.
*
@@ -51,7 +51,7 @@ class Bookmark
***********************/
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", mappedBy="sharedBookmarks" ,cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", mappedBy="sharedBookmarks" ,cascade={"persist", "remove"})
*/
private $sharedWith;
@@ -27,7 +27,7 @@ class BookmarkAd
private $id;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist","remove"})
*/
private $notes;
@@ -42,7 +42,6 @@ class BookmarkAd
*/
private $ad;
/***********************
* Constructor
***********************/
@@ -57,7 +56,6 @@ class BookmarkAd
* Getters & Setters
***********************/
/**
* Get id.
*
@@ -48,7 +48,7 @@ class BookmarkUser
***********************/
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Note", cascade={"persist", "remove"})
*/
private $notes;
@@ -56,6 +56,13 @@ class Company
*/
private $description;
/**
* @var text
*
* @ORM\Column(name="description_admin", type="text", length=255, nullable=true)
*/
private $descriptionAdmin;
/**
* @var string
*
@@ -78,10 +85,10 @@ class Company
private $alias;
/**
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Media", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Media", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="presentation_video_id", nullable=true)
*/
private $presentation_video;
private $presentationVideo;
/**
* @var string
@@ -113,6 +120,13 @@ class Company
*/
private $searchable;
/**
* @var boolean
*
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Company privé, non listée en front"})
*/
private $isPrivate;
/***********************
* OneToMany Array's
***********************/
@@ -128,26 +142,25 @@ class Company
private $users;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="company", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="company", cascade={"persist", "remove"})
*/
private $ads;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="territory", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="territory", cascade={"persist", "remove"})
*/
private $territoryAds;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="company", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TerritoryAd", mappedBy="company", cascade={"persist", "remove"})
*/
private $territories;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="company", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="company", cascade={"persist", "remove"})
*/
private $spontaneousApplications;
/***********************
* Constructor
***********************/
@@ -164,7 +177,8 @@ class Company
* Custom Function
***********************/
public function init(){
public function init()
{
$this->initAddress();
$this->initTags();
$this->initExtra();
@@ -245,8 +259,8 @@ class Company
{
$arrayPublishedAds = array();
foreach ($this->getAds() as $ad) {
if( $ad->getStatus() == "PUBLISHED") {
array_push($arrayPublishedAds, $ad);
if ($ad->getStatus() == "PUBLISHED") {
array_push($arrayPublishedAds, $ad);
}
}
@@ -267,7 +281,6 @@ class Company
* Getter & Setters
***********************/
/**
* Get id.
*
@@ -491,7 +504,7 @@ class Company
*/
public function setPresentationVideo(\AppBundle\Entity\Media $presentationVideo = null)
{
$this->presentation_video = $presentationVideo;
$this->presentationVideo = $presentationVideo;
return $this;
}
@@ -503,7 +516,7 @@ class Company
*/
public function getPresentationVideo()
{
return $this->presentation_video;
return $this->presentationVideo;
}
/**
@@ -594,7 +607,6 @@ class Company
$this->file = $file;
}
/**
* Set emphasis.
*
@@ -774,4 +786,52 @@ class Company
{
return $this->spontaneousApplications;
}
/**
* Set descriptionAdmin.
*
* @param string|null $descriptionAdmin
*
* @return Company
*/
public function setDescriptionAdmin($descriptionAdmin = null)
{
$this->descriptionAdmin = $descriptionAdmin;
return $this;
}
/**
* Get descriptionAdmin.
*
* @return string|null
*/
public function getDescriptionAdmin()
{
return $this->descriptionAdmin;
}
/**
* Set isPrivate.
*
* @param bool|null $isPrivate
*
* @return Company
*/
public function setIsPrivate($isPrivate = null)
{
$this->isPrivate = $isPrivate;
return $this;
}
/**
* Get isPrivate.
*
* @return bool|null
*/
public function getIsPrivate()
{
return $this->isPrivate;
}
}
@@ -27,7 +27,7 @@ class ProductAd
private $id;
/**
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Product", cascade={"persist"})
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Product", cascade={"persist" , "remove"})
*/
private $product;
@@ -69,49 +69,47 @@ class User extends BaseUser
private $file;
/***********************
* OneToMany Array's
***********************/
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="user", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Answer",mappedBy="user", cascade={"persist", "remove"})
*/
private $answers;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="creator", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Ad",mappedBy="creator", cascade={"persist", "remove"})
*/
private $ads;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Product",mappedBy="user", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Product",mappedBy="user", cascade={"persist", "remove"})
*/
private $products;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Media",mappedBy="creator", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Media",mappedBy="creator", cascade={"persist", "remove"})
*/
private $medias;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Bookmark",mappedBy="creator", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Bookmark",mappedBy="creator", cascade={"persist", "remove"})
*/
private $bookmarks;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Bookmark", inversedBy="sharedWith", cascade={"persist"})
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Bookmark", inversedBy="sharedWith", cascade={"persist", "remove"})
*/
private $sharedBookmarks;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="sender", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="sender", cascade={"persist", "remove"})
*/
private $sendedMessages;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="recipient", cascade={"persist"})
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Message",mappedBy="recipient", cascade={"persist", "remove"})
*/
private $receivedMessages;
@@ -151,8 +149,6 @@ class User extends BaseUser
*/
private $socialPicture;
/***********************
* Constructor
***********************/
@@ -285,7 +281,6 @@ class User extends BaseUser
* Getters & Setters
***********************/
/**
* Set firstname.
*
@@ -82,6 +82,10 @@ class AdType extends AbstractType
->add('isVerified', CheckboxType::class, array(
'label' => 'Vérifiée',
'required' => false
))
->add('isPrivate', CheckboxType::class, array(
'label' => 'Annonce privé ( non listée en front )',
'required' => false
));
// Emphasis
@@ -37,6 +37,10 @@ class CompanyAdminType extends AbstractType
))
->add('size', TextType::class, array(
'label' => 'profile.company.size',
))
->add('isPrivate', CheckboxType::class, array(
'label' => 'Page entreprise privé ( non listée en front )',
'required' => false
));
// Addresses fields
$builder
@@ -13,14 +13,15 @@ namespace AppBundle\Form\Admin;
use AppBundle\Entity\Company;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
class TerritoryAdminType extends AbstractType
{
@@ -32,6 +33,7 @@ class TerritoryAdminType extends AbstractType
$builder
->add('brandName', TextType::class, array('label' => 'Nom'))
->add('description', TextType::class, array('label' => 'profile.company.description', 'required' => false))
->add('descriptionAdmin', TextareaType::class, array('label' => 'Description additionel réservé aux administrateur (Attention contenu affiché en front)', 'required' => false))
->add('website', UrlType::class, array(
'label' => 'profile.company.website',
'required' => false,
@@ -85,6 +87,10 @@ class TerritoryAdminType extends AbstractType
'label' => 'Ordre',
'required' => false
));
$builder->add('isPrivate', CheckboxType::class, array(
'label' => 'Page territoire privé ( non listée en front )',
'required' => false
));
}
public function configureOptions(OptionsResolver $resolver)
@@ -14,6 +14,16 @@ class CompanyRepository extends EntityRepository
{
public function getCompanySortByAds()
{
$qb = $this
->createQueryBuilder('c')
->andWhere('c.type = :type')
->setParameter(':type', "COMPANY")
->andWhere('c.presentationVideo IS NOT NULL')
->orderBy('c.cTime', 'DESC');
$badCompany = $qb->getQuery()->getResult();
$qb = $this
->createQueryBuilder('c')
->from('AppBundle:Ad', 'a')
@@ -21,10 +31,26 @@ class CompanyRepository extends EntityRepository
->andWhere('a.status = :status')
->orderBy('a.publishedAt', 'DESC')
->setParameter(':status', "PUBLISHED");
$firstCompany = $qb->getQuery()->getResult();
return $qb
->getQuery()
->getResult();
$mergeArray = array();
array_map(function($a, $b) use (&$mergeArray) {
if($a){
if(!isset($mergeArray[$a->getId()])) {
$mergeArray[$a->getId()] = $a;
}
}
if ($b) {
if (!isset($mergeArray[$b->getId()])) {
$mergeArray[$b->getId()] = $b;
}
}
}, $firstCompany, $badCompany);
return $mergeArray;
}
public function getTerritorySortByAds()
@@ -12,4 +12,27 @@ use Doctrine\ORM\EntityRepository;
*/
class UserRepository extends EntityRepository
{
public function findByRole($role)
{
$qb = $this->_em->createQueryBuilder();
$qb->select('u')
->from($this->_entityName, 'u')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"' . $role . '"%');
return $qb->getQuery()->getResult();
}
public function findTalentsAndCompanies()
{
$qb = $this->_em->createQueryBuilder();
$qb->select('u')
->from($this->_entityName, 'u')
->where('u.roles LIKE :roleT')
->orWhere('u.roles LIKE :roleC')
->setParameter('roleC', '%ROLE_COMPANY%')
->setParameter('roleT', '%ROLE_TALENT%');
return $qb->getQuery()->getResult();
}
}
@@ -96,7 +96,7 @@ class AdSearcher
{
$ads = array();
foreach ($result as $ad) {
if ($ad->getStatus() == "PUBLISHED") {
if ($ad->getStatus() == "PUBLISHED" && $ad->getIsPrivate() != true && $ad->getIsPromoted() != true) {
$ads[] = $ad;
}
}
@@ -28,21 +28,19 @@ class MediaManager
$this->env = $env;
}
/**
* Rename video to vimeo
*/
public function editName($video)
{
if($video){
$response = $this->vimeo->request($video->getCdnUrl(), ['name'=>$video->getTitle()], 'PATCH');
return array('success' => "true",'data' => $response);
} else {
public function editName($video)
{
if ($video) {
$response = $this->vimeo->request($video->getCdnUrl(), ['name' => $video->getTitle()], 'PATCH');
return array('success' => "true", 'data' => $response);
} else {
return array('success' => "false");
}
}
}
}
/**
* @param $entity
@@ -50,7 +48,7 @@ class MediaManager
*
* Get Thumbnail of a video (Ad or Company)
*/
public function getThumbnails($entity)
public function getThumbnails($entity, $force = false)
{
if ($entity instanceof Ad) {
$video = $entity->getVideo();
@@ -62,11 +60,11 @@ class MediaManager
} else {
return null;
}
if($video){
if ($video) {
$arrayThumb = $video->getThumbnails();
if (empty($arrayThumb[0])) {
if ($force == true || empty($arrayThumb[0])) {
$response = $this->vimeo->request($video->getCdnUrl() . '/pictures', [], 'GET');
if(!isset($response['body']['error'])){
if (!isset($response['body']['error'])) {
$video->setThumbnails($response['body']['data']);
$this->em->persist($video);
$this->em->flush();
@@ -84,9 +82,9 @@ class MediaManager
{
$video = $entity;
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
if ( $this->env != "dev" ) {
if ($this->env != "dev") {
$response = $this->vimeo->request($video->getCdnUrl(), [], 'DELETE');
}
}
$this->em->remove($video);
$this->em->flush();
@@ -126,12 +124,12 @@ class MediaManager
$metadata = array();
//@TODO: trouver un fix pour la duration
/*if($extension != "mkv"){
$duration = $this->ffprobe->format($filePath)->get('duration');
$metadata['duration'] = $duration;
$duration = $this->ffprobe->format($filePath)->get('duration');
$metadata['duration'] = $duration;
}*/
$thumbnails = array();
//PUSH VIDEO TO Vimeo
if ( $this->env == "dev" ) {
//PUSH VIDEO TO Vimeo
if ($this->env == "dev") {
$uriVimeo = "/videos/215657518";
$nameVimeo = "name";
$linkVimeo = "/videos/215657518";
@@ -143,8 +141,8 @@ class MediaManager
$nameVimeo = $response['body']['name'];
$linkVimeo = $response['body']['link'];
}
}
}
//SAVE MEDIA
$media->setCreator($creator);
$media->setTitle($fileName);
@@ -157,15 +155,15 @@ class MediaManager
$this->em->persist($media);
if (!is_null($entity)) {
if ($entity instanceof Answer) {
if ($entity->getAd() == null){
$media->setTitle("Candidature pour : ".$entity->getCompany()->getBrandName());
if ($entity->getAd() == null) {
$media->setTitle("Candidature pour : " . $entity->getCompany()->getBrandName());
} else {
$media->setTitle("Video réponse à : ".$entity->getAd()->getTitle());
$media->setTitle("Video réponse à : " . $entity->getAd()->getTitle());
}
$entity->setVideo($media);
$this->em->persist($entity);
} elseif ($entity instanceof Ad) {
$media->setTitle("Video annonce de : ".$entity->getTitle());
$media->setTitle("Video annonce de : " . $entity->getTitle());
$entity->setVideo($media);
$this->em->persist($entity);
} elseif ($entity instanceof User) {
@@ -175,7 +173,7 @@ class MediaManager
$this->em->persist($entity);
}
} else {
$media->setTitle("Vidéo ".$creator->getLastname()." ".$creator->getFirstname());
$media->setTitle("Vidéo " . $creator->getLastname() . " " . $creator->getFirstname());
}
if ($creator->getCompany()->getType() == "TALENT") {
$media->setStatus("TO_MODERATE");
@@ -187,14 +185,14 @@ class MediaManager
'filename' => $media->getTitle(),
'originalFilename' => $uploadedFile->getClientOriginalName(),
'uriVimeo' => str_replace('videos', 'video', $uriVimeo),
'mediaId' => $media->getId()
'mediaId' => $media->getId(),
);
} else {
$message = array('success' => 500,
'message' => "Error Upload"
'message' => "Error Upload",
);
}
return $message;
}
}
}
@@ -131,23 +131,26 @@ class StatsManager
}
}
}
ksort($arrayRecords['ad']);
foreach ($arrayRecords['ad'] as $recordAd) {
$count = 0;
foreach ($recordAd as $countView) {
$count = $count + $countView;
if (isset($arrayRecords['ad'])) {
ksort($arrayRecords['ad']);
foreach ($arrayRecords['ad'] as $recordAd) {
$count = 0;
foreach ($recordAd as $countView) {
$count = $count + $countView;
}
$arrDatasetsAd[] = $count;
}
$arrDatasetsAd[] = $count;
}
ksort($arrayRecords['company']);
foreach ($arrayRecords['company'] as $recordCompany) {
$count = 0;
foreach ($recordCompany as $countView) {
$count = $count + $countView;
if (isset($arrayRecords['company'])) {
ksort($arrayRecords['company']);
foreach ($arrayRecords['company'] as $recordCompany) {
$count = 0;
foreach ($recordCompany as $countView) {
$count = $count + $countView;
}
$arrDatasetsCompany[] = $count;
}
$arrDatasetsCompany[] = $count;
}
sort($lineDatesLabel, SORT_NATURAL | SORT_FLAG_CASE);
@@ -71,14 +71,14 @@ class PrestaBridgeListener implements EventSubscriberInterface
{
if (!$this->avoidMode) {
$user = $this->security->getToken()->getUser();
$prestaBridge = new PrestashopBridge($this->pathToPrestashop, $this->idShop, $this->cookieKey);
if (!$prestaBridge->userExist($user->getEmail()))
$prestaBridge->createUser($user);
$prestaBridge->login($user->getEmail());
if($user->hasRole('ROLE_TALENT') || $user->hasRole('ROLE_COMPANY') || $user->hasRole('ROLE_TERRITORY')) {
$prestaBridge = new PrestashopBridge($this->pathToPrestashop, $this->idShop, $this->cookieKey);
if (!$prestaBridge->userExist($user->getEmail()))
$prestaBridge->createUser($user);
$prestaBridge->login($user->getEmail());
}
}
}
/**
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+26 -11
View File
@@ -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,
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
+114 -31
View File
@@ -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 {
@@ -15606,6 +15651,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 +15696,22 @@ table.highlight > tbody > tr:hover {
color: #FFF;
text-decoration: none; }
@media only screen and (max-width: 800px) {
#modal-tuto {
width: 98%; }
#modal-tuto .modal-content {
padding: 10px; }
#modal-tuto .modal-content h3 {
font-size: 1.5rem; }
#modal-tuto .modal-content .col {
padding: 0; }
#modal-tuto .modal-content .owl-dots {
display: none; }
#modal-tuto .modal-content .carousel-fixed-item {
margin-top: 0;
margin-right: 0;
font-size: 13px;
margin-bottom: 50px; } }
/*Pages
---------------------------------------------------*/
#ad_show .bg-bordered {
@@ -15670,7 +15732,8 @@ table.highlight > tbody > tr:hover {
font-size: 13px; }
#ad_show .brandImage {
position: relative;
margin: 2px; }
margin: 2px;
margin-top: 15px; }
#ad_show .brandImage a {
display: block; }
#ad_show .brandImage a img {
@@ -15748,6 +15811,21 @@ table.highlight > tbody > tr:hover {
width: 101px;
height: 101px; }
.item-detail-ispromoted {
display: block;
text-align: center;
padding: 10px 20px;
color: #ff9800;
border: 1px solid #ff9800;
border-radius: 6px;
text-transform: uppercase;
font-size: 1.1rem; }
#ad_show .row-promoted {
padding-bottom: 40px; }
#ad_show .row-promoted h3 span {
text-decoration: none; }
#company_show .chip {
font-size: 14px; }
#company_show h3 {
@@ -15767,6 +15845,11 @@ table.highlight > tbody > tr:hover {
font-size: 16px;
margin: 20px 0; }
#company_show .row-promoted {
padding-bottom: 40px; }
#company_show .row-promoted h3 span {
text-decoration: none; }
#page-static {
font-size: 14px;
/***** OLD STEP *****/ }
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 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

+9 -3
View File
@@ -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
}
}
});
+26 -11
View File
@@ -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,
@@ -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 ****************************/
@@ -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;
}
}
}
@@ -20,6 +20,17 @@
padding:40px 40px 40px 80px;
}
}
@media screen and (max-width: 420px){
.blocs-texte-video{
.inside-m{
padding: 10px 10px 30px 10px;
}
}
.row-bloc-video-2{
display: flex;
flex-direction: column-reverse;
}
}
.no-margin-top{
margin-top:0px;
}
@@ -55,6 +55,17 @@
}
}
#header-resultats{
display: flex;
flex-direction: row;
justify-items: flex-end;
justify-content: space-between;
margin-bottom: 15px;
font-size: 1rem;
a{
color: #000;
}
}
#liste-resultats {
.item-list-bis {
margin-bottom: 20px;
@@ -212,4 +212,3 @@
}
}
}
@@ -28,6 +28,7 @@
.brandImage {
position: relative;
margin: 2px;
margin-top: 15px;
a {
display: block;
img {
@@ -122,3 +123,23 @@
}
}
}
.item-detail-ispromoted{
display: block;
text-align: center;
padding: 10px 20px;
color: $orange;
border: 1px solid $orange;
border-radius: 6px;
text-transform: uppercase;
font-size: 1.1rem;
}
#ad_show .row-promoted{
h3{
span{
text-decoration: none;
}
}
padding-bottom: 40px;
}
@@ -28,4 +28,13 @@
margin: 20px 0;
}
}
}
#company_show .row-promoted{
h3{
span{
text-decoration: none;
}
}
padding-bottom: 40px;
}