Subversion Repositories Applications.gtt

Rev

Rev 97 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
157 jpm 1
// Fonction déclanchant l'ouverture d'une fenêtre externe pour les liens possédant la classe "ext"
2
function ouvrirLienExterne() {
97 jpm 3
	var liens = document.getElementsByTagName('a');
157 jpm 4
	// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
5
	// Une boucle qui parcourt le tableau (array) liens du début à la fin.
97 jpm 6
	for (var i = 0 ; i < liens.length ; ++i)  {
157 jpm 7
		// Si les liens ont un nom de class égal à lien_ext, alors on agit.
97 jpm 8
		if (liens[i].className == 'ext')  {
157 jpm 9
			liens[i].title = liens[i].title + 'S\'ouvre dans une nouvelle fenêtre';
97 jpm 10
			// Au clique de la souris.
11
			liens[i].onclick = function()  {
12
				window.open(this.href);
157 jpm 13
				return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
97 jpm 14
			};
15
		}
16
	}
17
}
157 jpm 18
 
19
function caseACocherUnique() {
20
    $('input.ab').on('click', function(){
21
        var id = $(this).attr('id'),
22
            name = $(this).attr('name'),
23
            numJour = $(this).attr('data-num-jour'),
24
            abId = $(this).attr('data-ab-id'),
25
            dureeDefaut = $(this).attr('data-duree-defaut'),
26
            checked = $(this).is(':checked');
27
        if (checked) {
28
            $(this).val(abId + ':' + dureeDefaut);
29
        } else {
30
            $(this).val(abId + ':0');
31
        }
32
 
33
        // Nous forçons une seul case cochable
34
        $('input.ab[name="'+name+'"]:checked').each(function() {
35
            if ($(this).attr('id') != id) {
36
                $(this).removeAttr('checked');
37
            }
38
        });
39
 
40
        // Mise à zéro des projets du jour
41
        $('input.pr[data-num-jour="'+numJour+'"]').each(function() {
42
            if (checked) {
43
                if ($(this).attr('value') != '') {
44
                    $(this).attr('value', 0);
45
                }
46
                $(this).attr('disabled', 'disabled');
47
            } else {
48
                $(this).removeAttr('disabled');
49
            }
50
        });
51
 
52
        // Mise à zéro des catégories du jour
53
        $('td.categorie_total.pr[data-num-jour="'+numJour+'"]').each(function() {
54
            if (checked) {
55
                $(this).text('');
56
            } else {
57
                $(this).removeAttr('disabled');
58
            }
59
        });
60
    });
61
 
62
    $('form#gestion').bind('submit', function() {
63
        $(this).find(':input').removeAttr('disabled');
64
    });
65
 
66
    // Nous rendons par défaut les champs projets inactifs pour chaque jour d'abscence
67
    $('input.ab:checked').each(function() {
68
        var numJour = $(this).attr('data-num-jour');
69
        $('input.pr[data-num-jour="'+numJour+'"]').each(function() {
70
            $(this).attr('disabled', 'disabled');
71
        });
72
    });
97 jpm 73
}
74
 
157 jpm 75
$(document).ready(function() {
76
    ouvrirLienExterne();
77
    caseACocherUnique();
78
});