Compare commits

...

4 Commits

Author SHA1 Message Date
llaniau d9bb152863 Inscription - tel 2021-02-24 15:40:29 +01:00
llaniau 1e52338d37 V2.7.3 2021-02-24 14:06:51 +01:00
llaniau b701d07741 candidatures - retour de recette 2021-02-24 14:04:50 +01:00
llaniau bcd93dee2c Candidature - bugs recette 2021-02-23 18:52:31 +01:00
11 changed files with 80 additions and 58 deletions
@@ -195,8 +195,10 @@ Au plaisir d’échanger avec vous,
<span class="label label-warning">Entretien programmé</span>
{% elseif answer.statusReponse =="A_TRAITER"%}
<span class="label label-info">À traiter</span>
{% else %}
{% elseif answer.statusReponse =="CONTACTE"%}
<span class="label">Contacté</span>
{% else %}
<span class="label label-info">À traiter</span>
{% endif %}
</td>
@@ -394,7 +394,9 @@
console.log(this.value);
//competences.push(competence);
//on remplace la virgule par un esapce car sinon bug (les compétences sont séparés par une virgule)
var chaine = this.value.replace(",", " ");
var chaine = this.value.replace("'", " ");
chaine = chaine.replace(",", " ");
//On limite a 10 compétences, au dela, on les enregistre pas dans le champ ad_competences
if (nbCompetencesSelect < 11) {
competences += chaine + ",";
@@ -408,6 +410,7 @@
}
}).get();
console.log(competences);
// on renseigne le champ ad_competences
$("#ad_competences").val(competences);
//Gestion des erreurs si aucune compétence
@@ -519,7 +522,8 @@
suggestion: function (data) {
//comment sont formaté les suggestion de l'auto completion
$(".tt-dataset-metiers").show();
var chaine = data.metier_libelle.replace("'", "\\'");
var chaine = data.metier_libelle.replace("'", " ");
var chaine = chaine.replace("'", "&#44;");
return '<div onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
chaine +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences"><a href="#" >' +
@@ -594,17 +598,18 @@
checked = "checked";
}
var chaine = object.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_" + object.code +
"' name='competences_ad[]'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competence_" + object
.code + "' value='" + chaine + "_" + object.code + "'> " + object.libelle +
"<br/></div>");
chaine = chaine.replace(",", " ");
chaine = chaine.replace('"', " ");
$("#competencesAd").append('<div id="competence_ad_' + object.code +
'" name="competences_ad[]"><input type="checkbox" ' + checked +
' onChange="genererCompetences(this);" id="competence_' + object
.code + '" value="' + chaine + "_" + object.code + '"> ' + object.libelle +
'<br/></div>');
$("#competencesAdPopup").append("<div id='competence_ad_popup_" + object.code +
"'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competencepopup_" + object
.code + "' value='" + object.code + "'> " + object.libelle + "<br/></div>");
$("#competencesAdPopup").append('<div id="competence_ad_popup_' + object.code +
'"><input type="checkbox" ' + checked +
' onChange="genererCompetences(this);" id="competencepopup_' + object
.code + '" value="' + object.code + '"> ' + object.libelle + '<br/></div>');
if (object.competenceCle == false) {
$("#competence_ad_" + object.code).hide();
}
@@ -624,7 +629,7 @@
//checked = "checked";
//}
var chaine = competence.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_" + competence.code +
"' name='competences_ad[]'><input type='checkbox' " + checked +
" onChange='genererCompetences(this);' id='competence_" +
@@ -42,6 +42,9 @@
<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>
{% else %}
<h5><a href="{{ path('company_answer_list') }}">Candidature spontanée</a></h5>
{% endif %}
<h6>Candidature reçue le {{ answer.cTime|date('d/m/Y') }}</h6>
</div>
@@ -53,21 +56,22 @@
<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>
<p>
{% if answer.user.getGeoloc %}
{% for adress in answer.user.getGeoloc %}
<i class="material-icons fs-16 tab-icon icons-candidatures">home</i>
{{ adress["locality"] }}, {{ adress["postal_code"] }}
{% endfor %}
{% else %}
Non renseignée
{% endif %}
</p>
{% if answer.user.company.extra["phoneTalent"] is defined %}
<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 %}
{% endif %}
</div>
<div class="col-xl-4 col-md-12 profil-candidature-action">
<div class="dropdown candidature-action">
@@ -84,6 +88,8 @@
Entretien programmé
{% elseif answer.statusReponse =='A_TRAITER' %}
À traiter
{% else %}
À traiter
{% endif %}
</span>
@@ -99,38 +105,23 @@
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>
<a href="#" data-toggle="tab" role="tab"
data-target="#messagerieVideo" onClick="switcherMenu()">
<button aria-label="" type="button" class="btn btn-lg btn-seconday btn-cons">Contacter le candidat</button></a>
</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>
href="#" 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"
<a href="#" 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">
@@ -166,6 +157,11 @@
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
function switcherMenu(){
$("#messagerieVideoLien").addClass("active");
$("#candidatureLien").removeClass("active");
console.log("messagerie active");
}
var urlDropzone = '{{ path("upload_media_message", {"id": message.getId()}) }}';
var urlDelete = '{{ path("delete_media_message", {"id": message.getId() }) }}'
var idObject = null;
@@ -14,10 +14,12 @@
</div>
<div class="card-body row">
{% if answer.user.company.cv %}
<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
@@ -32,7 +34,7 @@
<iframe width="100%" height="600"
src="/uploads/cv/{{ answer.user.company.cv }}"></iframe>
{% endif %}
{% 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>
@@ -43,7 +45,7 @@
<!-- START card -->
<div class="card-body">
{{ form_start(formNote) }}
<div class="form-group">
<div class="form-group form-group-default required">
<i class="material-icons fs-18 tab-icon icons-candidatures">comment</i><label for="">
<h5>Commentaires</h5>
</label>
@@ -56,7 +58,7 @@
{{ form_end(formNote) }}
{% for note in answer.notes %}
{% for note in answer.notes|reverse %}
<div class="card card-body">
<h6 class="card-title">{{ note.author.firstname }} {{ note.author.lastname }}</h6>
<p class="card-text">{{ note.content }}</p>
@@ -15,7 +15,7 @@
value="{{ app.user.firstname }} {{ app.user.lastname }}" />
</div>
<div class="form-group form-group-default" style="min-height:250px;">
<div class="form-group form-group-default required" style="min-height:250px;">
<label for="contact_talent_message" class="active">Message</label>
{# <textarea id="contact_talent_message"
name="contact_talent[message]" required="required"
@@ -161,11 +161,11 @@
<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">
{# <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>
</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()}) }}"
@@ -187,7 +187,7 @@
{# cas d'un nombre impair de video #}
{% if medias|length == iteration+1%}
{% if medias|length == iteration+1 and medias|length is divisible by(2)%}
<div class="col">
<div class="card-image">
<div class="embed-responsive embed-responsive-16by9">
+2 -4
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.2'
version: '2.7.3'
@@ -160,9 +160,7 @@ doctrine_mongodb:
liip_imagine :
resolvers :
default :
web_path:
web_root: %kernel.root_dir%/..'
cache_prefix: media/cache
web_path: ~
filter_sets :
cache : ~
profile_thumb :
@@ -68,8 +68,9 @@ class SecurityController extends FOSRestController
$email = htmlspecialchars($request->get('email'));
$password = htmlspecialchars($request->get('password'));
$adId = htmlspecialchars($request->get('adId'));
if (!isset($firstname) || !isset($lastname) || !isset($email) || !isset($password))
$phoneTalent = htmlspecialchars($request->get('phone'));
if (!isset($firstname) || !isset($lastname) || !isset($email) || !isset($password) )
$status = array('status' => "failure", 'message' => 'empty parameters');
else {
$userManager = $this->get('fos_user.user_manager');
@@ -89,7 +90,8 @@ class SecurityController extends FOSRestController
$user->setEnabled(false);
$user->setRoles(array('ROLE_TALENT'));
$tokengen = $this->get('fos_user.util.token_generator');
$user->setConfirmationToken($tokengen->generateToken());
@@ -101,11 +103,27 @@ class SecurityController extends FOSRestController
$company->setAlias($alias);
$company->setType("TALENT");
$company->setDescription("Annonce consultée : ".$adId);
$company->setWebsite("");
$company->setLinkedin("");
$company->setTwitter("");
$company->setTitleTalent("");
$extra['twitter']=" ";
$extra['linkedin']=" ";
$extra['phoneTalent']=$phoneTalent;
$extra['titleTalent']=" ";
$extra['situationTalent']=" ";
$extra['descriptionTalent']=" ";
$company->setExtra($extra);
$user->setCompany($company);
$userManager->updateUser($user);
}
// $userManager->updatePassword($user);//pas besoin car fait dans updateUser , vraiment bizarre....
$status = array('status' => "success", 'confirmationToken' => $user->getConfirmationToken(), 'email' => $user->getEmail(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'adId' => $adId);
$status = array('status' => "success", 'confirmationToken' => $user->getConfirmationToken(), 'email' => $user->getEmail(), 'firstname' => $user->getFirstname(), 'lastname' => $user->getLastname(), 'phone' => $company->getPhoneTalent(), 'adId' => $adId);
}
}
return new JsonResponse($status);
@@ -124,6 +124,7 @@ class CompanyController extends Controller
'notice',
$this->get('translator')->trans('Le logo de votre entreprise a bien été modifié')
);
return $this->redirect($this->generateUrl('company_profile'));
}
@@ -114,9 +114,9 @@ class MediaController extends Controller
]);
}
public function convertKekab($string){
$search = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', "/");
$search = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', "/", "'");
//Préférez str_replace à strtr car strtr travaille directement sur les octets, ce qui pose problème en UTF-8
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', "s");
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', "", "");
$string = str_replace($search, $replace, $string);
$string = strtolower (str_replace(" ", "-", $string));
@@ -108,10 +108,10 @@ class Answer
/**
* @var string
*
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true)
* @ORM\Column(name="status_reponse", type="string", length=255, nullable=true, options={"default":"CONTACTE"})
*
*/
private $statusReponse;
private $statusReponse ='CONTACTE';
/**
* @var string