Skip to content
Snippets Groups Projects
script.js 10 KiB
Newer Older
nicrausaz's avatar
nicrausaz committed
$(document).ready(function () {
    initButtonsAction();
    if (location.search == "?edit") {
        $("#all").show();
nicrausaz's avatar
nicrausaz committed
        initButtonsAction();
        initAddChildButtons();
nicrausaz's avatar
nicrausaz committed
        initAddRadioButtonEvent();
        initDateChecker();
        initDatepicker();
nicrausaz's avatar
nicrausaz committed
        checkRequired();
nicrausaz's avatar
nicrausaz committed
        toggleTableHeaders();
    }
    else if (location.pathname.split("/").slice(-1)[0] == "form.php") {
nicrausaz's avatar
nicrausaz committed
        initButtonsAction();
        initAddChildButtons();
        initAddRadioButtonEvent();
        initDateChecker();
        initDatepicker();
nicrausaz's avatar
nicrausaz committed
        checkRequired();
nicrausaz's avatar
nicrausaz committed
    }
nicrausaz's avatar
nicrausaz committed
    if (location.pathname.split("/").slice(-1)[0] == "viewpostulation.php") {
        initPostulationChange();
    }
nicrausaz's avatar
nicrausaz committed
});

nicrausaz's avatar
nicrausaz committed
function checkDate() {
    var birthdate = $("#birthApp").val();
    var birthdate_year = birthdate.split('/')[2];
    var current_year = new Date().getFullYear();
    var diff = current_year - birthdate_year;
nicrausaz's avatar
nicrausaz committed

    if (diff <= 12 || diff > 60) {
nicrausaz's avatar
nicrausaz committed
        $('#birthApp').addClass("is-invalid");
nicrausaz's avatar
nicrausaz committed
        document.getElementById('errorBirthdate').innerHTML = 'Date invalide';
    }
    else {
nicrausaz's avatar
nicrausaz committed
        $('#birthApp').removeClass("is-invalid");
nicrausaz's avatar
nicrausaz committed
        document.getElementById('errorBirthdate').innerHTML = '';
    }
nicrausaz's avatar
nicrausaz committed
}

function initDateChecker() {
    $("#birthApp").change(function () {
        checkDate();
    });

nicrausaz's avatar
nicrausaz committed
    $("#dejaCandAnneeInput").change(function () {
        checkYearDate("#dejaCandAnneeInput", "#dejaCandError", 0);
nicrausaz's avatar
nicrausaz committed
    });
    $("#anneeFin").change(function () {
        checkYearDate("#anneeFin", "#anneeFinError", 1);
    });
}

function addChildren(parentId, maxItems, childTemplate, addButtonId) {
nicrausaz's avatar
nicrausaz committed
    var i = $(parentId + ' > tbody').children().length;
nicrausaz's avatar
nicrausaz committed
    if (i < maxItems) {
        var fullTemplate = childTemplate.replace(/\{(.*?)\}/g, i);
        $(parentId).append(fullTemplate);
        if (i == maxItems - 1) {
nicrausaz's avatar
nicrausaz committed
            $(addButtonId).hide();
nicrausaz's avatar
nicrausaz committed
        }
    }
nicrausaz's avatar
nicrausaz committed
    if (location.search == "?edit") {
        toggleTableHeaders();
    }
nicrausaz's avatar
nicrausaz committed
}

