Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3900 → Rev 3901

/branches/v3.01-serpe/widget/modules/saisie/squelettes/js/Utils.js
387,6 → 387,24
});
};
 
export const tryParseJson = str => {
if ( 'string' !== typeof str ){
return false;
}
try{
const json = JSON.parse( str );
 
if ( !!json && 'object' === typeof json ) {
return json;
} else {
return false;
}
}
catch ( e ){
return false;
}
};
 
/**
* Permet à la fois de vérifier qu'une valeur ou objet existe et n'est pas vide
* et de comparer à une autre valeur :
/branches/v3.01-serpe/widget/modules/saisie/squelettes/js/WidgetSaisie.js
1,5 → 1,5
import {WidgetsSaisiesCommun,utils} from './WidgetsSaisiesCommun.js';
import {valOk} from './Utils.js';
import {valOk,tryParseJson} from './Utils.js';
 
/**
* Constructeur WidgetSaisie par défaut
358,59 → 358,85
}
};
 
WidgetSaisie.prototype.validateGeometry = function( geometry ) {
const isLineString = !!geometry && 'LineString' === geometry.type,
validateTypeOfCoordinates = coordinates => isLineString ? Array.isArray( coordinates ) : ['number','string'].includes( typeof coordinates );
 
if ( !valOk( geometry.coordinates ) ) {
return false;
}
 
let isValid = true;
 
$.each(geometry.coordinates, (i, coordinates) => {
if ( !validateTypeOfCoordinates( coordinates ) ) {
isValid = false;
}
});
 
const isValidLength = isLineString ? ( geometry.coordinates.length >= 2 ) : ( geometry.coordinates.length === 2 );
 
return isValid && isValidLength;
}
 
// Géolocalisation *************************************************************/
/**
* Fonction handler de l'évenement location du module tb-geoloc
*/
WidgetSaisie.prototype.locationHandler = function( location ) {
const locDatas = location.originalEvent.detail;
const locDatas = location.originalEvent.detail,
$geolocControlGroup = $( '#geoloc' ).closest( '.control-group' );
 
if ( valOk( locDatas ) ) {
console.log( locDatas );
if ( !valOk( locDatas ) ) {
console.warn( 'Error location' );
} else {
if ( !this.validateGeometry( locDatas.geometry ) ) {
$geolocControlGroup.addClass( 'error' );
$( '#geometry' ).val( '' );
} else {
console.log( locDatas );
 
const geometry = JSON.stringify( locDatas.geometry ),
altitude = ( valOk( locDatas.elevation ) ) ? locDatas.elevation : '',
pays = ( valOk( locDatas.osmCountryCode ) ) ? locDatas.osmCountryCode.toUpperCase() : 'FR',
rue = ( valOk( locDatas.osmRoad ) ) ? locDatas.osmRoad : '';
let latitude = '',
longitude = '',
coordLineaire = '',
nomCommune = '',
communeInsee = '';
const geometry = JSON.stringify( locDatas.geometry ),
altitude = ( valOk( locDatas.elevation ) ) ? locDatas.elevation : '',
pays = ( valOk( locDatas.osmCountryCode ) ) ? locDatas.osmCountryCode.toUpperCase() : 'FR',
rue = ( valOk( locDatas.osmRoad ) ) ? locDatas.osmRoad : '';
let latitude = '',
longitude = '',
coordLineaire = '',
nomCommune = '',
communeInsee = '';
 
if ( valOk( locDatas.geometry.coordinates ) &&
valOk( locDatas.centroid.coordinates ) &&
valOk( locDatas.centroid.coordinates[0] ) &&
valOk( locDatas.centroid.coordinates[1] )
) {
longitude = locDatas.centroid.coordinates[0];
latitude = locDatas.centroid.coordinates[1];
if ( valOk( locDatas.geometry.coordinates ) &&
valOk( locDatas.centroid.coordinates ) &&
valOk( locDatas.centroid.coordinates[0] ) &&
valOk( locDatas.centroid.coordinates[1] )
) {
longitude = locDatas.centroid.coordinates[0];
latitude = locDatas.centroid.coordinates[1];
}
if ( valOk( locDatas.inseeData ) ) {
nomCommune = locDatas.inseeData.nom;
communeInsee = ( valOk( locDatas.inseeData.code ) ) ? locDatas.inseeData.code : '';
} else if ( valOk( locDatas.locality ) ) {
nomCommune = locDatas.locality;
} else if ( valOk( locDatas.locality ) ) {
nomCommune = locDatas.osmCounty;
}
$( '#geometry' ).val( geometry );
$( '#coord-lineaire' ).val( coordLineaire );
$( '#latitude' ).val( latitude );
$( '#longitude' ).val( longitude );
$( '#commune-nom' ).val( nomCommune );
$( '#commune-insee' ).val( communeInsee );
$( '#altitude' ).val( altitude );
$( '#pays' ).val( pays );
$( '#station' ).val( rue );
$( '#latitude, #longitude' ).valid();
$geolocControlGroup.toggleClass(
'error',
!valOk( $( '#latitude' ).val() ) || !valOk( $( '#longitude' ).val() )
);
}
if ( valOk( locDatas.inseeData ) ) {
nomCommune = locDatas.inseeData.nom;
communeInsee = ( valOk( locDatas.inseeData.code ) ) ? locDatas.inseeData.code : '';
} else if ( valOk( locDatas.locality ) ) {
nomCommune = locDatas.locality;
} else if ( valOk( locDatas.locality ) ) {
nomCommune = locDatas.osmCounty;
}
$( '#geometry' ).val( geometry );
$( '#coord-lineaire' ).val( coordLineaire );
$( '#latitude' ).val( latitude );
$( '#longitude' ).val( longitude );
$( '#commune-nom' ).val( nomCommune );
$( '#commune-insee' ).val( communeInsee );
$( '#altitude' ).val( altitude );
$( '#pays' ).val( pays );
$( '#station' ).val( rue );
$( '#latitude, #longitude' ).valid();
if ( valOk( $( '#latitude' ).val() ) && valOk( $( '#longitude' ).val() ) ) {
$( '#geoloc' ).closest( '.control-group' ).removeClass( 'error' );
} else {
$( '#geoloc' ).closest( '.control-group' ).addClass( 'error' );
}
} else {
console.warn( 'Error location' );
}
}
 
619,18 → 645,16
 
WidgetSaisie.prototype.validerCertitudeTaxonImage = function( hasTaxon = false, hasImages = false ) {
const isCertain = 'certain' === $( '#certitude' ).val();
let isvalide = true ;
let isvalid = true ;
 
if ( this.photoObligatoire || !isCertain ) {
isvalide = this.validerImageRequise( hasImages );
isvalid = this.validerImageRequise( hasImages );
}
if ( isCertain ) {
isvalide &= this.validerTaxonRequis( hasTaxon );
isvalid &= this.validerTaxonRequis( hasTaxon );
}
 
return isvalide;
 
 
return isvalid;
};
 
WidgetSaisie.prototype.validerTaxonRequis = function( hasTaxon = false ) {
698,9 → 722,10
};
 
WidgetSaisie.prototype.validerForm = function() {
const observateur = ( $( '#form-observateur' ).valid() && $( '#courriel' ).valid() && $( '#courriel_confirmation' ).valid() ),
obs = $( '#form-observation' ).valid(),
geoloc = ( valOk( $( '#latitude' ).val() ) && valOk( $( '#longitude' ).val() ) ) ,
const observateur = ( $( '#form-observateur' ).valid() && $( '#courriel' ).valid() && $( '#courriel_confirmation' ).valid() ),
obs = $( '#form-observation' ).valid(),
parsedGeometry = tryParseJson( $( '#geometry' ).val() ),
geoloc = this.validateGeometry( parsedGeometry ) && ( valOk( $( '#latitude' ).val() ) && valOk( $( '#longitude' ).val() ) ) ,
// validation et panneau taxon/images
certitudeTaxonImage = this.validerCertitudeTaxonImage(
valOk( $( '#taxon' ).val() ),
/branches/v3.01-serpe/widget/modules/saisie/squelettes/saisie.tpl.html
233,6 → 233,11
</div>
</div>
</div>
<?php if( $widget['type_localisation'] === 'rue' ) : ?>
<div class="aide-txt">
<p><?php echo $observation['info-saisie-ligne']; ?></p>
</div>
<?php endif; ?>
 
<div id="map-container">
<div
612,18 → 617,19
<div class="select-wrapper add-field-select <?php echo $help; ?>">
<select id="<?php echo $champ['key']; ?>" class="<?php echo $champ['key'] . ' ' . $champ['element']; ?> form-control has-tooltip custom-select mb-2"<?php echo $required; ?> data-label="<?php echo $champ['name']; ?>" data-name="<?php echo $champ['key']; ?>" <?php echo $description; ?>>
 
<?php foreach ( $champ['fieldValues']['listValue'] as $list_value_array ) : ?>
<?php foreach ( $champ['fieldValues']['listValue'] as $index => $list_value_array ) : ?>
 
<?php
$selected = '';
if ( '#' === substr( $list_value_array[0], -1 ) ) :
$selected = ' selected="selected"';
$is_default = '#' === substr( $list_value_array[0], -1 );
$is_placeholder = null === $list_value_array[0];
$selected = $is_default || $is_placeholder ? ' selected="selected"' : '';
if ( $is_default ) :
$list_value_array[0] = substr( $list_value_array[0], 0, -1 );
endif;
?>
 
<?php if( 'other' !== $list_value_array ) : ?>
<option value="<?php echo $list_value_array[0]; ?>"<?php echo $selected; ?> data-name="<?php echo $champ['key']; ?>">
<option value="<?php echo $list_value_array[0]; ?>"<?php echo $selected; ?><?php echo $is_placeholder ? ' hidden': ''; ?> data-name="<?php echo $champ['key']; ?>">
<?php echo ( '' !== $list_value_array[1] ) ? ucfirst($list_value_array[1]) : ucfirst($list_value_array[0]); ?>
</option>
<?php else : ?>
/branches/v3.01-serpe/widget/modules/saisie/squelettes/i18n/fr.ini
55,7 → 55,7
geolocalisation = "Geolocalisation"
geoloc-title = "Renseignez la localisation de votre observation"
alertgk-title = "Information&nbsp;: mauvaise géolocalisation"
alertgk = "Certaines informations de géolocalisation n'ont pas été transmises."
alertgk = "Certaines informations de géolocalisation n'ont pas été transmises ou sont invalides."
milieu = "Milieu"
milieu-title = "Type d’habitat, par exemple issu des codes Corine ou Catminat"
liste-milieu-title = "Choisir un type d'habitat"
/branches/v3.01-serpe/widget/modules/saisie/i18n/en.ini
16,6 → 16,8
For question or to know more,
<a target=\"_blank\" href=\"https://www.tela-botanica.org/wikini/AideCarnetEnLigne/wakka.php?wiki=AideWidgetSaisie\"> see the help</a>
or contact us at cel_remarques@tela-botanica.org."
 
 
bouton="Inactive help"
contact="For any questions,"
contact2="contact us."
52,6 → 54,7
titre = "Observation"
geolocalisation = "Geolocalisation"
info-saisie-rue = "Enter your complete street name followed by your city name"
info-saisie-ligne = "The line need two differents points."
geoloc-title = "Fill in the location of your observation"
alertgk-title = "Information&nbsp;: bad geolocation"
alertgk = "Some geolocation information has not been transmitted."
71,6 → 74,7
error-image-requise = "An unidentified occurence must include at least one image"
alert-img-tax-title = "Information&nbsp;: Incomplete observation"
alert-img-tax = "An occurence must include at least a place, a date and an author, as well as a species name if the determination is certain or at least an image if applicable."
alert-img-requise = "In \"%s\"'s project, an occurence must include at least one image "
certitude = "Certainty"
certitude-title = "Fill in how much the taxon's identification is certain"
certCert = "Certain"
/branches/v3.01-serpe/widget/modules/saisie/i18n/fr.ini
54,9 → 54,10
titre = "Observation"
geolocalisation = "Geolocalisation"
info-saisie-rue = "Renseigner votre nom de rue complet suivi du nom de votre ville"
info-saisie-ligne = "Pour être valide votre ligne doit comporter au moins deux points."
geoloc-title = "Renseignez la localisation de votre observation"
alertgk-title = "Information&nbsp;: mauvaise géolocalisation"
alertgk = "Certaines informations de géolocalisation n'ont pas été transmises."
alertgk = "Certaines informations de géolocalisation n'ont pas été transmises ou sont invalides."
milieu = "Milieu"
milieu-title = "Type d’habitat, par exemple issu des codes Corine ou Catminat"
liste-milieu-title = "Choisir un type d'habitat"
/branches/v3.01-serpe/widget/modules/saisie/i18n/nl.ini
36,6 → 36,7
titre = "Waarneming"
geolocalisation = "Geolokalisatie van de plant"
info-saisie-rue = "Voer uw volledige straatnaam in, gevolgd door uw stadsnaam"
info-saisie-ligne = ""
geoloc-title = ""
alertgk-title = ""
alertgk = ""
55,7 → 56,9
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 in ieder geval een plaats, een datum en een auteur bevatten, alsmede een soortnaam als de vaststelling zeker is of in ieder geval een afbeelding indien van toepassing."
alert-img-requise = ""
certitude = "Zekerheid"
certitude-title = ""
certCert = "Zeker"
certDout= "Twijfelachtig"
certADet= "Te bepalen"
82,6 → 85,8
[Resume]
creer = "Toevoegen"
creer-title = "Zodra de velden zijn ingevuld, kunt u op deze knop te klikken voeg uw opmerkingen aan de lijst toe te zenden"
alertchargt = ""
alertchargt-desc = ""
alert10max = "Informatie&nbsp;"
alert10max-desc = "U heeft zojuist toegevoegd 10e waardening..<br/>
Om nieuwe toe te voegen, is het noodzakelijk om te verzenden door te klikken op de onderstaande knop."
101,8 → 106,8
waarnemingen over te dragen."
transok = "Heel hartelijk bedankt&nbsp;! Uw waarnemingen zijn doorgestuurd.<br />
Ze worden nu weergegeven op de kaart <a href=\"https://www.tela-botanica.org/widget:cel:cartoPoint?projet=bellesdemarue&lang=nl\">Straatmadeliefjes</a>"
transko = "Een fout is opgetreden bij de overdracht van een waarneming (in het rood).<br />
transkomsg = "Een fout is opgetreden bij de overdracht van een waarneming (in het rood).<br />
U kunt proberen om opnieuw te verzenden door te klikken opnieuw op de zendknop of te verwijderen
en het volgende in te dienen.<br />
De waarnemingen worden niet weergegeven in de lijst op de opmerkingen te zenden zijn verzonden in uw vorige poging."
 
transkolien = ""