Subversion Repositories eFlore/Applications.del

Rev

Rev 984 | Rev 991 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 984 Rev 986
Line -... Line 1...
-
 
1
/**----------------------------------------------------------------------------------------------------------*/
-
 
2
/** Variables globales et initialisation
-
 
3
 *  Variables crées par php dans le squelettes 
1
/**
4
 * 
2
 * var g_idObservation : id de l'observation en cours de consultation
5
 * var g_idObservation : id de l'observation en cours de consultation
3
 * var g_urlServiceVotes : url du service web des votes à appeler
6
 * var g_urlServiceVotes : url du service web des votes à appeler
4
 * var g_urlServiceUtilisateurs : url du service web utilisateur à appeler
7
 * var g_urlServiceUtilisateurs : url du service web utilisateur à appeler
5
 * var g_votes : tableau des votes 
8
 * var g_votes : tableau des votes 
-
 
9
 * 
6
 */
10
 */
7
var boutonClique = null;
11
var boutonClique = null;
8
var g_idUtilisateur = null
12
var g_idUtilisateur = null;
-
 
13
 
-
 
14
$(document).ready(function() {
-
 
15
	getIdUtilisateur();
-
 
16
	gererEvenementsClicsVotes();
-
 
17
	gererEvenementClicImageSecondaire();
-
 
18
});
-
 
19
 
-
 
20
function getIdUtilisateur() {
-
 
21
	$.getJSON(g_urlServiceUtilisateurs, function(data) {
-
 
22
		g_idUtilisateur = data.id_utilisateur;
-
 
23
		mettreEnValeurVotesUtilisateur();
-
 
24
	});
-
 
25
}
Line 9... Line 26...
9
 
26
 
10
function gererEvenementsClicsVotes() {
27
function gererEvenementsClicsVotes() {
11
	$('.bouton_vote').click(function(event) {
28
	$('.bouton_vote').click(function(event) {
12
		boutonClique = $(this);
29
		boutonClique = $(this);
13
		voter(getValeurVote());
30
		voter(getValeurVote());
14
	}); 
31
	}); 
Line 15... Line 32...
15
}
32
}
16
 
33
 
17
function voter(ouiOuNon) {
-
 
18
	var idProposition = obtenirIdProposition();
34
function gererEvenementClicImageSecondaire() {
19
	var urlVote = getUrlVoteProposition(idProposition);
35
	$('.image_secondaire').click(function(event) {
20
	var type = getMethodeRequete(idProposition, g_idUtilisateur);
-
 
21
	
-
 
22
	$.ajax({
-
 
23
		url : urlVote,
36
		$('.image_secondaire').removeClass('image_active');
24
		type: type,
-
 
25
		data: "utilisateur="+g_idUtilisateur+"&valeur="+ouiOuNon
37
		
-
 
38
		var urlImageSecondaire = $(this).attr('src');
26
	}).done(function(data) {
39
		urlImageSecondaireAgrandie = urlImageSecondaire.replace('XS','CRS');
27
		mettreAjourTableauVotes(idProposition, g_idUtilisateur, ouiOuNon);
40
		
28
		mettreAJourNbVotes(idProposition);
-
 
29
		boutonClique.effect("highlight", {}, 1000);
-
 
30
		boutonClique = null;
-
 
31
	});					
41
		var urlImagePrincipale = $('#image_principale').attr('src');
32
}
42
		urlImagePrincipaleMiniature = urlImagePrincipale.replace('CRS','XS');
33
 
-
 
34
function getMethodeRequete(idProposition, idUtilisateur) {
43
		
35
	var methode = "PUT";
-
 
36
	if(g_votes[idProposition] != undefined && g_votes[idProposition] != null &&
-
 
37
			g_votes[idProposition][idUtilisateur] != undefined && g_votes[idProposition][idUtilisateur] != null) {
44
		$(this).addClass('image_active');
38
		methode = "POST";
-
 
39
	}
45
		$('#image_principale').attr('src', urlImageSecondaireAgrandie);
Line 40... Line -...
40
	return methode;
-
 
41
}
-
 
42
 
-
 
43
function mettreAjourTableauVotes(idProposition, idUtilisateur, valeurVote) {
-
 
44
	if(g_votes[idProposition] == undefined) {
-
 
45
		g_votes[idProposition] = new Array();
-
 
Line 46... Line 46...
46
	}
46
	});
47
	g_votes[idProposition][idUtilisateur] = valeurVote;
47
}
48
}
48
 
