Subversion Repositories Applications.gtt

Rev

Rev 157 | Blame | Compare with Previous | Last modification | View Log | RSS feed

// Fonction déclanchant l'ouverture d'une fenêtre externe pour les liens possédant la classe "ext"
function ouvrirLienExterne() {
        var liens = document.getElementsByTagName('a');
        // On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
        // Une boucle qui parcourt le tableau (array) liens du début à la fin.
        for (var i = 0 ; i < liens.length ; ++i)  {
                // Si les liens ont un nom de class égal à lien_ext, alors on agit.
                if (liens[i].className == 'ext')  {
                        liens[i].title = liens[i].title + 'S\'ouvre dans une nouvelle fenêtre';
                        // Au clique de la souris.
                        liens[i].onclick = function()  {
                                window.open(this.href);
                                return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
                        };
                }
        }
}

function caseACocherUnique() {
    $('input.ab').on('click', function(){
        var id = $(this).attr('id'),
            name = $(this).attr('name'),
            numJour = $(this).attr('data-num-jour'),
            abId = $(this).attr('data-ab-id'),
            dureeDefaut = $(this).attr('data-duree-defaut'),
            checked = $(this).is(':checked');
        if (checked) {
            $(this).val(abId + ':' + dureeDefaut);
        } else {
            $(this).val(abId + ':0');
        }

        // Nous forçons une seul case cochable
        $('input.ab[name="'+name+'"]:checked').each(function() {
            if ($(this).attr('id') != id) {
                $(this).removeAttr('checked');
            }
        });
        
        // Mise à zéro des projets du jour
        $('input.pr[data-num-jour="'+numJour+'"]').each(function() {
            if (checked) {
                if ($(this).attr('value') != '') {
                    $(this).attr('value', 0);
                }
                $(this).attr('disabled', 'disabled');
            } else {
                $(this).removeAttr('disabled');
            }
        });
        
        // Mise à zéro des catégories du jour
        $('td.categorie_total.pr[data-num-jour="'+numJour+'"]').each(function() {
            if (checked) {
                $(this).text('');
            } else {
                $(this).removeAttr('disabled');
            }
        });
    });
    
    $('form#gestion').bind('submit', function() {
        $(this).find(':input').removeAttr('disabled');
    });

    // Nous rendons par défaut les champs projets inactifs pour chaque jour d'abscence
    $('input.ab:checked').each(function() {
        var numJour = $(this).attr('data-num-jour');
        $('input.pr[data-num-jour="'+numJour+'"]').each(function() {
            $(this).attr('disabled', 'disabled');
        });
    });
}

$(document).ready(function() {
    ouvrirLienExterne();
    caseACocherUnique();
});