Subversion Repositories eFlore/Applications.del

Rev

Rev 983 | Rev 986 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
983 aurelien 1
/**
2
 * var g_idObservation : id de l'observation en cours de consultation
984 aurelien 3
 * var g_urlServiceVotes : url du service web des votes à appeler
4
 * var g_urlServiceUtilisateurs : url du service web utilisateur à appeler
5
 * var g_votes : tableau des votes
983 aurelien 6
 */
7
var boutonClique = null;
984 aurelien 8
var g_idUtilisateur = null
983 aurelien 9
 
10
function gererEvenementsClicsVotes() {
11
	$('.bouton_vote').click(function(event) {
12
		boutonClique = $(this);
13
		voter(getValeurVote());
14
	});
15
}
16
 
17
function voter(ouiOuNon) {
18
	var idProposition = obtenirIdProposition();
19
	var urlVote = getUrlVoteProposition(idProposition);
984 aurelien 20
	var type = getMethodeRequete(idProposition, g_idUtilisateur);
21
 
983 aurelien 22
	$.ajax({
23
		url : urlVote,
984 aurelien 24
		type: type,
25
		data: "utilisateur="+g_idUtilisateur+"&valeur="+ouiOuNon
983 aurelien 26
	}).done(function(data) {
984 aurelien 27
		mettreAjourTableauVotes(idProposition, g_idUtilisateur, ouiOuNon);
28
		mettreAJourNbVotes(idProposition);
983 aurelien 29
		boutonClique.effect("highlight", {}, 1000);
30
		boutonClique = null;
31
	});
32
}
33
 
984 aurelien 34
function getMethodeRequete(idProposition, idUtilisateur) {
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) {
38
		methode = "POST";
39
	}
40
	return methode;
41
}
42
 
43
function mettreAjourTableauVotes(idProposition, idUtilisateur, valeurVote) {
44
	if(g_votes[idProposition] == undefined) {
45
		g_votes[idProposition] = new Array();
46
	}
47
	g_votes[idProposition][idUtilisateur] = valeurVote;
48
}
49
 
983 aurelien 50
function getValeurVote() {
51
	valeur = "0";
52
	if(boutonClique.hasClass('bouton_vote_oui')) {
53
		valeur = "1";
54
	}
55
	return valeur;
56
}
57
 
984 aurelien 58
function mettreAJourNbVotes(idProposition) {
59
	affichageVotes = boutonClique.parent().find(".nb_votes");
60
	affichageVotes.each(function() {
61
		if($(this).hasClass("nb_votes_oui")) {
62
			$(this).html(calculerVotesOui(idProposition));
63
		}
64
 
65
		if($(this).hasClass("nb_votes_non")) {
66
			$(this).html(calculerVotesNon(idProposition));
67
		}
68
	});
983 aurelien 69
}
70
 
984 aurelien 71
function calculerVotesOui(id_proposition) {
72
	var nbOui = 0;
73
	g_votes[id_proposition]
74
	for (var votant in g_votes[id_proposition]) {
75
		if(g_votes[id_proposition][votant] == 1) {
76
			nbOui++;
77
		}
78
	}
79
	return nbOui;
80
}
81
 
82
function calculerVotesNon(id_proposition) {
83
	var nbNon = 0;
84
	g_votes[id_proposition]
85
	for (var votant in g_votes[id_proposition]) {
86
		if(g_votes[id_proposition][votant] == 0) {
87
			nbNon++;
88
		}
89
	}
90
	return nbNon;
91
}
92
 
983 aurelien 93
function obtenirIdProposition() {
94
	var chaineProposition = boutonClique.parent().attr('id');
95
	return chaineProposition.replace('vote_determination_', '');
96
}
97
 
98
function getUrlVoteProposition(idProposition) {
984 aurelien 99
	return g_urlServiceVotes+'/'+idProposition+'/vote/';
983 aurelien 100
}
101
 
102
function gererEvenementClicImageSecondaire() {
103
	$('.image_secondaire').click(function(event) {
104
		$('.image_secondaire').removeClass('image_active');
105
 
106
		var urlImageSecondaire = $(this).attr('src');
107
		urlImageSecondaireAgrandie = urlImageSecondaire.replace('XS','CRS');
108
 
109
		var urlImagePrincipale = $('#image_principale').attr('src');
110
		urlImagePrincipaleMiniature = urlImagePrincipale.replace('CRS','XS');
111
 
112
		$(this).addClass('image_active');
113
		$('#image_principale').attr('src', urlImageSecondaireAgrandie);
114
	});
115
}
116
 
984 aurelien 117
function getIdUtilisateur() {
118
	$.getJSON(g_urlServiceUtilisateurs, function(data) {
119
		g_idUtilisateur = data.id_utilisateur;
120
	});
121
}
122
 
983 aurelien 123
$(document).ready(function() {
984 aurelien 124
	getIdUtilisateur();
983 aurelien 125
	gererEvenementsClicsVotes();
126
	gererEvenementClicImageSecondaire();
127
});