Compare commits

...

5 Commits

Author SHA1 Message Date
llaniau 7a54bbe673 Probleme de chemin pre prod 2021-02-23 16:37:48 +01:00
llaniau 47043ac6bc statut Answer 2021-02-23 16:06:20 +01:00
llaniau f094ee739e Candidature - note 2021-02-23 15:56:01 +01:00
llaniau bad5ad0d1c Candidature V1 2021-02-23 14:44:48 +01:00
llaniau 8701a4beb9 retour de recette et marque employeur 2021-02-22 18:01:50 +01:00
24 changed files with 956 additions and 339 deletions
@@ -103,8 +103,144 @@ Au plaisir d’échanger avec vous,
</div>
</div> #}
<div class="col-xl-12">
<div class="card card-borderless col-xl-12 col-sm-12 p-b-20">
<div class="row profil-candidature">
<div class="col-xl-6 col-md-12 p-t-10">
<h5>{{ ad.title }}</h5>
<h6>Publiée le {{ ad.publishedAt|date("d/m/Y") }}</h6>
</div>
<div class="col-xl-6 col-md-12 p-t-20 text-right">
<button type="button" class="btn btn-primary" disabled data-toggle="modal"
data-target="#partageModal" id="partageCandidats">
<a href="#" class="btn btn-primary" data-toggle="tooltip"
title="Cochez une ou plusieurs candidatures avant de pouvoir les partager.">Partager les
candidatures</a>
</button>
<!--<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">delete</span>
<span class="">Clôturer</span>
</button>-->
<a href="{{ path('company_ad_soft_edit', { 'id': ad.id }) }}" >
<button type="button" aria-label="" class="btn btn-default btn-lg m-b-10">
<span class="material-icons fs-16 m-r-5">create</span>
<span class="">Éditer l'offre</span>
</button>
</a>
</div>
</div>
<div id="reponses" class="table-responsive m-t-20">
<table class="table table-hover" id="basicTable">
<thead>
<tr>
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width: 1%;"></th>
<th style="width: 10%;">Vidéo</th>
<th style="width: 20%;">Nom prénom</th>
<th style="width: 15%;">Date de reception </th>
<th style="width: 20%;">Localisation </th>
<th style="width: 20%;">Statut</th>
<th class="width: 5%;">Actions</th>
<div class="row bg-bordered p-20">
</tr>
</thead>
<tbody>
{% for answer in answers %}
<tr>
<td>
<input type="checkbox" id="answer_{{answer.id}}" name="answers" class="nav-trigger"
onChange="verifierIsChecked({{answer.id}})" {% if answer.isShared %} checked
{% endif %} />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
</td>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">
{% if answer.video.thumbnails.0 is defined %}
{% set img = answer.video.thumbnails.0.sizes.1.link %}
{% else %}
{% set img = " " %}
{% endif %}
<img src="{{ img }}">
</a>
</td>
<td>
<a href="{{ path('company_answer_show',{'id':answer.id }) }}">{{ answer.user.lastname }}
{{ answer.user.firstname }}</a>
</td>
<td>
{{ answer.sendTime()|date('d/m/Y') }}
</td>
<td>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</td>
<td>
{% if answer.statusReponse =="EMBAUCHE" %}
<span class="label label-success">Embauché</span>
{% elseif answer.statusReponse =="REFUSE"%}
<span class="label label-important">Refusé</span>
{% elseif answer.statusReponse =="ENTRETIEN"%}
<span class="label label-warning">Entretien programmé</span>
{% elseif answer.statusReponse =="A_TRAITER"%}
<span class="label label-info">À traiter</span>
{% else %}
<span class="label">Contacté</span>
{% endif %}
</td>
<td class="v-align-middle">
<a title="{{ad.title}}" href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="pg-icon">eye</i>
</a>
{# <a href="#" class="note-action c-pointer" data-func="add"
data-answer="{{ answer.id }}">
<i class="pg-icon">note</i>
</a> #}
{# {% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="pg-icon">comment</i>
</a>
{% endfor %} #}
</td>
</tr>
{% endfor %}
{% if answers|length == 0 %}
<tr>
<th colspan="7" class="text-center">Aucune candidature pour le moment</th>
</tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
{# <div class="row bg-bordered p-20">
@@ -213,7 +349,7 @@ Au plaisir d’échanger avec vous,
</div>
<!-- END CONTAINER FLUID -->
</div>
</div> #}
<div id="note-modal"></div>
@@ -326,20 +326,7 @@
{{ form_end(form) }}
</div>
<div class="tab-pane slide-left padding-20 sm-no-padding disabled" id="tab2">
<div class="row row-same-height">
<div class="col-md-5 b-r b-dashed b-grey ">
<div class="padding-30 sm-padding-5 sm-m-t-15 m-t-50">
</div>
</div>
<div class="col-md-7">
<div class="padding-30 sm-padding-5">
</div>
</div>
</div>
</div>
@@ -324,20 +324,7 @@
{{ form_end(form) }}
</div>
<div class="tab-pane slide-left padding-20 sm-no-padding disabled" id="tab2">
<div class="row row-same-height">
<div class="col-md-5 b-r b-dashed b-grey ">
<div class="padding-30 sm-padding-5 sm-m-t-15 m-t-50">
</div>
</div>
<div class="col-md-7">
<div class="padding-30 sm-padding-5">
</div>
</div>
</div>
</div>
@@ -59,15 +59,7 @@
href="{{ path('company_answer_show',{'id':answer.id }) }}">
<i class="pg-icon">eye</i>
</a>
<a href="#" class="note-action c-pointer" data-func="add" data-answer="{{ answer.id }}">
<i class="pg-icon">note</i>
</a>
{% for note in answer.notes %}
<a class="tooltipped note-action c-pointer" data-position="top" data-delay="50"
data-tooltip="{{ note.content }}" data-note="{{ note.id }}" data-func="edit">
<i class="pg-icon">comment</i>
</a>
{% endfor %}
</td>
</tr>
{% endfor %}
@@ -19,9 +19,11 @@
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/entreprise/me/">Accueil</a></li>
<li class="breadcrumb-item "><a href="{{ path('company_answer_list') }}">Candidatures</a></li>
<li class="breadcrumb-item"><a
href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
<li class="breadcrumb-item">
{% if answer.ad%}
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}
</a>
{% endif %}
</li>
<li class="breadcrumb-item active"><a href="#"> candidat {{ answer.user.firstname }}
{{ answer.user.lastname }}</a>
@@ -34,50 +36,125 @@
</div>
</div>
<!-- END JUMBOTRON -->
<div class="col-lg-12">
<div class="card card-borderless">
<ul class="nav nav-tabs nav-tabs-simple" role="tablist" data-init-reponsive-tabs="dropdownfx">
<li class="nav-item">
<a class="active" data-toggle="tab" role="tab" data-target="#candidature" href="#"
id="candidatureLien">Candidature</a>
</li>
<li class="nav-item">
<a href="#" data-toggle="tab" role="tab" data-target="#messagerieVideo"
id="messagerieVideoLien">Messagerie vidéo</a>
</li>
<li class="nav-item">
<a href="#" data-toggle="tab" role="tab" data-target="#messagerie"
id="messagerieLien">Messagerie
texte</a>
</li>
{# <li class="nav-item">
<a href="#" data-toggle="tab" role="tab" data-target="#comment" id="commentLien">Commentaire</a>
</li> #}
</ul>
</div>
<div class="tab-content">
<!-- ========== bloc candidature ========== -->
{% include 'company/answer_show_candidature.html.twig' %}
<!-- ========== bloc message video ========== -->
{% include 'company/answer_show_message_video.html.twig' %}
<!-- ========== bloc message texte ========== -->
{% include 'company/answer_show_message_texte.html.twig' %}
<!-- ========== bloc commentaire ========== -->
{# {% include 'company/answer_show_comment.html.twig' %} #}
<div class="row">
<div class="col-xl-12">
<div class="card-body">
<div class="col-xl-10 col-sm-12">
{% if answer.ad%}
<h5> <a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}</a></h5>
{% endif %}
<h6>Candidature reçue le {{ answer.cTime|date('d/m/Y') }}</h6>
</div>
</div>
</div>
</div>
<div class="col-xl-12 ">
<div class="card card-borderless col-xl-12 col-sm-12">
<div class="row profil-candidature">
<div class="col-xl-8 col-md-12 p-t-10">
<h4 class="bold">{{ answer.user.firstname }} {{ answer.user.lastname }}</h4>
<p><i class="material-icons fs-16 tab-icon icons-candidatures">home</i>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</p>
<i class="material-icons fs-16 tab-icon icons-candidatures">phone</i><span id="telBouton"
class="visible"><a href="#" onClick="afficherNumero()">Afficher le numéro de
téléphone</a></span>{% if answer.user.company.extra["phoneTalent"] is defined %} <span
id="telSpan" class="invisible">Tel : {{ answer.user.company.extra["phoneTalent"] }}<span>
{% endif %}
</div>
<div class="col-xl-4 col-md-12 profil-candidature-action">
<div class="dropdown candidature-action">
<button class="btn btn-primary btn-lg dropdown-toggle" type="button" id="dropdownMenu2"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span id="libelleBouton">
{% if answer.statusReponse =='CONTACTE' %}
Contacté
{% elseif answer.statusReponse =='REFUSE' %}
Refusé
{% elseif answer.statusReponse =='EMBAUCHE' %}
Embauché
{% elseif answer.statusReponse =='ENTRETIEN' %}
Entretien programmé
{% elseif answer.statusReponse =='A_TRAITER' %}
À traiter
{% endif %}
</span>
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item" type="button" onClick="changerStatutAnswer('A_TRAITER', 'A traiter')">A traiter</button>
<button class="dropdown-item" type="button"
onClick="changerStatutAnswer('CONTACTE', 'Contacté')">Contacté</button>
<button class="dropdown-item" type="button"
onClick="changerStatutAnswer('REFUSE', 'Refusé')">Refusé</button>
<button class="dropdown-item" type="button" onClick="changerStatutAnswer('ENTRETIEN', 'Entretien programmé')">Entretien programmé</button>
<button class="dropdown-item" type="button"
onClick="changerStatutAnswer('EMBAUCHE', 'Embauché')">Embauché</button>
</div>
</div>
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons">Contacter le candidat</button>
</div>
</div>
<ul class="nav nav-tabs nav-tabs-simple d-none d-md-flex d-lg-flex d-xl-flex" role="tablist"
data-init-reponsive-tabs="dropdownfx">
<li class="nav-item">
<a class="active" data-toggle="tab" role="tab" data-target="#candidature"
href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}" id="candidatureLien">Candidature</a>
</li>
<li class="nav-item">
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}" data-toggle="tab" role="tab"
data-target="#messagerieVideo" id="messagerieVideoLien">Messagerie</a>
</li>
</ul>
<div class="nav-tab-dropdown cs-wrapper full-width d-lg-none d-xl-none d-md-none">
<div class="cs-select cs-skin-slide full-width" tabindex="0"><span class="cs-placeholder">Candidature</span>
<div class="cs-options">
<ul>
<li data-option="" data-value="#candidature"><span>Candidature</span></li>
<li data-option="" data-value="#messagerieVideo"><span>Messagerie vidéo</span></li>
<li data-option="" data-value="#messagerie"><span>Messagerie
texte</span></li>
</ul>
</div><select class="cs-select cs-skin-slide full-width" data-init-plugin="cs-select">
<option value="#candidature" selected="">Candidature</option>
<option value="#messagerieVideo">Messagerie vidéo</option>
<option value="#messagerie">Messagerie
texte</option>
</select>
<div class="cs-backdrop"></div>
</div>
</div>
</div>
<div class="col-xl-12 bg-white details-candidature">
<div class="tab-content">
<!-- ========== bloc candidature ========== -->
{% include 'company/answer_show_candidature.html.twig' %}
<!-- ========== bloc message video ========== -->
{% include 'company/answer_show_message_video.html.twig' %}
<!-- ========== bloc message texte ========== -->
{# {% include 'company/answer_show_message_texte.html.twig' %} #}
<!-- ========== bloc commentaire ========== -->
{# {% include 'company/answer_show_comment.html.twig' %} #}
</div>
</div>
</div>
@@ -105,6 +182,46 @@
<script src="{{ asset('/js/demo.js') }}"></script>
<script src="{{ asset('/js/scripts.js') }}"></script>
<script type="text/javascript">
function changerStatutAnswer(item, valeurBouton) {
console.log(item);
console.log({{answer.id}});
$("#libelleBouton").text(valeurBouton);
$.ajax({
//L'URL de la requête
url: "/app_dev.php/anwser/updateStatus/{{answer.id}}",
//url: '{{ path("anwser_share", {"id":'+id+'}) }}',
//La méthode d'envoi (type de requête)
method: "GET",
data: 'status=' + item,
//Le format de réponse attendu
dataType: "json",
})
//Ce code sera exécuté en cas de succès - La réponse du serveur est passée à done()
/*On peut par exemple convertir cette réponse en chaine JSON et insérer
* cette chaine dans un div id="res"*/
.done(function (response) {
console.log("La requête s'est terminée avec succes. Infos : " + JSON.stringify(response));
})
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
//On peut afficher les informations relatives à la requête et à l'erreur
.fail(function (error) {
console.log("La requête s'est terminée en échec. Infos : " + JSON.stringify(error));
})
//Ce code sera exécuté que la requête soit un succès ou un échec
.always(function () {
console.log("Requête effectuée");
});
}
function afficherNumero() {
$("#telBouton").hide();
$("#telSpan").removeClass("invisible").addClass("visible");
}
$(".card-action").click(function () {
var idVideo = $(this).data("id");
var titleVideo = $(this).data("title");
@@ -1,4 +1,96 @@
<!-- ========== bloc candidature ========== -->
<div class="tab-pane active" id="candidature">
<div class="row ">
<div class="col-xl-7 col-lg-6">
<!-- START card -->
<div class="full-height">
<div class="card-body">
<h5><i class="material-icons fs-18 tab-icon icons-candidatures">videocam</i>Candidature vidéo</h5>
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="300px" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
<div class="card-body row">
<div class="col-8">
<h5><i class="material-icons fs-18 tab-icon icons-candidatures">text_snippet</i>Curriculum vitae
</h5>
</div>
<div class="col-4">
<a href="/uploads/cv/{{ answer.user.company.cv }}" target="_blank">
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons m-b-10">Télécharger
le CV</button>
</a>
</div>
{% if extension=="doc" or extension=="docx" %}
<iframe width="100%" height="600"
src="http://docs.google.com/gview?url=https://www.recruteur.talentstube.com/uploads/cv/{{ answer.user.company.cv }}"></iframe>
{% else %}
<iframe width="100%" height="600"
src="/uploads/cv/{{ answer.user.company.cv }}"></iframe>
{% endif %}
<!--<iframe width="100%" height="600" src="http://docs.google.com/gview?url=http://qualite-en-recherche.cnrs.fr/IMG/doc/pr-m1-09-ressources_humaines-30-1.doc&embedded=true"></iframe>-->
</div>
</div>
<!-- END card -->
</div>
<div class="col-xl-5 col-lg-6">
<!-- START card -->
<div class="card-body">
{{ form_start(formNote) }}
<div class="form-group">
<i class="material-icons fs-18 tab-icon icons-candidatures">comment</i><label for="">
<h5>Commentaires</h5>
</label>
{# <textarea class="form-control" id="exampleFormControlTextarea1"
placeholder="Ce commentaire sera visible uniquement par vous et les autres utilisateurs de lespace recruteur."
rows="5"></textarea> #}
{{ form_widget(formNote.content) }}
</div>
<button class="btn btn btn-lg btn-outline-primary" type="submit">Valider le commentaire</button>
{{ form_end(formNote) }}
{% for note in answer.notes %}
<div class="card card-body">
<h6 class="card-title">{{ note.author.firstname }} {{ note.author.lastname }}</h6>
<p class="card-text">{{ note.content }}</p>
</div>
{% endfor %}
</div>
<!-- === Début : Bloc aide - À garder pour la prochaine v2
<div class="card-body">
<div class="form-group">
<i class="material-icons fs-18 tab-icon icons-candidatures">help_center</i><label for="">
<h5>Besoin d'aide</h5>
</label>
</div>
<div class="lien-aide">
<a href="">Comment répondre aux candidats en vidéo ?</a>
</div>
<div class="lien-aide">
<a href="">Comment contacter un candidat ?</a>
</div>
</div>-->
<!-- === Début : Bloc aide - À garder pour la prochaine v2-->
</div>
<!-- END card -->
</div>
</div>
<!-- ========== bloc message texte + video ========== -->
{#
<div class="tab-pane active" id="">
<div class="row ">
<div class="col-xl-7 col-lg-6 bg-white">
<!-- START card -->
@@ -16,8 +108,9 @@
<div class="card card-transparent">
<div class="card-header ">
<div class="card-title">
{% if answer.ad%}
<a href="{{ path('company_ad_answer_list',{'id':answer.ad.id}) }}">{{ answer.ad.title }}</a>
{% endif %}
</div>
</div>
<div class="card-body">
@@ -40,11 +133,12 @@
{{ answer.user.lastname }}
</p>
<p class="small hint-text m-t-5">
{% if answer.user.company %}
{% 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>
<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 %}
{% endif %}
</p>
</div>
</div>
@@ -87,7 +181,7 @@
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width:15%">Objet</th>
<th style="width:15%">Envoyé le</th>
<th style="width:70%">Message</th>
@@ -124,14 +218,16 @@
</tr>
{% endfor %}
{% if answer.messages|length == 0 %}
<tr><th colspan="3" class="text-center">Aucun message pour le moment</th></tr>
<tr>
<th colspan="3" class="text-center">Aucun message pour le moment</th>
</tr>
{% endif %}
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div> #}
@@ -93,7 +93,7 @@
</div> #}
</div>
<div class="form-group form-group-default required">
{{ form_row(form.status) }}
{# {{ form_row(form.status) }} #}
</div>
<div class="form-group required">
{{ form_row(form.message) }}
@@ -1,62 +1,189 @@
<div class="tab-pane fondBlanc" id="messagerieVideo">
<div class="row fondBlanc">
<div class="tab-pane" id="messagerieVideo">
<div class="row">
<div class="col-xl-7 col-lg-6">
<div class="full-height">
<div class="card-body">
<h5><i
class="material-icons fs-18 tab-icon icons-candidatures">message</i>Envoyer
un message au candidat</h5>
{{ form_start(formVideo) }}
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
<div class="form-group form-group-default">
<label class="active">De : </label>
<input name="to" data-role="tagsinput" disabled
class="form-control tagsinput" type="text"
value="{{ app.user.firstname }} {{ app.user.lastname }}" />
</div>
<!-- START ITEM -->
<div class="col-lg-4 fondBlanc">
<div class="card card-default bg-success">
<div class="card-header separator">
<div class="card-title">Réponse vidéo
</div>
</div>
<div class="card-body">
<h3>
<span class="semi-bold">Et si vous répondiez à </span> {{ answer.user.firstname }} {{ answer.user.lastname }} <b>en vidéo</b></h3>
<p>Découvrez <a href="https://blog.talentstube.com/articles-entreprise/comment-faire-une-video-avec-une-webcam/" target="_blank">nos conseils</a> pour réaliser une vidéo de réponse.</p>
</div>
</div>
</div>
<!-- END ITEM -->
<div class="form-group form-group-default" style="min-height:250px;">
<label for="contact_talent_message" class="active">Message</label>
{# <textarea id="contact_talent_message"
name="contact_talent[message]" required="required"
class="form-control"
placeholder="Rédigez un message de réponse"></textarea> #}
{{ form_widget(formVideo.message) }}
</div>
<!--<h6>Et si vous répondiez à [Nom du candidat] en vidéo ?</h6>-->
<p class="m-l-10 bold">Vous pouvez joindre une vidéo de réponse</p>
<p class="m-l-10">Pour une meilleure expérience candidat, motivez les
raisons de votre choix en vidéo.</p>
{% include 'message/message_create_import.twig' %}
<div class="form-group m-t-20" ;>
<button type="submit" aria-label=""
class="btn btn-primary btn-lg disabled">Envoyer le
message</button>
</div>
<div class="m-t-30">
<div class="row fondBlanc">
<h5><i
class="material-icons fs-18 tab-icon icons-candidatures">inbox</i>Historique
des messages envoyés</h5>
</div>
<div class="row fondBlanc">
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover" id="basicTable">
<thead>
<tr>
<!-- NOTE * : Inline Style Width For Table Cell is Required as it may differ from user to user
Comman Practice Followed
-->
<th style="width:20%">Envoyé le</th>
<th style="width:30%">Expéditeur</th>
<th style="width:50%">Message</th>
</tr>
{% if answer.messages %}
{% for message in answer.messages if message.status != "DRAFT" %}
{% set class = '' %}
{% if loop.index > 1 %}
{% set class = 'history-hidden' %}
{% endif %}
<tr>
<td class="v-align-middle">
{{ message.uTime|date('d-m-Y h:m') }}
</td>
<td class="v-align-middle ">
{% if message.sender.company.type =="COMPANY" %}
Recruteur
{% elseif message.sender.company.type =="TALENT" %}
Talent
{% endif %}
</td>
<td class="v-align-middle">
{% if message.video %}
<div
class="embed-responsive embed-responsive-16by9">
<iframe
src="https://player.vimeo.com/video/{{ message.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="100%" height="300"
frameborder="0"
webkitallowfullscreen
mozallowfullscreen
allowfullscreen></iframe>
</div>
{% endif %}
{{ message.content|nl2br }}
</td>
</tr>
{% endfor %}
{% if answer.messages|length == 0 %}
<tr>
<th colspan="3" class="text-center">Aucun
message pour le moment</th>
</tr>
{% endif %}
{% endif %}
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- END COMPOSE EMAIL -->
{{ form_end(formVideo) }}
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fondBlanc" id="">
<div class="row fondBlanc">
<!-- START ITEM -->
<div class="col-lg-4 fondBlanc">
<div class="card card-default bg-success">
<div class="card-header separator">
<div class="card-title">Réponse vidéo
</div>
</div>
<div class="card-body">
<h3>
<span class="semi-bold">Et si vous répondiez à </span> Celia Machin
Auriol <b>en vidéo</b>
</h3>
<p>Découvrez <a
href="https://blog.talentstube.com/articles-entreprise/comment-faire-une-video-avec-une-webcam/"
target="_blank">nos conseils</a> pour réaliser une vidéo de
réponse.</p>
</div>
</div>
</div>
<!-- END ITEM -->
<div class="col-md-12 col-lg-8 col-xlg-8 md-m-t-10">
<!-- START WIDGET widget_weatherWidget-->
<div class="widget-17 card no-border no-margin widget-loader-circle">
<div class="widget-16-header p-r-20 p-l-20 p-t-10 d-flex">
<span class="icon-thumbnail bg-contrast-low pull-left text-color pg-icon">M</span>
<div class="flex-1 full-width overflow-ellipsis">
<p class="hint-text all-caps font-montserrat small no-margin overflow-ellipsis ">
Contacter
</p>
<h6 class="no-margin overflow-ellipsis ">par vidéo</h6>
</div>
</div>
<div class="card-body">
{{ form_start(formVideo) }}
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
<div class="col-md-12 col-lg-8 col-xlg-8 md-m-t-10">
<!-- START WIDGET widget_weatherWidget-->
<div class="widget-17 card no-border no-margin widget-loader-circle">
<div class="widget-16-header p-r-20 p-l-20 p-t-10 d-flex">
<span
class="icon-thumbnail bg-contrast-low pull-left text-color pg-icon">M</span>
<div class="flex-1 full-width overflow-ellipsis">
<p
class="hint-text all-caps font-montserrat small no-margin overflow-ellipsis ">
Contacter
</p>
<h6 class="no-margin overflow-ellipsis ">par vidéo</h6>
</div>
</div>
<div class="card-body">
{{ form_start(formVideo) }}
{{ form_widget(formVideo._token, { 'id': 'token_video' }) }}
{% include 'message/message_create_import.twig' %}
<br />
{{ form_widget(formVideo.status, { 'id': 'contact_talent_status_video' }) }}
{{ form_rest(formVideo) }}
<br />
<div class="bottom-form">
<button type="submit" class="btn btn-default disabled">Envoyer</button>
</div>
{% include 'message/message_create_import.twig' %}
<br />
{# {{ form_widget(formVideo.status, { 'id': 'contact_talent_status_video' }) }} #}
{{ form_rest(formVideo) }}
<br />
<div class="bottom-form">
<button type="submit" class="btn btn-default disabled">Envoyer</button>
</div>
{{ form_end(formVideo) }}
</div>
</div>
<!-- END WIDGET -->
</div>
{{ form_end(formVideo) }}
</div>
</div>
<!-- END WIDGET -->
</div>
</div>
</div>
</div>
</div>
@@ -63,7 +63,7 @@
alt="{{ company.brandname }}"/>
{% else %}
<div class="circle-letters square-letters font-2">{{ company.brandname|first|upper }}</div>
{# <div class="circle-letters square-letters font-2">{{ company.brandname|first|upper }}</div> #}
{% endif %}
@@ -1,7 +1,7 @@
{% block dropzone %}
<div id="dropzone-row" class="row">
<div class="col s12">
<div class="dropzone dz-clickable" id="my-awesome-dropzone">
<div class="dropzone dz-clickable text-center" id="my-awesome-dropzone">
<div id="template-container-dz">
<div id="template" class="file-row">
<div class="dz-preview">
@@ -24,185 +24,200 @@
</div>
</div>
</div>
{% set video = null %}
<div class=" container-fluid container-fixed-lg">
<div class="col-lg-8 bloc-header">
{% set video = null %}
<div class="card card-default container">
<div class="card-body">
<div class="row" style="min-height:10rem;">
<div class="col-8">
<h4 class="header-title" style="font-size:2em;line-height:1.5em;">Vous souhaitez booster vos
recrutements ?</h4>
<p>Ajoutez une vidéo marque employeur pour présenter votre entreprise et attirer de nouveaux
talents.</p>
</div>
<div class="col-4"
style="background-repeat: no-repeat; background-image: url('https://blog.talentstube.com/wp-content/uploads/2021/02/marque-employeur-entreprise.svg');background-size: contain;background-position: center;">
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8">
<div id="addVideo">
<div class="modal-content">
<div class="row">
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
<div class="input-field col s8">
{{ form_rest(form) }}
<div class="card col p-t-20 p-b-15">
<div class="row m-b-20">
<div class="col">
<div class="col">
<h4>Importer une vidéo Marque Employeur</h4>
</div>
</div>
<div class="col s4 right-align">
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</button>
{% set messageTooltiped = "Votre vidéo ne doit pas dépasser les 500Mo.\n
Les formats de vidéo acceptés sont les suivants : .mp4, .mov, .qt, .mkv, .avi, .m4v, .webm." %}
<i class="fa fa-question-circle tooltipped" data-position="top" data-delay="50"
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
</div>
{{ form_end(form) }}
<div class="col s12">
</div>
<div class="row ">
<div class="col ">
{% include 'media/dropzone.html.twig' with {'deleting': 'false'} %}
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8 m-t-50">
{% if app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
<div class="video_premier card z-depth-3">
<div class="card-content">
<h4> Vous souhaitez booster vos recrutements ?</h4>
<p>Ajoutez une vidéo marque employeur pour présenter
votre entreprise et attirer de nouveaux talents.</p>
</div>
</div>
<div class="video_premier card z-depth-3">
<div class="card-image">
{% if app.user.company.presentationVideo %}
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="550" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
{# {% else %}
<div class="no-presentation-video">
<strong>
Vous ne disposez pas de vidéo de présentation !
</strong><br/>
Cliquez sur le bouton ci-dessous pour la sélectionner dans votre bibliothèque.
</div> #}
{% endif %}
</div>
<div class="card-content">
<p>
{# {% if app.user.getCompany().hasCompanyVideo() != true and is_granted('ROLE_COMPANY') %}
{% set storePath = path('company_process_cart_video_corporate') %}
{% set message = "Vous ne disposez pas de l'option présentation vidéo pour votre entreprise, il est nécessaire de vous procurer
l'option sur la boutique talents tube.<br /><br /><a class='btn btn-default' href='"~storePath~"'>boutique Talents Tube</a>" %}
{{ message|raw }}
{% else %} #}
{% if app.user.company.presentationVideo %}
<div><strong><span data-id="{{ media.id }}" class="titleVideo">{{ media.title }}</span></strong>
</div>
{% else %}
{% set label_title_video = "" %}
{% if is_granted('ROLE_COMPANY') %}
{% set label_title_video = "Mon entreprise en vidéo" %}
{% elseif is_granted('ROLE_TALENT') %}
{% set label_title_video = "Mon CV Générique" %}
{% endif %}
<strong>{{ label_title_video }}</strong>
{% endif %}
{# <a class="btn btn-default">
{% if app.user.company.presentationVideo %}
Remplacer ma vidéo marque employeur
{% else %}
Choisir une vidéo marque employeur
{% endif %}
</a> #}
<div class="clearfix"></div>
<div class="">
<strong>
Guide
</strong><br />
Pour choisir votre vidéo marque employeur, cliquer sur le bouton remplacer et choisissez une
vidéo dans la liste ci dessous
</div>
{# {% endif %} #}
</div>
</div>
{% endif %}
</div>
<div class="col-lg-12 m-t-50">
<h4>Gestion de mes vidéos</h4>
{% if medias|length > 0 or is_granted('ROLE_COMPANY') or is_granted('ROLE_TERRITORY')%}
<div class="col-lg-12">
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une vidéo</a>
<a class="btn btn-delete-video btn-round tooltipped red right" href="#!" data-position="top"
data-tooltip="Supprimer des vidéos"><i class="fa fa-trash" aria-hidden="true"></i></a>
</div>
{% endif %}
{% for media in medias %}
{% set classVideo = "" %}
{% if app.user.company.presentationVideo %}
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
{% else %}
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
<div class="col-lg-4">
<div class="card card-video-action z-depth-1">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="230px" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
<div class="card-fog choice-fog">
<div class="card-fog-container">
<a data-id="{{ media.getId() }}"
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
data-position="top" data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
Choisir cette vidéo
</a>
<div class="row">
<div class="col m-t-20">
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
<div class="input-field col">
<div>
{{ form_rest(form) }}
</div>
</div>
<div class="col m-t-20">
<button id="submit" class="btn btn-lg btn-primary disabled"
type="submit">Définir comme vidéo marque employeur</button>
{% set messageTooltiped = "Votre vidéo ne doit pas dépasser les 500Mo.\n
Les formats de vidéo acceptés sont les suivants : .mp4, .mov, .qt, .mkv, .avi, .m4v, .webm." %}
<i class="fa fa-question-circle tooltipped" data-position="top" data-delay="50"
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
</div>
{{ form_end(form) }}
</div>
{% set classFog ="" %}
{% set messageTooltipFog ="" %}
{% if media.getAds().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
{% endif %}
{% if media.getAnswers().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
{% endif %}
<div class="card-fog delete-fog {{ classFog }}">
<div class="card-fog-container">
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
<div class="card-fog-message">
Vous ne pouvez pas supprimer cette vidéo.<br />
<i data-position="top" data-tooltip="{{ messageTooltipFog }}"
class="fa fa-question-circle tooltipped" aria-hidden="true"></i>
</div>
{% if app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
<div class="col video_premier z-depth-3 m-t-30 m-b-30">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
{% if app.user.company.presentationVideo %}
<div><strong><span data-id="{{ media.id }}" class="titleVideo">{{ media.title }}</span></strong>
</div>
{% else %}
<a class="btn btn-default halfway-fab waves-effect waves-light red delete_unattached_media tooltipped"
href="{{ path("delete_unattached_media",{"id" : media.getId()}) }}"
target="_blank">Supprimer</a>
{% set label_title_video = "" %}
{% if is_granted('ROLE_COMPANY') %}
{% set label_title_video = "Mon entreprise en vidéo" %}
{% elseif is_granted('ROLE_TALENT') %}
{% set label_title_video = "Mon CV Générique" %}
{% endif %}
<strong>{{ label_title_video }}</strong>
{% endif %}
{% set media = app.user.company.presentationVideo %}
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="550" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
</div>
</div>
<div class="card-content">
<p>
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
data-position="top" data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
</p>
</div>
{% endif %}
</div>
</div>
</div>
<div class="col-lg-8">
<div class="card card-default card-body">
<div class="card-body">
<h4>Gestion de mes vidéos</h4>
{% set iteration = 0 %}
{% for media in medias %}
{% set classVideo = "" %}
{% if app.user.company.presentationVideo %}
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
{% else %}
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
{% if iteration is divisible by(2) or iteration==0%}
<div class="row p-t-10 p-b-10">
{% endif %}
{% set iteration = iteration+1 %}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
<iframe
src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="230px" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
</div>
<div class="row m-t-10 m-b-10">
<div class="col card-fog choice-fog">
<div class="card-fog-container">
<a data-id="{{ media.getId() }}"
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
data-position="top"
data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
Choisir cette vidéo
</a>
</div>
</div>
{% set classFog ="" %}
{% set messageTooltipFog ="" %}
{% if media.getAds().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
{% endif %}
{% if media.getAnswers().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
{% endif %}
<div class="card-fog delete-fog {{ classFog }}">
<div class="card-fog-container">
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
<div class="card-fog-message">
Vous ne pouvez pas supprimer cette vidéo.<br />
<i data-position="top" data-tooltip="{{ messageTooltipFog }}"
class="fa fa-question-circle tooltipped" aria-hidden="true"></i>
</div>
{% else %}
<a class="btn btn-default halfway-fab waves-effect waves-light red delete_unattached_media tooltipped"
href="{{ path("delete_unattached_media",{"id" : media.getId()}) }}"
target="_blank">Supprimer</a>
{% endif %}
</div>
</div>
{# <div class="card-content">
<p>
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
data-position="top" data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
</p>
</div> #}
</div>
</div>
</div>
{# cas d'un nombre impair de video #}
{% if medias|length == iteration+1%}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
</div>
<div class="row m-t-10 m-b-10">
</div>
</div>
</div>
{% endif %}
{# fermeture de div pour aller à la ligne quand le nombre de video est un multiple de deux et par défaut au début iteration==0 #}
{% if iteration is divisible by(2) or iteration==0 or medias|length == iteration+1%}
</div>
{% endif %}
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
@@ -10,9 +10,9 @@
<div class="input-group">
{{ form_widget(formLogo.file) }}
{{ form_rest(formLogo) }}
<button aria-label="" type="button" class="btn btn-outline-primary btn-lg" onclick="profile_logo_file.click()">Choisir votre logo</button>
{# {{ form_widget(formLogo.file) }} #}
{# {{ form_rest(formLogo) }} #}
<button aria-label="" type="button" class="btn btn-outline-primary btn-lg m-r-10" onclick="profile_logo_file.click()">Choisir votre logo</button>
<button class="btn btn-primary btn-lg" type="submit" id="inputGroupFileAddon04">Valider le logo</button>
</div>
+4 -2
View File
@@ -80,7 +80,7 @@ twig:
globals:
push_public_key: "%push_params.public_key%"
fairlane_cookie_consent: '@fairlane_cookie_consent.twig'
version: '2.7.1'
version: '2.7.2'
@@ -160,7 +160,9 @@ doctrine_mongodb:
liip_imagine :
resolvers :
default :
web_path : ~
web_path:
web_root: %kernel.root_dir%/..'
cache_prefix: media/cache
filter_sets :
cache : ~
profile_thumb :
@@ -4,6 +4,8 @@ namespace AppBundle\Controller;
use AppBundle\Entity\Ad;
use AppBundle\Entity\Answer;
use AppBundle\Entity\Note;
use AppBundle\Form\NoteAjaxType;
use AppBundle\Entity\Company;
use AppBundle\Entity\Message;
use AppBundle\Form\AnswerType;
@@ -48,6 +50,22 @@ class AnswerController extends Controller
return new JsonResponse(array('success' => "true", 'code' => $ad->getCode()));
}
/**
* @Route("/anwser/updateStatus/{id}", name="anwser_update_status")
*/
public function anwserUpdateStatusAction(Request $request, Answer $answer)
{
if ($answer) {
$em = $this->getDoctrine()->getManager();
$answer->setStatusReponse($request->query->get('status'));
$em->persist($answer);
$em->flush();
}
return new JsonResponse(array('success' => "true", 'code' => ""));
}
@@ -416,7 +434,7 @@ class AnswerController extends Controller
$body = [
'FromEmail' => "noreply@talentstube.io",
'FromName' => "Talents tube",
'Subject' => "Découvrez la réponse de lentreprise pour votre candidature",
'Subject' => "Découvrez la réponse de lentreprise pour votre candidature.",
'MJ-TemplateID' =>2196010 ,
'MJ-TemplateLanguage' => true,
'Recipients' => [
@@ -431,8 +449,7 @@ class AnswerController extends Controller
]
];
}
$response = $mj->post(Resources::$Email, ['body' => $body]);
$response->success() && var_dump($response->getData());
@@ -470,20 +487,42 @@ class AnswerController extends Controller
$em = $this->getDoctrine()->getManager();
$message->setSubject('Candidature : ' . $title);
$message->setContent($messageText);
$message->setStatus($form['status']->getData());
$message->setAnswer($answer);
$message->setStatus('CONTACTED');
$em->persist($message);
$em->flush();
$response = $mj->post(Resources::$Email, ['body' => $body]);
$response->success() && var_dump($response->getData());
return $this->redirectToRoute('company_answer_show', ['id' => $answer->getId()]);
}
$formMessage = $form->createView();
$formVideo = $form;
$formVideo->remove('message');
//$formVideo->remove('message');
$note = new Note($user);
$formNote = $this->createForm(NoteAjaxType::class, $note);
$formNote->handleRequest($request);
if ($formNote->isSubmitted() && $formNote->isValid()) {
$answer->addNote($note);
$em->persist($answer);
$em->flush();
$referer = $request->headers->get('referer');
return $this->redirect($referer);
}
$extension="";
if($answer->getUser()->getCompany()->getCv()){
//$fichier = new SplFileInfo($answer->getUser()->getCompany()->getCv());
$fichier = explode(".", $answer->getUser()->getCompany()->getCv());
$extension=$fichier[1];
}
return $this->render('company/answer_show.html.twig', [
'answer' => $answer,
'extension' => $extension,
'form' => $formMessage,
'formVideo' => $formVideo->createView(),
'formNote' => $formNote->createView(),
'type' => $type,
'videos' => $videos,
'message' => $message
@@ -109,6 +109,7 @@ class CompanyController extends Controller
'notice',
$this->get('translator')->trans('company.profile.save.title')
);
return $this->redirectToRoute('company_dashboard');
}
@@ -105,6 +105,14 @@ class Answer
*/
private $vote;
/**
* @var string
*
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true)
*
*/
private $statusReponse;
/**
* @var string
*
@@ -259,6 +267,54 @@ class Answer
return $this->vote;
}
/**
* Set status.
*
* @param int|null $status
*
* @return Answer
*/
public function setStatus($status = null)
{
$this->status = $status;
return $this;
}
/**
* Get status.
*
* @return int|null
*/
public function getStatus()
{
return $this->status;
}
/**
* Set statusReponse.
*
* @param string|null $statusReponse
*
* @return Answer
*/
public function setStatusReponse($statusReponse = null)
{
$this->statusReponse = $statusReponse;
return $this;
}
/**
* Get status.
*
* @return string|null
*/
public function getStatusReponse()
{
return $this->statusReponse;
}
/**
* Set ad.
*
@@ -88,6 +88,7 @@ class User extends BaseUser
* @Groups({"ad_detail", "ad_list", "answer_detail", "company_detail"})
*/
private $geoloc;
private $geolocLocality;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Company", inversedBy="users", cascade={"persist"})
@@ -653,6 +654,18 @@ class User extends BaseUser
return $this->geoloc;
}
/**
* Get geolocLocality.
*
* @return json_document|null
*/
public function getGeolocLocality()
{
$this->geolocLocality=$this->geoloc;
return $this->geolocLocality;
}
/**
* Set facebookId.
*
@@ -16,28 +16,29 @@ class ContactTalentType extends AbstractType
'label' => false,
'required' => true,
'attr' => array(
'placeholder' => 'Rédigez un message de réponse',
'class' => 'form-control'
'placeholder' => 'Rédigez un message de réponse.',
'class' => 'form-control',
'style'=>"min-height:250px;"
)
));
if(!isset($options['data']['subject']) || ($options['data']['subject'] == true)){
$arraySubjects = array(
'Choisir un statut' => null,
'POSITIVE' => 'POSITIVE',
'INFOS' => 'INFOS',
'CONTACTED.RDV' => 'CONTACTED.RDV',
'NEGATIVE' => 'NEGATIVE'
);
$builder
->add('status', ChoiceType::class, array(
'label' => false,
'required' => true,
'choices' => $arraySubjects,
'attr' => array(
'id' => 'test',
'class' => 'form-control'
)
));
}
// if(!isset($options['data']['subject']) || ($options['data']['subject'] == true)){
// $arraySubjects = array(
// 'Choisir un statut' => null,
// 'POSITIVE' => 'POSITIVE',
// 'INFOS' => 'INFOS',
// 'CONTACTED.RDV' => 'CONTACTED.RDV',
// 'NEGATIVE' => 'NEGATIVE'
// );
// $builder
// ->add('status', ChoiceType::class, array(
// 'label' => false,
// 'required' => true,
// 'choices' => $arraySubjects,
// 'attr' => array(
// 'id' => 'test',
// 'class' => 'form-control'
// )
// ));
// }
}
}
@@ -3,7 +3,7 @@ namespace AppBundle\Form;
use AppBundle\Entity\Note;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -11,10 +11,15 @@ class NoteAjaxType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
//
$builder
->add('content', TextType::class, array(
->add('content', TextareaType::class, array(
'label' => 'Note',
'required' => true,
'attr' => array(
'class' => 'form-control',
'rows' =>"5"
)
));
}
@@ -27,8 +27,8 @@ class ProfileLogoType extends AbstractType
'required' => false,
'attr' => array(
'accept' => "image/x-png,image/gif,image/jpeg",
// 'style' => 'display: none;',
'accept' => "image/x-png,image/jpeg",
'style' => 'display: none;',
),
'constraints' => [
new File([
@@ -75,6 +75,7 @@ class StatsManager
}
$date = $record->getCtime();
if(!$date) $date=date('Y-m-d');
$stringDate = $date->format('Y-m-d');
$arrayRecords['company'][$stringDate][$idCompany] = 0;
if (!isset($arrayRecords['ad'][$stringDate][$ad->getId()])) {
@@ -176,6 +177,7 @@ class StatsManager
public function getCompanyDashboard($idCompany, $dateArray)
{
$arrByAd = array();
$stringDate =null;
$arrDatasetsAd = array();
$arrDatasetsCompany = array();
$arrayRecords = array();
@@ -1,5 +1,5 @@
liip_imagine_filter_runtime:
path: /media/cache/resolve/{filter}/rc/{hash}/{path}
path: /media/cache/{filter}/rc/{hash}/{path}
defaults:
_controller: '%liip_imagine.controller.filter_runtime_action%'
methods:
@@ -9,7 +9,7 @@ liip_imagine_filter_runtime:
path: .+
liip_imagine_filter:
path: /media/cache/resolve/{filter}/{path}
path: /media/cache/{filter}/{path}
defaults:
_controller: '%liip_imagine.controller.filter_action%'
methods:
@@ -13,7 +13,7 @@
}
.green {
background-color: green;
background-color: #21c87a;
}
@@ -209,4 +209,45 @@ Créer une offre d'emploi vidéo / Gérer mes offres d'emploi / Gérer mes candi
.fleche-stats {
color: #1689fb;
text-align: right;
}
/******** Pages de liste de candidatures liées à une offre d'emploi ********/
#reponses td{vertical-align:middle;}
/****************
Détails d'une candidature
*****************/
.profil-candidature{
min-height:150px;
}
.profil-candidature-action{
padding-top:45px;
}
.candidature-action{
margin-bottom:15px;
}
.details-candidature {
padding-top:1em;
padding-bottom:1em;
}
.icons-candidatures{
vertical-align: middle;margin-right:10px;
}
.bloc-commentaire{
margin-bottom:20px;
}
.dropzone{
border:2px dashed rgba(33, 33, 33, 0.14);
border-radius:5px;
padding:20px;
}
+1 -1
View File
@@ -38,7 +38,7 @@ if ($("#dropzone-row").length) {
// location.reload();
// } else {
if (response.success == 200) {
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo a été bien enregistrée.</div>')
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo est enregistrée.</div>')
//CAS VIDEO NON ATTACHEE
if ($("#form_media").length) {
$("#form_media .id_media").attr('value', response.mediaId);