$(document).ready(function () { initButtonsAction(); if (location.search == "?edit") { // showPolyAndInfoDivs(); $("#all").show(); initButtonsAction(); initAddChildButtons(); initAddRadioButtonEvent(); initDateChecker(); initDatepicker(); checkRequired(); } else if (location.pathname.split("/").slice(-1)[0] == "form.php") { initJobChange(); initButtonsAction(); initAddChildButtons(); initAddRadioButtonEvent(); initDateChecker(); initDatepicker(); checkRequired(); } if (location.pathname.split("/").slice(-1)[0] == "viewpostulation.php") { initPostulationChange(); } }); function checkDate() { var birthdate = $("#birthApp").val(); var birthdate_year = birthdate.split('/')[2]; var current_year = new Date().getFullYear(); var diff = current_year - birthdate_year; if (diff <= 12 || diff > 60) { $('#birthApp').addClass("is-invalid"); document.getElementById('errorBirthdate').innerHTML = 'Date invalide'; } else { $('#birthApp').removeClass("is-invalid"); document.getElementById('errorBirthdate').innerHTML = ''; } } function initDateChecker() { $("#birthApp").change(function () { checkDate(); }); $("#dejaCandAnneeInput").change(function () { checkYearDate("#dejaCandAnneeInput", "#dejaCandError", 0); }); $("#anneeFin").change(function () { checkYearDate("#anneeFin", "#anneeFinError", 1); }); } function addChildren(parentId, maxItems, childTemplate, addButtonId) { var i = $(parentId + ' > tbody').children().length; if (i < maxItems) { var fullTemplate = childTemplate.replace(/\{(.*?)\}/g, i); $(parentId).append(fullTemplate); if (i == maxItems - 1) { $(addButtonId).hide(750); } } } function changeTitleFile(objFile) { var filename = $(objFile)[0].value.replace(/^.*[\\/]/, ''); if (filename) { $(objFile.parentElement)[0].children[3].innerHTML = filename; } else { $(objFile.parentElement)[0].children[3].innerHTML = 'Choisir...'; } checkFileFormat($(objFile)[0]); } function checkFileFormat(obj) { var errorZone = $(obj.parentElement)[0].children[5]; var allowedExtensions = ['pdf', 'jpeg', 'png', 'jpg']; var fileExtension = obj.value.split('.').pop().toLowerCase(); allowedExtensions.indexOf(fileExtension) != -1 || !obj.value ? errorZone.innerHTML = '' : errorZone.innerHTML = 'Format invalide'; } function checkYearDate(toCheckValue, errorZone, coefficiantYear) { var inputYear = $(toCheckValue).val(); var currentYear = (new Date).getFullYear() + coefficiantYear; if ((inputYear != parseInt(inputYear, 10)) || (currentYear < inputYear) || (inputYear.length != 4)) { $(errorZone).html('Date invalide'); } else { $(errorZone).html(""); } } function initButtonsAction() { $('#createAc').click(function () { window.open("https://guests.epfl.ch/selfaddform", '_blank'); }); $('#connectB').click(function () { document.location.href = "form.php"; }); $('#returnIndexB').click(function () { document.location.href = "/index.php"; }); $('#viewPostB').click(function () { document.location.href = "viewpostulation.php"; }); $('#delPostB').click(function () { if (confirm("Voulez-vous vraiment supprimer cette postulation ? \rCette action est irréversible !")) { document.location.href = "viewpostulation.php?delete"; } }); $('#editPost').click(function () { document.location.href = "form.php?edit"; }); $('#infoFilieres').click(function () { window.open("https://www.ict-berufsbildung.ch/fr/formation-professionnelle/formation-initiale-ict/", '_blank'); }); $('#infoMpt').click(function () { window.open("https://orientation.ch/dyn/show/3309", '_blank'); }); $('#retourHome').click(function () { document.location.href = "http://apprentis.epfl.ch/"; }); $('#retourFormulaire').click(function () { history.go(-1); }); $('#retourAccueil').click(function () { document.location.href = "/index.php"; }); } function initAddChildButtons() { $('#addSch').click(function () { var template = '<tr><td><input type="text" name="ecole{i}" id="ecole{i}" placeholder="Ecole" class="form-control"/></td><td><input type="text" name="lieuEcole{i}" id="lieuEcole{i}" placeholder="Lieu" class="form-control"/></td><td><input type="text" name="niveauEcole{i}" id="niveauEcole{i}" placeholder="Niveau" class="form-control"/></td><td><input type="text" name="anneesEcole{i}" id="name="anneesEcole{i}" placeholder="de-à (années)" class="form-control"/></td></tr>'; addChildren('#scolaire', 6, template, '#addSch'); }); $('#addPro').click(function () { var template = '<tr><td><input type="text" class="form-control" name="employeurPro{i}" id="employeurPro{i}" placeholder="Employeur"/></td><td><input type="text" class="form-control" name="lieuPro{i}" id="lieuPro{i}" placeholder="Lieu"/></td><td><input type="text" class="form-control" name="activitePro{i}" id="activitePro{i}" placeholder="Activité"/></td><td><input type="text" class="form-control" name="anneesPro{i}" id="anneesPro{i}" placeholder="de-à (années)"/></td></tr>'; addChildren('#activites', 4, template, '#addPro'); }); $('#addStage').click(function () { var template = '<tr><td><input type="text" class="form-control" name="activiteStage{i}" id="activiteStage{i}" placeholder="Métier"></td><td><input type="text" class="form-control" name="entrepriseStage{i}" id="entrepriseStage{i}" placeholder="Entreprise"></td></tr>'; addChildren('#stages', 5, template, '#addStage'); }); $('#addInputFile').click(function () { var nextIndex = $('#newCertifZone > tbody').children().length + 1; if (nextIndex < 10) { $('#newCertifZone').append('<tr><td><label for="certifs' + nextIndex + '">Annexe supplémentaire</label><br>' + '<input type="file" name="certifs' + nextIndex + '" class="upload-input" id="certifs' + nextIndex + '" onchange="changeTitleFile(this)"/>' + '<label for="certifs' + nextIndex + '" class="btn btn-secondary btn-sm icon-right">Choisir...</label><br>' + '<small class="error" class="form-text text-muted"></small></td></tr>'); if (nextIndex == 9) { $('#addInputFile').hide(750); } } }); } function setMajState() { $('#maj1')[0].checked ? $("#representants").show(1000) : $("#representants").hide(1000); } function setDejaCandState() { if ($('#dejaCand1')[0].checked) { $("#dejaCandAnnee").hide(750); $("#dejaCandAnneeInput").val(""); $("#dejaCandError").html(""); } else { $("#dejaCandAnnee").show(750); } } function setLieuState() { if ($('#lieuLausanne')[0].checked) { $("#jbLausanne").show(0); $("#jbSion").hide(0); } else if ($('#lieuSion')[0].checked) { $("#jbSion").show(0); $("#jbLausanne").hide(0); } } function initAddRadioButtonEvent() { $('#maj1').change(setMajState); $('#maj2').change(setMajState); setMajState(); $("#dejaCand1").change(setDejaCandState); $("#dejaCand2").change(setDejaCandState); setDejaCandState(); $('#lieuLausanne').change(setLieuState); $('#lieuSion').change(setLieuState); } function clearRepresentants() { for (i = 1; i <= 2; i++) { $("#genreRep" + i + " :nth-child(1)").prop('selected', true); $("#nameRep" + i).val(""); $("#surnameRep" + i).val(""); $("#adrRep" + i).val(""); $("#NPARep" + i).val(""); $("#telRep" + i).val(""); } } function initDatepicker() { $.datepicker.setDefaults($.datepicker.regional["fr"]); $("#birthApp").datepicker({ minDate: '-60y', maxDate: '-13y', dateFormat: "dd/mm/yy" }); } function getFormation() { if ($('#lieuLausanne').is(":checked")) { return $("#jbLausanne option:selected")[0].value; } else { return $("#jbSion option:selected")[0].value; } } function initJobChange() { $(".jobSelectors").change(function () { var selectedFormation = getFormation(); showPolyAndInfoDivs(selectedFormation); }); $("#lieux").change(function () { var selectedFormation = getFormation(); showPolyAndInfoDivs(selectedFormation); }); } function showOnFormReturn(lieu) { if (lieu == 'Lausanne') { var selectedFormation = $("#jbLausanne option:selected")[0].value; } else if (lieu == 'Sion') { var selectedFormation = $("#jbSion option:selected")[0].value; } showListJob(lieu) showPolyAndInfoDivs(selectedFormation); } function showListJob(lieu) { if (lieu == 'Lausanne') { $("#jbSion").hide(); $("#jbLausanne").show(); } else if (lieu == 'Sion') { $("#jbSion").show(); $("#jbLausanne").hide(); } } function showPolyAndInfoDivs(selectedFormation) { if (selectedFormation != "menu") { $("#all").show(1000); selectedFormation == "informaticien" ? $("#infoOnly").show(1000) : $("#infoOnly").hide(500); selectedFormation == "informaticien" ? $("#griTest").show(1000) : $("#griTest").hide(500); selectedFormation == "polyMecanicien" ? $("#polyOnly").show(1000) : $("#polyOnly").hide(500); } } function initPostulationChange() { $('#selectPost').on('change', function () { document.forms['postSelector'].submit(); }); } function checkRequired() { $("form").submit(function (e) { let errsNumber = 0; $($(this).find("[data-required]")).each(function () { if ($(this).val() == '') { $(this).addClass('is-invalid') e.preventDefault(); errsNumber++; } else { $(this).removeClass('is-invalid') } }); // no error if (errsNumber) { alert('Certains champs requis n\'ont pas été remplis') } return errsNumber === 0; }); }