Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c76645669d | |||
| 5f29e076e6 | |||
| c48ec26bc4 | |||
| 18d07463ab | |||
| 9f58cf7f58 | |||
| 40688feb88 | |||
| 2275c6aadd | |||
| 6e4f718fe0 | |||
| b19eb227b5 |
+5
-4
@@ -43,18 +43,19 @@
|
||||
{% endif %}
|
||||
<div class="js-form-message mb-3">
|
||||
<div class="input-field col s12">
|
||||
{% set label = 'user.cgu.label'|trans({'%link_start%' : '<a href="'~path('service_cgu')~'">', '%link_end%' : '</a>'}, 'messages') | raw %}
|
||||
{{ form_errors(form.cgu) }}
|
||||
{{ form_widget(form.cgu) }}
|
||||
{{ form_label(form.cgu) }}
|
||||
{# {{ form_label(form.cgu) }} #}
|
||||
<label>Je déclare avoir pris connaissance et accepté les termes et les <a target="_blank"
|
||||
href="/politique-confidentialite">conditions générales d’utilisation</a></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="js-form-message mb-3">
|
||||
{# <div class="js-form-message mb-3">
|
||||
<div class="input-field col s12">
|
||||
<a href="/cgu">Lire les conditions générales d'utilisations</a>
|
||||
<br /><br />
|
||||
</div>
|
||||
</div>
|
||||
</div> #}
|
||||
<div class="js-form-message mb-3">
|
||||
<div class="input-field col s12">
|
||||
{{ form_rest(form) }}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{% extends 'basev2.html.twig' %}
|
||||
|
||||
{% block title %}Talents Tube - Solution de recrutement en vidéo{% endblock %}
|
||||
{% block title %}Espace recruteur - Solution de recrutement en vidéo | Talents Tube{% endblock %}
|
||||
{% block meta %}
|
||||
<meta name="description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo.">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube - Solution de recrutement en vidéo">
|
||||
<meta name="twitter:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube">
|
||||
<meta name="twitter:description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo.">
|
||||
<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 - Solution de recrutement en vidéo" />
|
||||
<meta property="og:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube" />
|
||||
<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="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo." />
|
||||
|
||||
+4
-3
@@ -60,9 +60,10 @@
|
||||
{{ form_widget(register_form.cgu) }}
|
||||
{% block form_label %}
|
||||
{% spaceless %}
|
||||
<label for="fos_user_registration_form_cgu">
|
||||
Je déclare avoir pris connaissance et accepté les termes et les <a target="_blank" href="{{ path("service_cgu") }}">conditions générales d’utilisation</a>
|
||||
</label>
|
||||
<label for="fos_user_registration_form_cgu">
|
||||
Je déclare avoir pris connaissance et accepté les termes et les <a target="_blank"
|
||||
href="{{ path("service_cgu") }}">conditions générales d’utilisation</a>
|
||||
</label>
|
||||
{% endspaceless %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube - Solution de recrutement en vidéo">
|
||||
<meta name="twitter:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube">
|
||||
<meta name="twitter:description"
|
||||
content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo.">
|
||||
<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 - Solution de recrutement en vidéo" />
|
||||
<meta property="og:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:image" content="{{ absolute_url(asset('img/mail/logo-talents-tube.png')) }}" />
|
||||
<meta property="og:description"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- BEGIN SIDEBPANEL-->
|
||||
<nav class="page-sidebar" data-pages="sidebar">
|
||||
<!-- BEGIN SIDEBAR MENU TOP TRAY CONTENT-->
|
||||
<div class="sidebar-overlay-slide from-top" id="appMenu">
|
||||
{# <div class="sidebar-overlay-slide from-top" id="appMenu">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 no-padding">
|
||||
<a href="#" class="p-l-40"><img src="{{ asset('dashboard/img/demo/social_app.svg') }}" alt="socail">
|
||||
@@ -22,14 +22,14 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> #}
|
||||
<!-- END SIDEBAR MENU TOP TRAY CONTENT-->
|
||||
<!-- BEGIN SIDEBAR MENU HEADER-->
|
||||
<div class="sidebar-header">
|
||||
<img src="{{ asset('dashboard/img/logo_white.png') }}" alt="logo" class="brand"
|
||||
{# <img src="{{ asset('dashboard/img/logo_white.png') }}" alt="logo" class="brand"
|
||||
data-src="{{ asset('dashboard/img/logo_white.png') }}"
|
||||
data-src-retina="{{ asset('dashboard/img/logo_white_2x.png') }}" width="78" height="22">
|
||||
<div class="sidebar-header-controls">
|
||||
data-src-retina="{{ asset('dashboard/img/logo_white_2x.png') }}" width="78" height="22"> #}
|
||||
{# <div class="sidebar-header-controls">
|
||||
<button aria-label="Toggle Drawer" type="button"
|
||||
class="btn btn-icon-link invert sidebar-slide-toggle m-l-20 m-r-10" data-pages-toggle="#appMenu">
|
||||
<i class="pg-icon">chevron_down</i>
|
||||
@@ -39,7 +39,7 @@
|
||||
data-toggle-pin="sidebar">
|
||||
<i class="pg-icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div> #}
|
||||
</div>
|
||||
<!-- END SIDEBAR MENU HEADER-->
|
||||
<!-- START SIDEBAR MENU -->
|
||||
@@ -85,7 +85,8 @@
|
||||
</li>
|
||||
<li class="">
|
||||
<a href="{{ path('users') }}">Utilisateurs</a>
|
||||
<span class="icon-thumbnail"><span class="material-icons">
|
||||
<span class="icon-thumbnail">
|
||||
<span class="material-icons">
|
||||
group
|
||||
</span>
|
||||
</span>
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
{# <script async src="https://www.googletagmanager.com/gtag/js?id=UA-98246968-7"></script>
|
||||
<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> #}
|
||||
</script>
|
||||
<!-- Title -->
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<!-- CSS Space Template -->
|
||||
<link rel="stylesheet" href="{{ asset('v2/css/theme.css') }}">
|
||||
<script type="text/javascript"> window.$crisp=[];window.CRISP_WEBSITE_ID="78ec5756-1cd5-4f3f-b0db-cb408c8171da";(function(){ d=document;s=d.createElement("script"); s.src="https://client.crisp.chat/l.js"; s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})(); </script>
|
||||
<script type="text/javascript"> window.$crisp=[];window.CRISP_WEBSITE_ID="08e9d301-ba14-4d69-8b1a-53685114c5af";(function(){ d=document;s=d.createElement("script"); s.src="https://client.crisp.chat/l.js"; s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})(); </script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
|
||||
@@ -95,6 +95,12 @@ Afin de créer votre annonce, renseignez l’ensemble des champs relatifs au pos
|
||||
{{ form_row(form.temps_type) }}
|
||||
</td>
|
||||
</tr>
|
||||
{# US 295 : Mise en place du télétravail #}
|
||||
<tr>
|
||||
<td class="col-lg-12 col-md-12 col-sm-12">
|
||||
{{ form_row(form.teletravail) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-lg-12 col-md-12 col-sm-12">
|
||||
{{ form_row(form.status) }}
|
||||
|
||||
@@ -95,6 +95,12 @@ Afin de créer votre annonce, renseignez l’ensemble des champs relatifs au pos
|
||||
{{ form_row(form.temps_type) }}
|
||||
</td>
|
||||
</tr>
|
||||
{# US 295 : Mise en place du télétravail #}
|
||||
<tr>
|
||||
<td class="col-lg-12 col-md-12 col-sm-12">
|
||||
{{ form_row(form.teletravail) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-lg-12 col-md-12 col-sm-12">
|
||||
{{ form_row(form.publicTag) }}
|
||||
|
||||
@@ -30,7 +30,52 @@
|
||||
</div>
|
||||
<!-- END JUMBOTRON -->
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade " id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="false">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<h5>Popover in a modal</h5>
|
||||
<p>This <a href="#" role="button" class="btn btn-secondary popover-test" title="Popover title"
|
||||
data-content="Popover body content is set in this attribute.">button</a> triggers a popover on
|
||||
click!</p>
|
||||
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
|
||||
|
||||
<div class="tooltip bs-tooltip-top" role="tooltip">
|
||||
<div class="arrow"></div>
|
||||
<div class="tooltip-inner">
|
||||
Some tooltip text!
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<h5>Tooltips in a modal</h5>
|
||||
<p><a href="#" class="tooltip-test" title="Tooltip">This link</a> and <a href="#" class="tooltip-test"
|
||||
title="Tooltip">that link</a> have tooltips on hover.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{#
|
||||
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
|
||||
|
||||
<!-- Generated markup by the plugin -->
|
||||
<div class="tooltip bs-tooltip-top" role="tooltip">
|
||||
<div class="arrow"></div>
|
||||
<div class="tooltip-inner">
|
||||
Some tooltip text!
|
||||
</div>
|
||||
</div> #}
|
||||
|
||||
<!-- START CONTAINER FLUID -->
|
||||
<div class=" container-fluid container-fixed-lg bg-white">
|
||||
@@ -38,6 +83,9 @@
|
||||
<div class="card card-transparent">
|
||||
<div class="card-header ">
|
||||
<div class="card-title">Offres d'emploi
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
|
||||
Launch demo modal
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -86,8 +134,7 @@
|
||||
</td>
|
||||
<td class="v-align-middle">
|
||||
{% if ad.getStatus() == "DECLINED" %}
|
||||
<div class="tooltipped" data-position="top" data-delay="50"
|
||||
data-tooltip="{{ ad.moderationText }}">
|
||||
<div class="">
|
||||
<span class="">{{ ad.getStatus()|trans }}</span>
|
||||
<i class="c-pointer fa fa-info-circle color-red" aria-hidden="true"></i>
|
||||
</div>
|
||||
@@ -98,16 +145,13 @@
|
||||
<td class="v-align-middle">
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Edit#}
|
||||
<a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.edit.label'|trans }}"
|
||||
href="{{ path('company_ad_edit', { 'id': ad.id }) }}" style="margin-right: 10px">
|
||||
<a class=" td-none" href="{{ path('company_ad_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
{% else %}
|
||||
{#Soft Edit#}
|
||||
<a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.edit.label'|trans }}"
|
||||
href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
|
||||
<a class=" td-none" href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}"
|
||||
style="margin-right: 10px">
|
||||
<i class="pg-icon">pen</i>
|
||||
</a>
|
||||
@@ -115,9 +159,7 @@
|
||||
|
||||
{% if ad.getStatus() == "DRAFT" or ad.getStatus() == "DECLINED" %}
|
||||
{#Video#}
|
||||
<a class="tooltipped td-none" data-position="top" data-delay="0"
|
||||
data-tooltip="{{ 'ad.company.video.edit.label'|trans }}"
|
||||
href="{{ path('create_media', { 'id': ad.id }) }}">
|
||||
<a class="tooltipped td-none" href="{{ path('create_media', { 'id': ad.id }) }}">
|
||||
<i class="material-icons">
|
||||
videocam
|
||||
</i>
|
||||
@@ -158,7 +200,9 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if ads|length == 0 %}
|
||||
<tr><th colspan="5" class="text-center">Aucune offre pour le moment</th></tr>
|
||||
<tr>
|
||||
<th colspan="5" class="text-center">Aucune offre pour le moment</th>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -169,4 +213,9 @@
|
||||
</div>
|
||||
<!-- END card -->
|
||||
</div>
|
||||
<!-- END CONTAINER FLUID -->
|
||||
<script type="text/javascript">
|
||||
<!-- END CONTAINER FLUID
|
||||
-->
|
||||
|
||||
|
||||
</script>
|
||||
@@ -39,6 +39,13 @@
|
||||
<p class="small hint-text m-t-5">{{ answer.user.firstname }}
|
||||
{{ answer.user.lastname }}
|
||||
</p>
|
||||
<p class="small hint-text m-t-5">
|
||||
{% if answer.user.company %}
|
||||
{% if answer.user.company.cv %}
|
||||
<a href="/uploads/cv/{{ answer.user.company.cv }}" target="_blank"><button aria-label="" type="button" class="btn btn-outline-primary">Télécharger le cv</button></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -46,7 +46,10 @@
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if form_errors(form) %}
|
||||
<span class="red-text text-darken-2">{{ form_errors(form) }}</span>
|
||||
<span class="red-text text-darken-2">{{ form_errors(form) }}{{ error }}</span>
|
||||
{% endif %}
|
||||
{% if error%}
|
||||
<span class="red-text text-darken-2"><b>{{ error }}</b><br/> </span>
|
||||
{% endif %}
|
||||
{{ form_start(form) }}
|
||||
<div class="row">
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{% extends 'basev2.html.twig' %}
|
||||
|
||||
{% block title %}Talents Tube - Solution de recrutement en vidéo{% endblock %}
|
||||
{% block title %}Espace recruteur - Solution de recrutement en vidéo | Talents Tube{% endblock %}
|
||||
{% block meta %}
|
||||
<meta name="description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo.">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@TalentsTube">
|
||||
<meta name="twitter:title" content="Talents Tube - Solution de recrutement en vidéo">
|
||||
<meta name="twitter:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube">
|
||||
<meta name="twitter:description" content="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo.">
|
||||
<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 - Solution de recrutement en vidéo" />
|
||||
<meta property="og:title" content="Espace recruteur - Solution de recrutement en vidéo | Talents Tube" />
|
||||
<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="Vous souhaitez recruter en vidéo ? Talents Tube diffuse vos vidéos d’offres d’emploi et marque employeur pour attirer les meilleurs talents en vidéo." />
|
||||
|
||||
@@ -42,14 +42,14 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
<br>
|
||||
<strong>Vous souhaitez contacter l’entreprise ?</strong><br /><br />
|
||||
{# <strong>Vous souhaitez contacter l’entreprise ?</strong><br /><br />
|
||||
Cliquez sur le bouton ci-dessous pour envoyer un email à la personne en charge du recrutement.
|
||||
<br/>
|
||||
<br/>
|
||||
<div style="text-align:center;">
|
||||
<a class="btn-default btn-white" href="mailto:{{ message.sender.email }}">Répondre à {{ message.sender.firstname }} {{ message.sender.lastname }}</a>
|
||||
</div>
|
||||
<br />
|
||||
<br /> #}
|
||||
<br />
|
||||
L’équipe Talents Tube
|
||||
{% elseif type == 'plain' %}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
Nous avons reçu une demande de changement de mot de passe pour votre compte Talents Tube.
|
||||
Si vous n'avez pas fait cette demande, veuillez ignorez cet e-mail.
|
||||
Si vous n'avez pas fait cette demande, veuillez ignorer cet e-mail.
|
||||
Dans le cas contraire, veuillez cliquer sur le lien ci-dessous pour changer votre mot de passe :
|
||||
|
||||
{{ confirmationUrl }}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<p>
|
||||
Nous avons reçu une demande de changement de mot de passe pour votre compte Talents Tube.<br />
|
||||
Si vous n'avez pas fait cette demande, veuillez ignorez cet e-mail.<br />
|
||||
Si vous n'avez pas fait cette demande, veuillez ignorer cet e-mail.<br />
|
||||
Dans le cas contraire, veuillez cliquer sur le lien ci-dessous pour changer votre mot de passe :<br /><br />
|
||||
<a href="{{ confirmationUrl }}">Réinitialiser mon mot de passe</a>
|
||||
<br /><br />
|
||||
|
||||
@@ -61,6 +61,9 @@ class AdController extends Controller
|
||||
//LLAN Ajout de la notion de temps partiel, plein temps (5 oct 2020)
|
||||
$temps_type = $form['temps_type']->getData();
|
||||
$arrayExtra['temps_type'] = $temps_type;
|
||||
//LLAN US 295 :mise en place du télétravail
|
||||
$teletravail = $form['teletravail']->getData();
|
||||
$arrayExtra['teletravail'] = $teletravail;
|
||||
$ad->setExtra($arrayExtra);
|
||||
$adManager = $this->get('app.ad_manager');
|
||||
$adManager->updateAd($ad);
|
||||
@@ -109,9 +112,11 @@ class AdController extends Controller
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$type_contract = $form['contract_type']->getData();
|
||||
$temps_type = $form['temps_type']->getData();
|
||||
$teletravail = $form['teletravail']->getData();
|
||||
$arrayExtra = $ad->getExtra();
|
||||
$arrayExtra['contract_type'] = $type_contract;
|
||||
$arrayExtra['temps_type'] = $temps_type;
|
||||
$arrayExtra['teletravail'] = $teletravail;
|
||||
$ad->setExtra($arrayExtra);
|
||||
$adManager = $this->get('app.ad_manager');
|
||||
$adManager->updateAd($ad);
|
||||
@@ -134,9 +139,11 @@ class AdController extends Controller
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$type_contract = $form['contract_type']->getData();
|
||||
$temps_type = $form['temps_type']->getData();
|
||||
$teletravail = $form['teletravail']->getData();
|
||||
$arrayExtra = $ad->getExtra();
|
||||
$arrayExtra['contract_type'] = $type_contract;
|
||||
$arrayExtra['temps_type'] = $temps_type;
|
||||
$arrayExtra['teletravail'] = $teletravail;
|
||||
$ad->setExtra($arrayExtra);
|
||||
$adManager = $this->get('app.ad_manager');
|
||||
$adManager->updateAd($ad);
|
||||
|
||||
@@ -416,7 +416,8 @@ class AnswerController extends Controller
|
||||
$spontaneous = $em->getRepository('AppBundle:Answer')->findBy(
|
||||
array(
|
||||
'company' => $user->getCompany()->getId(),
|
||||
'status' => 'SENDED'
|
||||
'status' => 'SENDED',
|
||||
'ad' => null
|
||||
),
|
||||
array(
|
||||
'uTime' => 'DESC'
|
||||
|
||||
@@ -404,7 +404,7 @@ class AnswerController extends FOSRestController
|
||||
|
||||
<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">Lire le message</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
|
||||
</td></tr></table>
|
||||
<![endif]--></td></tr></tbody></table></div>',
|
||||
$user,
|
||||
|
||||
@@ -17,6 +17,7 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use JMS\Serializer\SerializationContext;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class CompanyController extends FOSRestController
|
||||
{
|
||||
@@ -31,6 +32,297 @@ class CompanyController extends FOSRestController
|
||||
return new JsonResponse($data, 200, [], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getToken", name="api_getToken")
|
||||
* @Rest\View
|
||||
* Récupérer token
|
||||
*/
|
||||
public function getToken(){
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://entreprise.pole-emploi.fr/connexion/oauth2/access_token?realm=/partenaire",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => "grant_type=client_credentials&client_id=PAR_talentstube_35a96821a2f4a981a21a387dd590041617a42cb7755960fe7b6c68e617136b92&client_secret=de3dff58ab5adab6ab265753ed0f7d373ab764aea7c4b2b9de4a7744467503cc&scope=api_romev1%20application_PAR_talentstube_35a96821a2f4a981a21a387dd590041617a42cb7755960fe7b6c68e617136b92%20nomenclatureRome",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Content-Type: application/x-www-form-urlencoded",
|
||||
|
||||
),
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
|
||||
$json = new JsonResponse($response, 200, [], true);
|
||||
// echo "tes14";
|
||||
$obj= json_decode ( $response);
|
||||
// var_dump($obj);
|
||||
// echo "<br>!!<br>";
|
||||
// echo($obj->access_token);
|
||||
return $obj->access_token;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getCompetences", name="api_getCompetences")
|
||||
* @Rest\View
|
||||
* Récupérer des compétences à partir d'un libellé
|
||||
*/
|
||||
public function getCompetencesAction(Request $request)
|
||||
{
|
||||
//APPEL de l'api Pole emploi pour recuperer Token
|
||||
$q=$request->query->get('q');
|
||||
//echo "requete".$q;
|
||||
$token = $this->getToken();
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://api.emploi-store.fr/partenaire/rome/v1/competence?q=".$q,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer " . $token ,
|
||||
),
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
return new JsonResponse($response, 200, [], true);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getAppelationsMetier", name="api_getAppelationsMetier")
|
||||
* @Rest\View
|
||||
* Récupérer des appelations à partir d'un métier (code ROME)
|
||||
*/
|
||||
public function getAppelationsMetierAction(Request $request)
|
||||
{
|
||||
//APPEL de l'api Pole emploi pour recuperer Token
|
||||
$q=$request->query->get('q');
|
||||
//echo "requete".$q;
|
||||
$token = $this->getToken();
|
||||
$response =null;
|
||||
if($q){
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Accept : application/json',
|
||||
'Authorization: Bearer ' . $token
|
||||
));
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://api.emploi-store.fr/partenaire/rome/v1/metier/".$q."/appellation",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer " . $token ,
|
||||
),
|
||||
));
|
||||
|
||||
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
if (!$err)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
curl_close($curl);
|
||||
|
||||
}
|
||||
|
||||
return new JsonResponse($response, 200, [], true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getAppelationsLibelle", name="api_getAppelationsLibelle")
|
||||
* @Rest\View
|
||||
* Récupérer des appelations à partir d'un libellé
|
||||
*/
|
||||
public function getAppelationsLibelleAction(Request $request)
|
||||
{
|
||||
//APPEL de l'api Pole emploi pour recuperer Token
|
||||
$q=$request->query->get('q');
|
||||
//echo "requete".$q;
|
||||
$token = $this->getToken();
|
||||
$response =null;
|
||||
if($q){
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Accept : application/json',
|
||||
'Authorization: Bearer ' . $token
|
||||
));
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://api.emploi-store.fr/partenaire/rome/v1/appellation?q=".$q,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer " . $token ,
|
||||
),
|
||||
));
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
if (!$err)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
curl_close($curl);
|
||||
|
||||
}
|
||||
|
||||
return new JsonResponse($response, 200, [], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getDetailAppelation", name="api_getDetailAppelation")
|
||||
* @Rest\View
|
||||
* Récupérer le détail d'une appelation
|
||||
*/
|
||||
public function getDetailAppelationAction(Request $request)
|
||||
{
|
||||
//APPEL de l'api Pole emploi pour recuperer Token
|
||||
$q=$request->query->get('q');
|
||||
//echo "requete".$q;
|
||||
$token = $this->getToken();
|
||||
$response =null;
|
||||
if($q){
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Accept : application/json',
|
||||
'Authorization: Bearer ' . $token
|
||||
));
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://api.emploi-store.fr/partenaire/rome/v1/appellation/".$q,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer " . $token ,
|
||||
),
|
||||
));
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
if (!$err)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
curl_close($curl);
|
||||
|
||||
}
|
||||
|
||||
return new JsonResponse($response, 200, [], true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Rest\Get(path="/api/getMetiers", name="api_getMetiers")
|
||||
* @Rest\View
|
||||
*/
|
||||
public function getMetiersAction(Request $request)
|
||||
{
|
||||
//APPEL de l'api Pole emploi pour recuperer Token
|
||||
$q=$request->query->get('q');
|
||||
//echo "requete".$q;
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://entreprise.pole-emploi.fr/connexion/oauth2/access_token",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 30,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_POSTFIELDS => "realm=/partenaire&grant_type=client_credentials&client_id=PAR_talentstube_35a96821a2f4a981a21a387dd590041617a42cb7755960fe7b6c68e617136b92&client_secret=de3dff58ab5adab6ab265753ed0f7d373ab764aea7c4b2b9de4a7744467503cc&scope=api_romev1 application_PAR_talentstube_35a96821a2f4a981a21a387dd590041617a42cb7755960fe7b6c68e617136b92 nomenclatureRome",
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"cache-control: no-cache",
|
||||
"content-type: application/x-www-form-urlencoded"
|
||||
),
|
||||
));
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
|
||||
curl_close($curl);
|
||||
$token = "";
|
||||
if (!$err)
|
||||
{
|
||||
|
||||
$obj = json_decode($response);
|
||||
$token = $obj->access_token;
|
||||
// echo $token;
|
||||
}
|
||||
$response =null;
|
||||
if($q){
|
||||
$curl = curl_init();
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Content-Type: application/json',
|
||||
'Authorization: Bearer ' . $token
|
||||
));
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => "https://api.emploi-store.fr/partenaire/rome/v1/competence?q=".$q,
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => "",
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 30,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => "GET",
|
||||
|
||||
|
||||
));
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
if (!$err)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
curl_close($curl);
|
||||
|
||||
}
|
||||
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
|
||||
$data = json_encode($arr);
|
||||
return new JsonResponse($response, 200, [], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Rest\Get("/api/companies", name="api_company_list")
|
||||
* @Rest\QueryParam(
|
||||
|
||||
@@ -165,6 +165,7 @@ class CompanyController extends Controller
|
||||
$userManager = $this->get('fos_user.user_manager');
|
||||
$form = $this->createForm(UserTypeCreate::class, $user);
|
||||
$form->handleRequest($request);
|
||||
$error="";
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
|
||||
$user->setFirstname($form["firstname"]->getData());
|
||||
@@ -174,65 +175,78 @@ class CompanyController extends Controller
|
||||
$user->setCompany($company);
|
||||
$user->setEnabled(true);
|
||||
$user->setRoles(array('ROLE_COMPANY'));
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
//TRY catche
|
||||
try {
|
||||
//verifier si un user n'existe pas avec le meme mail
|
||||
|
||||
$verifUser = $em->getRepository('AppBundle:User')->findBy(array('email' => $form["email"]->getData()));
|
||||
if(!$verifUser){
|
||||
$userManager->updateUser($user);
|
||||
//US 422 : Envoi d'email
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_already_send', false);
|
||||
// $mailManager = $this->get('app.mail_manager');
|
||||
|
||||
// $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="" 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>
|
||||
|
||||
$userManager->updateUser($user);
|
||||
//US 422 : Envoi d'email
|
||||
$session = new Session();
|
||||
$session->getFlashBag()->add('popup_answer_already_send', false);
|
||||
// $mailManager = $this->get('app.mail_manager');
|
||||
|
||||
// $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="" 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 ,</p>
|
||||
// <p>Le talent a répondu à votre annonce .</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;"><!--[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 ,</p>
|
||||
// <p>Le talent a répondu à votre annonce .</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="" 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'
|
||||
// );
|
||||
$message=$company->getBrandName()." vous invite à rejoindre la plateforme de recrutement vidéo Talents Tube.<br/>
|
||||
|
||||
// <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="" 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'
|
||||
// );
|
||||
$message=$company->getBrandName()." vous invite à rejoindre la plateforme de recrutement vidéo Talents Tube.<br/>
|
||||
|
||||
Votre identifiant : ".$user->getEmail()."<br/>
|
||||
Votre mot de passe : ".$form["password"]->getData()."<br/>
|
||||
(Vous pourrez réinitialiser votre mot de passe en cliquant <a href='https://recruteur.talentstube.com/resetting/request' target='_blank'>**ici**</a><br/>
|
||||
<br/>
|
||||
<a href='https://recruteur.talentstube.com' target='_blank'>[Rejoindre l'équipe]</a> <br/>";
|
||||
$plainView = $this->renderView('email/contact_default.html.twig', array(
|
||||
'message' => $message,
|
||||
'type' => 'html'
|
||||
));
|
||||
$body ="";
|
||||
$email = \Swift_Message::newInstance()
|
||||
->setSubject("Rejoignez l'équipe ".$company->getBrandName()." sur Talents Tube." )
|
||||
->setFrom($this->getParameter('mailer_user'))
|
||||
->setReplyTo($this->getParameter('mailer_user'))
|
||||
->setTo($user->getEmail())
|
||||
->setBody($plainView, 'text/html')
|
||||
// ->addPart($plainView, 'text/plain')
|
||||
;
|
||||
$retour = $this->get('mailer')->send($email);
|
||||
//var_dump($mailManager);
|
||||
dump($email);
|
||||
Votre identifiant : ".$user->getEmail()."<br/>
|
||||
Votre mot de passe : ".$form["password"]->getData()."<br/>
|
||||
(Vous pourrez réinitialiser votre mot de passe en cliquant <a href='https://recruteur.talentstube.com/resetting/request' target='_blank'>**ici**</a><br/>
|
||||
<br/>
|
||||
<a href='https://recruteur.talentstube.com' target='_blank'>[Rejoindre l'équipe]</a> <br/>";
|
||||
$plainView = $this->renderView('email/contact_default.html.twig', array(
|
||||
'message' => $message,
|
||||
'type' => 'html'
|
||||
));
|
||||
$body ="";
|
||||
$email = \Swift_Message::newInstance()
|
||||
->setSubject("Rejoignez l'équipe ".$company->getBrandName()." sur Talents Tube." )
|
||||
->setFrom($this->getParameter('mailer_user'))
|
||||
->setReplyTo($this->getParameter('mailer_user'))
|
||||
->setTo($user->getEmail())
|
||||
->setBody($plainView, 'text/html')
|
||||
// ->addPart($plainView, 'text/plain')
|
||||
;
|
||||
$retour = $this->get('mailer')->send($email);
|
||||
//var_dump($mailManager);
|
||||
return $this->redirectToRoute('users');
|
||||
}else{
|
||||
|
||||
$error = "Un utilisateur existe déjà avec ce mail";
|
||||
}
|
||||
|
||||
dump($retour);
|
||||
//return $this->redirectToRoute('users');
|
||||
} catch (PDOException $pdoE) {
|
||||
|
||||
throw new PDOException("factoryCamps::update: ".$pdoE -> getMessage());
|
||||
}
|
||||
}
|
||||
return $this->render('company/user_create.html.twig', array(
|
||||
'form' => $form->createView(),
|
||||
'error' => $error
|
||||
));
|
||||
}
|
||||
|
||||
@@ -362,4 +376,4 @@ class CompanyController extends Controller
|
||||
'companyAds' => $companyAds,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,6 +110,38 @@ class Ad
|
||||
*/
|
||||
private $beneficiaire;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="appellationId", type="integer", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $appellationId;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="appellationLibelle", type="text", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $appellationLibelle;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="codeRome", type="text", nullable=true)
|
||||
*
|
||||
*/
|
||||
private $codeRome;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*
|
||||
* @ORM\Column(name="competences", type="json_document", nullable=true, options={"jsonb":true})
|
||||
*
|
||||
*/
|
||||
private $competences;
|
||||
|
||||
/**
|
||||
* @var \DateTime
|
||||
*
|
||||
@@ -117,6 +149,7 @@ class Ad
|
||||
* @Groups({"ad_detail", "answer_detail"})
|
||||
* @Assert\GreaterThanOrEqual("today", groups={"dates"})
|
||||
*/
|
||||
|
||||
private $publishedAt;
|
||||
|
||||
/**
|
||||
@@ -381,7 +414,7 @@ class Ad
|
||||
*
|
||||
* Search temps type in the extra field
|
||||
*/
|
||||
public function getTempstType()
|
||||
public function getTempsType()
|
||||
{
|
||||
$temps_type = null;
|
||||
$extra = $this->extra;
|
||||
@@ -394,6 +427,24 @@ class Ad
|
||||
return $temps_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|null
|
||||
* US 295 : mise en place du champ télétravail
|
||||
* Search teletravail in the extra field
|
||||
*/
|
||||
public function getTeletravail()
|
||||
{
|
||||
$teletravail = null;
|
||||
$extra = $this->extra;
|
||||
if ($extra) {
|
||||
if (array_key_exists('teletravail', $extra)) {
|
||||
$teletravail = $extra['teletravail'];
|
||||
}
|
||||
}
|
||||
|
||||
return $teletravail;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|null
|
||||
*
|
||||
@@ -665,6 +716,78 @@ class Ad
|
||||
return $this->beneficiaire;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set appellationId.
|
||||
*
|
||||
* @param int|null $appellationId
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setAppellationId($appellationId = null)
|
||||
{
|
||||
$this->appellationId = $appellationId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get appellationId.
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getAppellationId()
|
||||
{
|
||||
return $this->appellationId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set appellationLibelle.
|
||||
*
|
||||
* @param string|null $appellationLibelle
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setAppellationLibelle($appellationLibelle = null)
|
||||
{
|
||||
$this->appellationLibelle = $appellationLibelle;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get appellationLibelle.
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getAppellationLibelle()
|
||||
{
|
||||
return $this->AppellationLibelle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set codeRome.
|
||||
*
|
||||
* @param string|null $codeRome
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setCodeRome($codeRome = null)
|
||||
{
|
||||
$this->codeRome = $codeRome;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get codeRome.
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getCodeRome()
|
||||
{
|
||||
return $this->codeRome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set publishedAt.
|
||||
*
|
||||
@@ -857,6 +980,31 @@ class Ad
|
||||
return $this->extra;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set competences.
|
||||
*
|
||||
* @param json_document|null $competences
|
||||
*
|
||||
* @return Ad
|
||||
*/
|
||||
public function setCompetences($competences = null)
|
||||
{
|
||||
$this->competences = $competences;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get competences.
|
||||
*
|
||||
* @return json_document|null
|
||||
*/
|
||||
public function getCompetences()
|
||||
{
|
||||
return $this->competences;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set location.
|
||||
*
|
||||
|
||||
@@ -21,6 +21,8 @@ class AdSoftType extends AbstractType
|
||||
}
|
||||
$contract_type = "";
|
||||
$temps_type = "";
|
||||
// US 488 : mise en place Télétravail
|
||||
$teletravail="";
|
||||
$extra = $options['data']->getExtra();
|
||||
if ($extra != null) {
|
||||
if(is_array($extra)){
|
||||
@@ -28,6 +30,10 @@ class AdSoftType extends AbstractType
|
||||
if (array_key_exists("temps_type",$extra)){
|
||||
$temps_type = $extra['temps_type'];
|
||||
}
|
||||
// US 488 : mise en place Télétravail
|
||||
if (array_key_exists("teletravail",$extra)){
|
||||
$teletravail = $extra['teletravail'];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -92,7 +98,7 @@ class AdSoftType extends AbstractType
|
||||
))
|
||||
->add('temps_type', ChoiceType::class, array(
|
||||
'mapped' => false,
|
||||
'label' => 'Type d emploi',
|
||||
'label' => 'Type d\'emploi',
|
||||
'data' => $temps_type,
|
||||
'choices' => array(
|
||||
'Temps plein ' => 'FULL_TIME',
|
||||
@@ -104,6 +110,21 @@ class AdSoftType extends AbstractType
|
||||
|
||||
)
|
||||
))
|
||||
->add('teletravail', ChoiceType::class, array(
|
||||
'mapped' => false,
|
||||
'label' => 'Possibilité de faire du Télétravail?',
|
||||
'data' => $teletravail,
|
||||
'choices' => array(
|
||||
'Occasionnel ' => 'tele_occassionel',
|
||||
'Partiel ' => 'tele_partiel',
|
||||
'Total' => 'tele_total',
|
||||
'Non' => 'tele_non',
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'cs-select cs-skin-slide',
|
||||
|
||||
)
|
||||
))
|
||||
->add('status', ChoiceType::class, array(
|
||||
'label' =>'Statut',
|
||||
'choices' => array(
|
||||
|
||||
@@ -21,11 +21,22 @@ class AdType extends AbstractType
|
||||
}
|
||||
$contract_type = "";
|
||||
$temps_type = "";
|
||||
// * US 295 : mise en place du champ télétravail
|
||||
$teletravail="";
|
||||
$extra = $options['data']->getExtra();
|
||||
if ($extra != null) {
|
||||
if(is_array($extra)){
|
||||
$contract_type = $extra['contract_type'];
|
||||
$temps_type = $extra['temps_type'];
|
||||
|
||||
if (array_key_exists("contract_type",$extra)){
|
||||
$contract_type = $extra['contract_type'];
|
||||
}
|
||||
if (array_key_exists("temps_type",$extra)){
|
||||
$temps_type = $extra['temps_type'];
|
||||
}
|
||||
// * US 295 : mise en place du champ télétravail
|
||||
if (array_key_exists("teletravail",$extra)){
|
||||
$teletravail = $extra['teletravail'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +59,7 @@ class AdType extends AbstractType
|
||||
)
|
||||
))
|
||||
->add('title', TextType::class, array(
|
||||
'label' => 'Titre de l\'annonce',
|
||||
'label' => 'Intitulé du poste',
|
||||
'attr' => array(
|
||||
'placeholder' => 'Indiquer un titre',
|
||||
'class' => 'form-control'
|
||||
@@ -101,7 +112,7 @@ class AdType extends AbstractType
|
||||
))
|
||||
->add('temps_type', ChoiceType::class, array(
|
||||
'mapped' => false,
|
||||
'label' => 'Type d emploi',
|
||||
'label' => 'Type d\'emploi',
|
||||
'data' => $temps_type,
|
||||
'choices' => array(
|
||||
'Temps plein ' => 'FULL_TIME',
|
||||
@@ -113,6 +124,20 @@ class AdType extends AbstractType
|
||||
|
||||
)
|
||||
))
|
||||
->add('teletravail', ChoiceType::class, array(
|
||||
'mapped' => false,
|
||||
'label' => 'Télétravail',
|
||||
'data' => $teletravail,
|
||||
'choices' => array(
|
||||
'Occasionnel ' => 'tele_occassionel',
|
||||
'Partiel ' => 'tele_partiel',
|
||||
'Total' => 'tele_total',
|
||||
'Non' => 'tele_non',
|
||||
),
|
||||
'attr' => array(
|
||||
'class' => 'cs-select cs-skin-slide',
|
||||
)
|
||||
))
|
||||
->add('publicTag', TextType::class, array(
|
||||
'label' => 'profile.company.tags',
|
||||
'data' => $publicTags,
|
||||
|
||||
@@ -39,7 +39,7 @@ class AdType extends AbstractType
|
||||
)
|
||||
))
|
||||
->add('title', TextType::class, array(
|
||||
'label' => 'Titre de l\'annonce',
|
||||
'label' => 'Intitulé du poste',
|
||||
'attr' => array(
|
||||
'placeholder' => 'Indiquer un titre',
|
||||
'class' => 'form-control'
|
||||
|
||||
@@ -50,7 +50,7 @@ class AnswerRepository extends AbstractRepository
|
||||
// Rechercher si le user a postulé dans l'heure a une annonce donnée
|
||||
public function findExistAdAnswer($user, $addId)
|
||||
{
|
||||
$hier = date('Y-m-d', time() - 3600 * 1);
|
||||
$hier = date('Y-m-d H:i:s', time() - 3600 * 1);
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select(['a','ad'])
|
||||
@@ -73,7 +73,7 @@ class AnswerRepository extends AbstractRepository
|
||||
// Rechercher si le user a postuler dans l'heure a une annonce d'une entreprise donnée
|
||||
public function findExistEntrepriseAnswer($user, $entrepriseId)
|
||||
{
|
||||
$hier = date('Y-m-d', time() - 3600 * 1);
|
||||
$hier = date('Y-m-d H:i:s', time() - 3600 * 1);
|
||||
$qb = $this
|
||||
->createQueryBuilder('a')
|
||||
->select(['a','c'])
|
||||
|
||||
Reference in New Issue
Block a user