Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2699 → Rev 2700

/trunk/widget/modules/saisie/squelettes/defaut/defaut.tpl.html
42,6 → 42,7
<!-- Jquery Plugins -->
<!-- Jquery Validate : nécessaire pour la validation des formulaires -->
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/additional-methods.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/messages_fr.js"></script>
<!-- Jquery Form :nécessaire pour l'upload des images -->
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/form/3.51/jquery.form.min.js"></script>
49,78 → 50,84
<script type="text/javascript" src="http://resources.tela-botanica.org/bootstrap/2.3.2/js/bootstrap.min.js"></script>
 
<!-- Javascript : appli saisie -->
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/defaut/js/WidgetSaisie.js"></script>
<script type="text/javascript">
//<![CDATA[
// La présence du parametre 'debug' dans l'URL enclenche le dégogage
var DEBUG = <?=isset($_GET['debug']) ? 'true' : 'false'?>;
// La présence du parametre 'html5' dans l'URL enclenche les fonctions avancées HTML5
var HTML5 = <?=isset($_GET['html5']) ? 'true' : 'false'?>;
// Mot-clé du widget/projet
var TAG_PROJET = "WidgetSaisie";
// Mots-clés à ajouter aux images
var TAG_IMG = "<?=isset($_GET['tag-img']) ? $_GET['tag-img'] : ''?>";
var SEPARATION_TAG_IMG = "<?= isset($_GET['motcle']) && isset($_GET['tag-img']) ? ',' : '' ?>";
TAG_IMG = <?=isset($_GET['motcle']) ? "'".$_GET['motcle']."' + SEPARATION_TAG_IMG + TAG_IMG" : 'TAG_IMG' ?>;
// Mots-clés à ajouter aux observations
var TAG_OBS = "<?=isset($_GET['tag-obs']) ? $_GET['tag-obs'] : ''?>";
var SEPARATION_TAG_OBS = "<?= isset($_GET['projet']) && isset($_GET['tag-obs']) ? ',' : '' ?>";
TAG_OBS = <?=isset($_GET['projet']) ? "'".$_GET['projet']."' + SEPARATION_TAG_OBS + TAG_OBS" : 'TAG_OBS' ?>;
$(document).ready(function() {
// OMG un modèle objet !!
var widget = new WidgetSaisie();
 
// Précharger le formulaire avec les infos d'une observation
var OBS_ID = "<?=isset($_GET['id-obs']) ? $_GET['id-obs'] : ''?>";
// URL du web service réalisant l'insertion des données dans la base du CEL.
var SERVICE_SAISIE_URL = "<?=$url_ws_saisie?>";
// URL du web service permettant de récupérer les infos d'une observation du CEL.
var SERVICE_OBS_URL = "<?=$url_ws_obs?>";
// Code du référentiel utilisé pour les nom scientifiques.
var NOM_SCI_REFERENTIEL = "<?=$ns_referentiel?>";
// Indication de la présence d'une espèce imposée
var ESPECE_IMPOSEE = "<?=$espece_imposee; ?>";
// Tableau d'informations sur l'espèce imposée
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; ?>";
// URL du web service permettant l'auto-complétion des noms scientifiques.
var SERVICE_AUTOCOMPLETION_NOM_SCI_URL = "<?=$url_ws_autocompletion_ns?>?"+
// La présence du parametre 'debug' dans l'URL enclenche le débogage
widget.debug = <?=isset($_GET['debug']) ? 'true' : 'false'?>;
// La présence du parametre 'html5' dans l'URL enclenche les fonctions avancées HTML5
widget.html5 = <?=isset($_GET['html5']) ? 'true' : 'false'?>;
// Mot-clé du widget/projet
widget.tagProjet = "WidgetSaisie";
// Mots-clés à ajouter aux images
widget.tagImg = "<?=isset($_GET['tag-img']) ? $_GET['tag-img'] : ''?>";
widget.separationTagImg = "<?= isset($_GET['motcle']) && isset($_GET['tag-img']) ? ',' : '' ?>";
widget.tagImg = <?=isset($_GET['motcle']) ? "'".$_GET['motcle']."' + widget.separationTagImg + widget.tagImg" : 'widget.tagImg' ?>;
// Mots-clés à ajouter aux observations
widget.tagObs = "<?=isset($_GET['tag-obs']) ? $_GET['tag-obs'] : ''?>";
widget.separationTagObs = "<?= isset($_GET['projet']) && isset($_GET['tag-obs']) ? ',' : '' ?>";
widget.tagObs = <?=isset($_GET['projet']) ? "'".$_GET['projet']."' + widget.separationTagObs + widget.tagObs" : 'widget.tagObs' ?>;
// Précharger le formulaire avec les infos d'une observation
widget.obsId = "<?=isset($_GET['id-obs']) ? $_GET['id-obs'] : ''?>";
// URL du web service réalisant l'insertion des données dans la base du CEL.
widget.serviceSaisieUrl = "<?=$url_ws_saisie?>";
// URL du web service permettant de récupérer les infos d'une observation du CEL.
widget.serviceObsUrl = "<?=$url_ws_obs?>";
// Code du référentiel utilisé pour les nom scientifiques.
widget.nomSciReferentiel = "<?=$ns_referentiel?>";
// Indication de la présence d'une espèce imposée
widget.especeImposee = "<?=$espece_imposee; ?>";
// Tableau d'informations sur l'espèce imposée
widget.infosEspeceImposee = <?=$infos_espece; ?>;
// Nombre d'élément dans les listes d'auto-complétion
widget.autocompletionElementsNbre = 20;
// Indication de la présence d'un référentiel imposé
widget.referentielImpose = "<?=$referentiel_impose; ?>";
// URL du web service permettant l'auto-complétion des noms scientifiques
widget.serviceAutocompletionNomSciUrl = "<?=$url_ws_autocompletion_ns?>?"+
"masque={masque}&"+
"recherche=etendue&"+
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
"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?>?"+
"navigation.limite=" + widget.autocompletionElementsNbre;
// Squelette d'URL du web service permettant l'auto-complétion des noms scientifiques
widget.serviceAutocompletionNomSciUrlTpl = "<?=$url_ws_autocompletion_ns_tpl?>?"+
"masque={masque}&"+
"recherche=etendue&"+
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
"retour.tri=alpharet&"+ // tri "à la CeL"
"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 de l'annuaire.
var SERVICE_ANNUAIRE_ID_URL = "<?=$url_ws_annuaire?>";
// Squelette d'URL du web service d'eFlore fournissant les noms de communes.
var SERVICE_NOM_COMMUNE_URL = "http://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).
var SERVICE_NOM_COMMUNE_URL_ALT = "http://api.tela-botanica.org/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
var CHARGEMENT_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement.gif";
// URL de l'icône du chargement en cours d'une image
var CHARGEMENT_IMAGE_URL = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement-image.gif";
// URL de l'icône du calendrier
var CALENDRIER_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/calendrier.png";
// URL de l'icône du calendrier
var PAS_DE_PHOTO_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/pasdephoto.png";
"navigation.limite=" + widget.autocompletionElementsNbre;
// Nombre d'observations max autorisé avant transmission
widget.obsMaxNbre = 10;
// Durée d'affichage en milliseconde des messages d'informations
widget.dureeMessage = 15000;
// Squelette d'URL du web service de l'annuaire.
widget.serviceAnnuaireIdUrl = "<?=$url_ws_annuaire?>";
// Squelette d'URL du web service d'eFlore fournissant les noms de communes.
widget.serviceNomCommuneUrl = "http://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).
widget.serviceNomCommuneUrlAlt = "http://api.tela-botanica.org/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1";
// URL du marqueur à utiliser dans la carte Google Map
widget.googleMapMarqueurUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/marqueurs/epingle.png";
// URL de l'icône du chargement en cours
widget.chargementIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement.gif";
// URL de l'icône du chargement en cours d'une image
widget.chargementImageIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement-image.gif";
// URL de l'icône du calendrier
widget.calendrierIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/calendrier.png";
// URL de l'icône pour une photo manquante
widget.pasDePhotoIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/pasdephoto.png";
 
// Initialisation du bousin
widget.init();
});
//]]>
</script>
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/defaut/js/WidgetSaisie.js"></script>
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/defaut/js/defaut.js"></script>
 