49
 
49
 
50
function getValeurVote() {
50
function getValeurVote() {
51
	valeur = "0";
51
	valeur = 0;
52
	if(boutonClique.hasClass('bouton_vote_oui')) {
52
	if(boutonClique.hasClass('bouton_vote_oui')) {
Line -... Line 53...
-
 
53
		valeur = 1;
-
 
54
	}
-
 
55
	return valeur;
-
 
56
}
-
 
57
 
-
 
58
function getIdProposition() {
-
 
59
	var chaineProposition = boutonClique.parent().attr('id');
-
 
60
	return chaineProposition.replace('vote_determination_', '');
-
 
61
}
-
 
62
 
-
 
63
 
-
 
64
/**----------------------------------------------------------------------------------------------------------*/
-
 
65
/** Affichage **/
-
 
66
 
-
 
67
function mettreEnValeurBoutonClique() {
-
 
68
	boutonClique.parent().find(".bouton_vote").removeClass("bouton_selectionne");
-
 
69
	boutonClique.effect("highlight", {}, 500, function() {$(this).addClass("bouton_selectionne");});
-
 
70
}
-
 
71
 
-
 
72
function mettreEnValeurVotesUtilisateur() {
-
 
73
	$('.votes_determination').each(function() {
-
 
74
		var id_proposition = $(this).attr('id').replace('vote_determination_', '');
-
 
75
		if(g_votes[id_proposition] != undefined && g_votes[id_proposition][g_idUtilisateur] != undefined) {
-
 
76
			if(g_votes[id_proposition][g_idUtilisateur] == 1) {
-
 
77
				$(this).children('.bouton_vote_oui').addClass("bouton_selectionne");
-
 
78
			} else {
-
 
79
				$(this).children('.bouton_vote_non').addClass("bouton_selectionne");
53
		valeur = "1";
80
			}
54
	}
81
		}
55
	return valeur;
82
	}); 
56
}
83
}
57
 
84
 
