Compare commits

...

13 Commits

Author SHA1 Message Date
llaniau dc29527064 Bug geoloc suite 2020-11-25 09:51:11 +01:00
llaniau f369802b96 company.js au lieu de main.dash.company.js 2020-11-24 14:29:39 +01:00
llaniau 07941367cc Pour mise en prod (balise nofollow) 2020-11-24 13:55:43 +01:00
llaniau effb92a9d8 ajout bouton supprimer dans gestion candidatures 2020-11-24 13:51:38 +01:00
llaniau 1952e27030 Bug geoloc 2020-11-24 11:16:28 +01:00
llaniau 6db371f2af Bug geoloc suite 2020-11-24 11:00:19 +01:00
llaniau 37ef9a4fdd Bug geoloc 2020-11-24 09:10:40 +01:00
llaniau e11f36d170 Bug auto completion api pole emploi 2020-11-23 17:34:10 +01:00
llaniau 968b4d0497 US 400 2020-11-23 17:24:22 +01:00
llaniau b6ba7e62e3 bug main.dash.company (essai) 2020-11-23 16:50:28 +01:00
llaniau 67734e40b3 Bug geoloc avant mise en prod 2020-11-23 12:59:39 +01:00
llaniau 4d96ede4ea suite recette V2.2.2 2020-11-17 15:47:31 +01:00
llaniau 55ff3ddcb8 US 340 : corection de bug suite recette 2020-11-16 15:27:49 +01:00
17 changed files with 355 additions and 110 deletions
@@ -47,7 +47,7 @@
{{ form_widget(form.cgu) }}
{# {{ form_label(form.cgu) }} #}
<label>Je déclare avoir pris connaissance et accepté les termes et les <a target="_blank"
href="/politique-confidentialite">conditions générales dutilisation</a></label>
href="/cgu">conditions générales dutilisation</a></label>
</div>
</div>
{# <div class="js-form-message mb-3">
@@ -263,6 +263,19 @@
}
});
}
function verifierDelete(id){
console.log(id);
var r = confirm("Êtes vous sûr de supprimer cette candidature ?\nSupprimer cette candidature supprimera le média associé\n");
if (r == true) {
txt = "You pressed OK!";
location.href = "/app_dev.php/admin/config/answer/"+id+"/delete";
return true;
} else {
txt = "You pressed Cancel!";
}
console.log(txt);
}
</script>
{% endblock %}
@@ -28,53 +28,23 @@
<!-- Please remove the file below for production: Contains demo classes -->
<link class="main-stylesheet" href="{{ asset('dashboard/css/style.css') }}" rel="stylesheet" type="text/css" />
<script type="text/javascript">window.$crisp=[];window.CRISP_WEBSITE_ID="08e9d301-ba14-4d69-8b1a-53685114c5af";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();</script>
<!-- BEGIN VENDOR JS -->
<script src="{{ asset('dashboard/plugins/pace/pace.min.js') }}" type="text/javascript"></script>
<!-- A polyfill for browsers that don't support ligatures: remove liga.js if not needed-->
<script src="{{ asset('dashboard/plugins/liga.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery/jquery-3.2.1.min.js') }}" type="text/javascript"></script>
{# <script type="text/javascript" src="http://code.jquery.com/jquery-3.2.1.min.js"></script> #}
<script src="{{ asset('dashboard/plugins/modernizr.custom.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-ui/jquery-ui.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/popper/umd/popper.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery/jquery-easy.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-unveil/jquery.unveil.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-ios-list/jquery.ioslist.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-actual/jquery.actual.min.js') }}"></script>
<script src="{{ asset('dashboard/plugins/jquery-scrollbar/jquery.scrollbar.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('dashboard/plugins/select2/js/select2.full.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('dashboard/plugins/classie/classie.js') }}"></script>
<script src="{{ asset('dashboard/plugins/nvd3/lib/d3.v3.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/nv.d3.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/utils.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/tooltip.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/interactiveLayer.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/axis.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/line.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/lineWithFocusChart.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/hammer.min.js') }}"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/jquery.mousewheel.js') }}"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/mapplic.js') }}"></script>
{# <script src="{{ asset('dashboard/plugins/rickshaw/rickshaw.min.js') }}"></script> #}
<script src="{{ asset('dashboard/plugins/jquery-sparkline/jquery.sparkline.min.js') }}" type="text/javascript">
<!-- END PAGE LEVEL JS -->
{% block javascripts %}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places">
</script>
<script src="{{ asset('dashboard/plugins/skycons/skycons.js') }}" type="text/javascript"></script>
{# <script src="{{ asset('dashboard/plugins/quill/quill.min.js') }}" type="text/javascript"></script> #}
<!-- END VENDOR JS -->
<!-- BEGIN CORE TEMPLATE JS -->
<!-- BEGIN CORE TEMPLATE JS -->
<script src="{{ asset('dashboard/pages/js/pages.js') }}"></script>
<script src="{{ asset('dashboard/pages/js/pages.email.js') }}"></script>
<!-- END CORE TEMPLATE JS -->
<!-- BEGIN PAGE LEVEL JS -->
<script src="{{ asset('dashboard/js/scripts.js') }}" type="text/javascript"></script>
<!-- END PAGE LEVEL JS -->
<!-- END CORE TEMPLATE JS -->
<!-- BEGIN PAGE LEVEL JS -->
<script src="{{ asset('dashboard/js/dashboard.js') }}" type="text/javascript"></script>
{% javascripts
'@vendors'
'@global'
'@company'
output='assetic/main.dash.company.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<!-- END PAGE LEVEL JS -->
{% endblock %}
<script src="{{ asset('dashboard/plugins/jquery/jquery-3.2.1.min.js') }}" type="text/javascript"></script>
{# <script type="text/javascript" src="http://code.jquery.com/jquery-3.2.1.min.js"></script> #}
{% block javascriptSupl %}
{% endblock %}
<!-- END PAGE LEVEL JS -->
@@ -82,6 +52,7 @@
<body class="fixed-header dashboard menu-pin menu-behind">
{# {{ include('default/user_switch.html.twig') }} #}
{{ include('admin/navigation_gauche.html.twig')}} }}
@@ -116,21 +87,58 @@
<!-- END PAGE CONTENT WRAPPER -->
</div>
<!-- END PAGE CONTAINER -->
<!-- BEGIN VENDOR JS -->
<script src="{{ asset('dashboard/plugins/pace/pace.min.js') }}" type="text/javascript"></script>
<!-- A polyfill for browsers that don't support ligatures: remove liga.js if not needed-->
<script src="{{ asset('dashboard/plugins/liga.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/modernizr.custom.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-ui/jquery-ui.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/popper/umd/popper.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery/jquery-easy.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-unveil/jquery.unveil.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-ios-list/jquery.ioslist.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/jquery-actual/jquery.actual.min.js') }}"></script>
<script src="{{ asset('dashboard/plugins/jquery-scrollbar/jquery.scrollbar.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('dashboard/plugins/select2/js/select2.full.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('dashboard/plugins/classie/classie.js') }}"></script>
<script src="{{ asset('dashboard/plugins/nvd3/lib/d3.v3.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/nv.d3.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/utils.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/tooltip.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/interactiveLayer.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/axis.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/line.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/nvd3/src/models/lineWithFocusChart.js') }}" type="text/javascript"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/hammer.min.js') }}"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/jquery.mousewheel.js') }}"></script>
<script src="{{ asset('dashboard/plugins/mapplic/js/mapplic.js') }}"></script>
{# <script src="{{ asset('dashboard/plugins/rickshaw/rickshaw.min.js') }}"></script> #}
<script src="{{ asset('dashboard/plugins/jquery-sparkline/jquery.sparkline.min.js') }}" type="text/javascript">
</script>
<script src="{{ asset('dashboard/plugins/skycons/skycons.js') }}" type="text/javascript"></script>
{# <script src="{{ asset('dashboard/plugins/quill/quill.min.js') }}" type="text/javascript"></script> #}
<!-- END VENDOR JS -->
<!-- BEGIN CORE TEMPLATE JS -->
<!-- BEGIN CORE TEMPLATE JS -->
<script src="{{ asset('dashboard/pages/js/pages.js') }}"></script>
<script src="{{ asset('dashboard/pages/js/pages.email.js') }}"></script>
<!-- END CORE TEMPLATE JS -->
<!-- BEGIN PAGE LEVEL JS -->
<script src="{{ asset('dashboard/js/scripts.js') }}" type="text/javascript"></script>
<!-- END PAGE LEVEL JS -->
<!-- END CORE TEMPLATE JS -->
{% block javascripts %}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places">
</script>
{% javascripts
'@vendors'
'@global'
'@company'
output='assetic/main.dash.company.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
<!-- BEGIN PAGE LEVEL JS -->
<script src="{{ asset('dashboard/js/dashboard.js') }}" type="text/javascript"></script>
{% block javascriptsSecondaire %}
{% endblock %}
@@ -140,4 +148,4 @@
</body>
</html>
</html>
@@ -69,7 +69,7 @@ Au plaisir d’échanger avec vous,
<!-- Modal 2 -->
<div class="modal fade in bd-example-modal-lg" id="decocheModal" tabindex="-1" role="dialog"
aria-labelledby="decocheModalLabel" aria-hidden="false" data-show="false">
aria-labelledby="decocheModalLabel" aria-hidden="false" data-show="false" data-backdrop="static">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
@@ -233,10 +233,15 @@ Au plaisir d’échanger avec vous,
var allCheckboxes = $("input[type=checkbox]");
var auMoinUneCheckboxCoche = false;
// Put all the unique name attributes in an array.
var checkboxCocheId= null;
allCheckboxes.each(function () {
var isChecked = $(this).prop('checked');
if (isChecked == true) {
auMoinUneCheckboxCoche = true
auMoinUneCheckboxCoche = true;
var tabId =$(this).prop('id').split("_");
checkboxCocheId = tabId[1];
console.log(checkboxCocheId);
}
});
@@ -248,6 +253,8 @@ Au plaisir d’échanger avec vous,
$("#partageCandidats").attr("disabled", true);
}
return checkboxCocheId;
}
function annulerCheckbox(){
@@ -313,8 +320,10 @@ Au plaisir d’échanger avec vous,
$(document)
.ready(function () {
parcourirAllCheckbox();
console.log("ready");
var id = parcourirAllCheckbox();
//on recupere un id d'une checkbox coché pour lancer l'ajax et remplacé les caracteres ###### par le mot de passe
verifierIsChecked(id);
//initialize all modals!!
$('.modal').modal({
dismissible: true
@@ -51,7 +51,7 @@
<div class="bg-img-hero" style="background-image: url('http://localhost/v2/img/partage/candidature-offre-emploi-video.jpg');">
<div class="bg-img-hero" style="background-image: url('/v2/img/partage/candidature-offre-emploi-video.jpg');">
<div class="container space-2 space-2-top--lg space-3-bottom--lg">
<div class=" text-center mx-auto">
<!-- Title -->
@@ -45,22 +45,21 @@
<!-- Modal 1 -->
<div class="modal fade bd-example-modal-lg" id="competencesModal" tabindex="-1" role="dialog"
aria-labelledby="competencesModalLabel" aria-hidden="false">
aria-labelledby="competencesModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="competencesModalLabel">Souhaitez-vous remplacer le métier <span class="metierAncienPopup">{aucun}</span> par <span class="metierPopup"></span></h5>
<h5 class="modal-title" id="competencesModalLabel">Souhaitez-vous remplacer le métier <span class="metierPopup"></span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<h5>&nbsp;</h5>
<h5>&nbsp;</h5>
<p>
Les compétences que vous aviez précédemment sélectionnées en lien avec le métier <span class="metierAncienPopup">{aucun}</span> seront remplacées par de nouvelles compétences, correspondant au métier <span class="metierPopup">.
Si vous remplacez le métier de rattachement, la totalité des compétences que vous aviez précédemment sélectionnées en lien avec l'ancien métier de rattachement seront remplacées par les nouvelles compétences, correspondant au métier <span class="metierPopup"></span>.
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
@@ -74,10 +73,13 @@
<!-- Modal 2 -->
<div class="modal fade modalCompetences" id="ajoutCompetencesModal" tabindex="-1" role="dialog"
aria-labelledby="ajoutCompetencesModalLabel" aria-hidden="false">
aria-labelledby="ajoutCompetencesModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">Sélectionnez les compétences recherchées pour le poste à pourvoir </h6>
<h7 class="modal-title">Vous pouvez sélectionner jusqu’à 10 compétences à afficher dans votre offre demploi. </h7>
</div>
<div class="modal-body">
{# <p>Etes vous sur de charger les compétences du métier <span id="metierPopup"></span></p> #}
@@ -245,6 +247,7 @@
<td class="col-lg-12 col-md-12 col-sm-12 bg-contrast-lower">
<div id="competencesAd"></div><br />
<div id="competencesAdMessage" class="text-danger">Veuillez choisir un métier de rattachement pour votre annonce.</div><br />
<div id="loadingDiv" >Patientez...</div><br />
<div class="text-center" id="competencesButtonAd">
<button type="button" class="btn btn-primary" data-toggle="modal"
data-target="#ajoutCompetencesModal" id="ajoutCompetences">
@@ -451,7 +454,11 @@
$("#competencesAdMessage").html(
"Vous devez sélectionner au minimum une compétence "
);
$("#ajouterCompetenceButtonMdal").show();
$("#competencesAdMessagePopup").html(
"Vous devez sélectionner au minimum une compétence "
);
$("#ajouterCompetenceButtonMdal").html("Ajouter (+0)");
$("#ajouterCompetenceButtonMdal").hide();
$("#saveAdButton").prop("disabled", true);
}else if(nbCompetencesSelect>9){
//Gestion des erreurs si plusde 10 compétences
@@ -468,9 +475,9 @@
}
}else{
//cas standards, on reinitialise les champs a vide
$("#competencesAdMessage").html(
" "
);
$("#competencesAdMessage").html( " ");
$("#competencesAdMessagePopup").html(" ");
$("#saveAdButton").prop("disabled", false);
$("#ajouterCompetenceButtonMdal").show();
}
@@ -510,6 +517,7 @@
.ready(function () {
// Construction du champ typeahead d'auto compléetion de métier
$("#competencesButtonAd").hide();
$('#loadingDiv').hide();
var metiers = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
@@ -550,9 +558,9 @@
//comment sont formaté les suggestion de l'auto completion
$(".tt-dataset-metiers").show();
var chaine = data.metier_libelle.replace("'", "\\'");
return '<div><a href="#" onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
return '<div onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
chaine +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences">' + data.metier_libelle +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences"><a href="#" >' + data.metier_libelle +
'</a></div>'
},
footer: function (query) {
@@ -591,6 +599,10 @@
data: 'q=' + $("#id_appellation_temporaire").val(),
//Le format de réponse attendu
dataType: "json",
beforeSend: function () { // Before we send the request, remove the .hidden class from the spinner and default to inline-block.
$('#loadingDiv').show();
console.log("début loading");
},
})
//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
@@ -608,7 +620,7 @@
$("#competencesAd").text("");
$("#competencesAdPopup").text("");
$("#competencesAdMessage").html("");
//parcours de l'objet json renvoyé par l'api
//parcours de l'objet json renvoyé par l'api (competence de base)
obj.competencesDeBase.forEach(function (object) {
// Pour chaque compétences, on crée
//1 checkbox dans la page principal. iL est affiché par défaut si c'est une compétence clé. les compéetences clés sonr cochés
@@ -629,6 +641,33 @@
$("#competence_ad_"+object.code).hide();
}
});
//parcours de l'objet json renvoyé par l'api ( groupes de compétences spécifiques)
obj.groupesCompetencesSpecifiques.forEach(function (object) {
//parcours de l'objet json renvoyé par l'api ( groupes de compétences spécifiques)
object.competences.forEach(function (competence) {
// Pour chaque compétences, on crée
//1 checkbox dans la page principal. iL est affiché par défaut si c'est une compétence clé. les compéetences clés sonr cochés
// 1 checkbox dans la popup d'ajout de competences. Par defaut, seul les compétences clé sont cochés
var hidden = "";
var checked = "";
//On on ne coche pas ces competences clé (uniquement les compétences de base) sur le formulaire de base
//if (competence.competenceCle == true && type != "init") {
//checked = "checked";
//}
var chaine = competence.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_"+competence.code+"' name='competences_ad[]'><input type='checkbox' "+checked+" onChange='genererCompetences(this);' id='competence_" + competence
.code + "' value='" +chaine+"_"+ competence.code + "'> " + competence.libelle + "<br/></div>");
$("#competencesAdPopup").append("<div id='competence_ad_popup_"+competence.code+"'><input type='checkbox' "+checked+" onChange='genererCompetences(this);' id='competencepopup_" + competence
.code + "' value='" + competence.code + "'> " + competence.libelle + "<br/></div>");
//On n'affiche pas ces competences (meme les competences clé) sur le formulaire de base
//if (competence.competenceCle == false) {
$("#competence_ad_"+competence.code).hide();
//}
});
});
$("#competencesButtonAd").show();
//lors de l'init, on affiche et coche les compétences récupérer en base. On désaffiche et decoche celle qui n'y sont plus
// Pareil pour la popup sauf qu'elles sont toutes affichées
@@ -648,6 +687,7 @@
}
//on génere le json qui va remplir le champ ad_competences
genererJson();
$('#loadingDiv').hide();
})
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
@@ -658,13 +698,13 @@
if ($("#saisie").val() != "") {
// si il y a un pb avec l'api pole emploi, on affiche ce message
$("#competencesAdMessage").html(
"Une erreur est survenue dans la recherche du métier de rattachement. <a href='#' onclick='chargerCompetences();'><i class='fa fa-refresh fa-spin fa-fw'></i>Cliquez ici pour relancer la recherche</a> "
"Une erreur est survenue dans la recherche du métier de rattachement. <a href='#' onclick='chargerCompetences();'><br/><i class='fa fa-refresh fa-spin fa-fw'></i>Cliquez ici pour relancer la recherche</a> "
);
}
console.log("La requête s'est terminée en échec. Infos : " + JSON.stringify(error));
$('#loadingDiv').hide();
console.log("La requête s'est terminée en échec q= "+ $("#id_appellation_temporaire").val()+" 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");
@@ -689,6 +729,8 @@
}
}else{
$("#competence_" + id).prop("checked", false);
$("#competence_ad_" + id).hide();
//$("#competence_" + id).hide();
$("#competencepopup_" + id).prop("checked", false);
}
// on génere le json a chaque fois
@@ -40,11 +40,11 @@
<!-- Modal 1 -->
<div class="modal fade bd-example-modal-lg" id="competencesModal" tabindex="-1" role="dialog"
aria-labelledby="competencesModalLabel" aria-hidden="false">
aria-labelledby="competencesModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="competencesModalLabel">Souhaitez-vous remplacer le métier <span class="metierAncienPopup">{aucun}</span> par <span class="metierPopup"></span></h5>
<h5 class="modal-title" id="competencesModalLabel">Souhaitez-vous remplacer le métier <span class="metierPopup"></span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
@@ -53,7 +53,7 @@
<h5>&nbsp;</h5>
<p>
Les compétences que vous aviez précédemment sélectionnées en lien avec le métier <span class="metierAncienPopup">{aucun}</span> seront remplacées par de nouvelles compétences, correspondant au métier <span class="metierPopup">.
Si vous remplacez le métier de rattachement, la totalité des compétences que vous aviez précédemment sélectionnées en lien avec l'ancien métier de rattachement seront remplacées par les nouvelles compétences, correspondant au métier <span class="metierPopup"></span>.
</p>
</div>
<div class="modal-footer">
@@ -68,10 +68,13 @@
<!-- Modal 2 -->
<div class="modal fade modalCompetences" id="ajoutCompetencesModal" tabindex="-1" role="dialog"
aria-labelledby="ajoutCompetencesModalLabel" aria-hidden="false">
aria-labelledby="ajoutCompetencesModalLabel" aria-hidden="false" data-show="false">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">Sélectionnez les compétences recherchées pour le poste à pourvoir </h6>
<h7 class="modal-title">Vous pouvez sélectionner jusqu’à 10 compétences à afficher dans votre offre demploi. </h7>
</div>
<div class="modal-body">
{# <p>Etes vous sur de charger les compétences du métier <span id="metierPopup"></span></p> #}
@@ -236,7 +239,8 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
<td class="col-lg-12 col-md-12 col-sm-12 bg-contrast-lower">
<div id="competencesAd"></div><br />
<div id="competencesAdMessage" class="text-danger">Vous devez
sélectionner un minimum une compétence</div><br />
sélectionner au minimum une compétence</div><br />
<div id="loadingDiv" >Patientez...</div><br />
<div class="text-center" id="competencesButtonAd">
<button type="button" class="btn btn-primary" data-toggle="modal"
data-target="#ajoutCompetencesModal" id="ajoutCompetences">
@@ -433,7 +437,11 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
$("#competencesAdMessage").html(
"Vous devez sélectionner au minimum une compétence. "
);
$("#ajouterCompetenceButtonMdal").show();
$("#competencesAdMessagePopup").html(
"Vous devez sélectionner au minimum une compétence. "
);
$("#ajouterCompetenceButtonMdal").html("Ajouter (+0)");
$("#ajouterCompetenceButtonMdal").hide();
$("#saveAdButton").prop("disabled", true);
}else if(nbCompetencesSelect>9){
$("#saveAdButton").prop("disabled", false);
@@ -450,9 +458,8 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
}else{
//cas standards, on reinitialise les champs a vide
$("#saveAdButton").prop("disabled", false);
$("#competencesAdMessage").html(
" "
);
$("#competencesAdMessage").html( " ");
$("#competencesAdMessagePopup").html(" ");
$("#ajouterCompetenceButtonMdal").show();
}
if($("#saisie").val() =="" || !$("#saisie").val() ){
@@ -487,6 +494,7 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
.ready(function () {
// Construction du champ typeahead d'auto compléetion de métier
$("#competencesButtonAd").hide();
$('#loadingDiv').hide();
console.log("metiers!!");
var metiers = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
@@ -530,9 +538,9 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
//comment sont formaté les suggestion de l'auto completion
$(".tt-dataset-metiers").show();
var chaine = data.metier_libelle.replace("'", " ");
return '<div><a href="#" onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
return '<div onclick="chargerDonneesTemp(' + data.metier_id + ',\'' +
chaine +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences">' + data.metier_libelle +
'\')" data-toggle="modal" data-target="#competencesModal" id="competences"><a href="#" >' + data.metier_libelle +
'</a></div>'
},
footer: function (query) {
@@ -569,6 +577,10 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
data: 'q=' + $("#id_appellation_temporaire").val(),
//Le format de réponse attendu
dataType: "json",
beforeSend: function () { // Before we send the request, remove the .hidden class from the spinner and default to inline-block.
$('#loadingDiv').show();
console.log("début loading");
},
})
//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
@@ -611,6 +623,35 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
$("#competence_ad_"+object.code).hide();
}
});
//parcours de l'objet json renvoyé par l'api ( groupes de compétences spécifiques)
obj.groupesCompetencesSpecifiques.forEach(function (object) {
//parcours de l'objet json renvoyé par l'api ( groupes de compétences spécifiques)
object.competences.forEach(function (competence) {
// Pour chaque compétences, on crée
//1 checkbox dans la page principal. iL est affiché par défaut si c'est une compétence clé. les compéetences clés sonr cochés
// 1 checkbox dans la popup d'ajout de competences. Par defaut, seul les compétences clé sont cochés
var hidden = "";
var checked = "";
//On on ne coche pas ces competences clé (uniquement les compétences de base) sur le formulaire de base
//if (competence.competenceCle == true && type != "init") {
//checked = "checked";
//}
var chaine = competence.libelle.replace("'", " ");
var chaine = chaine.replace(",", " ");
$("#competencesAd").append("<div id='competence_ad_"+competence.code+"' name='competences_ad[]'><input type='checkbox' "+checked+" onChange='genererCompetences(this);' id='competence_" + competence
.code + "' value='" +chaine+"_"+ competence.code + "'> " + competence.libelle + "<br/></div>");
$("#competencesAdPopup").append("<div id='competence_ad_popup_"+competence.code+"'><input type='checkbox' "+checked+" onChange='genererCompetences(this);' id='competencepopup_" + competence
.code + "' value='" + competence.code + "'> " + competence.libelle + "<br/></div>");
//On n'affiche pas ces competences (meme les competences clé) sur le formulaire de base
//if (competence.competenceCle == false) {
$("#competence_ad_"+competence.code).hide();
//}
});
});
$("#competencesButtonAd").show();
if(type=="init"){
const obj = JSON.parse($("#ad_soft_competences").val());
@@ -627,6 +668,7 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
}
//on génere le json qui va remplir le champ ad_soft_competences
genererJson();
$('#loadingDiv').hide();
})
//Ce code sera exécuté en cas d'échec - L'erreur est passée à fail()
@@ -637,10 +679,10 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
if ($("#saisie").val() != "") {
// si il y a un pb avec l'api pole emploi, on affiche ce message
$("#competencesAdMessage").html(
"Une erreur est survenue dans la recherche du métier de rattachement. <a href='#' onclick='chargerCompetences();'><i class='fa fa-refresh fa-spin fa-fw'></i>Cliquez ici pour relancer la recherche</a> "
"Une erreur est survenue dans la recherche du métier de rattachement. <a href='#' onclick='chargerCompetences();'><br/><i class='fa fa-refresh fa-spin fa-fw'></i>Cliquez ici pour relancer la recherche</a> "
);
}
$('#loadingDiv').hide();
console.log("La requête s'est terminée en échec. Infos : " + JSON.stringify(error));
})
@@ -669,6 +711,7 @@ Afin de créer votre annonce, renseignez lensemble des champs relatifs au pos
}
}else{
$("#competence_" + id).prop("checked", false);
$("#competence_ad_" + id).hide();
$("#competencepopup_" + id).prop("checked", false);
}
// on génere le json a chaque fois
@@ -58,21 +58,21 @@
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('/js/vendors/Chart.bundle.min.js') }}"></script>
{# <script src="{{ asset('/js/vendors/Chart.bundle.min.js') }}"></script> #}
<script type="text/javascript">
var currentMonth = '{{ "now"|date("m") }}';
var arrayRecords;
var ctx, myChart, arrayCurrentsLabel, arrayCurrentsAdsValues, arrayCurrentsCompanyValues, donughtRecords;
{# var ctx, myChart, arrayCurrentsLabel, arrayCurrentsAdsValues, arrayCurrentsCompanyValues, donughtRecords; #}
var sumVisitsAds = 0;
var sumCompanyValues = 0;
function loadChartData() {
{# function loadChartData() {
setArrayValues();
myChart.update();
myDoughnutChart.update();
}
} #}
function getChartData(date1, date2) {
{# function getChartData(date1, date2) {
$.ajax({
type: "POST",
url: '{{ path("company_ajax_dashboard") }}',
@@ -89,9 +89,9 @@
$('.fa-refresh').hide();
}
});
}
} #}
document.addEventListener("DOMContentLoaded", function (event) {
{# document.addEventListener("DOMContentLoaded", function (event) {
$('.fa-refresh').hide();
getChartData(0, 0);
configDatePicker = {
@@ -114,9 +114,9 @@
getChartData(date1, date2);
});
$('.apply-btn').attr('value', 'Valider');
});
}); #}
function setArrayValues() {
{# function setArrayValues() {
arrayCurrentsLabel = [];
arrayCurrentsAdsValues = [];
arrayCurrentsCompanyValues = [];
@@ -233,6 +233,6 @@
animateScale: true
}
}
});
}); #}
</script>
{% endblock %}
@@ -17,8 +17,67 @@
data-arrow-left-classes="fa fa-arrow-left u-slick__arrow-classic-inner bg-white text-dark left-0 ml-md-n9"
data-arrow-right-classes="fa fa-arrow-right u-slick__arrow-classic-inner bg-white text-dark right-0 mr-md-n9"
data-nav-for="#sliderSyncingThumb2">
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/pontivy-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs mb-4">Pontivy Communauté</h3>
<p class="text-white-70 mb-4">Christine Le Strat & Kévin Nado</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=ugXui7ICJeM?autoplay=1" data-speed="700"
data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/temoignage-mma-questembert.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs mb-4">MMA Questembert</h3>
<p class="text-white-70 mb-4"> Stephane David, Agent Général d'Assurances</p>
<a class="js-fancybox text-white" href="javascript:;"
data-src="https://www.youtube.com/watch?v=0bbNdf4qAng?autoplay=1" data-speed="700"
data-animate-in="zoomIn" data-animate-out="zoomOut" data-caption="Témoignage">
Voir le témoignage
<i class="u-icon u-icon--sm u-icon--white-soft rounded-circle ml-2">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</a>
</div>
</div>
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/mgdis-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs mb-4">MGDIS</h3>
<p class="text-white-70 mb-4">Simona Vasile-Martin, Responsable Marketing</p>
@@ -100,6 +159,7 @@
<div class="js-slide bg-img-hero bg-img-hero-center gradient-overlay-half-black-v1"
style="background-image: url({{ asset('v2/temoignages/intermarche-temoignage-image.jpg') }});">
<div class="w-md-80 w-lg-50 text-white space-2 px-9">
<h3 class="h2 text-lh-xs mb-4">Intermarché LAI</h3>
<p class="text-white-70 mb-4">Ludovic Chamoin-Foucaut, Responsable Ressources Humaines</p>
@@ -135,6 +195,43 @@
<div id="sliderSyncingThumb2"
class="js-slick-carousel u-slick u-slick--gutters-2 u-slick--video w-50 w-lg-30 mx-auto" data-infinite="true"
data-slides-show="3" data-is-thumbs="true" data-center-mode="true" data-nav-for="#sliderSyncingNav2">
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/pontivy-communaute-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/mma-temoignage-vignette.jpg') }}"
alt="Image Description">
<i class="u-icon u-icon--sm u-icon--dark-soft rounded-circle u-slick--video__player">
<i class="u-icon__inner svg-icon svg-icon-xs text-white">
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path
d="M9.82866499,18.2771971 L16.5693679,12.3976203 C16.7774696,12.2161036 16.7990211,11.9002555 16.6175044,11.6921539 C16.6029128,11.6754252 16.5872233,11.6596867 16.5705402,11.6450431 L9.82983723,5.72838979 C9.62230202,5.54622572 9.30638833,5.56679309 9.12422426,5.7743283 C9.04415337,5.86555116 9,5.98278612 9,6.10416552 L9,17.9003957 C9,18.1765381 9.22385763,18.4003957 9.5,18.4003957 C9.62084305,18.4003957 9.73759731,18.3566309 9.82866499,18.2771971 Z"
fill="#000000"></path>
</g>
</svg>
</i>
</i>
</div>
<div class="js-slide rounded overflow-hidden">
<img class="img-fluid" src="{{ asset('v2/temoignages/mgdis-temoignage-vignette.jpg') }}"
alt="Image Description">
@@ -130,6 +130,32 @@ class AdController extends Controller
$teletravail = $form['teletravail']->getData();
$arrayExtra['teletravail'] = $teletravail;
$ad->setExtra($arrayExtra);
//US 340
$competences = $form['competences']->getData();
$competencesList = explode(",", $competences);
//dump($competencesList);
//$competencesJson = "{";
$array = Array ();
for ($i = 0; $i < count($competencesList)-1; $i++) {
//dump($i);
//$competence = split("_", $competencesList);
//dump($competencesList[$i]);
list($competenceLibelle, $competenceId) =
explode("_", $competencesList[$i]);
if($competenceLibelle && $competenceId){
$array[] = Array (
intval($competenceId) => $competenceLibelle);
}
}
$ad->setCompetences(
$array
);
$adManager = $this->get('app.ad_manager');
$adManager->updateAd($ad);
return $this->redirectToRoute('create_media', array('id' => $ad->getId()));
@@ -215,7 +215,8 @@ class AnswerController extends AbstractController
case 'actions':
{
$responseTemp = "Actions :<select class='changeStatus' onChange='changerStatut(this.value, ".$answer->getId().")' name='changeStatus' data-id=".$answer->getId()."><option value='null'>choisir</option><option value='SENDED'>Envoyé</option><option value='DRAFT'>Brouillon</option><option value='REFUSED'>Refuser</option></select>";
$responseTemp .= "<br>";
$responseTemp .= "<a class='delete-answer' href='#' onClick='verifierDelete(".$answer->getId().")' data-toggle='tooltip' title='Supprimer'>Supprimer <i class='fa fa-trash'></i></a>";
break;
}
@@ -119,8 +119,9 @@ class AdSoftType extends AbstractType
'attr' => array(
'value' => $duree_contrat,
'class' => 'form-control',
'placeholder' => 'Ex : 6',
'min' => '0',
'max' => '50',
'max' => '36',
)
))
->add('appellationId', HiddenType::class, array(
@@ -167,6 +168,7 @@ class AdSoftType extends AbstractType
'attr' => array(
'value' => $nombre_heure,
'class' => 'form-control',
'placeholder' => 'Ex : 20',
'min' => '0',
'max' => '35',
)
@@ -207,7 +209,8 @@ class AdSoftType extends AbstractType
)
)
->add('competences', HiddenType::class, array(
'label' => 'competences:',
'mapped' => false,
'label' => 'competences',
'data' => $competences,
'attr' => array(
'class' => 'form-control'
@@ -136,8 +136,9 @@ class AdType extends AbstractType
'attr' => array(
'value' => $duree_contrat,
'class' => 'form-control',
'placeholder' => 'Ex : 6',
'min' => '0',
'max' => '50',
'max' => '36',
)
))
->add('appellationId', HiddenType::class, array(
@@ -184,6 +185,7 @@ class AdType extends AbstractType
'attr' => array(
'value' => $nombre_heure,
'class' => 'form-control',
'placeholder' => 'Ex : 20',
'min' => '0',
'max' => '35',
)
@@ -225,7 +227,8 @@ class AdType extends AbstractType
))
->add('competences', HiddenType::class, array(
'label' =>'Compétences :',
'mapped' => false,
'label' =>'Compétences',
'data' => $competences,
'attr' => array(
'class' => 'form-control',
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB