Rev 996 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/**----------------------------------------------------------------------------------------------------------*//** Variables globales et initialisation* Variables crées par php dans le squelettes** var g_idObservation : id de l'observation en cours de consultation* var g_urlServiceVotes : url du service web des votes à appeler* var g_urlServiceUtilisateurs : url du service web utilisateur à appeler* var g_votes : tableau des votes**/var boutonClique = null;var g_idUtilisateur = null;$(document).ready(function() {getIdUtilisateur();gererEvenementsClicsVotes();gererEvenementClicImageSecondaire();});$(document).bind('pageload', function() {gererEvenementsClicsVotes();mettreEnValeurVotesUtilisateur();});function getIdUtilisateur() {$.getJSON(g_urlServiceUtilisateurs, function(data) {g_idUtilisateur = data.id_utilisateur;mettreEnValeurVotesUtilisateur();});}function gererEvenementsClicsVotes() {$('.bouton_vote').unbind('click');$('.bouton_vote').click(function(event) {boutonClique = $(this);voter(getValeurVote());});}function gererEvenementClicImageSecondaire() {$('.image_secondaire').live('click', function(event) {$('.image_secondaire').removeClass('image_active');var urlImageSecondaire = $(this).attr('src');urlImageSecondaireAgrandie = urlImageSecondaire.replace('CRX2S','CRS');var urlImagePrincipale = $('.image_principale').attr('src');urlImagePrincipaleMiniature = urlImagePrincipale.replace('CRS','CRX2S');$(this).addClass('image_active');$('.image_principale').attr('src', urlImageSecondaireAgrandie);});}function getValeurVote() {valeur = 0;if(boutonClique.hasClass('bouton_vote_oui')) {valeur = 1;}return valeur;}function getIdProposition() {var chaineProposition = boutonClique.parent().attr('id');return chaineProposition.replace('vote_determination_', '');}/**----------------------------------------------------------------------------------------------------------*//** Affichage **/function mettreEnValeurBoutonClique() {boutonClique.parent().find(".bouton_vote").removeClass("bouton_selectionne");boutonClique.effect("highlight", {}, 500, function() {$(this).addClass("bouton_selectionne");});}function mettreEnValeurVotesUtilisateur() {$('.votes_determination').each(function() {var id_proposition = $(this).attr('id').replace('vote_determination_', '');if(g_votes[id_proposition] != undefined && g_votes[id_proposition][g_idUtilisateur] != undefined) {if(g_votes[id_proposition][g_idUtilisateur] == 1) {$(this).children('.bouton_vote_oui').addClass("bouton_selectionne");} else {$(this).children('.bouton_vote_non').addClass("bouton_selectionne");}}});}function mettreAJourAffichageNbVotes(idProposition) {affichageVotes = boutonClique.parent().find(".nb_votes");affichageVotes.each(function() {if($(this).hasClass("nb_votes_oui")) {$(this).html(calculerVotes(idProposition,1));}if($(this).hasClass("nb_votes_non")) {$(this).html(calculerVotes(idProposition,0));}});}/**----------------------------------------------------------------------------------------------------------*//** Requetes **/function getUrlVoteProposition(idProposition) {return g_urlServiceVotes+'/'+idProposition+'/vote/';}function getMethodeRequete(idProposition, idUtilisateur) {var methode = "PUT";if(g_votes[idProposition] != undefined && g_votes[idProposition] != null &&g_votes[idProposition][idUtilisateur] != undefined && g_votes[idProposition][idUtilisateur] != null) {methode = "POST";}return methode;}function voter(ouiOuNon) {var idProposition = getIdProposition();var urlVote = getUrlVoteProposition(idProposition);var type = getMethodeRequete(idProposition, g_idUtilisateur);if(!voteEstIdentique(idProposition, g_idUtilisateur, ouiOuNon)) {$.ajax({url : urlVote,type: type,data: "utilisateur="+g_idUtilisateur+"&valeur="+ouiOuNon}).done(function(data) {mettreAjourTableauVotes(idProposition, g_idUtilisateur, ouiOuNon);mettreAJourAffichageNbVotes(idProposition);mettreEnValeurBoutonClique();boutonClique = null;});}}/**----------------------------------------------------------------------------------------------------------*//** Mise à jour et accès au tableau des votes **/function mettreAjourTableauVotes(idProposition, idUtilisateur, valeurVote) {if(g_votes[idProposition] == undefined) {g_votes[idProposition] = new Array();}g_votes[idProposition][idUtilisateur] = valeurVote;}function calculerVotes(id_proposition, ouiOuNon) {var nb = 0;for (var votant in g_votes[id_proposition]) {if(g_votes[id_proposition][votant] == ouiOuNon) {nb++;}}return nb;}function voteEstIdentique(id_proposition, id_utilisateur, ouiOuNon) {return (g_votes[id_proposition] != undefined &&g_votes[id_proposition][id_utilisateur] != undefined &&g_votes[id_proposition][id_utilisateur] == ouiOuNon);}