<!-- CSS -->
<link href="http://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/css/themes/smoothness/jquery-ui.min.css" rel="stylesheet" type="text/css" media="screen" />
/trunk/widget/modules/saisie/squelettes/defaut/js/defaut.js
File deleted
\ No newline at end of file
/trunk/widget/modules/saisie/squelettes/defaut/js/WidgetSaisie.js
10,6 → 10,33
this.marker = null;
this.latLng = null;
this.geocoder = null;
this.debug = null;
this.html5 = null;
this.tagProjet = null;
this.tagImg = null;
this.tagObs = null;
this.separationTagImg = null;
this.separationTagObs = null;
this.obsId = null;
this.serviceSaisieUrl = null;
this.serviceObsUrl = null;
this.nomSciReferentiel = null;
this.especeImposee = null;
this.infosEspeceImposee = null;
this.autocompletionElementsNbre = null;
this.referentielImpose = null;
this.serviceAutocompletionNomSciUrl = null;
this.serviceAutocompletionNomSciUrlTpl = null;
this.obsMaxNbre = null;
this.dureeMessage = null;
this.serviceAnnuaireIdUrl = null;
this.serviceNomCommuneUrl = null;
this.serviceNomCommuneUrlAlt = null;
this.googleMapMarqueurUrl = null;
this.chargementIconeUrl = null;
this.chargementImageIconeUrl = null;
this.calendrierIconeUrl = null;
this.pasDePhotoIconeUrl = null;
}
 
/**
33,7 → 60,7
* Initialise le formulaire, les validateurs, les listes de complétion...
*/
WidgetSaisie.prototype.initForm = function() {
if (OBS_ID != '') {
if (this.obsId != '') {
this.chargerInfoObs();
}
 
42,20 → 69,20
this.configurerFormValidator();
this.definirReglesFormValidator();
 
if(ESPECE_IMPOSEE) {
if(this.especeImposee) {
$("#taxon").attr("disabled", "disabled");
$("#taxon-input-groupe").attr("title","");
var infosAssociee = {
label : INFOS_ESPECE_IMPOSEE.nom_sci_complet,
value : INFOS_ESPECE_IMPOSEE.nom_sci_complet,
nt : INFOS_ESPECE_IMPOSEE.num_taxonomique,
nomSel : INFOS_ESPECE_IMPOSEE.nom_sci,
nomSelComplet : INFOS_ESPECE_IMPOSEE.nom_sci_complet,
numNomSel : INFOS_ESPECE_IMPOSEE.id,
nomRet : INFOS_ESPECE_IMPOSEE["nom_retenu.libelle"],
numNomRet : INFOS_ESPECE_IMPOSEE["nom_retenu.id"],
famille : INFOS_ESPECE_IMPOSEE.famille,
retenu : (INFOS_ESPECE_IMPOSEE.retenu == 'false') ? false : true
label : this.infosEspeceImposee.nom_sci_complet,
value : this.infosEspeceImposee.nom_sci_complet,
nt : this.infosEspeceImposee.num_taxonomique,
nomSel : this.infosEspeceImposee.nom_sci,
nomSelComplet : this.infosEspeceImposee.nom_sci_complet,
numNomSel : this.infosEspeceImposee.id,
nomRet : this.infosEspeceImposee["nom_retenu.libelle"],
numNomRet : this.infosEspeceImposee["nom_retenu.id"],
famille : this.infosEspeceImposee.famille,
retenu : (this.infosEspeceImposee.retenu == 'false') ? false : true
};
$("#taxon").data(infosAssociee);
}
76,7 → 103,7
dataType: 'xml', // 'xml', 'script', or 'json' (expected server response type)
resetForm: true // reset the form after successful submit
};
$("#miniature").append('<img id="miniature-chargement" class="miniature" alt="chargement" src="'+CHARGEMENT_IMAGE_URL+'"/>');
$("#miniature").append('<img id="miniature-chargement" class="miniature" alt="chargement" src="'+this.chargementImageIconeUrl+'"/>');
$("#ajouter-obs").attr('disabled', 'disabled');
if(lthis.verifierFormat($("#fichier").val())) {
$("#form-upload").ajaxSubmit(options);
116,6 → 143,13
event.preventDefault();
lthis.defilerMiniatures($(this));
});
 
// fermeture fenêtre
if (this.debug == false) {
$(window).on('beforeunload', function(event) {
return 'Êtes vous sûr de vouloir quiter la page?\nLes observations saisies mais non transmises seront perdues.';
});
}
}
 
