Compare commits
136 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 959dd61435 | |||
| 6e63c1f2e8 | |||
| 8a91476e86 | |||
| 714bf6ad8e | |||
| 1907aeb647 | |||
| 5f1e89b7ea | |||
| 0f7f85c39e | |||
| e912a508d3 | |||
| ea3cdf0553 | |||
| 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 | |||
| 9ed2745e8d | |||
| 82c4911770 | |||
| 8df9b7af43 | |||
| 71259c40c6 | |||
| 2dd559fa64 | |||
| 90ae12995f | |||
| 7aa4a92cb6 | |||
| 6a9b48d629 | |||
| 032d10bb50 | |||
| 7731dd2c23 | |||
| 8c6e8f14a4 | |||
| f1c795e8cd | |||
| 5dd437d939 | |||
| 59f6854379 | |||
| c2450d3929 | |||
| 2f626dbad5 | |||
| 8bccabbcf6 | |||
| 766335bb19 | |||
| 708e1f1c87 | |||
| 1d0e0e4c48 | |||
| a790f99adb | |||
| e98a2488eb | |||
| 8b7a79ef8d | |||
| 645cf1f05a | |||
| 974629794d | |||
| f23e906168 | |||
| 5a47ac168e | |||
| a35647ca1d | |||
| 231a692369 | |||
| 1ad2d8bf1a | |||
| 2047322161 | |||
| f90c907942 | |||
| a2d0a9539f | |||
| d5f448483c | |||
| 8f12cddd86 | |||
| 0f195907c5 | |||
| 8dabe7ba82 | |||
| 0bfed4b932 | |||
| bf875db942 | |||
| 5c47a00d0e | |||
| 0f8fe7732e | |||
| bed4cbc7b1 | |||
| b09ca38415 | |||
| c0f09f715c | |||
| 4cb07a74b6 |
+4
-1
@@ -6,4 +6,7 @@
|
||||
!/volume/www
|
||||
/volume/www/**/conf/nginx.conf
|
||||
/backup
|
||||
/conf/env/*.env
|
||||
/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,15 +8,18 @@ upstream store_php {
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
listen 443 ssl;
|
||||
server_name talentstube.test;
|
||||
root /home/www/website/www/web;
|
||||
client_max_body_size 500M;
|
||||
sendfile off;
|
||||
ssl_certificate /etc/nginx/ssl/server.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/server.key;
|
||||
|
||||
# DEV
|
||||
location / {
|
||||
try_files $uri /app_dev.php$is_args$args;
|
||||
try_files $uri /app.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ ^/(app_dev|config)\.php(/|$) {
|
||||
|
||||
@@ -9,4 +9,6 @@ rewrite ^/plateforme$ https://www.talentstube.com/ permanent;
|
||||
rewrite ^/page/les-conseils$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video permanent;
|
||||
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
|
||||
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
|
||||
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
|
||||
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
|
||||
@@ -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[');
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="https://www.prestashop.com/fr/blog/feed.xml" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:og="http://ogp.me/ns#" xmlns:article="http://ogp.me/ns/article#" xmlns:book="http://ogp.me/ns/book#" xmlns:profile="http://ogp.me/ns/profile#" xmlns:video="http://ogp.me/ns/video#" xmlns:product="http://ogp.me/ns/product#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
|
||||
<channel>
|
||||
<title>Blog Feed</title>
|
||||
<link>https://www.prestashop.com/fr/blog/feed.xml</link>
|
||||
<description></description>
|
||||
<language>fr</language>
|
||||
<atom:link href="https://www.prestashop.com/fr/blog/feed.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>4 moyens d’augmenter votre taux de conversion grâce à votre page de paiement</title>
|
||||
<link>https://www.prestashop.com/fr/4-moyens-daugmenter-votre-taux-de-conversion-grace-a-votre-page-de-paiement-6</link>
|
||||
<description>Par
|
||||
Dernier contact entre un marchand et son client, nous savons que le check-out est un passage délicat dans le tunnel de conversion.
|
||||
</description>
|
||||
<pubDate>Thu, 20 Jul 2017 16:30:04 +0200</pubDate>
|
||||
<dc:creator>Anonymous</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/4-moyens-daugmenter-votre-taux-de-conversion-grace-a-votre-page-de-paiement-6</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Comment une agence de développement web peut-elle vous être utile ?</title>
|
||||
<link>https://www.prestashop.com/fr/comment-une-agence-de-developpement-web-peut-elle-vous-etre-utile</link>
|
||||
<description>Par
|
||||
Lorsqu’un marchand nous contacte pour la première fois, l’une des questions récurrentes est : "Pourquoi confier ses développements à une agence ?". Puis, à propos de PrestaShop: "Puisque le logiciel est gratuit, ai-je vraiment besoin d'un prestataire technique ?".
|
||||
</description>
|
||||
<pubDate>Thu, 20 Jul 2017 14:46:24 +0200</pubDate>
|
||||
<dc:creator>Anonymous</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/comment-une-agence-de-developpement-web-peut-elle-vous-etre-utile</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rencontrez Nicolas, Ambassadeur du mois | Juillet 2017</title>
|
||||
<link>https://www.prestashop.com/fr/blog/prestashop-ambassadors/rencontrez-nicolas-ambassadeur-du-mois-juillet-2017-2</link>
|
||||
<description>CreaNico est notre Ambassadeur à Montpellier, France, et est très actif dans la région.</description>
|
||||
<pubDate>Tue, 18 Jul 2017 17:27:38 +0200</pubDate>
|
||||
<dc:creator>Manon Plommet</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/prestashop-ambassadors/rencontrez-nicolas-ambassadeur-du-mois-juillet-2017-2</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Zoom sur l&#039;e-commerce italien</title>
|
||||
<link>https://www.prestashop.com/fr/blog/tendances-e-commerce/zoom-sur-le-commerce-italien</link>
|
||||
<description>Avec un taux de croissance des ventes de 18% en 2016, une base d’acheteurs en ligne de 18 millions de personnes et un panier moyen en augmentation, le e-commerce italie</description>
|
||||
<pubDate>Mon, 17 Jul 2017 18:34:12 +0200</pubDate>
|
||||
<dc:creator>vMartelli</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/tendances-e-commerce/zoom-sur-le-commerce-italien</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rentrée, Black Friday, Noël : Téléchargez votre guide e-commerce de fin d&#039;année</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/rentree-black-friday-noel-telechargez-votre-guide-e-commerce-de-fin-dannee-1</link>
|
||||
<description>La rentrée, Black Friday, Noël : en quelques mois seulement se joue la majeure partie du chiffre d’affaires de l’activité e-commerce.</description>
|
||||
<pubDate>Mon, 17 Jul 2017 14:28:47 +0200</pubDate>
|
||||
<dc:creator>Cécile Dubouis</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/rentree-black-friday-noel-telechargez-votre-guide-e-commerce-de-fin-dannee-1</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Lutte contre la fraude à la TVA, allègement de la loi</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/lutte-fraude-tva-allegement-loi</link>
|
||||
<description>Suite à notre article Conformité à l’articl</description>
|
||||
<pubDate>Mon, 26 Jun 2017 10:10:00 +0200</pubDate>
|
||||
<dc:creator>Mohammed Bellamine</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/lutte-fraude-tva-allegement-loi</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Planning et astuces pour créer des promotions efficaces sur PrestaShop</title>
|
||||
<link>https://www.prestashop.com/fr/blog/conseils-e-commerce/planning-et-astuces-pour-creer-des-promotions-efficaces-sur-prestashop</link>
|
||||
<description>Été, rentrée, Black Friday, Noël… Les promotions de fin d’année sont primordiales en e-commerce, mais leur préparation peut être chronophage.</description>
|
||||
<pubDate>Mon, 19 Jun 2017 11:24:19 +0200</pubDate>
|
||||
<dc:creator>Cécile Dubouis</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/conseils-e-commerce/planning-et-astuces-pour-creer-des-promotions-efficaces-sur-prestashop</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>10 ans – 10 interviews « portrait » : Keiko ITO, développeuse web au Japon </title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-keiko-ito-developpeuse-web-au-japon</link>
|
||||
<description>Le pitch / Originaire de Kobe, au Japon, Keiko est passionnée par le web et la France.</description>
|
||||
<pubDate>Fri, 16 Jun 2017 16:17:35 +0200</pubDate>
|
||||
<dc:creator>Mpierrot</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-keiko-ito-developpeuse-web-au-japon</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>Rencontrez Claudia, Ambassadrice du mois | Juin 2017</title>
|
||||
<link>https://www.prestashop.com/fr/blog/prestashop-ambassadors/clone-of-meet-claudia-ambassador-of-the-month-june-2017</link>
|
||||
<description>Claudia est notre Ambassadrice à Monterrey, Mexique, et y organise des meetups très régulièrement. Elle est toujours partante pour parler de PrestaShop !</description>
|
||||
<pubDate>Fri, 16 Jun 2017 11:38:21 +0200</pubDate>
|
||||
<dc:creator>Manon Plommet</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/prestashop-ambassadors/clone-of-meet-claudia-ambassador-of-the-month-june-2017</guid>
|
||||
</item>
|
||||
<item>
|
||||
<title>10 ans – 10 interviews « portrait » : Corinne Lejbowicz, CEO de PrestaShop</title>
|
||||
<link>https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-corinne-lejbowicz-ceo-de-prestashop</link>
|
||||
<description>Le pitch / En 2007, Corinne Lejbowicz est CEO de LeGuide.com, où elle rencontre le jeune Bruno Lévêque.</description>
|
||||
<pubDate>Wed, 14 Jun 2017 15:06:02 +0200</pubDate>
|
||||
<dc:creator>Mpierrot</dc:creator>
|
||||
<guid isPermaLink="false">https://www.prestashop.com/fr/blog/actualites-prestashop/10-ans-10-interviews-portrait-corinne-lejbowicz-ceo-de-prestashop</guid>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
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
@@ -261,7 +261,7 @@
|
||||
</tab>
|
||||
<tab class_name="AdminPayment" display_type="default_list">
|
||||
<module name="secureframe" position="1"/>
|
||||
<module name="paypalmx" position="2"/>
|
||||
<module name="paypal" position="13"/>
|
||||
<module name="mercadopagobr" position="3"/>
|
||||
<module name="payulatam" position="4"/>
|
||||
<module name="dotpay" position="5"/>
|
||||
@@ -272,14 +272,14 @@
|
||||
<module name="simplifycommerce" position="10"/>
|
||||
<module name="klarnaofficial" position="11"/>
|
||||
<module name="spsrsmartsepa" position="12"/>
|
||||
<module name="oyst" position="13"/>
|
||||
<module name="ewayrapid" position="14"/>
|
||||
<module name="fcpayone" position="15"/>
|
||||
<module name="pagseguro" position="16"/>
|
||||
<module name="ewayrapid" position="17"/>
|
||||
<module name="hipay" position="18"/>
|
||||
<module name="ogone" position="19"/>
|
||||
<module name="payplug" position="20"/>
|
||||
<module name="payplug" position="2"/>
|
||||
<module name="oyst" position="14"/>
|
||||
<module name="ewayrapid" position="15"/>
|
||||
<module name="fcpayone" position="16"/>
|
||||
<module name="pagseguro" position="17"/>
|
||||
<module name="ewayrapid" position="18"/>
|
||||
<module name="hipay" position="19"/>
|
||||
<module name="ogone" position="20"/>
|
||||
<module name="realexredirect" position="21"/>
|
||||
<module name="stripe_official" position="22"/>
|
||||
<module name="skrill" position="23"/>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<modules_list><modules type="untrusted"><module name="blockreinsurance"/><module name="etransactions"/><module name="trackingfront"/></modules></modules_list>
|
||||
Vendored
-702
File diff suppressed because one or more lines are too long
Vendored
-648
File diff suppressed because one or more lines are too long
Vendored
-780
File diff suppressed because one or more lines are too long
Vendored
-717
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
Vendored
-648
File diff suppressed because one or more lines are too long
Vendored
-973
File diff suppressed because one or more lines are too long
Vendored
-923
File diff suppressed because one or more lines are too long
Vendored
-963
File diff suppressed because one or more lines are too long
-2
@@ -1,2 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
@media only print{#header .nav,#header .banner,#header .row > div{display:none}#header .row div#header_logo{display:block}#center_column{width:100% !important}#left_column,#right_column{display:none}.no-print,#quantity_wanted_p > a,a.quick-view{display:none !important}div.selector,div.selector span,div.selector select{background:none}#thumbs_list li a:hover,#thumbs_list li a.shown{border-color:#fff}.product_attributes,.box-cart-bottom{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.pb-left-column #views_block{margin-top:10px;width:278px !important}#thumbs_list_frame,#thumbs_list{width:100% !important;height:100% !important}#thumbs_list li,#thumbs_list li:first-child{margin:4px;width:82px;height:82px}#view_scroll_left,#view_scroll_right,.view_scroll_spacer{display:none !important}.bx-wrapper{width:100% !important;max-width:100% !important}.bx-viewport{height:auto !important}#bxslider,#bxslider1,#crossselling_list_car{width:100% !important;height:auto !important;overflow:visible !important}#bxslider1 .product-box{min-height:200px}.bx-controls-direction{display:none}#footer .row > div,#footer .row > section{display:none}#footer .row > div#block_contact_infos,#footer .row > section#block_contact_infos{display:block;width:100%;border-left:none;border-top:1px solid #515151;padding-top:20px}.footer-container #footer h4:after{display:none}}
|
||||
-2
File diff suppressed because one or more lines are too long
Vendored
-652
File diff suppressed because one or more lines are too long
Vendored
-700
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
Vendored
-651
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
@@ -51,7 +51,8 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
<meta name="keywords" content="{$meta_keywords|escape:'html':'UTF-8'}" />
|
||||
{/if}
|
||||
<meta name="generator" content="PrestaShop" />
|
||||
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
|
||||
<!-- <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" /> -->
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="viewport" content="width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<link rel="icon" type="image/vnd.microsoft.icon" href="{$favicon_url}?{$img_update_time}" />
|
||||
|
||||
@@ -48,6 +48,9 @@ class AppKernel extends Kernel
|
||||
//oAuth
|
||||
new Http\HttplugBundle\HttplugBundle(),
|
||||
new HWI\Bundle\OAuthBundle\HWIOAuthBundle(),
|
||||
|
||||
//CookieBar
|
||||
new Fairlane\CookieConsentBundle\FairlaneCookieConsentBundle(),
|
||||
];
|
||||
|
||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||
|
||||
+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 %}
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
{% if fairlane_cookie_consent.active == true and app.request.cookies.get('fairlane-cookie-consent') != 'ok'%}
|
||||
{% if fairlane_cookie_consent.translate == true %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info | trans %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link | trans %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button | trans %}
|
||||
{% else %}
|
||||
{% set text_info = fairlane_cookie_consent.twig.text_info %}
|
||||
{% set text_additional_info_link = fairlane_cookie_consent.twig.text_additional_info_link %}
|
||||
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button %}
|
||||
{% endif %}
|
||||
<div id="fairlane-cookie-consent" {% if fairlane_cookie_consent.useBootstrap == true %}class="navbar navbar-fixed-top"{% endif %}>
|
||||
<p>
|
||||
{{ text_info }}
|
||||
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
|
||||
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
<button class="btn btn-default">{{ text_accept_button }}</button>
|
||||
</div>
|
||||
{% if fairlane_cookie_consent.useJquery %}
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
jQuery("#fairlane-cookie-consent button").click(function(){
|
||||
jQuery.ajax({
|
||||
async: true,
|
||||
type: 'POST',
|
||||
url: '{{ url('fairlane_cookie_consent_accept') }}',
|
||||
data: JSON.stringify({'cookie-consent': 'ok'}),
|
||||
success: function(data) {
|
||||
jQuery("#fairlane-cookie-consent").fadeOut("fast");
|
||||
},
|
||||
contentType: "application/json",
|
||||
dataType: 'json'
|
||||
});
|
||||
})
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
+10
-15
@@ -1,17 +1,12 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block urlCanonical %}
|
||||
#!
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<h2 class="center-align">Page introuvable</h2>
|
||||
<p class="center-align">
|
||||
Cette page n'existe plus.<br/><br/>
|
||||
<a class="btn btn-default" href="{{ path('homepage') }}">Retour à l'accueil</a>
|
||||
</p>
|
||||
</div>
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col s12">
|
||||
<h2 class="center-align m-t-100">Page introuvable</h2>
|
||||
<p class="center-align">
|
||||
Cette page n'existe plus.<br/><br/>
|
||||
<a class="btn btn-default" href="{{ path('homepage') }}">Retour à l'accueil</a>
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -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 %}
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
<div class="row m-t-40">
|
||||
<div class="col s10 offset-s1 center-align">
|
||||
<button id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
<button title="import-candidature" id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
Envoyer ma candidature
|
||||
</button><br /><br />
|
||||
<a class="color-grey5" href="{{ path(routeObject,{'alias': object.alias }) }}">Annuler</a>
|
||||
|
||||
@@ -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:' %}
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</div>
|
||||
<div class="row m-t-40">
|
||||
<div class="col s10 offset-s1 center-align">
|
||||
<button id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
<button title="webcam-candidature" id="submit" class=" btn btn-large btn-default disabled" type="submit">
|
||||
Envoyer ma candidature
|
||||
</button><br /><br />
|
||||
<a class="color-grey5" href="{{ path(routeObject,{'alias': object.alias }) }}">Annuler</a>
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
<div class="owl-carousel tuto-carousel">
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_1.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">30 Minutes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Préparez un discours <strong>clair</strong> et <strong>concis</strong></u>
|
||||
@@ -31,10 +31,10 @@
|
||||
</div>
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_2.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">2 Minutes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Préparer votre lieu de tournage :</u>
|
||||
@@ -51,10 +51,10 @@
|
||||
</div>
|
||||
<div class="item-tuto-webcam carousel-item">
|
||||
<div class="row">
|
||||
<div class="col s4 offset-s1">
|
||||
<div class="col s4 offset-s1 hide-on-med-and-down">
|
||||
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_3.svg')}}" alt="">
|
||||
</div>
|
||||
<div class="col s6 offset-s1 left-align">
|
||||
<div class="col s11 m11 l6 offset-s1 left-align">
|
||||
<strong><span class="color-blue1">10 secondes</span> avant l’enregistrement</strong>
|
||||
<br /><br />
|
||||
<u>Quelques informations à savoir avant le grand bain :</u>
|
||||
@@ -67,7 +67,7 @@
|
||||
<li>Recommencez autant de fois que nécessaire.</li>
|
||||
</ul>
|
||||
<br /><br />
|
||||
Bon courage !
|
||||
C’est à vous !
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<script type="text/javascript" defer="defer" src="https://extend.vimeocdn.com/ga/64189815.js"></script>
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>{% block title %}Talents Tube : Le 1er job board 100% vidéo{% endblock %}</title>
|
||||
<title>{% block title %}Talents Tube : La 1ère plateforme pour l’emploi 100% vidéo{% endblock %}</title>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}"/>
|
||||
{% block metarobot %}<meta name="robots" content="index,follow">{% endblock %}
|
||||
@@ -30,26 +30,28 @@
|
||||
{% endblock %}">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
{# OG et TC #}
|
||||
{% block ogtc %}
|
||||
{#Twitter Card data pour les données enrichies sur Twitter#}
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube : Le 1er job board 100% vidéo">
|
||||
<meta name="twitter:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !">
|
||||
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
|
||||
{% if app.request.attributes.get('_route') != null %}
|
||||
{% block ogtc %}
|
||||
{#Twitter Card data pour les données enrichies sur Twitter#}
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube : Le 1er job board 100% vidéo">
|
||||
<meta name="twitter:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !">
|
||||
<meta name="twitter:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}">
|
||||
|
||||
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
|
||||
<meta property="og:title" content="Talents Tube : Le 1er job board 100% vidéo" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
|
||||
<meta property="og:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !" />
|
||||
<meta property="og:site_name" content="Talents Tube" />
|
||||
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
|
||||
{#Open Graph data pour le partage sur les réseaux sociaux (ex Facebook..)#}
|
||||
<meta property="og:title" content="Talents Tube : Le 1er job board 100% vidéo" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
|
||||
<meta property="og:description" content="Talents Tube est la première plateforme réservée aux offres d'emploi et aux CV vidéos. Découvrez un nouvelle méthode de recrutement !" />
|
||||
<meta property="og:site_name" content="Talents Tube" />
|
||||
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}" />
|
||||
|
||||
{% endblock %}
|
||||
{# Canonical #}
|
||||
<link rel="canonical"
|
||||
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{% endblock %}">
|
||||
{% endblock %}
|
||||
{# Canonical #}
|
||||
<link rel="canonical"
|
||||
href="{% block urlCanonical %}{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}{% endblock %}">
|
||||
{% endif %}
|
||||
{# CSS #}
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&subset=latin-ext"
|
||||
@@ -81,5 +83,6 @@
|
||||
<script src="{{ asset_url }}"></script>
|
||||
{% endjavascripts %}
|
||||
{% endblock %}
|
||||
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -106,11 +106,11 @@
|
||||
$('.fa-refresh').show();
|
||||
var month1 = obj.date1.getMonth();
|
||||
var day1 = obj.date1.getDate();
|
||||
var year1 = obj.date1.getUTCFullYear();
|
||||
var year1 = obj.date1.getFullYear();
|
||||
var month2 = obj.date2.getMonth();
|
||||
var day2 = obj.date2.getDate();
|
||||
var year2 = obj.date2.getUTCFullYear();
|
||||
var date1 = (month1 + 1) + "/" + day1 + "/" + year1 +" 00:00:00";
|
||||
var year2 = obj.date2.getFullYear();
|
||||
var date1 = (month1 + 1) + "/" + day1 + "/" + year1 +" 00:00:01";
|
||||
var date2 = (month2 + 1) +"/" + day2 + "/" + year2 +" 23:59:59";
|
||||
getChartData(date1, date2);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div class="col s12">
|
||||
<div class="card z-depth-3">
|
||||
<div class="card-image">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% for a in ads %}
|
||||
{% for a in ads if a.isPrivate != true %}
|
||||
<div id="adRow" class="row item-list-bis z-depth-2 row-noMargin">
|
||||
<div class="col s12 m4 col-noPadding ad-picture">
|
||||
<a href="{{ path('ad_show',{'alias': a.alias }) }}" title="{{ a.title }}" class="item-list-media">
|
||||
@@ -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} %}
|
||||
@@ -48,7 +57,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
<div class="col s12 m12 l8 xl9">
|
||||
{% if ad.video and ad.status != "CLOSED" %}
|
||||
<div class="row m-b-0" id="adVideo">
|
||||
{#{% if ad.id == 38 %}
|
||||
<img class="responsive-img" src="{{asset('/img/GROUPE-ROCHER-TT.jpg')}}">
|
||||
{% else %}#}
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<div class="col s12">
|
||||
<iframe src="https://player.vimeo.com/video/{{ ad.video.cdnUrl|replace({ "/videos/": ""}) }}"
|
||||
@@ -42,8 +45,11 @@
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</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 %}
|
||||
@@ -92,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>
|
||||
@@ -30,6 +33,9 @@
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('service_cgu') }}">Conditions générales d'utilisation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="white-text" href="{{ path('page_Confidentialite') }}">Politique de confidentialité et protection des données</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col xl3 l3 m6 s12 left-align">
|
||||
@@ -41,13 +47,16 @@
|
||||
<a class="white-text td-none" href="https://twitter.com/TalentsTuber" title="Twitter" target="_blank">
|
||||
<i class="fa fa-twitter" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="white-text td-none" href="https://www.youtube.com/channel/UCRNqiJCLAorO0aCzNQu-8ww" title="Youtube" target="_blank">
|
||||
<i class="fa fa-youtube" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="white-text td-none" href="https://www.linkedin.com/company/talentstube" title="Linkedin" target="_blank">
|
||||
<i class="fa fa-linkedin-square" aria-hidden="true"></i>
|
||||
</a>
|
||||
</p>
|
||||
<h5 class="white-text">Contactez-nous !</h5>
|
||||
<a class="white-text" href="mailto:bonjour@talentstube.com">Par mail</a>
|
||||
<p class="white-text" >02 97 68 14 02</p>
|
||||
<p class="white-text">02 30 05 06 31</p>
|
||||
<p class="footer-newsletter">
|
||||
<a class="btn-large btn-round" href="#" title="Newsletter" data-token="ecea5416671e97e3abfa8195848a9140" onclick="mjOpenPopin(event, this)">
|
||||
<i class="fa fa-envelope-open-o left" aria-hidden="true"></i>
|
||||
@@ -58,7 +67,11 @@
|
||||
</div>
|
||||
<div class="row footer-more-links">
|
||||
<div class="col s12 center-align">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2017 Talents Tube</a>
|
||||
<p class="text-center white-text">Entreprise soutenue par</p>
|
||||
<a href="https://www.bretagne.bzh/"><img src="{{ asset('img/RB_monochrome_blanc.svg')}}" alt="Region Bretagne"></a><br>
|
||||
</div>
|
||||
<div class="col s12 center-align m-t-30">
|
||||
<a class="text-center white-text" href="https://www.e-declic.com" target="_blank" title="Agence Web">© 2018 Talents Tube</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<li><a href="{{ path('page_accompagnementTalent') }}" title="Accompagnement talent">Accompagnement</a></li>
|
||||
</ul>
|
||||
<ul id='dropdown_company' class='dropdown-content'>
|
||||
<li><a href="{{ path('company_list') }}" title="Listes entreprises">Listes entreprises</a></li>
|
||||
<li><a href="{{ path('company_list') }}" title="Les entreprises qui recrutent">Les entreprises qui recrutent</a></li>
|
||||
<li><a href="{{ path('page_OffreEmploi') }}" title="L'offre d'emploi en vidéo">L'offre d'emploi en vidéo</a></li>
|
||||
<li><a href="{{ path('page_reussirOffrevideo') }}" title="Comment faire une offre en vidéo">Comment faire une offre en vidéo</a></li>
|
||||
<li><a href="{{ path('page_MarqueEmployeur') }}" title="Vidéo Marque Employeur">Vidéo Marque Employeur</a></li>
|
||||
|
||||
@@ -9,16 +9,12 @@
|
||||
{# VIDEO #}
|
||||
<div class="col l12 m12 s12 home-content col-noPadding">
|
||||
<div id="homeTeaser" class="valign-wrapper">
|
||||
<h1 class="white-text center-align">1er job board <span>100% vidéo</span></h1><br />
|
||||
<h1 class="white-text center-align">1ère plateforme pour l’emploi <span>100% vidéo</span></h1><br />
|
||||
<div class="link-home-head">
|
||||
<a data-target="modal_concept" href="#!" class="btn btn-default btn-round btn-concept modal-trigger">
|
||||
Le concept en vidéo
|
||||
<img src="{{asset('img/bouton-play.png')}}" />
|
||||
</a>
|
||||
<a data-target="modal_voeux" href="#!" class="btn btn-default btn-round btn-voeux modal-trigger">
|
||||
Voeux 2018 en vidéo
|
||||
<img src="{{asset('img/bouton-play.png')}}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="header-video-inner">
|
||||
<video loop="" preload="metadata" autoplay="" id="vid" muted>
|
||||
@@ -37,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">
|
||||
@@ -51,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>
|
||||
@@ -64,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>
|
||||
@@ -80,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>
|
||||
@@ -94,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">
|
||||
@@ -111,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">
|
||||
@@ -124,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>
|
||||
@@ -203,6 +202,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'testimony/testimony_list.html.twig' %}
|
||||
</div>
|
||||
<div id="modal_concept" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
@@ -215,17 +215,6 @@
|
||||
<a href="#!" class="modal-action modal-close btn btn-default button-round-small">Fermer</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal_voeux" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<div class="video-container">
|
||||
<iframe id="iframe_concept" src="" frameborder="0" webkitallowfullscreen mozallowfullscreen
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close btn btn-default button-round-small">Fermer</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
@@ -12,4 +12,9 @@
|
||||
|
||||
{% block description %}{{ page.description }}{% endblock %}
|
||||
|
||||
{% block content %}{{ page.content|raw }}{% endblock %}
|
||||
{% block content %}
|
||||
{{ page.content|raw }}
|
||||
{% if isTestimony is defined %}
|
||||
{% include 'testimony/testimony_list.html.twig' %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="item">
|
||||
<a href="{{ path('talent_show',{'alias': talent.alias }) }}"
|
||||
title="{{ user.firstname }} {{ user.lastname }}">
|
||||
{% if user.socialPicture is not null %}
|
||||
{% if user.socialPicture is not null and user.photo is null %}
|
||||
<img class="circle z-depth-3" src="{{ user.socialPicture }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
{% elseif user.photo %}
|
||||
<img class="circle z-depth-3" src="{{ user.webPath | imagine_filter('profile_square') }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
var urlDelete = '';
|
||||
var idObject = null;
|
||||
var typeObject = null;
|
||||
var videoExist = true;
|
||||
var videoExist = false;
|
||||
var mediaDefaultUrl = '{{ path("media_default") }}';
|
||||
var idUser = '{{ app.user.id }}';
|
||||
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
|
||||
|
||||
@@ -80,12 +80,11 @@
|
||||
<div id="modalProfilePicture" class="modal">
|
||||
<div class="modal-content">
|
||||
<h4>Edition de votre photo de profil</h4>
|
||||
{#<div class="row">
|
||||
<div class="row">
|
||||
{{ render(controller(
|
||||
'AppBundle:Media:profilePicture'
|
||||
)) }}
|
||||
</div>#}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Fermer</a>
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
<div class="profil center-align">
|
||||
{% set company = user.company %}
|
||||
<div class="profil-picture">
|
||||
{% if user.photo %}
|
||||
<img src="{{ user.webPath | imagine_filter('profile_square') }}"
|
||||
alt="{{ user.firstname }} {{ user.lastname|first|upper }}"
|
||||
class="circle responsive-img"/>
|
||||
{% if user.socialPicture is not null and user.photo is null %}
|
||||
<img class="circle responsive-img" src="{{ user.socialPicture }}" alt="{{ user.firstname }} {{ user.lastname|first|upper }}"/>
|
||||
{% elseif user.photo %}
|
||||
<img class="circle responsive-img" src="{{ user.webPath | imagine_filter('profile_square') }}" alt="{{ user.firstname }} {{ user.lastname }}"/>
|
||||
{% else %}
|
||||
<div class="circle-letters font-2">{{ user.firstname|first|upper }}{{ user.lastname|first|upper }}</div>
|
||||
{% endif %}
|
||||
@@ -113,10 +113,7 @@
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script src="https://player.vimeo.com/api/player.js"></script>
|
||||
<script>
|
||||
var iframe = document.querySelector('iframe');
|
||||
var player = new Vimeo.Player(iframe);
|
||||
$(document).ready(function(){
|
||||
$.get( "{{ path('talent_ajaxRecStat',{'id': talent.id }) }}", function( data ) {
|
||||
});
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="row m-b-0 p-b-30">
|
||||
<div class="col s12 m12">
|
||||
<div id="liste-resultats">
|
||||
{% for c in companies %}
|
||||
{% for c in companies if c.isPrivate != true %}
|
||||
{% if (c.presentationVideo is not null or c.getPublishedAds|length > 0 ) %}
|
||||
<div class="row item-list-bis z-depth-2 row-noMargin">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -95,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>
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<div id="liste-testimony" class="bg-white">
|
||||
<div class="container">
|
||||
<div class="row row-noMargin">
|
||||
<div class="owl-carousel owl-carousel-testimony">
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class="col s12 l2">
|
||||
<img class="circle z-depth-3" src="{{ asset('img/testimony/de-charry.jpg')}}" alt="Jean-Philippe, Gérant, cabinet de Charry"/>
|
||||
</div>
|
||||
<div class="col s12 l8 left-align">
|
||||
<h3><strong>Jean-Philippe</strong>, Gérant, Cabinet de Charry</h3>
|
||||
<p>
|
||||
Notre entreprise amorce une nouvelle dynamique grâce à la vidéo de recrutement.<br />
|
||||
Nous accueillons demain notre nouvel agent commercial, basé à Auray/Lorient.<br />
|
||||
Il sera suivi de près par un autre très bientôt...<br />
|
||||
Nous avons eu beaucoup d’appréciations positives grâce à cette communication.
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="row">
|
||||
<div class="col l2">
|
||||
<img class="circle z-depth-3" src="{{ asset('img/testimony/lionel.jpg')}}" alt="Jean-Philippe, Gérant, cabinet de Charry"/>
|
||||
</div>
|
||||
<div class="col s12 l8 left-align text-testimony">
|
||||
<h3><strong>Lionel</strong>, dirigeant, LB Groupe</h3>
|
||||
<p>
|
||||
Talents Tube nous a permis de recruter deux collaborateurs sur des profils bien spécifiques en un temps rapide.<br />
|
||||
L’offre d’emploi vidéo a permis d’atteindre des candidats aux profils plus divers qu’une annonce classique sur papier ou web.<br />
|
||||
Les CV vidéo ont permis de gagner un temps précieux au niveau de la présélection.<br />
|
||||
Atout supplémentaire : nos annonces en vidéo ont contribué à développer notre marque employeur !
|
||||
</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,4 +40,5 @@ assetic:
|
||||
- 'js/vendors/typeahead.js'
|
||||
- 'js/company.js'
|
||||
- 'js/backend.js'
|
||||
- 'js/tags.js'
|
||||
- 'js/tags.js'
|
||||
- 'js/vendors/jquery-confirm.min.js'
|
||||
@@ -59,10 +59,26 @@ doctrine:
|
||||
naming_strategy: doctrine.orm.naming_strategy.underscore
|
||||
mappings:
|
||||
AppBundle: ~
|
||||
|
||||
fairlane_cookie_consent:
|
||||
active: true
|
||||
use_bootstrap: true
|
||||
use_jquery: true
|
||||
translate: false
|
||||
cookie_lifetime: 90 # days
|
||||
twig:
|
||||
text_info: 'Notre site utilise des cookies et recueille des informations vous concernant à des fins fonctionnelles et / ou publicitaires. Nous vous invitons à accepter la collecte ou configurer vos choix. Vous pouvez modifier vos paramètres à tout moment.'
|
||||
text_accept_button: 'Accepter'
|
||||
text_additional_info_link: 'En savoir plus'
|
||||
url_additional_info: 'https://www.talentstube.com/confidentialite'
|
||||
|
||||
# Twig Configuration
|
||||
twig:
|
||||
debug: "%kernel.debug%"
|
||||
strict_variables: "%kernel.debug%"
|
||||
globals:
|
||||
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
|
||||
|
||||
|
||||
# Swiftmailer Configuration
|
||||
swiftmailer:
|
||||
@@ -182,13 +198,11 @@ hwi_oauth:
|
||||
paths:
|
||||
email: email
|
||||
profilepicture: picture.data.url
|
||||
options:
|
||||
display: popup
|
||||
#csrf: true
|
||||
linkedin:
|
||||
type: linkedin
|
||||
client_id: 77ywkne3b8tcnk
|
||||
client_secret: HB9Zdx42s7RPLUqm
|
||||
client_id: 86m6hegwyj8lbo
|
||||
client_secret: LIOibqDszsP2vQSr
|
||||
infos_url: "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,location,email-address,picture-urls::(original))?format=json"
|
||||
options:
|
||||
#csrf: true
|
||||
|
||||
@@ -27,3 +27,4 @@ parameters:
|
||||
|
||||
elastic_host: tt-website.elasticsearch.prod
|
||||
elastic_port: 9200
|
||||
delivery_addresses: thomas@e-declic.com
|
||||
@@ -19,4 +19,7 @@ hwi_oauth_connect:
|
||||
|
||||
hwi_oauth_redirect:
|
||||
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
|
||||
prefix: /login
|
||||
prefix: /login
|
||||
|
||||
fairlane_cookie_consent:
|
||||
resource: "@FairlaneCookieConsentBundle/Resources/config/routing.yml"
|
||||
@@ -3,8 +3,8 @@ security:
|
||||
in_memory:
|
||||
memory: ~
|
||||
fos_userbundle:
|
||||
#id: fos_user.user_provider.username_email
|
||||
id: app.user_provider
|
||||
id: fos_user.user_provider.username_email
|
||||
#id: app.user_provider
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
@@ -13,6 +13,11 @@ security:
|
||||
|
||||
main:
|
||||
pattern: ^/
|
||||
remember_me:
|
||||
secret: '%kernel.secret%'
|
||||
lifetime: 14515200
|
||||
path: /
|
||||
always_remember_me: true
|
||||
form_login:
|
||||
provider: fos_userbundle
|
||||
csrf_token_generator: security.csrf.token_manager
|
||||
|
||||
@@ -50,7 +50,9 @@
|
||||
"php-http/httplug-bundle": "^1.8",
|
||||
"symfony/assetic-bundle": "^2.8",
|
||||
"friendsofsymfony/elastica-bundle": "4.1.*",
|
||||
"liip/imagine-bundle": "^1.9"
|
||||
"liip/imagine-bundle": "^1.9",
|
||||
"twig/extensions": "^1.5",
|
||||
"fairlane/cookie-consent-bundle": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
|
||||
Generated
+98
-2
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1ee242a3c7f90797f49f553ffc4a342d",
|
||||
"content-hash": "4f2ac88cf6d46bc55a35e28d9e2a66f5",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alcaeus/mongo-php-adapter",
|
||||
@@ -1498,6 +1498,46 @@
|
||||
],
|
||||
"time": "2017-07-17T17:04:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fairlane/cookie-consent-bundle",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fairlane/cookie-consent-bundle.git",
|
||||
"reference": "db2ca1c40a44e13c090406da6704b428d00dfd84"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fairlane/cookie-consent-bundle/zipball/db2ca1c40a44e13c090406da6704b428d00dfd84",
|
||||
"reference": "db2ca1c40a44e13c090406da6704b428d00dfd84",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0",
|
||||
"symfony/framework-bundle": ">=2.7",
|
||||
"symfony/twig-bundle": ">=2.7",
|
||||
"twig/twig": ">=1.28"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fairlane\\CookieConsentBundle\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"WTFPL"
|
||||
],
|
||||
"description": "EU Cookie Consent Bundle for Symfony",
|
||||
"keywords": [
|
||||
"cookie",
|
||||
"cookie consent"
|
||||
],
|
||||
"time": "2017-11-12T00:24:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "friendsofsymfony/elastica-bundle",
|
||||
"version": "v4.1.1",
|
||||
@@ -4107,6 +4147,7 @@
|
||||
"compression",
|
||||
"minification"
|
||||
],
|
||||
"abandoned": "symfony/webpack-encore-pack",
|
||||
"time": "2017-07-14T07:26:46+00:00"
|
||||
},
|
||||
{
|
||||
@@ -4715,6 +4756,61 @@
|
||||
],
|
||||
"time": "2017-11-16T18:00:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/extensions",
|
||||
"version": "v1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig-extensions.git",
|
||||
"reference": "2c1a86526d0044065220d1b51ac08348bea5ca82"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/2c1a86526d0044065220d1b51ac08348bea5ca82",
|
||||
"reference": "2c1a86526d0044065220d1b51ac08348bea5ca82",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"twig/twig": "^1.27|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^3.4",
|
||||
"symfony/translation": "^2.7|^3.4"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/translation": "Allow the time_diff output to be translated"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Twig_Extensions_": "lib/"
|
||||
},
|
||||
"psr-4": {
|
||||
"Twig\\Extensions\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Common additional features for Twig that do not directly belong in core",
|
||||
"keywords": [
|
||||
"i18n",
|
||||
"text"
|
||||
],
|
||||
"time": "2018-05-22T13:26:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.4.4",
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
||||
class TalentController extends Controller
|
||||
{
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
|
||||
@@ -30,7 +29,7 @@ class UserController extends Controller
|
||||
}
|
||||
}
|
||||
return $this->render('admin/user_list.html.twig', [
|
||||
'users' => $users
|
||||
'users' => $users,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -64,4 +63,142 @@ class UserController extends Controller
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/list", name="admin_config_others_user")
|
||||
*/
|
||||
public function adminOthersUsersListAction(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findTalentsAndCompanies();
|
||||
return $this->render('admin/users_list.html.twig', array(
|
||||
'users' => $t,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/resend", name="admin_user_resend")
|
||||
*/
|
||||
public function adminUserResendAction(Request $request, $id)
|
||||
{
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->findUserBy(array('id' => $id));
|
||||
$mailer = $this->get('fos_user.mailer');
|
||||
$mailer->sendConfirmationEmailMessage($user);
|
||||
|
||||
return $this->redirectToRoute('admin_config_users');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/admin/config/user/{id}/delete", name="admin_user_delete")
|
||||
*/
|
||||
public function adminUserDeleteAction(Request $request, $id)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
|
||||
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->findUserBy(array('id' => $id));
|
||||
if (\is_null($user)) {
|
||||
// user not found, generate $notFoundResponse
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
' user not found !'
|
||||
);
|
||||
}
|
||||
|
||||
\assert(!\is_null($user));
|
||||
$company = $user->getCompany();
|
||||
if ($company) {
|
||||
$company->setPresentationVideo(null);
|
||||
$em->persist($company);
|
||||
$em->flush();
|
||||
}
|
||||
$this->deleteRelation($user);
|
||||
$em->remove($user);
|
||||
$em->flush();
|
||||
if ($company) {
|
||||
$em->remove($company);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// if ($company) {
|
||||
// $em->remove($company);
|
||||
// }
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute('admin_config_others_user');
|
||||
}
|
||||
|
||||
public function deleteRelation($user)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$sendMessage = $em->getRepository('AppBundle:Message')->findBy(array('sender' => $user));
|
||||
if ($sendMessage) {
|
||||
foreach ($sendMessage as $key => $message) {
|
||||
$message->setSender(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$recipMessage = $em->getRepository('AppBundle:Message')->findBy(array('recipient' => $user));
|
||||
if ($recipMessage) {
|
||||
foreach ($recipMessage as $key => $message) {
|
||||
$message->setRecipient(null);
|
||||
$message->setAnswer(null);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$bookmarks = $em->getRepository('AppBundle:Bookmark')->findBy(array('creator' => $user));
|
||||
if ($bookmarks) {
|
||||
foreach ($bookmarks as $key => $bookmark) {
|
||||
$em->remove($bookmark);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('user' => $user));
|
||||
if ($answers) {
|
||||
foreach ($answers as $key => $answer) {
|
||||
$em->remove($answer);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('creator' => $user));
|
||||
if ($ads) {
|
||||
foreach ($ads as $key => $ad) {
|
||||
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
|
||||
foreach ($bms as $key2 => $bm) {
|
||||
$em->remove($bm);
|
||||
}
|
||||
$em->remove($ad);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$ads = $em->getRepository('AppBundle:Ad')->findBy(array('company' => $user->getCompany()));
|
||||
if ($ads) {
|
||||
foreach ($ads as $key => $ad) {
|
||||
$bms = $em->getRepository('AppBundle:BookmarkAd')->findBy(array('ad' => $ad));
|
||||
foreach ($bms as $key2 => $bm) {
|
||||
$em->remove($bm);
|
||||
}
|
||||
$em->remove($ad);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
$medias = $em->getRepository('AppBundle:Media')->findBy(array('creator' => $user));
|
||||
if ($medias) {
|
||||
foreach ($medias as $key => $media) {
|
||||
$em->remove($media);
|
||||
}
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,33 +8,29 @@ use AppBundle\Entity\Company;
|
||||
use AppBundle\Entity\Message;
|
||||
use AppBundle\Form\AnswerType;
|
||||
use AppBundle\Form\ContactTalentType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher,
|
||||
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
|
||||
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
|
||||
class AnswerController extends Controller
|
||||
{
|
||||
/**
|
||||
/**
|
||||
* @Route("/anwser/edit/comment/{id}", name="anwser_edit_comment")
|
||||
*/
|
||||
public function anwserEditCommentAction(Request $request, Answer $answer)
|
||||
{
|
||||
if($answer) {
|
||||
{
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$answer->setComment($request->get('comment'));
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
@@ -57,15 +53,16 @@ class AnswerController extends Controller
|
||||
return $this->finishAnswerAction($request, $company, $answer);
|
||||
}
|
||||
|
||||
public function finishAnswerAction($request, $object, $answer) {
|
||||
public function finishAnswerAction($request, $object, $answer)
|
||||
{
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if($object instanceof Ad) {
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$varReqAnswer = "ad";
|
||||
$contact = $object->getCreator();
|
||||
$title = $answer->getAd()->getTitle();
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$varReqAnswer = "company";
|
||||
$contact = $object->getMainUser();
|
||||
@@ -74,7 +71,7 @@ class AnswerController extends Controller
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
if($answer) {
|
||||
if ($answer) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$existAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $this->getUser(), $varReqAnswer => $object));
|
||||
if (!$this->getUser()->hasRole('ROLE_TALENT')) {
|
||||
@@ -82,7 +79,7 @@ class AnswerController extends Controller
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_not_allowed', true);
|
||||
} else {
|
||||
if($existAnswer && ($existAnswer->getId() !== $answer->getid())){
|
||||
if ($existAnswer && ($existAnswer->getId() !== $answer->getid())) {
|
||||
$em->remove($answer);
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_already_send', true);
|
||||
@@ -91,31 +88,31 @@ class AnswerController extends Controller
|
||||
$session->getFlashBag()->add('popup_answer_already_send', false);
|
||||
$answer->setStatus('SENDED');
|
||||
$em->persist($answer);
|
||||
|
||||
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($answer);
|
||||
$thumbnailsArray = $answer->getVideo()->getThumbnails();
|
||||
$img = $thumbnailsArray[0]['sizes'][3]['link'];
|
||||
$mailManager = $this->get('app.mail_manager');
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()),UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$mailManager->sendMail(
|
||||
'Candidature TalentsTube ',
|
||||
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="'.$img.'" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour '.$contact->getLastname().' '.$contact->getFirstname().',</p>
|
||||
<p>Le talent '.$answer->getUser()->getFirstname().' '.$answer->getUser()->getLastname().' a répondu à votre annonce '.$title.'.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $contact->getLastname() . ' ' . $contact->getFirstname() . ',</p>
|
||||
<p>Le talent ' . $answer->getUser()->getFirstname() . ' ' . $answer->getUser()->getLastname() . ' a répondu à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>
|
||||
|
||||
|
||||
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="'.$link.'" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$contact,
|
||||
@@ -123,9 +120,9 @@ class AnswerController extends Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
|
||||
$session->getFlashBag()->add('popup_answer_send', true);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
return $this->redirect($this->generateUrl($route, array('alias' => $object->getAlias())));
|
||||
@@ -147,22 +144,25 @@ class AnswerController extends Controller
|
||||
return $this->generateStep2($request, $company, $type);
|
||||
}
|
||||
|
||||
public function generateStep2(Request $request, $object, $type) {
|
||||
if($object instanceof Ad) {
|
||||
public function generateStep2(Request $request, $object, $type)
|
||||
{
|
||||
if ($object instanceof Ad) {
|
||||
$route = "ad_show";
|
||||
$routeStep2 = 'answer_create_ad_step2';
|
||||
$routeStep3 = 'answer_create_ad_step3';
|
||||
$varReqAnswer = "ad";
|
||||
$typeObject = "Ad";
|
||||
}
|
||||
if($object instanceof Company) {
|
||||
if ($object instanceof Company) {
|
||||
$route = "company_show";
|
||||
$routeStep2 = 'answer_create_company_step2';
|
||||
$routeStep3 = 'answer_create_company_step3';
|
||||
$varReqAnswer = "company";
|
||||
$typeObject = "Company";
|
||||
}
|
||||
$securityContext = $this->container->get('security.authorization_checker');
|
||||
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
|
||||
}
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$user = $this->getUser();
|
||||
@@ -182,18 +182,18 @@ class AnswerController extends Controller
|
||||
}
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
if(!$mustLogin){
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId())));
|
||||
if (!$mustLogin) {
|
||||
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId())));
|
||||
}
|
||||
}
|
||||
|
||||
/*Definition des urls de destination pour ouath login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId()));
|
||||
/*Definition des urls de destination pour oauth login et register*/
|
||||
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId()));
|
||||
$this->get('twig')->addGlobal('destination_login', $destination_login);
|
||||
$session = new Session();
|
||||
$session->set('registration_destination', $destination_login);
|
||||
|
||||
return $this->render('answer/answer_create_'.$type.'.twig', array(
|
||||
$res = $this->render('answer/answer_create_' . $type . '.twig', array(
|
||||
'routeObject' => $route,
|
||||
'typeObject' => $typeObject,
|
||||
'object' => $object,
|
||||
@@ -202,23 +202,27 @@ class AnswerController extends Controller
|
||||
'video' => $video,
|
||||
'videos' => $videos,
|
||||
$varReqAnswer => $object,
|
||||
'mustLogin' => $mustLogin
|
||||
'mustLogin' => $mustLogin,
|
||||
));
|
||||
$redirectReg = $this->generateUrl($routeStep2, array('id' => $object->getId(), 'type' => $type));
|
||||
$res->headers->setCookie(new Cookie('redirect_register', $redirectReg));
|
||||
return $res;
|
||||
}
|
||||
|
||||
private function createAnonymousUser() {
|
||||
private function createAnonymousUser()
|
||||
{
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$user = $userManager->createUser();
|
||||
$uniqId = uniqId();
|
||||
$user->setUsername("anonym_".$uniqId);
|
||||
$user->setUsername("anonym_" . $uniqId);
|
||||
$user->setFirstname("anonym");
|
||||
$user->setLastname("anonym");
|
||||
$user->setEmail("anonym_".$uniqId."@talentstube.com");
|
||||
$user->setEmail("anonym_" . $uniqId . "@talentstube.com");
|
||||
$user->setPlainPassword($uniqId);
|
||||
$user->setEnabled(false);
|
||||
$user->setRoles(array('ROLE_TALENT_TMP'));
|
||||
$company = new Company();
|
||||
$company->setAlias("anonym_".$uniqId);
|
||||
$company->setAlias("anonym_" . $uniqId);
|
||||
$company->setType("TALENT_TMP");
|
||||
$user->setCompany($company);
|
||||
$userManager->updateUser($user);
|
||||
@@ -267,7 +271,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $company,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -306,7 +310,7 @@ class AnswerController extends Controller
|
||||
'answer' => $answer,
|
||||
'object' => $ad,
|
||||
'mustLogin' => $mustLogin,
|
||||
'route_videotheque' => $route_videotheque
|
||||
'route_videotheque' => $route_videotheque,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -368,7 +372,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'answer'
|
||||
'type' => 'answer',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -382,7 +386,7 @@ class AnswerController extends Controller
|
||||
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('company' => $user->getCompany()->getId(), 'status' => 'SENDED'));
|
||||
return $this->render('company/answer_list.html.twig', [
|
||||
'answers' => $answers,
|
||||
'type' => 'spontaneous'
|
||||
'type' => 'spontaneous',
|
||||
|
||||
]);
|
||||
}
|
||||
@@ -423,7 +427,7 @@ class AnswerController extends Controller
|
||||
{
|
||||
$message = array('success' => 200,
|
||||
'filename' => null,
|
||||
'originalFilename' => null
|
||||
'originalFilename' => null,
|
||||
);
|
||||
foreach ($request->files as $uploadedFile) {
|
||||
$mediaManager = $this->get('media_manager');
|
||||
@@ -447,5 +451,4 @@ class AnswerController extends Controller
|
||||
return new JsonResponse(array('success' => "true"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,12 +109,17 @@ class CompanyController extends Controller
|
||||
$this->get('translator')->trans('company.account.save.title')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$formFactory = $this->container->get('fos_user.change_password.form.factory');
|
||||
$formPw = $formFactory->createForm();
|
||||
$formPw->setData($user);
|
||||
$formPw->handleRequest($request);
|
||||
if ($formPw->isSubmitted() && $formPw->isValid()) {
|
||||
$userManager->updateUser($user);
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
$this->get('translator')->trans('company.account.save.title')
|
||||
);
|
||||
}
|
||||
return $this->render('company/my_account.html.twig', [
|
||||
'form' => $form->createView(),
|
||||
|
||||
@@ -188,7 +188,8 @@ class PageController extends Controller
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('OFFREEMPLOI');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
'page' => $page,
|
||||
'isTestimony' => true
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -201,7 +202,8 @@ class PageController extends Controller
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('MARQUEEMPLOYEUR');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
'page' => $page,
|
||||
'isTestimony' => true
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -231,4 +233,17 @@ class PageController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/confidentialite", name="page_Confidentialite")
|
||||
*/
|
||||
public function ConfidentialiteAction()
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$page = $em->getRepository('AppBundle:Page')->findOneByRef('CONFIDENTIALITE');
|
||||
|
||||
return $this->render('default/page.html.twig', [
|
||||
'page' => $page
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user