function changeTitleFile(objFile) {
    var filename = $(objFile)[0].value.replace(/^.*[\\/]/, '');
    if (filename) {
nicrausaz's avatar
nicrausaz committed
        location.search == "?edit" ? $(objFile.parentElement)[0].children[4].innerHTML = filename : $(objFile.parentElement)[0].children[3].innerHTML = filename;
    } else {
nicrausaz's avatar
nicrausaz committed
        location.search == "?edit" ? $(objFile.parentElement)[0].children[4].innerHTML = 'Remplacer...' : $(objFile.parentElement)[0].children[3].innerHTML = 'Choisir...';
nicrausaz's avatar
nicrausaz committed
    checkFileFormat($(objFile)[0]);
nicrausaz's avatar
nicrausaz committed
}

function checkFileFormat(obj) {
nicrausaz's avatar
nicrausaz committed
    var errorZone = location.search == "?edit" ? $(obj.parentElement)[0].children[6] : $(obj.parentElement)[0].children[5];
nicrausaz's avatar
nicrausaz committed
    var allowedExtensions = ['pdf', 'jpeg', 'png', 'jpg'];
    var fileExtension = obj.value.split('.').pop().toLowerCase();
nicrausaz's avatar
nicrausaz committed

nicrausaz's avatar
nicrausaz committed
    allowedExtensions.indexOf(fileExtension) != -1 || !obj.value ? errorZone.innerHTML = '' : errorZone.innerHTML = 'Format invalide';
nicrausaz's avatar
nicrausaz committed
}

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)) {
nicrausaz's avatar
nicrausaz committed
        $(errorZone).html('Date invalide');
nicrausaz's avatar
nicrausaz committed
    } else {
        $(errorZone).html("");
    }
}

function initButtonsAction() {
    $('#createAc').click(function () {
        window.open("https://guests.epfl.ch/", '_blank');
nicrausaz's avatar
nicrausaz committed
    });
    $('#connectB').click(function () {
        document.location.href = "form.php";
    });
    $('#returnIndexB').click(function () {
        document.location.href = "/index.php";
    });
nicrausaz's avatar
nicrausaz committed
    $('#viewPostB').click(function () {
        document.location.href = "viewpostulation.php";
    });
nicrausaz's avatar
nicrausaz committed
    $('#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 () {
nicrausaz's avatar
nicrausaz committed
        document.location.href = "/form.php?edit";
nicrausaz's avatar
nicrausaz committed
    });
    $('#cancelEditBtn').click(function () {
        document.location.href = "viewpostulation.php";
    })
nicrausaz's avatar
nicrausaz committed
    $('#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);
    });
nicrausaz's avatar
nicrausaz committed
    $('#retourFormulaireEdit').click(function () {
        document.location.href = "/form.php?edit";
    });
nicrausaz's avatar
nicrausaz committed
    $('#retourAccueil').click(function () {
        document.location.href = "/index.php";
    });
nicrausaz's avatar
nicrausaz committed
}

