/trunk/widget/modules/saisie/squelettes/js/WidgetSaisie.js |
---|
571,11 → 571,10 |
$( 'input[type=date]' ).on( 'input', function() { |
$( this ).valid(); |
}); |
// Validation Taxon si pas de miniature |
$( '#taxon' ).on( 'change', function() { |
const images = valOk( $( '#miniatures .miniature' ) ); |
lthis.validerTaxonImage( valOk( $( this ).val() ), images ); |
// Validation taxon |
// et gestion des messages d'erreur taxon et images en fonction de la certitude |
$( '#taxon, #certitude' ).on( 'change', function() { |
lthis.validerTaxonRequis( valOk( $( '#taxon' ).val() ) ); |
}); |
// Validation miniatures avec MutationObserver |
this.surPresenceAbsenceMiniature(); |
615,23 → 614,50 |
}); |
}; |
WidgetSaisie.prototype.validerTaxonImage = function( taxon = false, images = false ) { |
const taxonOuImage = images || taxon; |
if ( taxonOuImage ) { |
WidgetSaisie.prototype.validerCertitudeTaxonImage = function( hasTaxon = false, hasImages = false ) { |
if( 'certain' === $( '#certitude' ).val() ) { |
return this.validerTaxonRequis( hasTaxon ); |
} else { |
return this.validerImageRequise( hasImages ); |
} |
}; |
WidgetSaisie.prototype.validerTaxonRequis = function( hasTaxon = false ) { |
const taxonEstRequis = 'certain' === $( '#certitude' ).val(); |
$( '#photos-conteneur').removeClass( 'error' ) |
.find( 'span.error' ).hide(); |
if ( !hasTaxon && taxonEstRequis ) { |
this.afficherPanneau( '#dialogue-taxon-or-image' ); |
$( '#bloc-taxon' ).addClass( 'error' ) |
.find( 'span.error' ).show(); |
} else { |
this.masquerPanneau( '#dialogue-taxon-or-image' ); |
$( '#bloc-taxon' ).removeClass( 'error' ) |
.find( 'span.error' ).hide(); |
} |
if ( taxonEstRequis ) { |
return hasTaxon; |
} |
}; |
WidgetSaisie.prototype.validerImageRequise = function( hasImages = false ) { |
$( '#bloc-taxon' ).removeClass( 'error' ) |
.find( 'span.error' ).hide(); |
if ( hasImages ) { |
this.masquerPanneau( '#dialogue-taxon-or-image' ); |
$( '#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 taxonOuImage; |
return hasImages; |
}; |
WidgetSaisie.prototype.surPresenceAbsenceMiniature = function() { |
641,12 → 667,11 |
const targetNode = document.getElementById( 'miniatures' ); |
// Fonction callback à éxécuter quand une mutation est observée |
const callback = mutationsList => { |
let taxon; |
for( let mutation of mutationsList ) { |
taxon = valOk( $( '#taxon' ).val() ); |
images = ( 0 < mutation.target.childElementCount ); |
lthis.validerTaxonImage( taxon, images ); |
lthis.validerCertitudeTaxonImage( |
valOk( $( '#taxon' ).val() ), |
0 < mutation.target.childElementCount |
); |
} |
}; |
// Créé une instance de l'observateur lié à la fonction de callback |
659,10 → 684,11 |
const observateur = ( $( '#form-observateur' ).valid() && $( '#courriel' ).valid() && $( '#courriel_confirmation' ).valid() ), |
obs = $( '#form-observation' ).valid(), |
geoloc = ( valOk( $( '#latitude' ).val() ) && valOk( $( '#longitude' ).val() ) ) , |
images = valOk( $( '#miniatures .miniature' ) ), |
taxon = valOk( $( '#taxon' ).val() ), |
// validation et panneau taxon/images |
taxonOuImage = this.validerTaxonImage( taxon, images ); |
certitudeTaxonImage = this.validerCertitudeTaxonImage( |
valOk( $( '#taxon' ).val() ), |
valOk( $( '#miniatures .miniature' ) ) |
); |
let chpsSupp = true; |
if ( valOk( $( '#form-supp' ) ) ) { |
698,7 → 724,7 |
this.afficherPanneau( '#dialogue-utilisateur-non-identifie' ); |
$( '.nav.control-group' ).addClass( 'error' ); |
} |
return ( observateur && obs && geoloc && taxonOuImage && chpsSupp ); |
return ( observateur && obs && geoloc && certitudeTaxonImage && chpsSupp ); |
}; |
// Referentiel ****************************************************************/ |
/trunk/widget/modules/saisie/squelettes/saisie.tpl.html |
---|
715,7 → 715,7 |
<input type="hidden" name="MAX_FILE_SIZE" value="5242880"> |
</label> |
</div> |
<span for="fichier" class="error" style="display: none;"><?php echo $observation['error-taxon'];?></span> |
<span for="fichier" class="error" style="display: none;"><?php echo $observation['error-image-requise'];?></span> |
<div id="miniatures"></div> |
<p class="miniature-msg" class="span12"> </p> |
910,7 → 910,7 |
// Nombre d'observations max autorisé avant transmission |
'obsMaxNbre' : 10, |
// Durée d'affichage en milliseconde des messages d'informations |
'dureeMessage' : 1000, |
'dureeMessage' : 10000, |
// Squelette d'URL du web service d'eFlore fournissant les noms de communes. |
'serviceNomCommuneUrl' : "https://api.tela-botanica.org/service:eflore:0.1/osm/nom-commune?lon={lon}&lat={lat}", |
// Squelette d'URL du web service d'eFlore fournissant les noms de communes hors de France (localisation approximative). |
/trunk/widget/modules/saisie/i18n/fr.ini |
---|
69,9 → 69,12 |
espece-title = "Saisir le taxon observé, en utilisant l’autocomplétion autant que possible" |
liste-espece-title = "Choisir dans la liste le taxon observé, ou choisir \"autre\" et saisir le taxon observé, en utilisant l’autocomplétion autant que possible" |
autre-espece = "Autre espèce" |
error-taxon = "Une observation doit comporter au moins une image ou un nom d'espèce" |
error-taxon = "Une observation identifiée de façon certaine doit comporter un nom d'espèce" |
error-image-requise = "Une observation non identifiée de façon certaine doit comporter au moins une image" |
alert-img-tax-title = "Information : Observation incomplète" |
alert-img-tax = "Une observation doit comporter au moins un lieu, une date et un auteur, et soit un nom d'espèce, soit une image" |
alert-img-tax = "Une observation doit comporter au moins un lieu, une date et un auteur, et :<br> |
Soit obligatoirement un nom d'espèce si la determination est certaine<br> |
Soit au moins une image dans les autres cas" |
certitude = "Certitude" |
certitude-title = "Renseigner à quel point l'identification du taxon est certaine" |
certCert = "Certaine" |
/trunk/widget/modules/saisie/i18n/nl.ini |
---|
51,9 → 51,12 |
espece-title = "" |
liste-espece-title = "Selecteer een soort in de combo door zijn Latijnse naam of gemeenschappelijke. Als een soort afwezig is, selecteer 'Anderen'" |
autre-espece = "Andere soort" |
error-taxon = "Een waarneming moet ten minste één afbeelding of soortnaam bevatten." |
error-taxon = "Een duidelijk geïdentificeerd waarneming moet een soortnaam bevatten." |
error-image-requise = "Une observation non identifiée de façon certaine doit comporter au moins une image" |
alert-img-tax-title = "Informatie : Onvolledige observatie" |
alert-img-tax = "Een waarneming moet ten minste één plaats, datum en auteur bevatten en een soortnaam of een afbeelding." |
alert-img-tax = "Een waarneming moet minimaal een plaats, een datum en een auteur bevatten, en verplicht: <br> |
Een soortnaam als de bepaling zeker is <br> |
Ten minste één afbeelding in andere gevallen." |
certitude = "Zekerheid" |
certCert = "Zeker" |
certDout= "Twijfelachtig" |
/trunk/widget/modules/saisie/i18n/en.ini |
---|
67,9 → 67,12 |
espece-title = "Enter the observed taxon, using autocompletion as much as possible" |
liste-espece-title = "Choose from the list the observed taxon, or choose \"other\" and enter the observed taxon, using autocompletion as much as possible" |
autre-espece = "Other species" |
error-taxon = "An observation must include at least either a species name or an image" |
error-taxon = "A clearly identified occurence must include a species name" |
error-image-requise = "An unidentified occurence must include at least one image" |
alert-img-tax-title = "Information : Incomplete observation" |
alert-img-tax = "An observation must include at least one place, date, and author, and either a species name or an image" |
alert-img-tax = "An occurence must include at least one place, date, and author, and obligatorily: <br> |
A species name if the determination is certain <br> |
At least one image in other cases" |
certitude = "Certainty" |
certitude-title = "Fill in how much the taxon's identification is certain" |
certCert = "Certain" |