Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1475 → Rev 1476

/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