/**
131,7 → 165,7
* Affiche la miniature d'une image temporaire (formulaire) qu'on a ajoutée à l'obs
*/
WidgetSaisie.prototype.afficherMiniature = function(reponse) {
if (DEBUG) {
if (this.debug) {
var debogage = $("debogage", reponse).text();
//console.log("Débogage upload : "+debogage);
}
175,7 → 209,7
addressSuffix = '',
lthis = this;
 
switch(NOM_SCI_REFERENTIEL) {
switch(this.nomSciReferentiel) {
case 'isfan':
// Si des résultats se trouvent dans ce rectangle, ils apparaîtront en premier.
// Ça marche moyen...
239,12 → 273,12
};
 
WidgetSaisie.prototype.afficherErreurGoogleMap = function(status) {
if (DEBUG) {
if (this.debug) {
$('#dialogue-google-map .contenu').empty().append(
'<pre class="msg-erreur">'+
"Le service de Géocodage de Google Map a échoué à cause de l'erreur : "+status+
'</pre>');
afficherPanneau('#dialogue-google-map');
this.afficherPanneau('#dialogue-google-map');
}
};
 
271,19 → 305,19
var latLng,
zoomDefaut;
// Carte @TODO mettre ça dans la config
if(NOM_SCI_REFERENTIEL == 'bdtre') {
if(this.nomSciReferentiel == 'bdtre') {
latLng = new google.maps.LatLng(-21.10, 55.30);// Réunion
zoomDefaut = 7;
} else if(NOM_SCI_REFERENTIEL == 'lbf') {
} else if(this.nomSciReferentiel == 'lbf') {
latLng = new google.maps.LatLng(33.72211, 35.8603);// Liban
zoomDefaut = 7;
} else if(NOM_SCI_REFERENTIEL == 'bdtxa') {
} else if(this.nomSciReferentiel == 'bdtxa') {
latLng = new google.maps.LatLng(14.6, -61.08334);// Fort-De-France
zoomDefaut = 8;
} else if(NOM_SCI_REFERENTIEL == 'isfan') {
} else if(this.nomSciReferentiel == 'isfan') {
latLng = new google.maps.LatLng(29.28358, 10.21884);// Afrique du Nord
zoomDefaut = 4;
} else if(NOM_SCI_REFERENTIEL == 'apd') {
} else if(this.nomSciReferentiel == 'apd') {
latLng = new google.maps.LatLng(8.75624, 1.80176);// Afrique de l'Ouest et du Centre
zoomDefaut = 4;
} else {
324,7 → 358,7
map: this.map,
draggable: true,
title: 'Ma station',
icon: GOOGLE_MAP_MARQUEUR_URL,
icon: this.googleMapMarqueurUrl,
position: latLng
});
 
380,9 → 414,10
};
 
WidgetSaisie.prototype.trouverCommune = function(pos) {
var lthis = this;
$(function() {
 
var url_service = SERVICE_NOM_COMMUNE_URL;
var url_service = lthis.serviceNomCommuneUrl;
 
var urlNomCommuneFormatee = url_service.replace('{lat}', pos.lat()).replace('{lon}', pos.lng());
$.ajax({
401,7 → 436,7
},
statusCode : {
500 : function(jqXHR, textStatus, errorThrown) {
if (DEBUG) {
if (this.debug) {
$("#dialogue-erreur .alert-txt").append('<p id="msg">Un problème est survenu lors de l\'appel au service fournissante le nom des communes.</p>');
reponse = jQuery.parseJSON(jqXHR.responseText);
var erreurMsg = "";
416,7 → 451,7
}
},
error : function(jqXHR, textStatus, errorThrown) {
if (DEBUG) {
if (this.debug) {
$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la transmission de vos observations.</p>');
reponse = jQuery.parseJSON(jqXHR.responseText);
var erreurMsg = "";
432,7 → 467,7
complete : function(jqXHR, textStatus) {
var debugMsg = extraireEnteteDebug(jqXHR);
if (debugMsg != '') {
if (DEBUG) {
if (this.debug) {
$("#dialogue-erreur .alert-txt").append('<pre class="msg-debug msg">Débogage : '+debugMsg+'</pre>');
}
}
456,7 → 491,7
var lthis = this;
var courriel = $("#courriel").val();
//TODO: mettre ceci en paramètre de config
var urlAnnuaire = SERVICE_ANNUAIRE_ID_URL+courriel;//http://localhost/applications/annuaire/jrest/
var urlAnnuaire = this.serviceAnnuaireIdUrl + courriel;//http://localhost/applications/annuaire/jrest/
$.ajax({
url : urlAnnuaire,
type : "GET",
490,13 → 525,13
WidgetSaisie.prototype.surErreurCompletionCourriel = function() {
$("#prenom, #nom, #courriel_confirmation").val('');
$("#prenom, #nom, #courriel_confirmation").removeAttr('disabled');
afficherPanneau("#dialogue-courriel-introuvable");
this.afficherPanneau("#dialogue-courriel-introuvable");
};
//+---------------------------------------------------------------------------------------------------------+
//FORMULAIRE
 
WidgetSaisie.prototype.chargerInfoObs = function() {
var urlObs = SERVICE_OBS_URL + '/' + OBS_ID;
var urlObs = this.serviceObsUrl + '/' + this.obsId;
$.ajax({
url: urlObs,
type: 'GET',
612,7 → 647,7
maxDate: new Date,
showOn: "button",
buttonImageOnly: true,
buttonImage: CALENDRIER_ICONE_URL,
buttonImage: this.calendrierIconeUrl,
buttonText: "Afficher le calendrier pour saisir la date.",
showButtonPanel: true
});
662,7 → 697,7
};
 
WidgetSaisie.prototype.bloquerCopierCollerCourriel = function() {
afficherPanneau("#dialogue-bloquer-copier-coller");
this.afficherPanneau("#dialogue-bloquer-copier-coller");
return false;
};
 
684,7 → 719,7
this.afficherObs();
this.stockerObsData();
this.supprimerMiniatures();
if(!ESPECE_IMPOSEE) {
if(! this.especeImposee) {
$("#taxon").val("");
$("#taxon").data("numNomSel",undefined);
}
691,7 → 726,7
$('#barre-progression-upload').attr('aria-valuemax', this.obsNbre);
$('#barre-progression-upload .sr-only').text('0/'+this.obsNbre+" observations transmises");
} else {
afficherPanneau('#dialogue-form-invalide');
this.afficherPanneau('#dialogue-form-invalide');
}
};
 
718,7 → 753,7
'<li>'+
'<span class="nom-sci">'+$("#taxon").val()+'</span> '+
this.ajouterNumNomSel()+'<span class="referentiel-obs">'+
($("#taxon").data("numNomSel") == undefined ? '' : '['+NOM_SCI_REFERENTIEL+']')+'</span>'+
($("#taxon").data("numNomSel") == undefined ? '' : '['+ this.nomSciReferentiel +']')+'</span>'+
' observé à '+
'<span class="commune">'+$('#commune-nom').text()+'</span> '+
'('+$('#commune-code-insee').text()+') ['+$("#latitude").val()+' / '+$("#longitude").val()+']'+
753,7 → 788,7
'num_nom_ret' : $("#taxon").data("numNomRet"),
'num_taxon' : $("#taxon").data("nt"),
'famille' : $("#taxon").data("famille"),
'referentiel' : ($("#taxon").data("numNomSel") == undefined ? '' : NOM_SCI_REFERENTIEL),
'referentiel' : ($("#taxon").data("numNomSel") == undefined ? '' : lthis.nomSciReferentiel),
 
'latitude' : $("#latitude").val(),
'longitude' : $("#longitude").val(),
770,7 → 805,7
};
 
WidgetSaisie.prototype.surChangementReferentiel = function() {
NOM_SCI_REFERENTIEL = $('#referentiel').val();
this.nomSciReferentiel = $('#referentiel').val();
$('#taxon').val('');
this.initialiserAutocompleteCommune();
this.initialiserGoogleMap();
780,12 → 815,12
if (this.obsNbre == 0) {
$("#transmettre-obs").attr('disabled', 'disabled');
$("#ajouter-obs").removeAttr('disabled');
} else if (this.obsNbre > 0 && this.obsNbre < OBS_MAX_NBRE) {
} else if (this.obsNbre > 0 && this.obsNbre < this.obsMaxNbre) {
$("#transmettre-obs").removeAttr('disabled');
$("#ajouter-obs").removeAttr('disabled');
} else if (this.obsNbre >= OBS_MAX_NBRE) {
} else if (this.obsNbre >= this.obsMaxNbre) {
$("#ajouter-obs").attr('disabled', 'disabled');
afficherPanneau("#dialogue-bloquer-creer-obs");
this.afficherPanneau("#dialogue-bloquer-creer-obs");
}
};
 
792,7 → 827,7
WidgetSaisie.prototype.transmettreObs = function() {
var observations = $("#liste-obs").data();
if (observations == undefined || jQuery.isEmptyObject(observations)) {
afficherPanneau("#dialogue-zero-obs");
this.afficherPanneau("#dialogue-zero-obs");
} else {
this.nbObsEnCours = 1;
this.nbObsTransmises = 0;
811,9 → 846,9
// ou bien utiliser un vrai tableau et pas un objet
for (var obsNum in observations) {
var obsATransmettre = {
'projet' : TAG_PROJET,
'tag-obs' : TAG_OBS,
'tag-img' : TAG_IMG
'projet' : this.tagProjet,
'tag-obs' : this.tagObs,
'tag-img' : this.tagImg
};
var utilisateur = {
id_utilisateur : $("#id_utilisateur").val(),
830,6 → 865,7
 
break;
}
$('#zone-liste-obs').addClass("hidden");
};
 
WidgetSaisie.prototype.mettreAJourProgression = function() {
849,7 → 885,7
var lthis = this;
var erreurMsg = "";
$.ajax({
url : SERVICE_SAISIE_URL,
url : lthis.serviceSaisieUrl,
type : "POST",
data : observation,
dataType : "json",
863,10 → 899,10
// mise à jour du nombre d'obs à transmettre
// et suppression de l'obs
lthis.supprimerObsParId(idObs);
this.nbObsEnCours++;
lthis.nbObsEnCours++;
// mise à jour du statut
lthis.mettreAJourProgression();
if(this.obsNbre > 0) {
if(lthis.obsNbre > 0) {
// dépilement de la suivante
lthis.depilerObsPourEnvoi();
}
886,7 → 922,7
});
}
} catch(e) {
erreurMsg += "L'erreur n'était pas en JSON.";
erreurMsg += "Erreur inconnue: " + jqXHR.responseText;
}
},
complete : function(jqXHR, textStatus) {
893,12 → 929,12
var debugMsg = extraireEnteteDebug(jqXHR);
 
if (erreurMsg != '') {
if (DEBUG) {
if (this.debug) {
$("#dialogue-obs-transaction-ko .alert-txt").append('<pre class="msg-erreur">'+erreurMsg+'</pre>');
$("#dialogue-obs-transaction-ko .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
}
var hrefCourriel = "mailto:cel_remarques@tela-botanica.org?"+
"subject=Dysfonctionnement du widget de saisie "+TAG_PROJET+
"subject=Dysfonctionnement du widget de saisie "+ this.tagProjet +
"&body="+erreurMsg+"%0D%0ADébogage :%0D%0A"+debugMsg;
 
// mise en valeur de l'obs en erreur + scroll vers celle ci en changeant le hash
914,10 → 950,10
$("#chargement").hide();
lthis.initialiserBarreProgression();
} else {
if (DEBUG) {
if (lthis.debug) {
$("#dialogue-obs-transaction-ok .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
}
if(this.obsNbre == 0) {
if(lthis.obsNbre == 0) {
setTimeout(function() {
$("#chargement").hide();
$('#dialogue-obs-transaction-ok .alert-txt').append($('#tpl-transmission-ok').clone().html());
1025,7 → 1061,7
'<a href="#" class="defilement-miniatures-droite '+visible+'">&#62;</a>'+
'</div>';
} else {
html = '<img class="miniature" alt="Aucune photo"src="'+PAS_DE_PHOTO_ICONE_URL+'" />';
html = '<img class="miniature" alt="Aucune photo"src="'+ this.pasDePhotoIconeUrl +'" />';
}
return html;
};
1094,7 → 1130,7
 
WidgetSaisie.prototype.getUrlAutocompletionNomsSci = function() {
var mots = $('#taxon').val();
var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL_TPL.replace('{referentiel}',NOM_SCI_REFERENTIEL);
var url = this.serviceAutocompletionNomSciUrlTpl.replace('{referentiel}', this.nomSciReferentiel);
url = url.replace('{masque}', mots);
return url;
};
1107,7 → 1143,7
var nom = {label : '', value : '', nt : '', nomSel : '', nomSelComplet : '', numNomSel : '',
nomRet : '', numNomRet : '', famille : '', retenu : false
};
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
if (suggestions.length >= this.autocompletionElementsNbre) {
nom.label = "...";
nom.value = $('#taxon').val();
suggestions.push(nom);
1134,6 → 1170,10
return suggestions;
};
 
WidgetSaisie.prototype.afficherPanneau = function(selecteur) {
$(selecteur).fadeIn("slow").delay(this.dureeMessage).fadeOut("slow");
}
 
// lib hors objet --
 
/**
1168,10 → 1208,6
return msgDebug;
}
 
function afficherPanneau(selecteur) {
$(selecteur).fadeIn("slow").delay(DUREE_MESSAGE).fadeOut("slow");
}
 
/*
* jQuery UI Autocomplete HTML Extension
*
/trunk/widget/modules/saisie/squelettes/sauvages/js/defaut.js
File deleted
\ No newline at end of file
/trunk/widget/modules/saisie/squelettes/sauvages/js/sauvages.save.js
File deleted
\ No newline at end of file
/trunk/widget/modules/saisie/squelettes/sauvages/js/WidgetSaisieSauvages.js
10,6 → 10,10
this.valeurChamp = "";
this.avertissementDeuxPhotosAffiche = false;
this.taxons = {};
this.googleMapMarqueurDebutUrl = null;
this.googleMapMarqueurFinUrl = null;
this.ville = null;
this.supprimerIconeUrl = null;
}
WidgetSaisieSauvages.prototype = new WidgetSaisie();
 
30,7 → 34,7
 
this.surChangementTaxonListe();
$('#taxon-liste').on('change', this.surChangementTaxonListe);
if (DEBUG) {
if (this.debug) {
console.log('Selected taxon:'+$('#taxon-liste option:selected').val());
}
$('#taxon-liste').on('blur', this.surChangementValeurTaxon);
41,9 → 45,14
WidgetSaisieSauvages.prototype.initEvts = function() {
var lthis = this;
 
$('body').on('click', '.effacer-miniature', function(event) {
lthis.supprimerMiniature($(this));
// super() à la main - toute autre manière de faire est über-komplex
WidgetSaisie.prototype.initEvts.call(this);
 
$('.has-tooltip').tooltip('enable'); // @TODO harmoniser .has-tooltip et [rel="tooltip"]
$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
event.stopPropagation();
});
$('#fichier').off(); // elever l'écouteur d'événements de base
$('#fichier').on('click change', function(event) {
if($("#photos-conteneur #miniatures .miniature").length == 1 && ! lthis.avertissementDeuxPhotosAffiche) {
66,7 → 75,7
resetForm: true // reset the form after successful submit
};
$('#miniature').append(
'<img id="miniature-chargement" class="miniature" alt="chargement" src="'+CHARGEMENT_IMAGE_URL+'"/>');
'<img id="miniature-chargement" class="miniature" alt="chargement" src="'+ this.chargementImageIconeUrl +'"/>');
$('#ajouter-obs').attr('disabled', 'disabled');
if (lthis.verifierFormat($(this).val())) {
$('#form-upload').ajaxSubmit(options);
82,15 → 91,6
$(this).valid();
event.stopPropagation();
});
$('#ajouter-obs').on('click', this.ajouterObs.bind(this));
$('.obs-nbre').on('changement', this.surChangementNbreObs.bind(this));
$("body").on('click', ".supprimer-obs", function() {
var that = this,
suppObs = lthis.supprimerObs.bind(lthis);
// bricolage pour avoir les deux contextes en même temps (objet et elt. du DOM)
suppObs(that);
});
$('#transmettre-obs').on('click', this.transmettreObs.bind(this));
 
// Défilement des photos
$('body').on('click', '.defilement-control-zone', function(event) {
102,25 → 102,11
$('body').on('mouseout', '.defilement-control-zone', function(event) {
$('.defilement-control', this).addClass('hidden');
});
// Interaction sur le formulaire observateur
$('#prenom').on('change', this.formaterPrenom.bind(this));
$('#nom').on('change', this.formaterNom.bind(this));
$('#courriel').on('keyup', this.testerLancementRequeteIdentite.bind(this));
$('#courriel').on('blur', this.requeterIdentite.bind(this));
$('#courriel_confirmation').on('paste', this.bloquerCopierCollerCourriel.bind(this));
 
$('#photo-placeholder').click(function(event) {
$('#fichier').click();
});
 
// Interaction générales
$('.alert .close').on('click', this.fermerPanneauAlert);
$('.has-tooltip').tooltip('enable');
$('#btn-aide').on('click', this.basculerAffichageAide);
$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
event.stopPropagation();
});
 
// Autocompletion du champ adresse
$('#carte-recherche').on('focus', function() {
$(this).select();
170,7 → 156,6
$('#geolocaliser').on('click', this.geolocaliser.bind(this));
}
 
 
WidgetSaisieSauvages.prototype.montrerFormIdentite = function() {
$('#zone-courriel-confirmation, #zone-prenom-nom').css('display', 'block');
}
179,9 → 164,9
WidgetSaisieSauvages.prototype.initialiserGoogleMap = function() {
var lthis = this;
this.latLngDeb = new google.maps.LatLng(48.8543, 2.3483);// Paris
if (VILLE == 'Marseille') {
if (this.ville == 'Marseille') {
this.latLngDeb = new google.maps.LatLng(43.29545, 5.37458);
} else if (VILLE == 'Montpellier') {
} else if (this.ville == 'Montpellier') {
this.latLngDeb = new google.maps.LatLng(43.61077, 3.87672);
}
var options = {
219,7 → 204,7
google.maps.event.addListenerOnce(this.map, 'idle', function(){
// Initialisation du marker de début de rue
lthis.initialiserMarkerDeb();
if (OBS_ID != '') {
if (this.obsId != '') {
lthis.chargerInfoObs();
} else {
// Tentative de geocalisation si aucune obs à précharger
279,7 → 264,7
map: this.map,
draggable: true,
title: 'Début de la portion de rue étudiée',
icon: GOOGLE_MAP_MARQUEUR_DEBUT_URL,
icon: this.googleMapMarqueurDebutUrl,
position: this.latLngDeb
});
google.maps.event.addListener(this.markerDeb, 'dragend', this.surDeplacementMarkerDeb.bind(this));
323,7 → 308,7
map: this.map,
draggable: true,
title: 'Fin de la portion de rue étudiée',
icon: GOOGLE_MAP_MARQUEUR_FIN_URL,
icon: this.googleMapMarqueurFinUrl,
position: this.latLngFin
});
google.maps.event.addListener(this.markerFin, 'dragend', this.surDeplacementMarkerFin.bind(this));
444,7 → 429,7
 
WidgetSaisieSauvages.prototype.getUrlAutocompletionNomsSci = function() {
var mots = $('#taxon').val(),
url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL_TPL.replace('{referentiel}',NOM_SCI_REFERENTIEL);
url = this.serviceAutocompletionNomSciUrlTpl.replace('{referentiel}', this.nomSciReferentiel);
url = url.replace('{masque}', mots);
return url;
}
457,7 → 442,7
var nom = {label: '', value: '', nt: '', nomSel: '', nomSelComplet: '', numNomSel: '',
nomRet: '', numNomRet: '', famille: '', retenu: false
};
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
if (suggestions.length >= this.autocompletionElementsNbre) {
nom.label = '...';
nom.value = $('#taxon').val();
suggestions.push(nom);
608,7 → 593,7
maxDate: new Date,
showOn: 'button',
buttonImageOnly: true,
buttonImage: CALENDRIER_ICONE_URL,
buttonImage: this.calendrierIconeUrl,
buttonText: 'Afficher le calendrier pour saisir la date.',
showButtonPanel: true,
onSelect: function(date) {
645,9 → 630,9
var debRue = (this.latLngDeb == undefined || this.latLngDeb == this.latLngFin) ? false : true,
finRue = (this.latLngFin == undefined || this.latLngDeb == this.latLngFin) ? false : true;
if (debRue == false || finRue == false) {
afficherPanneau('#dialogue-form-invalide-rue');
this.afficherPanneau('#dialogue-form-invalide-rue');
} else {
afficherPanneau('#dialogue-form-invalide');
this.afficherPanneau('#dialogue-form-invalide');
}
this.montrerFormIdentite();
}
658,7 → 643,7
var numNomSel = ($('#taxon-liste').val() == '?') ? $('#taxon').data('numNomSel') : $('#taxon-liste').val(),
nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
taxon = ($('#taxon-liste').val() == '?') ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
referentiel = (numNomSel == undefined) ? '' : '['+NOM_SCI_REFERENTIEL+']',
referentiel = (numNomSel == undefined) ? '' : '['+ this.nomSciReferentiel +']',
commune = $('#commune-nom').text(),
codeInsee = $('#commune-code-insee').text(),
station = $('input[name="adresse"]').val(),
727,7 → 712,7
premiere = true,
numero = 1;
if ($('#miniatures img').length == 0) {
html = '<img class="miniature" alt="Aucune photo"src="'+PAS_DE_PHOTO_ICONE_URL+'" />';
html = '<img class="miniature" alt="Aucune photo"src="'+ this.pasDePhotoIconeUrl +'" />';
} else if ($('#miniatures img').length >= 1) {
$('#miniatures img').each(function() {
var visible = premiere ? 'miniature-selectionnee' : 'miniature-cachee',
804,7 → 789,7
 
// surcharge
WidgetSaisieSauvages.prototype.surChangementReferentiel = function() {
NOM_SCI_REFERENTIEL = $('#referentiel').val();
this.nomSciReferentiel = $('#referentiel').val();
$('#taxon').val('');
}
 
819,7 → 804,7
numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : taxons[numNomSel]['num_nom_ret'],
numTaxon = nomHorsListe ? $('#taxon').data('nt') : taxons[numNomSel]['num_taxon'],
famille = nomHorsListe ? $('#taxon').data('famille') : taxons[numNomSel]['famille'],
referentiel = (numNomSel == undefined) ? '' : NOM_SCI_REFERENTIEL,
referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
notes = (nomSpecial ? taxons[numNomSel]['nom_fr'] + '. ' : '') + $('#notes').val();
certitude = $('input[name=certitude]:checked').val();
851,7 → 836,7
// Ajout des champs étendus de l'obs
'obs_etendue': lthis.getObsChpEtendus()
});
if (DEBUG) {
if (this.debug) {
console.log($('#liste-obs').data('obsId'+this.obsNbre));
}
}
/trunk/widget/modules/saisie/squelettes/sauvages/sauvages.tpl.html
16,120 → 16,115
 
<!-- Javascript : bibliothèques -->
<!-- Google Map v3 -->
<!--<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>-->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&amp;language=fr&amp;region=FR"></script>
 
<!-- Jquery -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.min.js"></script>
 
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/1.11.1/jquery-1.11.1.min.js"></script>
<!-- Jquery UI : nécessaire pour le minicalendrier et l'auto-complétion -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.10.2/js/jquery-ui-1.10.2.custom.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.10.2/js/jquery.ui.datepicker-fr.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/js/datepicker-fr.js"></script>
<!-- Jquery Plugins -->
<!-- Jquery Validate : nécessaire pour la validation des formulaires -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/validate/1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/validate/1.11.1/additional-methods.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/validate/1.11.1/messages_fr.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/additional-methods.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/validate/1.11.1/messages_fr.js"></script>
<!-- Jquery Form :nécessaire pour l'upload des images -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/form/3.32/jquery.form.min.js"></script>
 
<script type="text/javascript" src="http://resources.tela-botanica.org/jquery/form/3.51/jquery.form.min.js"></script>
<!-- Bootstrap -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script type="text/javascript" src="http://resources.tela-botanica.org/bootstrap/2.3.2/js/bootstrap.min.js"></script>
 
<!-- Javascript : appli saisie -->
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/defaut/js/WidgetSaisie.js"></script>
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/sauvages/js/WidgetSaisieSauvages.js"></script>
<script src="<?=$url_base?>saisie?projet=sauvages&amp;service=taxons" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
// La présence du parametre 'debug' dans l'URL enclenche le dégogage
var DEBUG = <?=isset($_GET['debug']) ? 'true' : 'false'?>;
// La présence du parametre 'html5' dans l'URL enclenche les fonctions avancées HTML5
var HTML5 = <?=isset($_GET['html5']) ? 'true' : 'false'?>;
$(document).ready(function() {
// Héritage !!
var widget = new WidgetSaisieSauvages();
 
// La présence du parametre 'ville' dans l'URL géolocalise
var VILLE = "<?=isset($_GET['ville']) ? $_GET['ville'] : ''?>";
VILLE = <?= isset($_GET['commune']) ? "'".$_GET['commune']."'" : 'VILLE' ?>;
 
// Mot-clé du widget/projet
var TAG_PROJET = "WidgetSauvages,Sauvages";
 
// Mots-clés à ajouter aux images
var TAG_IMG = "<?=isset($_GET['tag-img']) ? $_GET['tag-img'] : ''?>";
var SEPARATION_TAG_IMG = "<?= isset($_GET['motcle']) && isset($_GET['tag-img']) ? ',' : '' ?>";
TAG_IMG = <?=isset($_GET['motcle']) ? "'".$_GET['motcle']."' + SEPARATION_TAG_IMG + TAG_IMG" : 'TAG_IMG' ?>;
// Mots-clés à ajouter aux observations
var TAG_OBS = "<?=isset($_GET['tag-obs']) ? $_GET['tag-obs'] : ''?>";
var SEPARATION_TAG_OBS = "<?= isset($_GET['projet']) && isset($_GET['tag-obs']) ? ',' : '' ?>";
TAG_OBS = <?=isset($_GET['projet']) ? "'".$_GET['projet']."' + SEPARATION_TAG_OBS + TAG_OBS" : '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?>";
// URL du web service permettant de récupérer les infos d'une observation du CEL.
var SERVICE_OBS_URL = "<?=$url_ws_obs?>";
// Code du référentiel utilisé pour les nom scientifiques.
var NOM_SCI_REFERENTIEL = "<?=$ns_referentiel?>";
// Indication de la présence d'une espèce imposée
var ESPECE_IMPOSEE = "<?=$espece_imposee; ?>";
// Tableau d'informations sur l'espèce imposée
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; ?>";
// URL du web service permettant l'auto-complétion des noms scientifiques.
var SERVICE_AUTOCOMPLETION_NOM_SCI_URL = "<?=$url_ws_autocompletion_ns?>?"+
// La présence du parametre 'debug' dans l'URL enclenche le débogage
widget.debug = <?=isset($_GET['debug']) ? 'true' : 'false'?>;
// La présence du parametre 'html5' dans l'URL enclenche les fonctions avancées HTML5
widget.html5 = <?=isset($_GET['html5']) ? 'true' : 'false'?>;
// Mot-clé du widget/projet
widget.tagProjet = "WidgetSauvages,Sauvages";
// Mots-clés à ajouter aux images
widget.tagImg = "<?=isset($_GET['tag-img']) ? $_GET['tag-img'] : ''?>";
widget.separationTagImg = "<?= isset($_GET['motcle']) && isset($_GET['tag-img']) ? ',' : '' ?>";
widget.tagImg = <?=isset($_GET['motcle']) ? "'".$_GET['motcle']."' + widget.separationTagImg + widget.tagImg" : 'widget.tagImg' ?>;
// Mots-clés à ajouter aux observations
widget.tagObs = "<?=isset($_GET['tag-obs']) ? $_GET['tag-obs'] : ''?>";
widget.separationTagObs = "<?= isset($_GET['projet']) && isset($_GET['tag-obs']) ? ',' : '' ?>";
widget.tagObs = <?=isset($_GET['projet']) ? "'".$_GET['projet']."' + widget.separationTagObs + widget.tagObs" : 'widget.tagObs' ?>;
// Précharger le formulaire avec les infos d'une observation
widget.obsId = "<?=isset($_GET['id-obs']) ? $_GET['id-obs'] : ''?>";
// URL du web service réalisant l'insertion des données dans la base du CEL.
widget.serviceSaisieUrl = "<?=$url_ws_saisie?>";
// URL du web service permettant de récupérer les infos d'une observation du CEL.
widget.serviceObsUrl = "<?=$url_ws_obs?>";
// Code du référentiel utilisé pour les nom scientifiques.
widget.nomSciReferentiel = "<?=$ns_referentiel?>";
// Indication de la présence d'une espèce imposée
widget.especeImposee = "<?=$espece_imposee; ?>";
// Tableau d'informations sur l'espèce imposée
widget.infosEspeceImposee = <?=$infos_espece; ?>;
// Nombre d'élément dans les listes d'auto-complétion
widget.autocompletionElementsNbre = 20;
// Indication de la présence d'un référentiel imposé
widget.referentielImpose = "<?=$referentiel_impose; ?>";
// URL du web service permettant l'auto-complétion des noms scientifiques
widget.serviceAutocompletionNomSciUrl = "<?=$url_ws_autocompletion_ns?>?"+
"masque={masque}&"+
"recherche=etendue&"+
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
"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?>?"+
"navigation.limite=" + widget.autocompletionElementsNbre;
// Squelette d'URL du web service permettant l'auto-complétion des noms scientifiques
widget.serviceAutocompletionNomSciUrlTpl = "<?=$url_ws_autocompletion_ns_tpl?>?"+
"masque={masque}&"+
"recherche=etendue&"+
"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
"retour.tri=alpharet&"+ // tri "à la CeL"
"ns.structure=au"+"&"+
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE;
// Nombre d'observations max autorisé avant transmission
<? $max_nb_obs = 10 ?>
var OBS_MAX_NBRE = <?= $max_nb_obs ?>;
// Durée d'affichage en milliseconde des messages d'informations
var DUREE_MESSAGE = 15000;
// Squelette d'URL du web service de l'annuaire.
var SERVICE_ANNUAIRE_ID_URL = "<?=$url_ws_annuaire?>";
// Squelette d'URL du web service d'eFlore fournissant les noms de communes.
var SERVICE_NOM_COMMUNE_URL = "http://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).
var SERVICE_NOM_COMMUNE_URL_ALT = "http://www.tela-botanica.org/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_DEBUT_URL = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/marqueurs/debut.png";
// URL de l'icône de fin de rue
var GOOGLE_MAP_MARQUEUR_FIN_URL = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/marqueurs/fin.png";
// URL de l'icône du chargement en cours
var CHARGEMENT_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/sauvages/img/icones/chargement.gif";
// URL de l'icône du chargement en cours d'une image
var CHARGEMENT_IMAGE_URL = "<?=$url_base?>modules/saisie/squelettes/sauvages/img/icones/chargement-image.gif";
// URL de l'icône du calendrier
var CALENDRIER_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/sauvages/img/icones/calendrier.png";
// URL de l'icône du calendrier
var PAS_DE_PHOTO_ICONE_URL = "<?=$url_base?>modules/saisie/squelettes/sauvages/img/icones/pas_de_photo.png";
// URL de l'icône du bouton supprimer
var SUPPRIMER_ICONE_URL = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/icones/supprimer.png";
// Précharger le formulaire avec les infos d'une observation
var OBS_ID = "<?=isset($_GET['id-obs']) ? $_GET['id-obs'] : ''?>";
// URL du web service permettant de récupérer les infos d'une observation du CEL.
var SERVICE_OBS_URL = "<?=$url_ws_obs?>";
"navigation.limite=" + widget.autocompletionElementsNbre;
// Nombre d'observations max autorisé avant transmission
widget.obsMaxNbre = 10;
// Durée d'affichage en milliseconde des messages d'informations
widget.dureeMessage = 15000;
// Squelette d'URL du web service de l'annuaire.
widget.serviceAnnuaireIdUrl = "<?=$url_ws_annuaire?>";
// Squelette d'URL du web service d'eFlore fournissant les noms de communes.
widget.serviceNomCommuneUrl = "http://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).
widget.serviceNomCommuneUrlAlt = "http://api.tela-botanica.org/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1";
// URL de l'icône du chargement en cours
widget.chargementIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement.gif";
// URL de l'icône du chargement en cours d'une image
widget.chargementImageIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/chargement-image.gif";
// URL de l'icône du calendrier
widget.calendrierIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/calendrier.png";
// URL de l'icône pour une photo manquante
widget.pasDePhotoIconeUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/icones/pasdephoto.png";
// URL du marqueur de début de rue
widget.googleMapMarqueurDebutUrl = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/marqueurs/debut.png";
// URL du marqueur de fin de rue
widget.googleMapMarqueurFinUrl = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/marqueurs/fin.png";
// La présence du parametre 'ville' dans l'URL géolocalise
widget.ville = "<?=isset($_GET['ville']) ? $_GET['ville'] : ''?>";
widget.ville = <?= isset($_GET['commune']) ? "'".$_GET['commune']."'" : 'widget.ville' ?>;
// URL de l'icône du bouton supprimer
widget.supprimerIconeUrl = "<?=$url_base?>/modules/saisie/squelettes/sauvages/img/icones/supprimer.png";
// Go bibiche !
widget.init();
});
//]]>
</script>
 
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/defaut/js/WidgetSaisie.js"></script>
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/sauvages/js/WidgetSaisieSauvages.js"></script>
<script type="text/javascript" src="<?=$url_base?>modules/saisie/squelettes/sauvages/js/defaut.js"></script>
 
<!-- CSS -->
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.10.2/css/smoothness/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://www.tela-botanica.org/commun/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://www.tela-botanica.org/commun/bootstrap/2.3.2/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/css/themes/smoothness/jquery-ui.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://resources.tela-botanica.org/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="http://resources.tela-botanica.org/bootstrap/2.3.2/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
<link href="<?=$url_base?>modules/saisie/squelettes/sauvages/css/<?=isset($_GET['style']) ? $_GET['style'] : 'sauvages'?>.css" rel="stylesheet" type="text/css" media="screen" />
<script>