Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3880 → Rev 3881

/branches/v3.01-serpe/widget/modules/saisie/i18n/fr.ini
70,9 → 70,10
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 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"
error-image-requise = "Veuillez ajouter une image de votre observation"
alert-img-tax-title = "Information : Observation incomplète"
alert-img-tax = "Une observation doit comporter au moins un lieu, une date et un auteur, ainsi qu'un nom d'espèce si la determination est certaine ou au moins une image le cas échéant."
alert-img-requise = "Pour le propjet \"%s\" une observation doit obligatoirement s'accompagner d'une image."
certitude = "Certitude"
certitude-title = "Renseigner à quel point l'identification du taxon est certaine"
certCert = "Certaine"
/branches/v3.01-serpe/widget/modules/saisie/squelettes/js/tb-geoloc/js/modules/Locality.js
3,7 → 3,6
export const NOMINATIM_OSM_URL = 'https://nominatim.openstreetmap.org/';
const NOMINATIM_OSM_DEFAULT_PARAMS = {
'format': 'json',
'countrycodes': 'fr',
'addressdetails': 1,
'limit': 10
};
/branches/v3.01-serpe/widget/modules/saisie/squelettes/js/WidgetSaisie.js
34,6 → 34,7
this.infosEspeceImposee = widgetProp.infosEspeceImposee;
this.referentielImpose = widgetProp.referentielImpose;
this.isTaxonListe = widgetProp.isTaxonListe;
this.photoObligatoire = widgetProp.photoObligatoire;
}
this.urlRacine = window.location.origin;
this.obsNbre = 0;
617,18 → 618,28
 
 
WidgetSaisie.prototype.validerCertitudeTaxonImage = function( hasTaxon = false, hasImages = false ) {
if( 'certain' === $( '#certitude' ).val() ) {
return this.validerTaxonRequis( hasTaxon );
} else {
return this.validerImageRequise( hasImages );
const isCertain = 'certain' === $( '#certitude' ).val();
let isvalide = true ;
 
if ( this.photoObligatoire || !isCertain ) {
isvalide = this.validerImageRequise( hasImages );
}
if ( isCertain ) {
isvalide &= this.validerTaxonRequis( hasTaxon );
}
 
return isvalide;
 
 
};
 
WidgetSaisie.prototype.validerTaxonRequis = function( hasTaxon = false ) {
const taxonEstRequis = 'certain' === $( '#certitude' ).val();
 
$( '#photos-conteneur').removeClass( 'error' )
.find( 'span.error' ).hide();
if ( !this.photoObligatoire ) {
$( '#photos-conteneur').removeClass( 'error' )
.find( 'span.error' ).hide();
}
 
if ( !hasTaxon && taxonEstRequis ) {
this.afficherPanneau( '#dialogue-taxon-or-image' );
651,10 → 662,15
 
if ( hasImages ) {
this.masquerPanneau( '#dialogue-taxon-or-image' );
this.masquerPanneau( '#dialogue-image-requise' );
$( '#fichier' ).parent( 'label.label-file' ).removeClass( 'error' );
$( '#photos-conteneur').removeClass( 'error' ).find( 'span.error' ).hide();
} else {
this.afficherPanneau( '#dialogue-taxon-or-image' );
if ( this.photoObligatoire ) {
this.afficherPanneau( '#dialogue-image-requise' );
} else {
this.afficherPanneau( '#dialogue-taxon-or-image' );
}
$( '#fichier' ).parent( 'label.label-file' ).addClass( 'error' );
$( '#photos-conteneur').addClass( 'error' ).find( 'span.error' ).show();
}
/branches/v3.01-serpe/widget/modules/saisie/squelettes/saisie.tpl.html
240,7 → 240,7
style="height: 400px;width: 100%"
data-type-localisation="<?php echo $widget['type_localisation'] ?? '';?>"
data-zoom="<?php echo $widget['localisation']['zoom'] ?? '5';?>"
data-layer="osm"
data-layer="<?php echo 'googleHybrid' === $widget['fond_carte'] ? $widget['fond_carte'] : 'osm';?>"
data-form-suffix=""
>
</div>
353,9 → 353,11
data-num-nom-ret="<?php echo $taxon['num_nom_ret'];?>"
data-nt="<?php echo $taxon['num_taxon'];?>"
data-famille="<?php echo $taxon['famille'];?>"
><?php echo $taxon['nom_sel'];?></option>
><?php echo $taxon['nom_sel'];?> - <?php echo $taxon['nom_fr'];?></option>
<?php endforeach; ?>
<option value="autre"><?php echo $observation['autre-espece']; ?></option>
<?php if ( $widget['type_especes'] === 'liste+autre' ) : ?>
<option value="autre"><?php echo $observation['autre-espece']; ?></option>
<?php endif;?>
</select>
<span for="taxon-liste" class="error" style="display: none;"><?php echo $observation['error-taxon'];?></span>
<input id="taxon" name="taxon" class="form-control" type="hidden" />
483,6 → 485,11
<h4 class="alert-heading"><?php echo $observation['alert-img-tax-title']; ?></h4>
<p><?php echo $observation['alert-img-tax']; ?></p>
</div>
<div id="dialogue-image-requise" class="alert alert-warning alert-block hidden">
<a class="close">×</a>
<h4 class="alert-heading"><?php echo $observation['alert-img-tax-title']; ?></h4>
<p><?php echo sprintf($observation['alert-img-requise'], $widget['titre']); ?></p>
</div>
</div>
 
<!-- Champs supplémentaires -->
918,7 → 925,8
// 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).
'serviceNomCommuneUrlAlt' : "https://api.tela-botanica.org/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1"
'serviceNomCommuneUrlAlt' : "https://api.tela-botanica.org/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1",
'photoObligatoire' : <?php echo isset($widget['photo_obligatoire']) && $widget['photo_obligatoire'] === '1' ? 'true' : 'false'; ?>
};
//]]>
</script>
/branches/v3.01-serpe/widget/modules/manager/squelettes/creation.tpl.html
231,11 → 231,18
 
<div class="col-sm-12 mb-3">
<label for="type_especes">Type liste espèce&nbsp;*</label>
<?php
$types_espece = [
'referentiel' => 'Référentiel',
'liste' => 'Liste',
'liste+autre' => 'Liste + autres',
'fixe' => 'Espèce fixée',
];
?>
<select id="type_especes" name="type_especes" required class="form-control custom-select">
<option selected="selected" value="referentiel">Référentiel</option>
<option value="liste">Liste</option>
<option value="liste" title="remplir référentiel + envoyer csv">Liste + autres</option>
<option value="fixe">Espèce fixée</option>
<?php foreach( $types_espece as $type_espece => $affichage_type_espece ): ?>
<option <?php echo (!isset($widget['type_especes']) && 'referentiel' === $type_espece) || $type_espece === $widget['type_especes']? 'selected="selected" ' : '';?>value="<?php echo $type_espece;?>"><?php echo $affichage_type_espece;?></option>
<?php endforeach;?>
</select>
</div>
 
325,6 → 332,36
</p>
<input type="text" name="zoom" id="zoom" class="form-control" pattern="(0?[1-9]|(1[0-8]))" title="Nombre de 1 à 18" placeholder="1 à 18" value="" />
</div>
<div class="col-sm-12 mb-3">
<label for="fond_carte">Fond de carte</label>
<select id="fond_carte" name="fond_carte" class="form-control custom-select">
<?php
$affichage_fonds_carte = [
'osm' => 'OSM (carte par défaut)',
'googleHybrid' => 'Photos aériennes',
];
$fond_carte = isset($widget['fond_carte']) && isset($affichage_fonds_carte[$widget['fond_carte']]) ? $widget['fond_carte'] : 'osm';
?>
<?php foreach($affichage_fonds_carte as $nom_base => $nom_affiche) :?>
<option value="<?php echo $nom_base;?>"<?php echo $nom_base === $fond_carte ? ' selected="selected"' : '';?>><?php echo $nom_affiche;?></option>
<?php endforeach;?>
 
</select>
</div>
<div class="col-sm-12 mb-3">
<label for="adresse">Adresse obligatoire</label>
<select id="adresse" name="adresse" class="form-control custom-select">
<option value="0" <?php echo ( isset( $widget['adresse'] ) && $widget['adresse'] === '0' ) ? 'selected' : '';?>>Non</option>
<option value="1" <?php echo ( isset( $widget['adresse'] ) && $widget['adresse'] === '1' ) ? 'selected' : '';?>>Oui</option>
</select>
</div>
<div class="col-sm-12 mb-3">
<label for="photo_obligatoire">Photo obligatoire</label>
<select id="photo_obligatoire" name="photo_obligatoire" class="form-control custom-select">
<option value="0" <?php echo ( isset( $widget['photo_obligatoire'] ) && $widget['photo_obligatoire'] === '0' ) ? 'selected' : '';?>>Non</option>
<option value="1" <?php echo ( isset( $widget['photo_obligatoire'] ) && $widget['photo_obligatoire'] === '1' ) ? 'selected' : '';?>>Oui</option>
</select>
</div>
</div>
</div>
</div>
/branches/v3.01-serpe/jrest/services/CelWidgetManager.php
49,6 → 49,9
'referentiel' => 'taxo_restriction_value',
'type_localisation' => 'location_type',
'localisation' => 'location',
'fond_carte' => 'basemap',
'adresse' => 'is_mandatory_address',
'photo_obligatoire' => 'is_mandatory_photo',
'milieux' => 'environment',
'motscles' => 'project_tag_name',
'info' => 'info',
186,7 → 189,7
// pour chaque champs-supp, mettre correspondance extended field et extended field trad
foreach ($champssupp as $champ) {
$champsrequete['ce'][$i]['project'] = $champsrequete['cet'][$i]['project'] = $champsinterface['projet'];
$champsrequete['cet'][$i]['language_iso_code'] = $champsinterface['langue'];
$champsrequete['cet'][$i]['language_iso_code'] = isset($champsinterface['langue']) && $champsinterface['langue'] != "" ? $champsinterface['langue'] : "fr";
// pour la table extended fiels champs interface => champs bd
foreach ($this->correspondance_champs_etendus as $ci => $ce) {
if (isset($champ[$ci]) && $champ[$ci] != "") {
199,6 → 202,7
}
}
}
$champsrequete['ce'][$i]["is_visible"] = "1";
// pour la table extended fiels trad champs interface => champs bd
foreach ($this->correspondance_champs_etendus_trad as $cit => $cr) {
if (isset($champ[$cit]) && is_array($champ[$cit])) {