Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a54bbe673 | |||
| 47043ac6bc | |||
| f094ee739e | |||
| bad5ad0d1c | |||
| 8701a4beb9 |
@@ -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");
|
||||
|
||||
+104
-8
@@ -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 l’espace 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> #}
|
||||
+1
-1
@@ -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) }}
|
||||
|
||||
+175
-48
@@ -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>
|
||||
|
||||
|
||||
@@ -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 l’entreprise pour votre candidature",
|
||||
'Subject' => "Découvrez la réponse de l’entreprise 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();
|
||||
|
||||
+2
-2
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user