Subversion Repositories eFlore/Applications.cel

Rev

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

function WidgetSaisieAmbrosia() {       
}
WidgetSaisieAmbrosia.prototype = new WidgetSaisie();


WidgetSaisieAmbrosia.prototype.initEvts = function() {
        var lthis = this;
        // super()
        WidgetSaisie.prototype.initEvts.call(this);

        $("body").on('click', ".fermer", function(event) {
                        event.preventDefault();
                        lthis.basculerOuvertureFermetureCadre($(this).find('.icone'));
        });
};

// @TODO harmoniser
WidgetSaisieAmbrosia.prototype.configurerFormValidator = function() {
        $.validator.addMethod(
                "dateCel",
                function (value, element) {
                        return value == "" || (/^[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{4}$/.test(value));
                },
                "Format : jj/mm/aaaa. Date incomplète, utiliser 0, exemple : 00/12/2011.");

        $.extend($.validator.defaults, {
                ignore: [],// Forcer Jquery Validate à examiner les éléments avec en display:none;
                highlight: function(element) {
                        $(element).closest('.control-group').removeClass('success').addClass('error');
                },
                success: function(element) {
                        element.text('OK!').addClass('valid');
                        element.closest('.control-group').removeClass('error').addClass('success');

                        if (element.attr('id') == 'taxon' && $('#taxon').val() != '') {
                                // Si le taxon n'est pas lié au référentiel, on vide le data associé
                                if ($('#taxon').data('value') != $('#taxon').val()) {
                                        $('#taxon').data('numNomSel', '');
                                        $('#taxon').data('nomRet', '');
                                        $('#taxon').data('numNomRet', '');
                                        $('#taxon').data('nt', '');
                                        $('#taxon').data('famille', '');
                                }
                        }
                }
        });
};

WidgetSaisieAmbrosia.prototype.definirReglesFormValidator = function() {
        $('#form-observateur').validate({
                rules: {
                        courriel : {
                                required : true,
                                email : true},
                        courriel_confirmation : {
                                required : true,
                                equalTo: '#courriel'}
                }
        });
        $('#form-station').validate({
                rules: {
                        latitude : {
                                range: [-90, 90],
                                required: true},
                        longitude : {
                                range: [-180, 180],
                                required: true},
                        stationSurface: 'required',
                        milieu: 'required'
                }
        });
        $('#form-obs').validate({
                rules: {
                        date: {
                                required: true,
                                'dateCel' : true},
                        taxon: 'required',
                        recouvrement: 'required'
                },
                errorPlacement: function(error, element) {
                        if (element.attr('name') == 'date') {
                                element.parent('.input-prepend').after(error);
                        } else {
                                error.insertAfter(element);
                        }
                }
        });
};

WidgetSaisieAmbrosia.prototype.basculerOuvertureFermetureCadre = function(element) {
        if (element.hasClass('icon-plus-sign')) {
                element.removeClass('icon-plus-sign').addClass('icon-minus-sign');
        } else {
                element.removeClass('icon-minus-sign').addClass('icon-plus-sign');
        }
};

// @TODO harmoniser si espèce ou référentiel figés
WidgetSaisieAmbrosia.prototype.afficherObs = function() {
        $("#liste-obs").prepend(
                '<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
                        '<div class="span12">'+
                                '<div class="well">'+
                                        '<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
                                                'title="Supprimer cette observation de la liste à transmettre">'+
                                                '<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
                                                        '<i class="icon-trash icon-white"></i>'+
                                                '</button>'+
                                        '</div> '+
                                        '<div class="row-fluid">'+
                                                '<div class="thumbnail span2">'+
                                                this.ajouterImgMiniatureAuTransfert()+
                                                '</div>'+
                                                '<div class="span9">'+
                                                        '<ul class="unstyled">'+
                                                                '<li>'+
                                                                        '<span class="nom-sci">'+$("#taxon").val()+'</span> '+
                                                                        this.ajouterNumNomSel()+
                                                                        ' observé à '+
                                                                        '<span class="commune">'+$('#commune-nom').text()+'</span> '+
                                                                        '('+$('#commune-code-insee').text()+') ['+$("#latitude").val()+' / '+$("#longitude").val()+']'+
                                                                        ' le '+
                                                                        '<span class="date">'+$("#date").val()+'</span>'+
                                                                '</li>'+
                                                                '<li>'+
                                                                        '<span>Lieu-dit :</span> '+$('#lieudit').val()+' - '+
                                                                        '<span>Station :</span> '+$('#station').val()+' '+
                                                                '</li>'+
                                                                '<li>'+
                                                                        '<span>Surface :</span> '+$('#station-surface option:selected').text()+' - '+
                                                                        '<span>Recouvrement :</span> '+$('#recouvrement option:selected').text()+' '+
                                                                '</li>'+
                                                                '<li>'+
                                                                        '<span>Milieu :</span> '+$('#milieu').val()+' '+' - '+
                                                                        '<span>Commentaire sur le milieu :</span> <span class="discretion">'+$('#milieu-commentaire').val()+' '+'</span><br />'+
                                                                '</li>'+
                                                                '<li>'+
                                                                        'Notes : <span class="discretion">'+$("#notes").val()+'</span>'+
                                                                '</li>'+
                                                        '</ul>'+
                                                '</div>'+
                                        '</div>'+
                                '</div>'+
                        '</div>'+
                '</div>');
};

// @TODO harmoniser
WidgetSaisieAmbrosia.prototype.ajouterNumNomSel = function() {
        var nn = '';
        if ($("#taxon").data("numNomSel") == undefined) {
                nn = '<span class="alert-error">[non lié au référentiel]</span>';
        } else {
                nn = '<span class="nn">['+
                        '<span class="referentiel-obs">'+($("#taxon").data("numNomSel") == undefined ? '' : this.nomSciReferentiel + '-')+'</span>'+
                        'nn'+$("#taxon").data("numNomSel")+
                        ']</span>';
        }
        return nn;
};