/trunk/widget/modules/saisie/squelettes/defaut/css/defaut.css |
---|
66,6 → 66,12 |
.miniature{ |
max-width:100px; |
} |
.referentiel-obs { |
color:#3B9D3B; |
} |
#referentiel { |
display: inline; |
} |
/*+--------------------------------------------------------------------------------------------------------+*/ |
/* Correction style CSS Bootstrap */ |
.well { |
/trunk/widget/modules/saisie/squelettes/defaut/defaut.tpl.html |
---|
57,8 → 57,10 |
TAG_OBS = <?=isset($_GET['projet']) ? "'".$_GET['projet']."'" : 'TAG_OBS' ?>; |
// URL du web service réalisant l'insertion des données dans la base du CEL. |
var SERVICE_SAISIE_URL = "<?=$url_ws_saisie?>"; |
// Code du référentiel utilisé pour les nom scientifiques. |
// Code du référentiel utilisé pour les nom scientifiques (de la forme nom:code). |
var NOM_SCI_REFERENTIEL = "<?=$ns_referentiel?>"; |
// Nom du référentiel utilisé pour les nom scientifiques. |
var NOM_SCI_PROJET = "<?=$ns_projet?>"; |
// Code de la version du référentiel utilisé pour les nom scientifiques. |
var NOM_SCI_VERSION = "<?=$ns_version?>"; |
// Indication de la présence d'une espèce imposée |
67,20 → 69,34 |
var INFOS_ESPECE_IMPOSEE = <?=$infos_espece; ?>; |
// Nombre d'élément dans les listes d'auto-complétion |
var AUTOCOMPLETION_ELEMENTS_NBRE = 20; |
// Indication de la présence d'un référentiel imposé |
var REFERENTIEL_IMPOSE = "<?=$referentiel_impose; ?>"; |
// Indication des version utilisées de chaque référentiel |
var PROJETS_VERSIONS = <?=json_encode($projets_versions)?>; |
// URL du web service permettant l'auto-complétion des noms scientifiques. |
var SERVICE_AUTOCOMPLETION_NOM_SCI_URL = "<?=$url_ws_autocompletion_ns?>?"+ |
"masque={masque}&"+ |
"recherche=etendue&"+ |
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+ |
"version.projet="+NOM_SCI_VERSION+"&"+ |
//"version.projet="+NOM_SCI_VERSION+"&"+ |
"ns.structure=au"+"&"+ |
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE; |
// URL du web service permettant l'auto-complétion des noms scientifiques. |
var SERVICE_AUTOCOMPLETION_NOM_SCI_URL_TPL = "<?=$url_ws_autocompletion_ns_tpl?>?"+ |
"masque={masque}&"+ |
"recherche=etendue&"+ |
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+ |
//"version.projet="+NOM_SCI_VERSION+"&"+ |
"ns.structure=au"+"&"+ |
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE; |
// Nombre d'observations max autorisé avant transmission |
var OBS_MAX_NBRE = 10; |
// Durée d'affichage en milliseconde des messages d'informations |
var DUREE_MESSAGE = 15000; |
// Squelette d'URL du web service d'eFlore fournissant les noms de communes. |
var SERVICE_NOM_COMMUNE_URL = "http://www.tela-botanica.org/service:eflore:0.1/osm/nom-commune?lon={lon}&lat={lat}"; |
var SERVICE_NOM_COMMUNE_URL = "http://localhost/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). |
var SERVICE_NOM_COMMUNE_URL_ALT = "http://localhost/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1"; |
// URL du marqueur à utiliser dans la carte Google Map |
var GOOGLE_MAP_MARQUEUR_URL = "<?=$url_base?>modules/saisie/squelettes/defaut/img/marqueurs/epingle.png"; |
// URL de l'icône du chargement en cours |
327,6 → 343,23 |
<div class="span6"> |
<form id="form-obs" action="#" autocomplete="on"> |
<h2>Observations</h2> |
<?php if(!$referentiel_impose) : ?> |
<div class="row-fluid"> |
<div rel="tooltip" |
title="Sélectionnez le référentiel associé à votre relevé"> |
<label for="referentiel" title="Réferentiel"> |
<strong class="obligatoire">*</strong> Référentiel |
</label> |
<span class="input-prepend"> |
<span id="referentiel-icone" class="add-on"><i class="icon-book"></i></span> |
<select id="referentiel" autocomplete="off"> |
<option value="bdtfx" selected="selected" title="Trachéophytes de France métropolitaine">Métropole (BDTFX)</option> |
<option value="bdtxa" title="Trachéophytes des Antilles">Antilles françaises (BDTXA)</option> |
</select> |
</span> |
</div> |
</div> |
<?php endif; ?> |
<div class="row-fluid"> |
<div class="span4" rel="tooltip" |
title="Vous pouvez cliquer sur l'icône de calendrier pour |
342,7 → 375,7 |
</div> |
<div id="taxon-input-groupe" class="span8" rel="tooltip" |
title="Sélectionnez une espèce dans la liste déroulante pour lier |
votre nom au référentiel <?=$ns_referentiel?>. Si vous rechargez |
votre nom au référentiel selectionné. Si vous rechargez |
la page le nom présent dans le champ ne sera plus lié au référentiel, il sera |
nécessaire de le sélectionner à nouveau dans la liste. Si vous |
le désirez vous pouvez aussi saisir un nom absent du référentiel |
349,7 → 382,7 |
(Ex. : Rosa sp.)." > |
<label for="taxon" title="Choisissez une espèce"> |
<strong class="obligatoire">*</strong> |
Espèce |
Espèce <?= $referentiel_impose ? '('.$ns_projet.')' : '' ?> |
</label> |
<div class="input-prepend"> |
<span class="add-on"> |
/trunk/widget/modules/saisie/squelettes/defaut/js/defaut.js |
---|
266,10 → 266,17 |
function initialiserGoogleMap(){ |
// Carte |
var latLng = new google.maps.LatLng(48.8543, 2.3483);// Paris |
if(REFERENTIEL_IMPOSE && NOM_SCI_PROJET == 'bdtxa') { |
var latLng = new google.maps.LatLng(14.6, -61.08334);// Fort-De-France |
// Les antilles étant dispersées, un zoom moins précis est préférable |
var zoomDefaut = 8; |
} else { |
var latLng = new google.maps.LatLng(48.8543, 2.3483);// Paris |
var zoomDefaut = 16; |
} |
var options = { |
zoom: 16, |
zoom: zoomDefaut, |
center: latLng, |
mapTypeId: google.maps.MapTypeId.HYBRID, |
mapTypeControlOptions: { |
346,7 → 353,15 |
function trouverCommune(pos) { |
$(function() { |
var urlNomCommuneFormatee = SERVICE_NOM_COMMUNE_URL.replace('{lat}', pos.lat()).replace('{lon}', pos.lng()); |
var url_service = SERVICE_NOM_COMMUNE_URL; |
/*if(NOM_SCI_PROJET != "bdtfx") { |
// Dans le cas d'autres référentiels comme les Antilles, on utilise |
// une localisation mondiale mais approximative (c'est mieux que rien) |
url_service = SERVICE_NOM_COMMUNE_URL_ALT |
}*/ |
var urlNomCommuneFormatee = url_service.replace('{lat}', pos.lat()).replace('{lon}', pos.lng()); |
$.ajax({ |
url : urlNomCommuneFormatee, |
type : "GET", |
496,6 → 511,8 |
$("body").on('click', ".supprimer-obs", supprimerObs); |
$("#transmettre-obs").on('click', transmettreObs); |
$("#referentiel").on('change', surChangementReferentiel); |
}); |
function configurerFormValidator() { |
676,7 → 693,7 |
'<ul class="unstyled">'+ |
'<li>'+ |
'<span class="nom-sci">'+$("#taxon").val()+'</span> '+ |
ajouterNumNomSel()+ |
ajouterNumNomSel()+'<span class="referentiel-obs">['+NOM_SCI_PROJET+']</span>'+ |
' observé à '+ |
'<span class="commune">'+$('#commune-nom').text()+'</span> '+ |
'('+$('#commune-code-insee').text()+') ['+$("#latitude").val()+' / '+$("#longitude").val()+']'+ |
726,6 → 743,12 |
}); |
} |
function surChangementReferentiel() { |
NOM_SCI_PROJET = $('#referentiel').val(); |
NOM_SCI_REFERENTIEL = NOM_SCI_PROJET+':'+PROJETS_VERSIONS[NOM_SCI_PROJET]; |
$('#taxon').val(''); |
} |
function surChangementNbreObs() { |
if (obsNbre == 0) { |
$("#transmettre-obs").attr('disabled', 'disabled'); |
919,7 → 942,8 |
function getUrlAutocompletionNomsSci() { |
var mots = $('#taxon').val(); |
var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL.replace('{masque}', mots); |
var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL_TPL.replace('{referentiel}',NOM_SCI_PROJET); |
url = url.replace('{masque}', mots); |
return url; |
} |
/trunk/widget/modules/saisie/Saisie.php |
---|
24,10 → 24,11 |
const PROJET_DEFAUT = 'defaut'; |
const WS_SAISIE = "CelWidgetSaisie"; |
const WS_NOM = "noms"; |
const NS_PROJET = "bdtfx"; |
const NS_PROJET_VERSION = "1.01"; |
private $NS_PROJET_VERSION = "1.01"; |
const EFLORE_API_VERSION = "0.1"; |
private $NS_PROJET = "bdtfx"; |
private $projetsVersions = array(); |
private $projet = null; |
private $configProjet = null; |
40,6 → 41,7 |
$this->projet = isset($projet) ? $projet : self::PROJET_DEFAUT; |
$this->chargerConfigProjet(); |
$this->chargerProjetsVersion(); |
$service = isset($service) ? $service : 'widget'; |
$methode = $this->traiterNomMethodeExecuter($service); |
80,8 → 82,23 |
$this->debug[] = "Le fichier ini '$fichier_config' du projet n'existe pas."; |
} |
} |
private function chargerProjetsVersion() { |
foreach ($this->configProjet as $config => $valeur) { |
if(strstr($config,'.version')) { |
$this->projetsVersions[str_replace('.version', '', $config)] = $valeur; |
} |
} |
} |
public function executerWidget() { |
$referentiel_impose = false; |
if(isset($_GET['referentiel']) && $_GET['referentiel'] != '') { |
$this->NS_PROJET = isset($_GET['referentiel']) && $_GET['referentiel'] != '' ? $_GET['referentiel'] : $this->NS_PROJET; |
$this->NS_PROJET_VERSION = $this->projetsVersions[$this->NS_PROJET]; |
$referentiel_impose = true; |
} |
$widget['squelette'] = $this->projet; |
$widget['donnees'] = array(); |
$widget['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], ''); |
90,10 → 107,15 |
// cas du projet par défaut ou bien d'un projet n'ayant pas de squelette spécifique |
if ($this->projet == 'defaut' || !$this->projetASquelette()) { |
$urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl']; |
$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, self::NS_PROJET, self::WS_NOM); |
$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, $this->NS_PROJET, self::WS_NOM); |
$urlWsNsSansRef = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM); |
$widget['donnees']['url_ws_autocompletion_ns'] = $urlWsNs; |
$widget['donnees']['ns_referentiel'] = self::NS_PROJET.':'.self::NS_PROJET_VERSION; |
$widget['donnees']['ns_version'] = self::NS_PROJET_VERSION; |
$widget['donnees']['url_ws_autocompletion_ns_tpl'] = $urlWsNsSansRef; |
$widget['donnees']['ns_referentiel'] = $this->NS_PROJET.':'.$this->NS_PROJET_VERSION; |
$widget['donnees']['ns_projet'] = $this->NS_PROJET; |
$widget['donnees']['ns_version'] = $this->NS_PROJET_VERSION; |
$widget['donnees']['referentiel_impose'] = $referentiel_impose; |
$widget['donnees']['projets_versions'] = $this->projetsVersions; |
if(self::especeEstImposee()) { |
$nom = self::executerChargementInfosTaxon($_GET['num_nom']); |
$widget['donnees']['espece_imposee'] = true; |
180,7 → 202,7 |
} |
private function executerChargementInfosTaxon($num_nom) { |
$url_service_infos = sprintf($this->config['chemins']['infosTaxonUrl'], $num_nom); |
$url_service_infos = sprintf($this->config['chemins']['infosTaxonUrl'], $this->NS_PROJET, $num_nom); |
$infos = json_decode(file_get_contents($url_service_infos)); |
$resultat = array(); |
if(isset($infos) && !empty($infos)) { |
/trunk/widget/modules/saisie/configurations/defaut.ini |
---|
1,0 → 0,0 |
titre = "Saisie rapide" |
titre = "Saisie rapide" |
[referentiels] |
bdtfx.version = 1.01 |
bdtxa.version = 1.00 |