/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 *</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,9 → 332,39 |
</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> |
</form><!-- end #form-geolocalisation --> |
<form id="new-fields" autocomplete="off"> |
/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; ?> |
<?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,7 → 485,12 |
<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 --> |
<?php if ( isset($widget['chpSupp'] ) && 0 < count( (array) $widget['chpSupp'] ) ) : ?> |
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/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(); |
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 { |
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/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/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])) { |