Subversion Repositories Sites.obs-saisons.fr

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
210 aurelien 1
var urlBaseJrest = 'http://162.38.234.9/obs_saisons/applications/jrest/';
2
 
3
/**
4
************************************************************************************************
5
************************************************************************************************
6
 
7
    Fonctions pour l'administration
8
 
9
************************************************************************************************
10
************************************************************************************************
11
**/
12
 
13
var liste_utilisateurs_en_cours;
14
var indice_utilisateur_en_cours;
15
var timerRequeteAutocompletion;
16
var timerAffichageAutocompletion;
17
 
18
function ajouterAutoCompletionUtilisateurs() {
19
 
20
	$('input#identite_utilisateur').after('<div class="conteneur_suggestions_utilisateur"></div>');
21
	$('input#identite_utilisateur').parent().addClass('autocompletion');
22
	$('input#identite_utilisateur').attr('autocomplete','off');
23
	$('.conteneur_suggestions_utilisateur').hide();
24
	rendreListeAutoCompletionUtilisateursInteractive('input#identite_utilisateur');
25
}
26
 
27
function obtenirInformationsUtilisateur(nom_utilisateur) {
28
 
29
	if(jQuery.trim(nom_utilisateur) == '') {
30
		$('.conteneur_suggestions_utilisateur').hide();
31
		return;
32
	}
33
 
34
	$.get(urlBaseJrest+'OdsUtilisateur/'+nom_utilisateur, function(data) {
35
 
36
		infos_utilisateurs = jQuery.parseJSON(data);
37
		afficherListeAutoCompletionUtilisateur(infos_utilisateurs);
38
	});
39
}
40
 
41
 
42
function afficherListeAutoCompletionUtilisateur(tableau_utilisateur) {
43
 
44
	liste_utilisateurs_en_cours = tableau_utilisateur;
45
 
46
	html_liste_utilisateurs = '<ul class="liste_suggestions">';
47
 
48
	for(i = 0; i < tableau_utilisateur.length; i++) {
49
 
50
		html_liste_utilisateurs += '<li id="utilisateur_'+i+'" class="element_auto_completion_utilisateur">'+tableau_utilisateur[i]['nom']+'</li>';
51
	}
52
 
53
	html_liste_utilisateurs += '</ul>';
54
 
55
	$('.conteneur_suggestions_utilisateur').html(html_liste_utilisateurs);
56
 
57
	$('.element_auto_completion_utilisateur').hover(function() {
58
		indice = $(this).attr('id').split('_')[1];
59
		mettreEnSurbrillanceUtilisateur(indice);
60
	});
61
 
62
	$('.element_auto_completion_utilisateur').click(function() {
63
		$('#identite_utilisateur').val($(this).val());
64
		$('#form_changement_identite').submit();
65
	});
66
 
67
	if(tableau_utilisateur.length > 0) {
68
		$('.conteneur_suggestions_utilisateur').show();
69
		mettreEnSurbrillanceUtilisateur(0);
70
	}
71
}
72
 
73
function mettreEnSurbrillanceUtilisateur(indice) {
74
 
75
	if(indice_utilisateur_en_cours != null) {
76
		$('#utilisateur_'+indice_utilisateur_en_cours).removeClass('element_selectionne');
77
	}
78
	$('#utilisateur_'+indice).addClass('element_selectionne');
79
	indice_utilisateur_en_cours = indice;
80
 
81
	reprogrammerTimerPourCacherListeAutoCompletion();
82
}
83
 
84
function rendreListeAutoCompletionUtilisateursInteractive(selecteur) {
85
 
86
	$(selecteur).keyup(function(event) {
87
		if(event.which == 8 || (event.which >= 48 && event.which <= 90)) {
88
 
89
			reprogrammerTimerPourCacherListeAutoCompletion();
90
			reprogrammerTimerPourLancerRequeteUtilisateur();
91
		}
92
	});
93
 
94
	$(selecteur).keydown(function(event) {
95
 
96
		reprogrammerTimerPourCacherListeAutoCompletion();
97
 
98
		// entree
99
		if(event.which==13){
100
			selectionnerUtilisateur(indice_utilisateur_en_cours);
101
		}
102
 
103
		// haut
104
		if(event.which == 38){
105
			if(indice_utilisateur_en_cours > 0) {
106
				mettreEnSurbrillanceUtilisateur(indice_utilisateur_en_cours - 1);
107
			}
108
		}
109
 
110
		// bas
111
		if(event.which == 40){
112
			if(indice_utilisateur_en_cours < liste_utilisateurs_en_cours.length - 1) {
113
				mettreEnSurbrillanceUtilisateur(indice_utilisateur_en_cours + 1);
114
			}
115
		}
116
	});
117
 
118
	$('.conteneur_suggestions_utilisateur').blur(function() {
119
		$('.conteneur_suggestions_utilisateur').hide();
120
	});
121
}
122
 
123
function reprogrammerTimerPourCacherListeAutoCompletion() {
124
 
125
	if(timerAffichageAutocompletion != null) {
126
		window.clearTimeout(timerAffichageAutocompletion);
127
	}
128
 
129
	timerAffichageAutocompletion = window.setTimeout(function() {
130
		$('.conteneur_suggestions_utilisateur').hide();
131
	}, 2000);
132
}
133
 
134
function reprogrammerTimerPourLancerRequeteUtilisateur() {
135
 
136
	if(timerRequeteAutocompletion != null) {
137
		window.clearTimeout(timerRequeteAutocompletion);
138
	}
139
 
140
	timerRequeteAutocompletion = window.setTimeout(function() {
141
		obtenirInformationsUtilisateur($('input#identite_utilisateur').val());
142
	}, 350);
143
}
144
 
145
function selectionnerUtilisateur(indice) {
146
 
147
	infos_utilisateur = liste_utilisateurs_en_cours[indice];
148
 
149
	$('input#identite_utilisateur').val(infos_utilisateur['nom']);
150
	$('.conteneur_suggestions_utilisateur').hide();
151
}
152
 
153
$('#identite_utilisateur').ready(function() {
154
	ajouterAutoCompletionUtilisateurs();
155
});