Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 528 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(document).ready(function() {
        $("#effacer").on('click', effacerFomulaire);
        $("#envoyer").on('click', envoyerCourriel);
});

function effacerFomulaire() {
        $("#destinataire_id").attr('value', '');
        $("#sujet").attr('value', '');
        $("#message").text('');
}

function ajouterFomulaireContact(element) {
        $(element).fancybox({
                transitionIn:'elastic',
                transitionOut:'elastic',
                speedIn :600, 
                speedOut:200,
                scrolling: 'no',
                titleShow: false,
                onStart: function(selectedArray, selectedIndex, selectedOpts) {
                        var element = selectedArray[selectedIndex];

                        var motif = / contributeur-([0-9]+)$/;
                        motif.exec($(element).attr('class'));
                        var id = RegExp.$1;
                        // console.log('Destinataire id : '+id);
                        $("#fc_destinataire_id").attr('value', id);
                
                        var motif = / obs-([0-9]+) /;
                        motif.exec($(element).attr('class'));
                        var id = RegExp.$1;
                        // console.log('Obs id : '+id);
                        chargerInfoObsPourMessage(id);
                },
                onCleanup: function() {
                        // console.log('Avant fermeture fancybox');
                        $("#fc_destinataire_id").attr('value', '');
                        $("#fc_sujet").attr('value', '');
                        $("#fc_message").text('');
                },
                onClosed: function(e) {
                        // console.log('Fermeture fancybox');
                        if (e.stopPropagation) {
                                e.stopPropagation();
                        }
                        return false;
                }
        });
}

function chargerInfoObsPourMessage(idObs) {
        var nomSci = trim($(".cel-obs-"+idObs+" .nom-sci:eq(0)").text());
        var date = trim($(".cel-obs-"+idObs+" .date:eq(0)").text());
        var lieu = trim($(".cel-obs-"+idObs+" .lieu:eq(0)").text());
        var sujet = "Observation #"+idObs+" de "+nomSci;
        var message = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de \""+nomSci+'" du "'+date+'" au lieu "'+lieu+'".';
        $("#sujet").attr('value', sujet);
        $("#message").text(message);
}

function initialiserFormulaireContact() {
        // console.log('Initialisation du form contact');
        $("#form-contact").validate({
                rules: {
                        fc_sujet : "required",
                        fc_message : "required",
                        fc_utilisateur_courriel : {
                                required : true,
                                email : true}
                }
        });
        $("#form-contact").bind("submit", envoyerCourriel);
        $("#fc_annuler").bind("click", function() {$.fancybox.close();});
        
}

function envoyerCourriel() {
        // console.log('Formulaire soumis');
        if ($("#form-contact").valid()) {
                // console.log('Formulaire valide');
                // $.fancybox.showActivity();
                var destinataireId = $("#fc_destinataire_id").attr('value');
                var urlMessage = "http://www.tela-botanica.org/service:annuaire:Utilisateur/"+destinataireId+"/message"
                var erreurMsg = "";
                var donnees = new Array();
                $.each($(this).serializeArray(), function (index, champ) {
                        var cle = champ.name;
                        cle = cle.replace(/^fc_/, '');
                        
                        if (cle == 'sujet') {
                                champ.value += " - Carnet en ligne - Tela Botanica";
                        }
                        if (cle == 'message') {
                                champ.value += "\n--\n"+
                                        "Ce message vous est envoyé par l'intermédiaire du widget Cartographique "+
                                        "du Carnet en Ligne du réseau Tela Botanica.\n"+
                                        "http://www.tela-botanica.org/widget:cel:carto";
                        }
                        
                        donnees[index] = {'name':cle,'value':champ.value};
                });
                $.ajax({
                        type : "POST",
                        cache : false,
                        url : urlMessage,
                        data : donnees,
                        beforeSend : function() {
                                $(".msg").remove();
                        },
                        success : function(data) {
                                $("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');
                        },
                        error : function(jqXHR, textStatus, errorThrown) {
                                erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
                                reponse = jQuery.parseJSON(jqXHR.responseText);
                                if (reponse != null) {
                                        $.each(reponse, function (cle, valeur) {
                                                erreurMsg += valeur + "\n";
                                        });
                                }                               
                        },
                        complete : function(jqXHR, textStatus) {
                                var debugMsg = '';
                                if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
                                        debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
                                        if (debugInfos != null) {
                                                $.each(debugInfos, function (cle, valeur) {
                                                        debugMsg += valeur + "\n";
                                                });
                                        }
                                }
                                if (erreurMsg != '') {
                                        $("#fc-zone-dialogue").append('<p class="msg">'+
                                                        'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
                                                        'Vous pouvez signaler le disfonctionnement à <a href="'+
                                                        'mailto:cel@tela-botanica.org'+'?'+
                                                        'subject=Disfonctionnement du widget de Cartographie'+
                                                        "&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
                                                        '">cel@tela-botanica.org</a>.'+
                                                        '</p>');
                                }
                                if (DEBUG) {
                                        console.log('Débogage : '+debugMsg);
                                }
                                // console.log('Débogage : '+debugMsg);
                                // console.log('Erreur : '+erreurMsg);
                        }
                });
        }
        return false;
}