Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3850 → Rev 3851

/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">&nbsp;</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/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/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&nbsp;: 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"
/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&nbsp;: 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&nbsp;: 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"