370,11 → 370,28 |
WidgetSaisie.prototype.surChangementTaxonListe = function() { |
if ( valeurOk( $( '#taxon-liste' ).val() ) ) { |
if ( 'autre' !== $( '#taxon-liste' ).val() ) { |
$( '#taxon-input-groupe' ).hide( 200, function () { |
$( this ).addClass( 'hidden' ).show(); |
}); |
$( '#taxon-input-groupe' ) |
.hide( 200, function () { |
$( this ).addClass( 'hidden' ).show(); |
}) |
.find( '#taxon-autre' ).val( '' ); |
} else { |
$( '#taxon-input-groupe' ).hide().removeClass( 'hidden' ).show(200); |
$( '#taxon-input-groupe' ) |
.hide() |
.removeClass( 'hidden' ) |
.show(200) |
.find( '#taxon-autre' ) |
.on( 'change', function() { |
if( !valeurOk( $( '#taxon-autre' ).data( 'numNomSel' ) ) ) { |
$( '#taxon' ).val( $( '#taxon-autre' ).val() ); |
$( '#taxon' ).data( 'numNomSel', '' ) |
.data( 'nomRet','' ) |
.data( 'numNomRet', '' ) |
.data( 'nt', '' ) |
.data( 'famille', '' ); |
} |
$( '#taxon' ).trigger( 'change' ); |
}); |
} |
} |
}; |
396,6 → 413,7 |
.data( 'numNomRet', optionRetenue.data( 'num-nom-ret' ) ) |
.data( 'nt', optionRetenue.data( 'nt' ) ) |
.data( 'famille', optionRetenue.data( 'famille' ) ); |
$( '#taxon' ).trigger( 'change' ); |
|
numNomSel = $( '#taxon' ).data( 'numNomSel' ); |
// Si l'espèce est mal déterminée la certitude est "à déterminer" |
443,7 → 461,7 |
}, |
html: true |
}); |
$( taxonSelecteur ).on( 'autocompleteselect change', this.surAutocompletionTaxon ); |
$( taxonSelecteur ).on( 'autocompleteselect', this.surAutocompletionTaxon ); |
}; |
|
WidgetSaisie.prototype.getUrlAutocompletionNomsSci = function() { |
506,7 → 524,6 |
}; |
|
WidgetSaisie.prototype.surAutocompletionTaxon = function( event, ui ) { |
|
if ( valeurOk( ui ) ) { |
$( '#taxon' ).val( ui.item.value ); |
$( '#taxon' ).data( 'value', ui.item.value ) |
532,11 → 549,12 |
}); |
} |
} |
$( '#taxon' ).trigger( 'change' ); |
}; |
|
// Form Validator *************************************************************/ |
WidgetSaisie.prototype.configurerFormValidator = function() { |
var lthis = this; |
var lthis = this; |
|
$.validator.addMethod( |
'dateCel', |
574,33 → 592,34 |
$.extend( $.validator.defaults, { |
errorElement: 'span', |
onfocusout: function( element ) { |
if ( $( element ).valid() ) { |
$( element ).closest( '.control-group' ).removeClass( 'error' ); |
} else { |
$( element ).closest( '.control-group' ).addClass( 'error' ); |
if( valeurOk( element.id, false, 'taxon' ) ) { |
if ( $( element ).valid() ) { |
$( element ).closest( '.control-group' ).removeClass( 'error' ); |
} else { |
$( element ).closest( '.control-group' ).addClass( 'error' ); |
} |
} |
}, |
onkeyup : function( element ) { |
if ( $( element ).valid() ) { |
if( valeurOk( element.id, false, 'taxon' ) ) { |
if ( $( element ).valid() ) { |
$( element ).closest( '.control-group' ).removeClass( 'error' ); |
} else { |
$( element ).closest( '.control-group' ).addClass( 'error' ); |
} |
} |
}, |
unhighlight: function( element ) { |
if( valeurOk( element.id, false, 'taxon' ) ) { |
$( element ).closest( '.control-group' ).removeClass( 'error' ); |
} else { |
$( element ).closest( '.control-group' ).addClass( 'error' ); |
} |
}, |
highlight: function( element ) { |
$( element ).closest( '.control-group' ).addClass( 'error' ); |
}, |
unhighlight: function( element ) { |
$( element ).closest( '.control-group' ).removeClass( 'error' ); |
}, |
|
} |
}); |
}; |
|
|
/** |
* validation des champs étendus |
*/ |
WidgetSaisie.prototype.chpEtendusValidation = function() { |
var lthis = this; |
var $thisForm = $( '#form-supp' ), |
702,7 → 721,8 |
|
|
WidgetSaisie.prototype.definirReglesFormValidator = function() { |
var formSuppValidation = this.chpEtendusValidation(); |
var formSuppValidation = this.chpEtendusValidation(), |
lthis = this; |
|
$( '#form-supp' ).validate({ |
onclick : function( element ) { |
763,6 → 783,13 |
$( this ).valid(); |
}); |
|
$( '#taxon' ).on( 'change', function() { |
var images = valeurOk( $( '#miniatures .miniature' ) ); |
lthis.validerTaxonImage( valeurOk( $( this ).val() ), images ); |
}); |
|
this.surPresenceAbsenceMiniature(); |
|
$( '#form-observation' ).validate({ |
rules : { |
date_releve : { |
793,13 → 820,52 |
}); |
}; |
|
WidgetSaisie.prototype.validerTaxonImage = function( taxon = false, images = false ) { |
var taxonOuImage = ( images || taxon ); |
console.log(); |
if ( images || taxon ) { |
this.masquerPanneau( '#dialogue-taxon-or-image' ); |
$( '#bloc-taxon' ).removeClass( 'error' ) |
.find( 'span.error' ).hide(); |
$( '#fichier' ).parent( 'label.label-file' ).removeClass( 'error' ); |
$( '#photos-conteneur').removeClass( 'error' ).find( 'span.error' ).hide(); |
} else { |
this.afficherPanneau( '#dialogue-taxon-or-image' ); |
$( '#bloc-taxon' ).addClass( 'error' ) |
.find( 'span.error' ).show(); |
$( '#fichier' ).parent( 'label.label-file' ).addClass( 'error' ); |
$( '#photos-conteneur').addClass( 'error' ).find( 'span.error' ).show(); |
} |
return ( images || taxon ); |
}; |
|
WidgetSaisie.prototype.surPresenceAbsenceMiniature = function() { |
var lthis = this; |
// Selectionne le noeud dont les mutations seront observées |
var targetNode = document.getElementById( 'miniatures' ); |
// Fonction callback à éxécuter quand une mutation est observée |
var callback = function( mutationsList ) { |
for( var mutation of mutationsList ) { |
var taxon = valeurOk( $( '#taxon' ).val() ); |
images = ( 0 < mutation.target.childElementCount ); |
lthis.validerTaxonImage( taxon, images ); |
} |
}; |
// Créé une instance de l'observateur lié à la fonction de callback |
var observer = new MutationObserver( callback ); |
// Commence à observer le noeud cible pour les mutations précédemment configurées |
observer.observe( targetNode, { childList: true } ); |
}; |
|
WidgetSaisie.prototype.validerFormulaire = function() { |
var observateur = $( '#form-observateur' ).valid(); |
var obs = $( '#form-observation' ).valid(); |
var images = valeurOk( $( '#miniatures .miniature' ) ); |
var taxon = ( valeurOk( $( '#taxon' ).data( 'numNomSel' ) ) || valeurOk( $( '#taxon-liste' ).data( 'numNomSel' ) ) ); |
var geoloc = ( $( '#latitude' ).valid() && $( '#longitude' ).valid() ); |
var chpsSupp = new Boolean(); |
var observateur = $( '#form-observateur' ).valid(); |
var obs = $( '#form-observation' ).valid(); |
var images = valeurOk( $( '#miniatures .miniature' ) ); |
var taxon = valeurOk( $( '#taxon' ).val() ); |
// validation et panneau taxon/images |
var taxonOuImage = this.validerTaxonImage( taxon, images ); |
console.log(taxonOuImage); |
var chpsSupp = new Boolean(); |
if ( valeurOk( $( '#form-supp' ) ) ) { |
chpsSupp = ( function () { |
var otherFlag = $( '#form-supp' ).valid(); |
816,17 → 882,12 |
} else { |
chpsSupp = true; |
} |
// panneau geoloc |
( $( '#latitude' ).valid() && $( '#longitude' ).valid() ) ? this.masquerPanneau( '#dialogue-geoloc-ko' ) : this.afficherPanneau( '#dialogue-geoloc-ko' ); |
// panneau observateur |
( observateur ) ? this.masquerPanneau( '#dialogue-utilisateur-non-identifie' ) : this.afficherPanneau( '#dialogue-utilisateur-non-identifie' ); |
|
( geoloc ) ? this.masquerPanneau( '#dialogue-geoloc-ko' ) : this.afficherPanneau( '#dialogue-geoloc-ko' ); |
( observateur ) ? this.masquerPanneau( '#dialogue-utilisateur-non-identifie' ) : this.afficherPanneau( '#dialogue-utilisateur-non-identifie' ); |
if ( images || taxon ) { |
this.masquerPanneau( '#dialogue-taxon-or-image' ); |
this.masquerPanneau( '#dialogue-image-or-taxon' ); |
} else { |
this.afficherPanneau( '#dialogue-taxon-or-image' ); |
this.afficherPanneau( '#dialogue-image-or-taxon' ); |
} |
return ( observateur && obs && ( images || taxon ) && chpsSupp ); |
return ( observateur && obs && taxonOuImage && chpsSupp ); |
}; |
|
// Fichier Images *************************************************************/ |
857,7 → 918,7 |
'<div class="miniature mb-3 mr-3">'+ |
'<img class="miniature-img" class="miniature img-rounded" alt="' + imgNom + '" src="' + miniatureUrl + '"/>'+ |
'<a class="effacer-miniature"><i class="far fa-trash-alt"></i></a>'+ |
'</div>' |
'</div>'; |
return html; |
}; |
|