Subversion Repositories eFlore/Applications.cel

Compare Revisions

Regard whitespace Rev 3877 → Rev 3899

/trunk/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,14 → 358,42
}
};
 
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 ) ) {
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 ),
404,13 → 432,11
$( '#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' );
$geolocControlGroup.toggleClass(
'error',
!valOk( $( '#latitude' ).val() ) || !valOk( $( '#longitude' ).val() )
);
}
} 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 ) {
700,7 → 724,8
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() ) ) ,
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() ),