function initAddChildButtons() {
    $('#addSch').click(function () {
nicrausaz's avatar
nicrausaz committed
        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>';
nicrausaz's avatar
nicrausaz committed
        addChildren('#scolaire', 6, template, '#addSch');
    });

    $('#addPro').click(function () {
nicrausaz's avatar
nicrausaz committed
        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>';
nicrausaz's avatar
nicrausaz committed
        addChildren('#activites', 4, template, '#addPro');
    });

    $('#addStage').click(function () {
nicrausaz's avatar
nicrausaz committed
        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>';
nicrausaz's avatar
nicrausaz committed
        addChildren('#stages', 5, template, '#addStage');
    });

    $('#addInputFile').click(function () {
nicrausaz's avatar
nicrausaz committed
        var nextIndex = $('#newCertifZone > tbody').children().length + 1;
nicrausaz's avatar
nicrausaz committed
        if (nextIndex < 10) {
nicrausaz's avatar
nicrausaz committed
            $('#newCertifZone').append('<tr><td><label for="annexe' + nextIndex + '">Annexe supplémentaire</label><br>'
                + '<input type="file" name="annexe' + nextIndex + '" class="upload-input" id="annexe' + nextIndex + '" onchange="changeTitleFile(this)"/>'
                + '<label for="annexe' + nextIndex + '" class="btn btn-secondary btn-sm icon-right">Choisir...</label><br>'
nicrausaz's avatar
nicrausaz committed
                + '<small class="error" class="form-text text-muted"></small></td></tr>');
nicrausaz's avatar
nicrausaz committed
            if (nextIndex == 9) {
nicrausaz's avatar
nicrausaz committed
                $('#addInputFile').hide();
nicrausaz's avatar
nicrausaz committed
function toggleTableHeaders() {
    if ($('#activites')[0].rows.length == 1) {
        $($('#activites')[0].rows[0]).hide();
    } else {
        $($('#activites')[0].rows[0]).show();
    }
    if ($('#stages')[0].rows.length == 1) {
        $($('#stages')[0].rows[0]).hide();
    } else {
        $($('#stages')[0].rows[0]).show();
    }
}

nicrausaz's avatar
nicrausaz committed
function setMajState() {
nicrausaz's avatar
nicrausaz committed
    $('#maj1')[0].checked ? $("#representants").show() : $("#representants").hide();
nicrausaz's avatar
nicrausaz committed
}

function setDejaCandState() {
    if ($('#dejaCand1')[0].checked) {
nicrausaz's avatar
nicrausaz committed
        $("#dejaCandAnnee").hide();
nicrausaz's avatar
nicrausaz committed
        $("#dejaCandAnneeInput").val("");
nicrausaz's avatar
nicrausaz committed
        $("#dejaCandError").html("");
    } else {
nicrausaz's avatar
nicrausaz committed
        $("#dejaCandAnnee").show();
nicrausaz's avatar
nicrausaz committed
    }
}

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();
}

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() {
nicrausaz's avatar
nicrausaz committed
    $.datepicker.setDefaults($.datepicker.regional["fr"]);
    $("#birthApp").datepicker({ minDate: '-60y', maxDate: '-13y', dateFormat: "dd/mm/yy" });
nicrausaz's avatar
nicrausaz committed
}

function showListJob(lieu) {
    if (lieu == 'Lausanne') {
        $("#jbSion").hide();
        $("#jbLausanne").show();
    }
    else if (lieu == 'Sion') {
        $("#jbSion").show();
        $("#jbLausanne").hide();
    }
}
function showPolyAndInfoDivs(selectedFormation) {
    if (selectedFormation != "menu") {
nicrausaz's avatar
nicrausaz committed
        $("#all").show();
        selectedFormation == "informaticien" ? $("#infoOnly").show() : $("#infoOnly").hide();
        selectedFormation == "informaticien" ? $("#griTest").show() : $("#griTest").hide();
        selectedFormation == "polyMecanicien" ? $("#polyOnly").show() : $("#polyOnly").hide();
nicrausaz's avatar
nicrausaz committed
function initPostulationChange() {
nicrausaz's avatar
nicrausaz committed
    $('#selectPost').on('change', function () {
        document.forms['postSelector'].submit();
    });
}

nicrausaz's avatar
nicrausaz committed
function checkRequired() {
nicrausaz's avatar
nicrausaz committed
    $("form").submit(function (e) {
nicrausaz's avatar
nicrausaz committed
        let errsNumber = 0;
nicrausaz's avatar
nicrausaz committed

        $($(this).find("[data-required]")).each(function () {
            if ($(this).val() == '') {
nicrausaz's avatar
nicrausaz committed
                $(this).addClass('is-invalid');
nicrausaz's avatar
nicrausaz committed
                e.preventDefault();
nicrausaz's avatar
nicrausaz committed
                errsNumber++;
            } else {
nicrausaz's avatar
nicrausaz committed
                $(this).removeClass('is-invalid');
nicrausaz's avatar
nicrausaz committed
            }
        });
nicrausaz's avatar
nicrausaz committed
        // no error
        if (errsNumber) {
nicrausaz's avatar
nicrausaz committed
            alert('Certains champs requis n\'ont pas été remplis');
nicrausaz's avatar
nicrausaz committed
        }
        return errsNumber === 0;
nicrausaz's avatar
nicrausaz committed
    });
}