58
function mettreAJourNbVotes(idProposition) {
85
function mettreAJourAffichageNbVotes(idProposition) {
Line 59... Line 86...
59
	affichageVotes = boutonClique.parent().find(".nb_votes");
86
	affichageVotes = boutonClique.parent().find(".nb_votes");
60
	affichageVotes.each(function() {
87
	affichageVotes.each(function() {
61
		if($(this).hasClass("nb_votes_oui")) {
88
		if($(this).hasClass("nb_votes_oui")) {
62
			$(this).html(calculerVotesOui(idProposition));
89
			$(this).html(calculerVotes(idProposition,1));
63
		}
90
		}
Line 64... Line 91...
64
		
91
		
65
		if($(this).hasClass("nb_votes_non")) {
92
		if($(this).hasClass("nb_votes_non")) {
66
			$(this).html(calculerVotesNon(idProposition));
-
 
-
 
93
			$(this).html(calculerVotes(idProposition,0));
67
		}
94
		}
68
	});
95
	});
69
}
-
 
70
 
-
 
71
function calculerVotesOui(id_proposition) {
-
 
72
	var nbOui = 0;
-
 
73
	g_votes[id_proposition]
96
}
Line 74... Line 97...
74
	for (var votant in g_votes[id_proposition]) {
97
 
75
		if(g_votes[id_proposition][votant] == 1) {
98
/**----------------------------------------------------------------------------------------------------------*/
76
			nbOui++;
-
 
77
		}
99
/** Requetes **/
78
	}
100
 
79
	return nbOui;
101
function getUrlVoteProposition(idProposition) {
80
}
-
 
81
 
102
	return g_urlServiceVotes+'/'+idProposition+'/vote/';
82
function calculerVotesNon(id_proposition) {
103
}
83
	var nbNon = 0;
104
 
Line 84... Line 105...
84
	g_votes[id_proposition]
105
function getMethodeRequete(idProposition, idUtilisateur) {
85
	for (var votant in g_votes[id_proposition]) {
106
	var methode = "PUT";
-
 
107
	if(g_votes[idProposition] != undefined && g_votes[idProposition] != null &&
-
 
108
			g_votes[idProposition][idUtilisateur] != undefined && g_votes[idProposition][idUtilisateur] != null) {
-
 
109
		methode = "POST";
-
 
110
	}
-
 
111
	return methode;
-
 
112
}
-
 
113
 
-
 
114
function voter(ouiOuNon) {
-
 
115
	var idProposition = getIdProposition();
86
		if(g_votes[id_proposition][votant] == 0) {
116
	var urlVote = getUrlVoteProposition(idProposition);
-
 
117
	var type = getMethodeRequete(idProposition, g_idUtilisateur);
-
 
118
	
-
 
119
	if(!voteEstIdentique(idProposition, g_idUtilisateur, ouiOuNon)) {
-
 
120
		$.ajax({
-
 
121
			url : urlVote,
87
			nbNon++;
122
			type: type,
Line 88... Line 123...
88
		}
123
			data: "utilisateur="+g_idUtilisateur+"&valeur="+ouiOuNon
89
	}
124
		}).done(function(data) {
90
	return nbNon;
-
 
Line 91... Line 125...
91
}
125
			mettreAjourTableauVotes(idProposition, g_idUtilisateur, ouiOuNon);
92
 
126
			mettreAJourAffichageNbVotes(idProposition);
93
function obtenirIdProposition() {
-
 
94
	var chaineProposition = boutonClique.parent().attr('id');
-
 
95
	return chaineProposition.replace('vote_determination_', '');
127
			mettreEnValeurBoutonClique();
96
}
-
 
97
 
128
			boutonClique = null;
98
function getUrlVoteProposition(idProposition) {
129
		});		
99
	return g_urlServiceVotes+'/'+idProposition+'/vote/';
-
 
100
}
-
 
101
 
-
 
102
function gererEvenementClicImageSecondaire() {
-
 
103
	$('.image_secondaire').click(function(event) {
-
 
104
		$('.image_secondaire').removeClass('image_active');
130
	}
Line 105... Line 131...
105
		
131
}
-
 
132
 
106
		var urlImageSecondaire = $(this).attr('src');
133
/**----------------------------------------------------------------------------------------------------------*/
107
		urlImageSecondaireAgrandie = urlImageSecondaire.replace('XS','CRS');
134
/** Mise à jour et accès au tableau des votes **/
-
 
135
 
-
 
136
function mettreAjourTableauVotes(idProposition, idUtilisateur, valeurVote) {
108
		
137
	if(g_votes[idProposition] == undefined) {
-
 
138
		g_votes[idProposition] = new Array();
109
		var urlImagePrincipale = $('#image_principale').attr('src');
139
	}
Line 110... Line 140...
110
		urlImagePrincipaleMiniature = urlImagePrincipale.replace('CRS','XS');
140
	g_votes[idProposition][idUtilisateur] = valeurVote;
111
		
141
}
112
		$(this).addClass('image_active');
142
 
113
		$('#image_principale').attr('src', urlImageSecondaireAgrandie);
143
function calculerVotes(id_proposition, ouiOuNon) {
114
	});
144
	var nb = 0;
115
}
145
	for (var votant in g_votes[id_proposition]) {