Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cae04bc8d7 | |||
| 4fa83f1c51 | |||
| 15c9e8811d | |||
| be62f29fb9 | |||
| 439362bda4 | |||
| 1866008c84 | |||
| 4e8d3b8a9d | |||
| b21946500a |
@@ -1,6 +1,9 @@
|
||||
{% extends "base.html.twig" %}
|
||||
{% extends "basev2.html.twig" %}
|
||||
{% block menu %}
|
||||
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<main id="content">
|
||||
<div class="container contentWrapper">
|
||||
<div class="row">
|
||||
<div class="col push-s3 s6">
|
||||
@@ -8,8 +11,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block metarobot %}
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
<meta http-equiv="refresh" content="1;URL=/">
|
||||
{% endblock %}
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
<div class="fos_user_user_show">
|
||||
Votre mot de passe a bien été modifié<br/>
|
||||
<p>{{ 'profile.show.username'|trans }}: {{ user.username }}</p>
|
||||
<p>{{ 'profile.show.email'|trans }}: {{ user.email }}</p>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
{% extends 'basetemporaire.html.twig' %}
|
||||
|
||||
{% block urlCanonical %}
|
||||
#!
|
||||
|
||||
@@ -47,5 +47,14 @@
|
||||
{% endblock %}
|
||||
{# {% include 'defaultv2/footer.html.twig' %} #}
|
||||
{{ include('FairlaneCookieConsentBundle::cookie-info.html.twig') }}
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-98246968-7"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-98246968-7');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{% extends 'company/base_dashboard_company.html.twig' %}
|
||||
{% extends 'company/base_dashboard_company_V2.html.twig' %}
|
||||
|
||||
{% block dashContent %}
|
||||
<div class="row bg-bordered p-0">
|
||||
{% include 'company/ad_steps.html.twig' with {'tab':3} %}
|
||||
{# {% include 'company/ad_steps.html.twig' with {'tab':3} %} #}
|
||||
<div class="p-20">
|
||||
<form>
|
||||
<p>
|
||||
|
||||
@@ -46,11 +46,7 @@
|
||||
<i class="fa fa-search"></i>
|
||||
{{ 'company.menu.users.label'|trans }}</a></li>
|
||||
|
||||
<li>
|
||||
<a href="{{ path('company_media') }}">
|
||||
<i class="fa fa-play"></i>
|
||||
{{ 'company.menu.videotheque.label'|trans }}</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ path('company_my_account') }}">
|
||||
<i class="fa fa-cog"></i>
|
||||
|
||||
@@ -21,8 +21,10 @@
|
||||
<p class="profil-city">{{ company.addresses.billing.city }}
|
||||
- {{ company.addresses.billing.country|country }}</p>
|
||||
{% endif %}
|
||||
{# <p class="profil-job"><a
|
||||
href="{{ path("company_show",{"alias":company.alias}) }}">{{ company.brandname }}</a></p> #}
|
||||
<p class="profil-job"><a
|
||||
href="{{ path("company_show",{"alias":company.alias}) }}">{{ company.brandname }}</a></p>
|
||||
href="https://www.talentstube.com/Entreprise/{{company.alias}}" target="_blank">{{ company.brandname }}</a></p>
|
||||
</div>
|
||||
<div class="profil-nav">
|
||||
<ul class="font-2">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<!-- START BREADCRUMB -->
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="#">Accueil</a></li>
|
||||
<li class="breadcrumb-item active">Utilisateurss</li>
|
||||
<li class="breadcrumb-item active">Utilisateurs</li>
|
||||
</ol>
|
||||
<!-- END BREADCRUMB -->
|
||||
<div class="row">
|
||||
|
||||
@@ -28,9 +28,12 @@
|
||||
{% if company.presentationVideo is defined %}
|
||||
{% if company.presentationVideo.thumbnails.0.sizes is defined %}
|
||||
<a href="{{ path('company_show',{'alias': company.alias }) }}" title="{{ company.brandName }}">
|
||||
{% if company.presentationVideo.thumbnails.0.sizes.4.link is defined %}
|
||||
<img src="{{ company.presentationVideo.thumbnails.0.sizes.4.link }}"
|
||||
alt="{{ company.brandName }}"/>
|
||||
|
||||
<span class="playerbtn"></span>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<!-- Title -->
|
||||
<header class="text-center mb-5">
|
||||
<h2 class="h4 mb-0">Connexion</h2>
|
||||
<p>Connecter vous pour gérer votre compte</p>
|
||||
<p>Connectez-vous pour gérer votre compte</p>
|
||||
</header>
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
aria-label="Email" data-msg="Please enter a valid email address." data-error-class="u-has-error"
|
||||
data-success-class="u-has-success"> #}
|
||||
|
||||
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" class="form-control"/>
|
||||
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" class="form-control" placeholder="Identifiant"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Input -->
|
||||
@@ -51,7 +51,7 @@
|
||||
{# <input type="password" class="form-control form__input" name="password" required placeholder="Password"
|
||||
aria-label="Password" data-msg="Your password is invalid. Please try again."
|
||||
data-error-class="u-has-error" data-success-class="u-has-success"> #}
|
||||
<input type="password" id="password" name="_password" required="required" class="form-control" />
|
||||
<input type="password" id="password" name="_password" required="required" class="form-control" placeholder="Mot de passe" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Input -->
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
<div class="list-group list-group-flush list-group-transparent">
|
||||
<!-- Links -->
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="list-group-item list-group-item-action" href="mentions-legales" target="_blank">Mentions légales</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="cgu" target="_blank">CGU</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="politique-confidentialite" target="_blank">Politique de confidentialité</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="abonnement" >Tarifs</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="{{ path('mentions-legales') }}" target="_blank">Mentions légales</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="{{ path('cgu') }}" target="_blank">CGU</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="{{ path('politique-confidentialite') }}" target="_blank">Politique de confidentialité</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="{{ path('abonnement') }}" >Tarifs</a></li>
|
||||
<li><a class="list-group-item list-group-item-action" href="https://blog.talentstube.com/contact" target="_blank"
|
||||
">Contact</a></li>
|
||||
</ul>
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ La candidature en vidéo ou vidéo de motivation s’avère être un outil perfo
|
||||
|
||||
En plus des savoirs et savoir-faire, la candidature vidéo met en lumière le savoir-être et le savoir devenir des candidats. Vous pouvez cerner la personnalité du candidat et son projet professionnel en quelques instants.
|
||||
</p>
|
||||
<a class="btn btn-sm btn-primary btn-wide" href="#">Voir la plateforme</a>
|
||||
<a class="btn btn-sm btn-primary btn-wide" href="https://www.talentstube.com">Voir la plateforme</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% extends 'basev2.html.twig' %}
|
||||
|
||||
{% block title %}Offres d’emploi - Recrutez des candidats en vidéo - Talents Tube{% endblock %}
|
||||
{% block title %}Tarifs - Talents Tube{% endblock %}
|
||||
{% block meta %}
|
||||
<meta name="description" content="Attirez les meilleurs candidats avec des offres d’emploi en vidéo. Présentez le poste recherché, les missions, les locaux et les collaborateurs de votre entreprise.">
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;"><tr><td>
|
||||
<![endif]--><div style="margin:0 auto;max-width:600px;background:#F2F2F2;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#F2F2F2;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:22px 0;"><!--[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><a href="http://www.talentstube.com/"><img alt="Talents Tube" src="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:150px;height:auto;" width="150" height="auto"></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:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><a href="http://www.talentstube.com/"><img alt="Talents Tube" src="https://recruteur.talentstube.com/img/mail/logo-talents-tube.png" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:150px;height:auto;" width="150" height="auto"></a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
@@ -88,9 +88,9 @@
|
||||
<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 35px 0px 35px;" align="center"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Raleway;font-size:14px;line-height:22px;"><p>Suivez-nous !</p>
|
||||
<p>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://www.facebook.com/TalentsTuber/"><img src="{{ absolute_url(asset('img/mail/facebook.png')) }}" alt="Facebook"></a>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://twitter.com/TalentsTuber"><img src="{{ absolute_url(asset('img/mail/twitter.png')) }}" alt="Twitter"></a>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://www.linkedin.com/company/talentstube"><img src="{{ absolute_url(asset('img/mail/linkedin.png')) }}" alt="LinkedIn"></a>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://www.facebook.com/TalentsTuber/"><img src="https://recruteur.talentstube.com/img/mail/facebook.png" alt="Facebook"></a>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://twitter.com/TalentsTuber"><img src="https://recruteur.talentstube.com/img/mail/twitter.png" alt="Twitter"></a>
|
||||
<a style="margin:10px 20px 22px 20px;" href="https://www.linkedin.com/company/talentstube"><img src="https://recruteur.talentstube.com/img/mail/linkedin.png" alt="LinkedIn"></a>
|
||||
</p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
|
||||
@@ -101,7 +101,7 @@
|
||||
<![endif]--><div style="margin:0 auto;max-width:600px;background:#F2F2F2;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#F2F2F2;" 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="center"><div class="mj-content" style="cursor:auto;color:#7E7878;font-family:Raleway;font-size:14px;line-height:22px;"><p style="font-weight:bold;">Talents Tube</p>
|
||||
<p>Place Albert Einstein 6 Le Prisme CP60 PIBS 6 CS 72001 - 56038 VANNES</p>
|
||||
<p>Village By CA - 3 rue Louis de Broglie - PIBS - 56000 VANNES</p>
|
||||
<p><a style="text-decoration:none;color:#7E7878;font-weight:bold;" href="mailto:contact@talentstube.com">contact@talentstube.com</a></p></div></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div><!--[if mso]>
|
||||
|
||||
@@ -17,9 +17,11 @@
|
||||
<br/>
|
||||
<div style="text-align:center;">
|
||||
{% if answer.ad.alias is null %}
|
||||
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Visionner la réponse</a>
|
||||
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Visionner la réponse</a> #}
|
||||
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
|
||||
{% else %}
|
||||
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Visionner la réponse</a>
|
||||
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Visionner la réponse</a> #}
|
||||
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
@@ -31,9 +33,11 @@
|
||||
<br/>
|
||||
<div style="text-align:center;">
|
||||
{% if answer.ad.alias is null %}
|
||||
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Consulter la réponse</a>
|
||||
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': aliasCompany,'id': answer.id })) }}">Consulter la réponse</a> #}
|
||||
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
|
||||
{% else %}
|
||||
<a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Consulter la réponse</a>
|
||||
{# <a class="btn btn-default" href="{{ absolute_url(path('talent_ad_detail',{'alias': answer.ad.alias,'id': answer.id })) }}">Consulter la réponse</a> #}
|
||||
<a class="btn btn-default" href="https://www.talentstube.com">Consulter la réponse</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -209,7 +209,7 @@ class AdController extends Controller
|
||||
$em->flush();
|
||||
$em->clear();
|
||||
|
||||
return $this->redirectToRoute('company_ad_validation', array('id' => $ad->getId()));
|
||||
return $this->redirectToRoute('company_ad', array('id' => $ad->getId()));
|
||||
}
|
||||
|
||||
return $this->render('company/ad_edit_date.html.twig', [
|
||||
|
||||
@@ -105,9 +105,13 @@ class AnswerController extends FOSRestController
|
||||
$existCompanyAnswer = null;
|
||||
// Verify if users have already posted answers
|
||||
if (isset($adId) && $adId != null) {
|
||||
$existAdAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'ad' => $adId));
|
||||
$dateJour = new \DateTime('NOW');
|
||||
// $existAdAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'ad' => $adId));
|
||||
$existAdAnswer = $em->getRepository('AppBundle:Answer')->findExistAdAnswer($usr, $adId);
|
||||
} else {
|
||||
$existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'company' => $companyId));
|
||||
// $existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $usr, 'company' => $companyId));
|
||||
$existCompanyAnswer = $em->getRepository('AppBundle:Answer')->findExistEntrepriseAnswer($usr, $companyId);
|
||||
|
||||
}
|
||||
|
||||
if (!isset($mediaId) || !isset($companyId) || $mediaId == null || $companyId == null) {
|
||||
@@ -115,11 +119,11 @@ class AnswerController extends FOSRestController
|
||||
$status = 'failure';
|
||||
throw new ResourceValidationException($message, $status);
|
||||
} else if ($existAdAnswer) {
|
||||
$message = 'Vous avez déja postulé pour cette offre';
|
||||
$message = 'Tu as déjà postulé aujourd’hui !';
|
||||
$status = 'failure';
|
||||
throw new ResourceValidationException($message, $status);
|
||||
} else if ($existCompanyAnswer) {
|
||||
$message = 'Vous avez déja postulé pour cette entreprise.';
|
||||
$message = 'Tu as déjà postulé aujourd\’hui pour cette entreprise !';
|
||||
$status = 'failure';
|
||||
throw new ResourceValidationException($message, $status);
|
||||
} else {
|
||||
@@ -144,13 +148,45 @@ class AnswerController extends FOSRestController
|
||||
$em->persist($answer);
|
||||
$em->flush();
|
||||
|
||||
$userCompany = $company->getUsers();
|
||||
$usersCompany = $company->getUsers();
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($answer);
|
||||
$thumbnailsArray = $answer->getVideo()->getThumbnails();
|
||||
$img = $thumbnailsArray[0]['sizes'][3]['link'];
|
||||
$title = $company->getBrandName();
|
||||
|
||||
/*$message = new Message('Candidature', 'Video', $usr, $userCompany{
|
||||
0}, 'CONTACT_TALENT', $answer);
|
||||
$message->setVideo($video);
|
||||
$em->persist($message);
|
||||
$em->flush();*/
|
||||
$mailManager = $this->get('app.mail_manager');
|
||||
foreach ($usersCompany as $user){
|
||||
$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]>
|
||||
</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 ' . $user->getLastname() . ' ' . $user->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]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$user,
|
||||
'contact_default'
|
||||
);
|
||||
}
|
||||
$status = array('status' => "success", "idAnswer" => $answer->getId()/*, "idMessage" => $message->getId()*/);
|
||||
}
|
||||
} else {
|
||||
@@ -334,6 +370,49 @@ class AnswerController extends FOSRestController
|
||||
$em->persist($message);
|
||||
$em->flush();
|
||||
|
||||
|
||||
|
||||
$usersCompany = $existAnswer->getCompany()->getUsers();
|
||||
$mediaManager = $this->get('media_manager');
|
||||
$mediaManager->getThumbnails($existAnswer);
|
||||
$thumbnailsArray = $existAnswer->getVideo()->getThumbnails();
|
||||
$img = $thumbnailsArray[0]['sizes'][3]['link'];
|
||||
$title = $existAnswer->getCompany()->getBrandName();
|
||||
|
||||
/*$message = new Message('Candidature', 'Video', $usr, $userCompany{
|
||||
0}, 'CONTACT_TALENT', $answer);
|
||||
$message->setVideo($video);
|
||||
$em->persist($message);
|
||||
$em->flush();*/
|
||||
$mailManager = $this->get('app.mail_manager');
|
||||
foreach ($usersCompany as $user){
|
||||
$link = $this->generateUrl('company_answer_show', array('id' => $existAnswer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
$mailManager->sendMail(
|
||||
'Message sur la plateforme Talents Tube ',
|
||||
'<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]>
|
||||
</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 ' . $user->getLastname() . ' ' . $user->getFirstname() . ',</p>
|
||||
<p>Le talent ' . $existAnswer->getUser()->getFirstname() . ' ' . $existAnswer->getUser()->getLastname() . ' a laissé un message à 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]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$user,
|
||||
'contact_default'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$status = array('status' => "success");
|
||||
return new JsonResponse($status);
|
||||
}
|
||||
@@ -365,4 +444,4 @@ class AnswerController extends FOSRestController
|
||||
|
||||
return new JsonResponse($data, 200, [], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,7 @@ class MediaController extends Controller
|
||||
$em->persist($media);
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute('company_media');
|
||||
return $this->redirectToRoute('company_ad');
|
||||
}
|
||||
|
||||
return $this->render('media/media_list.html.twig', array(
|
||||
@@ -105,7 +105,7 @@ class MediaController extends Controller
|
||||
|
||||
/**
|
||||
* @Route("/media/create/{id}", name="create_media")
|
||||
* @Security("ad.getStatus() == 'DRAFT' or ad.getStatus() == 'DECLINED'")
|
||||
* @Security("ad.getStatus() == 'DRAFT' or ad.getStatus() == 'DECLINED' or ad.getStatus() == 'TO_PUBLISH'")
|
||||
*/
|
||||
public function createMediaAction(Request $request, Ad $ad)
|
||||
{
|
||||
@@ -128,8 +128,17 @@ class MediaController extends Controller
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$media = $form->getData();
|
||||
$em->persist($media);
|
||||
|
||||
// Modif de la date de publication à la date du jour
|
||||
$now = new \DateTime('now');
|
||||
$ad->setPublishedAt($now);
|
||||
$numberOfMonth = 6;
|
||||
$unpublishedDate = new \DateTime('now');
|
||||
$unpublishedDate = $unpublishedDate->add(new \DateInterval('P' . $numberOfMonth . 'M'));
|
||||
|
||||
$ad->setUnpublishedAt($unpublishedDate);
|
||||
$em->persist($ad);
|
||||
$em->flush();
|
||||
return $this->redirectToRoute('company_ad_step3', array('id' => $ad->getId()));
|
||||
}
|
||||
|
||||
return $this->render('company/createMedia.html.twig', array(
|
||||
|
||||
@@ -178,6 +178,7 @@ class Company
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AppBundle\Entity\User", mappedBy="company", cascade={"persist"})
|
||||
* @Groups({"company_detail", "company_list", "ad_detail"})
|
||||
*/
|
||||
private $users;
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class User extends BaseUser
|
||||
*
|
||||
* @ORM\Column(name="firstname", type="string", length=255, nullable=true)
|
||||
* @Expose
|
||||
* @Groups({"answer_detail"})
|
||||
* @Groups({"answer_detail", "company_detail", "ad_detail"})
|
||||
*/
|
||||
private $firstname;
|
||||
|
||||
@@ -45,7 +45,7 @@ class User extends BaseUser
|
||||
*
|
||||
* @ORM\Column(name="lastname", type="string", length=255, nullable=true)
|
||||
* @Expose
|
||||
* @Groups({"answer_detail"})
|
||||
* @Groups({"answer_detail", "company_detail", "ad_detail"})
|
||||
*/
|
||||
private $lastname;
|
||||
|
||||
@@ -69,6 +69,7 @@ class User extends BaseUser
|
||||
*
|
||||
* @ORM\Column(name="gender", type="string", length=255, nullable=true)
|
||||
* @Expose
|
||||
* @Groups({"answer_detail", "company_detail"})
|
||||
*/
|
||||
private $gender;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class AdSearchType extends AbstractType
|
||||
'CDI' => 'CDI',
|
||||
'CDD' => 'CDD',
|
||||
'Apprentissage' => 'Apprentissage',
|
||||
'Professionnalisation' => 'Professionnalisation',
|
||||
'Professionnalisation' => 'Contrat de professionnalisation',
|
||||
'Stage' => 'Stage',
|
||||
'Indépendant' => 'Indépendant'
|
||||
)
|
||||
|
||||
@@ -61,7 +61,7 @@ class AdSoftType extends AbstractType
|
||||
)
|
||||
))
|
||||
->add('beneficiaire', TextType::class, array(
|
||||
'label' => 'Organisation cliente ',
|
||||
'label' => 'Organisation cliente (facultatif)',
|
||||
'required' => false,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Indiquer une organisation',
|
||||
@@ -78,7 +78,8 @@ class AdSoftType extends AbstractType
|
||||
'Apprentissage' => 'Apprentissage',
|
||||
'Professionalisation' => 'Professionalisation',
|
||||
'Stage' => 'Stage',
|
||||
'Indépendant' => 'Indépendant'
|
||||
'Indépendant' => 'Indépendant',
|
||||
'Interim' => 'Interim'
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'form-control'
|
||||
@@ -88,7 +89,7 @@ class AdSoftType extends AbstractType
|
||||
'label' =>'Statut',
|
||||
'choices' => array(
|
||||
'Brouillon' => 'DRAFT',
|
||||
'A publier' => 'TO_PUBLISH',
|
||||
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'form-control'
|
||||
|
||||
@@ -53,7 +53,7 @@ class AdType extends AbstractType
|
||||
)
|
||||
))
|
||||
->add('beneficiaire', TextType::class, array(
|
||||
'label' => 'Organisation cliente ',
|
||||
'label' => 'Organisation cliente (facultatif) ',
|
||||
'required' => false,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Indiquer une organisation',
|
||||
@@ -89,7 +89,8 @@ class AdType extends AbstractType
|
||||
'Apprentissage' => 'Apprentissage',
|
||||
'Professionalisation' => 'Professionalisation',
|
||||
'Stage' => 'Stage',
|
||||
'Indépendant' => 'Indépendant'
|
||||
'Indépendant' => 'Indépendant',
|
||||
'Interim' => 'Interim'
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'form-control'
|
||||
@@ -107,7 +108,7 @@ class AdType extends AbstractType
|
||||
'label' =>'Statut',
|
||||
'choices' => array(
|
||||
'Brouillon' => 'DRAFT',
|
||||
'A publier' => 'TO_PUBLISH',
|
||||
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'form-control'
|
||||
|
||||
@@ -60,7 +60,7 @@ class AdType extends AbstractType
|
||||
)
|
||||
))
|
||||
->add('beneficiaire', TextType::class, array(
|
||||
'label' => 'Organisation cliente ',
|
||||
'label' => 'Organisation cliente (facultatif)',
|
||||
'required' => false,
|
||||
'attr' => array(
|
||||
'placeholder' => 'Indiquer une organisation',
|
||||
@@ -85,7 +85,7 @@ class AdType extends AbstractType
|
||||
'label' =>'Statut',
|
||||
'choices' => array(
|
||||
'Brouillon' => 'DRAFT',
|
||||
'A publier' => 'TO_PUBLISH',
|
||||
'A publier (Validation par Talents Tube)' => 'TO_PUBLISH',
|
||||
'Validée' => 'VALIDATED',
|
||||
'Publiée' => 'PUBLISHED',
|
||||
'Fermée' => 'CLOSED',
|
||||
|
||||
@@ -46,6 +46,53 @@ class AnswerRepository extends AbstractRepository
|
||||
->getResult();
|
||||
}
|
||||
|
||||
|
||||
// Query to find messages excluding Draft message and talent video for chat
|
||||
public function findExistAdAnswer($user, $addId)
|
||||
{
|
||||
$hier = date('Y-m-d', time() - 3600 * 1);
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select(['a','ad'])
|
||||
->where('a.user = :user')
|
||||
->andWhere('ad.id = :id')
|
||||
->andWhere('a.sendTime > :datecourant')
|
||||
->setParameter('user', $user)
|
||||
->setParameter('id', $addId)
|
||||
->setParameter('datecourant', $hier)
|
||||
// ->setParameter(':status', array('DRAFT','CONTACT_TALENT'))
|
||||
->leftJoin('a.ad', 'ad')
|
||||
// ->leftJoin('a.company', 'company')
|
||||
|
||||
;
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
// Query to find messages excluding Draft message and talent video for chat
|
||||
public function findExistEntrepriseAnswer($user, $entrepriseId)
|
||||
{
|
||||
$hier = date('Y-m-d', time() - 3600 * 1);
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select(['a','c'])
|
||||
->where('a.user = :user')
|
||||
->andWhere('c.id = :id')
|
||||
->andWhere('a.sendTime > :datecourant')
|
||||
->setParameter('user', $user)
|
||||
->setParameter('id', $entrepriseId)
|
||||
->setParameter('datecourant', $hier)
|
||||
// ->setParameter(':status', array('DRAFT','CONTACT_TALENT'))
|
||||
->leftJoin('a.company', 'c')
|
||||
// ->leftJoin('a.company', 'company')
|
||||
|
||||
;
|
||||
return $qb
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getAnswerByCompany($id)
|
||||
{
|
||||
$qb = $this
|
||||
|
||||
@@ -15,6 +15,13 @@ use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use JMS\Serializer\Annotation\Type;
|
||||
|
||||
|
||||
use JMS\Serializer\Annotation\ExclusionPolicy;
|
||||
use JMS\Serializer\Annotation\Expose;
|
||||
use Hateoas\Configuration\Annotation as Hateoas;
|
||||
use JMS\Serializer\Annotation\Groups;
|
||||
|
||||
|
||||
/**
|
||||
* Storage agnostic user object.
|
||||
*
|
||||
@@ -41,6 +48,9 @@ abstract class User implements UserInterface, GroupableInterface
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @Expose
|
||||
* @Groups({"answer_detail", "company_detail", "ad_detail"})
|
||||
*/
|
||||
protected $email;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user