Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 456 → Rev 457

/trunk/modules/recherche_simple/squelettes/form_nom.tpl.html
1,11 → 1,11
<!-- DEBUT FORM_NOM -->
<script type="text/javascript">
<!--
var urlServiceAutocompletionNomsSci = "<?= $url_base_completion_noms_sci; ?>";
var urlServiceAutocompletionNomsVerna = "<?= $url_base_completion_noms_verna; ?>";
var urlBaseFicheTaxon = "<?= $url_base_fiche_taxon; ?>";
var valeurDefautNomSci = "<?= $i18n['valeur-form-nom-sci']; ?>";
var valeurDefautNomVerna = "<?= $i18n['valeur-form-nom-verna']; ?>";
var AUTOCOMPLETION_ELEMENTS_NBRE = 50;
var URL_SERVICE_AUTOCOMPLETION_NOM_SCI = "<?=$url_base_completion_noms_sci?>";
var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA = "<?=$url_base_completion_noms_verna?>";
var VALEUR_DEFAUT_NOM_SCI = "<?= $i18n['valeur-form-nom-sci']; ?>";
var VALEUR_DEFAUT_NOM_VERNA = "<?= $i18n['valeur-form-nom-verna']; ?>";
// -->
</script>
<form id="ef-form-nomenclature" name="ef-form-nomenclature" action="<?=$url_form;?>" method="get">
50,6 → 50,4
<?php endif; ?>
</p>
<?php endif; ?>
 
 
<!-- FIN FORM_NOM -->
/trunk/modules/recherche_simple/RechercheSimple.php
14,8 → 14,8
$donnees['form_nom'] = $this->executerFormulaireNom();
$this->setSortie(self::RENDU_CORPS, $donnees['form_nom']);
}
 
 
public function executerFormulaireNom($donnees = array()) {
if (Config::get(Registre::get('parametres.referentiel').'.referentielVerna')) {
if (!isset($donnees['type_nom'])) {
26,11 → 26,11
$donnees['url_base_completion_noms_verna'] = str_replace('{projet}', $donnees['referentielVerna'], Config::get('nomsVernaTpl'));
}
$donnees['referentiel'] = Registre::get('parametres.referentiel');
 
// nécessaire pour une autocomplétion indépendante, pour ne pas avoir à modifier le javascript
$donnees['url_base_completion_noms_sci'] = str_replace('{projet}', $donnees['referentiel'], Config::get('nomsTpl'));
$donnees['url_base_fiche_taxon'] = str_replace('&amp;','&', $this->urls->obtenirUrlFiche('{num_taxon}'));
$donnees['url_base_fiche_taxon'] = str_replace('&amp;', '&', $this->urls->obtenirUrlFiche('{num_taxon}'));
 
$donnees['url_form'] = $this->urls->obtenirUrlBase();
$donnees['i18n'] = I18n::get('Recherche-form-nom');
return $this->getVue('form_nom', $donnees);
/trunk/index.php
23,21 → 23,25
<!-- Favicones -->
<link rel="icon" type="image/png" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.png" />
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/sites/commun/generique/images/favicone/tela_botanica.ico" />
 
<!-- CSS -->
<link href="http://www.tela-botanica.org/sites/commun/generique/styles/commun.css" rel="stylesheet" type="text/css" />
<link href="http://www.tela-botanica.org/sites/botanique/generique/styles/botanique.css" rel="stylesheet" type="text/css" />
<link href="presentations/styles/jquery-ui-1.8.16/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" />
<link href="presentations/styles/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
<link href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/css/ui-lightness/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" />
<link href="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
 
<link href="presentations/styles/eflore.css" rel="stylesheet" type="text/css" />
 
<!-- JavaScript -->
<script type="text/Javascript" src="presentations/scripts/jquery-1.7.js"></script>
<script type="text/Javascript" src="presentations/scripts/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/Javascript" src="presentations/scripts/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script>
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/cookie/1.0/jquery.cookie.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.17/js/jquery-ui-1.8.17.custom.min.js"></script>
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.pack.js"></script>
 
<script type="text/Javascript" src="http://www.tela-botanica.org/sites/commun/generique/scripts/commun.js"></script>
 
<script type="text/Javascript" src="presentations/scripts/recherche.js"></script>
<script type="text/Javascript" src="presentations/scripts/fiche-synthese.js"></script>
<script type="text/Javascript" src="presentations/scripts/jquery.cookie.js"></script>
</head>
<body id="botanique">
 
/trunk/presentations/scripts/jquery.easing-1.3.pack.js
File deleted
/trunk/presentations/scripts/jquery-1.7.js
File deleted
/trunk/presentations/scripts/jquery.fancybox-1.3.4.pack.js
File deleted
\ No newline at end of file
/trunk/presentations/scripts/jquery.cookie.js
File deleted
\ No newline at end of file
/trunk/presentations/scripts/jquery.mousewheel-3.0.4.pack.js
File deleted
\ No newline at end of file
/trunk/presentations/scripts/jquery-ui-1.8.16.custom.min.js
File deleted
\ No newline at end of file
/trunk/presentations/scripts/recherche.js
1,129 → 1,161
/**-------------------------- Objets globaux -----------------------------------*/
 
/*
* Liste des noms scientifiques reçus pour la mise en gras des noms valide
*/
var listeNomsScientifiques = new Object();
/*
* Les variables suivantes sont ajoutée automatiquement dans le squelette du moteur de
* recherche par php, elles sont commentées ici pour qu'elles n'aient pas l'air
* de sortir de la cuisse de Jupiter
*
* var urlServiceAutocompletionNomsSci : url de base du service de complétion de noms scientifiques
* var AUTOCOMPLETION_ELEMENTS_NBRE : indique le nombre d'éléments à afficher dans la liste d'autocomplétion.
*
* var URL_SERVICE_AUTOCOMPLETION_NOM_SCI : url de base du service de complétion de noms scientifiques
* pour le projet en cours de consultation.
* Exemple : http://localhost/service:eflore:0.1/bdtfx/noms?recherche=etendue&retour.format=min&masque=Ace%mo
*
* var urlServiceAutocompletionNomsVerna : url de base du service de complétion de noms vernaculaires
* var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA : url de base du service de complétion de noms vernaculaires
* pour le projet en cours de consultation.
* Exemple : http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires?recherche=etendue&retour.format=oss&masque=aca&masque.lg=fra
*
* var valeurDefautNomSci : Contient la valeur par défaut affichée dans le formulaire en mode sci
* var VALEUR_DEFAUT_NOM_SCI : Contient la valeur par défaut affichée dans le formulaire en mode sci
* Exemple: Rechercher un nom scientifique
* var valeurDefautNomVerna : Contient la valeur par défaut affichée dans le formulaire en mode verna
*
* var VALEUR_DEFAUT_NOM_VERNA : Contient la valeur par défaut affichée dans le formulaire en mode verna
* Exemple: Recherche un nom commun
*/
 
$(document).ready(function() {
ajouterAutocompletionNoms();
ajouterActionClicSurTexteRecherche();
gererAffichageValeursParDefaut();
afficherValeurParDefaut();
});
 
/**------------ Fonctions de détection de l'état du formulaire ------------------*/
function nomSciEstDemande() {
var boutonRadioNomSci = $('#type_nom_scientifique');
return (boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
}
 
function nomVernaculaireEstDemande() {
var boutonRadioNomSci = $('#type_nom_vernaculaire');
return (boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
}
 
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/
function getUrlAutocompletion(baseUrl, requete, format) {
return baseUrl+"?recherche=etendue&retour.format="+format+"&navigation.limite=50&masque="+requete;
}
 
function getUrlAutocompletionNomsVerna(requete) {
return getUrlAutocompletion(urlServiceAutocompletionNomsVerna, requete, 'oss')+"&masque.lg=fra";
}
 
function getUrlAutocompletionNomsSci(requete) {
return getUrlAutocompletion(urlServiceAutocompletionNomsSci, requete, 'min');
}
 
function getUrlAppelCompletion(requete) {
var url = getUrlAutocompletionNomsSci(requete);
if(nomVernaculaireEstDemande()) {
requete = requete.replace(' ',' ');
requete = requete.replace(' ','_');
var url = getUrlAutocompletionNomsVerna(requete);
}
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/
function ajouterAutocompletionNoms() {
$('#nom').autocomplete({
source: function(requete, add){
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
requete = "";
var url = getUrlAppelCompletion();
$.getJSON(url, requete, function(data) {
var suggestions = [];
if (nomVernaculaireEstDemande()) {
suggestions = traiterRetourNomsVerna(data);
} else if (nomSciEstDemande()) {
suggestions = traiterRetourNomsSci(data);
}
add(suggestions);
});
},
html: true
});
return url;
$("nom").bind("autocompleteselect", function(event, ui) {
console.log('LA');
if (ui.item.retenu == true) {
$("#nom").addClass('ns-retenu');
console.log('ici');
} else {
$("#nom").removeClass('ns-retenu');
}
});
}
 
 
 
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/
function traiterRetourNomsSci(data) {
var suggestions = [];
if(data.resultat != undefined) {
if (data.resultat != undefined) {
$.each(data.resultat, function(i, val) {
val.num_tax = i;
listeNomsScientifiques[val.nom_sci] = val;
suggestions.push(val.nom_sci);
val.nn = i;
var nom = {label : '', value : '', retenu : false};
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
nom.label = "...";
nom.value = $('#nom').val();
suggestions.push(nom);
return false;
} else {
nom.label = val.nom_sci_complet;
nom.value = val.nom_sci;
nom.nn = val.nn;
nom.retenu = (val.retenu == 'false') ? false : true;
suggestions.push(nom);
}
});
}
if(suggestions.length >= 50) {
suggestions.push("...");
}
return suggestions;
}
 
function traiterRetourNomsVerna(data) {
var suggestions = [];
if(jQuery.type(data) == "array") {
if (jQuery.type(data) == "array") {
$.each(data[1], function(i, val){
suggestions.push(val);
var nom = {label : '', value : ''};
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
nom.label = "...";
nom.value = $('#nom').val();
suggestions.push(nom);
return false;
} else {
nom.label = val;
nom.value = val;
suggestions.push(val);
}
});
}
if(suggestions.length >= 50) {
suggestions.push("...");
}
return suggestions;
}
 
function ajouterAutocompletionNoms() {
$('#nom').autocomplete({
source: function(req, add){
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
req = "";
$.getJSON(getUrlAppelCompletion($('#nom').val()), req, function(data) {
 
if(nomVernaculaireEstDemande()) {
suggestions = traiterRetourNomsVerna(data);
} else {
suggestions = traiterRetourNomsSci(data);
}
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/
function getUrlAppelCompletion() {
var url = '';
var mots = $('#nom').val();
if (nomSciEstDemande()) {
url = getUrlAutocompletionNomsSci(mots);
} else if (nomVernaculaireEstDemande()) {
mots = mots.replace(' ',' ');
mots = mots.replace(' ','_');
url = getUrlAutocompletionNomsVerna(mots);
}
return url;
}
 
add(suggestions);
});
},
html: true
});
function getUrlAutocompletionNomsSci(requete) {
var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_SCI, requete, 'min')+
"&ns.structure=au,an";
return url;
}
 
function getUrlAutocompletionNomsVerna(requete) {
var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_VERNA, requete, 'oss')+
"&masque.lg=fra";
return url;
}
 
function getUrlAutocompletion(baseUrl, requete, format) {
var url = baseUrl+"?"+
"masque="+requete+"&"+
"recherche=etendue&"+
"retour.format="+format+"&"+
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE;
return url;
}
 
/**------------ Fonctions de détection de l'état du formulaire ------------------*/
function nomSciEstDemande() {
var boutonRadioNomSci = $('#type_nom_scientifique');
return (boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
}
 
function nomVernaculaireEstDemande() {
var boutonRadioNomSci = $('#type_nom_vernaculaire');
return (boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
}
 
/**------------ Fonctions de gestion de l'affichage des valeurs par defaut ----------------------*/
function ajouterActionClicSurTexteRecherche() {
$('#nom').click(function() {
if(formulaireAfficheValeurParDefaut()) {
if (formulaireAfficheValeurParDefaut()) {
$('#nom').val('');
}
if($('#nom').hasClass('valeur-defaut-recherche')) {
if ($('#nom').hasClass('valeur-defaut-recherche')) {
$('#nom').removeClass('valeur-defaut-recherche');
}
});
132,7 → 164,7
function formulaireAfficheValeurParDefaut() {
valeur_form = $('#nom').val();
valeur_form = $.trim(valeur_form);
return valeur_form == '' || valeur_form == valeurDefautNomSci || valeur_form == valeurDefautNomVerna;
return valeur_form == '' || valeur_form == VALEUR_DEFAUT_NOM_SCI || valeur_form == VALEUR_DEFAUT_NOM_VERNA;
}
 
function gererAffichageValeursParDefaut() {
142,7 → 174,7
$('#nom').focus(function() {
$('#nom').removeClass('valeur-defaut-recherche');
if(formulaireAfficheValeurParDefaut()) {
if (formulaireAfficheValeurParDefaut()) {
$('#nom').val('');
} else {
$('#nom').select();
154,12 → 186,12
if($('#nom') != undefined && $('#nom').val() != undefined) {
valeur_form = $('#nom').val();
valeur_form = $.trim(valeur_form);
if(formulaireAfficheValeurParDefaut()) {
if(nomSciEstDemande()) {
$('#nom').val(valeurDefautNomSci);
if (formulaireAfficheValeurParDefaut()) {
if (nomSciEstDemande()) {
$('#nom').val(VALEUR_DEFAUT_NOM_SCI);
$('#eflore_nomenclature_fiche').show();
} else {
$('#nom').val(valeurDefautNomVerna);
$('#nom').val(VALEUR_DEFAUT_NOM_VERNA);
$('#eflore_nomenclature_fiche').hide();
}
$('#nom').addClass('valeur-defaut-recherche');
167,13 → 199,6
}
}
 
$(document).ready(function() {
ajouterAutocompletionNoms();
ajouterActionClicSurTexteRecherche();
gererAffichageValeursParDefaut();
afficherValeurParDefaut();
});
 
/*
* jQuery UI Autocomplete HTML Extension
*
185,41 → 210,35
* Adaptation par Aurélien Peronnet pour la mise en gras des noms de taxons valides
*/
(function( $ ) {
 
var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;
 
function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;
function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
});
}
$.extend( proto, {
_initSource: function() {
if (this.options.html && $.isArray(this.options.source) ) {
this.source = function( request, response ) {
response( filter( this.options.source, request.term ) );
};
} else {
initSource.call( this );
}
},
_renderItem: function( ul, item) {
if (item.retenu == true) {
item.label = "<strong>"+item.label+"</strong>";
}
return $("<li></li>")
.data("item.autocomplete", item)
.append( $("<a></a>")[ this.options.html ? "html" : "text" ](item.label))
.appendTo(ul);
}
});
}
 
$.extend( proto, {
_initSource: function() {
if ( this.options.html && $.isArray(this.options.source) ) {
this.source = function( request, response ) {
response( filter( this.options.source, request.term ) );
};
} else {
initSource.call( this );
}
},
_renderItem: function( ul, item) {
if(listeNomsScientifiques[item.label] != undefined && listeNomsScientifiques[item.label].retenu == "true") {
item.label = "<b>"+item.label+"</b>";
}
if(item.label == '...') {
item.label = "<b>"+item.label+"</b>";
}
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
.appendTo( ul );
}
});
 
})( jQuery );
})( jQuery );
/trunk/presentations/styles/eflore.css
738,6 → 738,9
 
/*----------------------------------------------------------------------------------------------------------*/
/* Nomenclature */
.ns-retenu {
font-weight:bold;
}
.supra-gen, .gen, .sp, .infra-sp, .infra-gen {
font-style: italic;
text-transform: none;