Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 723 → Rev 724

/trunk/presentations/scripts/recherche.js
21,14 → 21,40
* Exemple: Recherche un nom commun
*/
 
var champs_ts = ["#au","#and","#anf","#nom","#bib"];
 
$(document).ready(function() {
ajouterAutocompletionNoms();
ajouterActionClicSurTexteRecherche();
gererAffichageValeursParDefaut();
afficherValeurParDefaut();
ajouterAutocompletion();
ajouterActionClicSurTexteRecherche(champs_ts);
gererAffichageValeursParDefaut(champs_ts);
afficherValeurParDefaut(champs_ts);
});
 
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/
function ajouterAutocompletion(){
ajouterAutocompletionNoms();
$('.champ_autocomplete').each(function(index) {
ajouterAutocompletionAvancee($(this));
});
}
 
function ajouterAutocompletionAvancee(champs){
champs.autocomplete({
source: function(requete, add){
// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
requete = "";
var id = champs.attr('id');
var url = getUrlAutocompletionAvancee(id);
$.getJSON(url, requete, function(data) {
var suggestions = [];
suggestions = traiterRetourAvance(data,champs);
add(suggestions);
});
},
html: true
});
 
}
function ajouterAutocompletionNoms() {
$('#nom').autocomplete({
source: function(requete, add){
35,7 → 61,7
// 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) {
$.getJSON(url, requete, function(data) {
var suggestions = [];
if (nomVernaculaireEstDemande()) {
suggestions = traiterRetourNomsVerna(data);
80,6 → 106,28
return suggestions;
}
 
 
 
function traiterRetourAvance(data, champs) {
var suggestions = [];
if (jQuery.type(data) == "array") {
$.each(data[1], function(i, val) {
var ch = {label : '', value : ''};
if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
ch.label = "...";
ch.value = champs.val();
suggestions.push(ch);
return false;
} else {
ch.label = val;
ch.value = val;
suggestions.push(ch);
}
});
}
return suggestions;
}
 
function traiterRetourNomsVerna(data) {
var suggestions = [];
if (jQuery.type(data) == "array") {
102,6 → 150,37
 
 
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/
 
function getUrlAutocompletionAvancee(parametre) {
var valeur = getValeurMasque(parametre);
var ns_str = getValeurNsStructure(parametre);
var url = URL_SERVICE_AUTOCOMPLETION_NOM_SCI+"?recherche=etendue&"+
"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE +'&masque.'+parametre+'='+valeur+
'&retour.format=oss&distinct=1&ns.structure='+ns_str;
return url;
}
 
function getValeurMasque(parametre) {
var valeur = $('#'+parametre).val();
if (parametre == 'au' ){
valeur = valeur +',(' + valeur + ')';
} else if (parametre == 'bib' ){
valeur = valeur +', %; ' + valeur ;
}
return valeur;
}
 
function getValeurNsStructure(parametre) {
var ns = '';
if (parametre == 'au' || parametre == 'bib'){
ns = parametre +'_ss';
} else {
ns = parametre;
}
return ns;
}
 
 
function getUrlAppelCompletion() {
var url = '';
var mots = $('#nom').val();
148,43 → 227,57
}
 
/**------------ Fonctions de gestion de l'affichage des valeurs par defaut ----------------------*/
function ajouterActionClicSurTexteRecherche() {
$('#nom').click(function() {
if (formulaireAfficheValeurParDefaut()) {
$('#nom').val('');
}
if ($('#nom').hasClass('valeur-defaut-recherche')) {
$('#nom').removeClass('valeur-defaut-recherche');
}
function ajouterActionClicSurTexteRecherche(champs) {
$.each(champs, function(index, value) {
$(value).click(function() {
if (formulaireAfficheValeurParDefaut(value)) {
$(value).val('');
}
if ($(value).hasClass('valeur-defaut-recherche')) {
$(value).removeClass('valeur-defaut-recherche');
}
});
});
}
 
function formulaireAfficheValeurParDefaut() {
valeur_form = $('#nom').val();
function formulaireAfficheValeurParDefaut(champ) {
valeur_form = $(champ).val();
valeur_form = $.trim(valeur_form);
return valeur_form == '' || valeur_form == VALEUR_DEFAUT_NOM_SCI || valeur_form == VALEUR_DEFAUT_NOM_VERNA;
return ( valeur_form == '' || valeur_form == VALEUR_DEFAUT_NOM_SCI || valeur_form == VALEUR_DEFAUT_NOM_VERNA
|| valeur_form == VALEUR_DEFAUT_AU || valeur_form == VALEUR_DEFAUT_BIB || valeur_form == VALEUR_DEFAUT_DATE );
}
 
function gererAffichageValeursParDefaut() {
$('input[name="type_nom"]').click(function() {
afficherValeurParDefaut();
});
$('#nom').focus(function() {
$('#nom').removeClass('valeur-defaut-recherche');
if (formulaireAfficheValeurParDefaut()) {
$('#nom').val('');
} else {
$('#nom').select();
function gererAffichageValeursParDefaut(champs) {
$('input[name="type_nom"]').click(function() {
afficherValeurParDefautNom();
});
$.each(champs, function(index, value) {
$(value).focus(function() {
$(value).removeClass('valeur-defaut-recherche');
if (formulaireAfficheValeurParDefaut(value)) {
$(value).val('');
} else {
$(value).select();
}
});
});
}
 
function afficherValeurParDefaut(champs){
$.each(champs, function(index, value) {
if (value == '#nom') {
afficherValeurParDefautNom();
}else{
afficherValeurParDefautAvance(value);
}
});
}
 
function afficherValeurParDefaut() {
function afficherValeurParDefautNom() {
if($('#nom') != undefined && $('#nom').val() != undefined) {
valeur_form = $('#nom').val();
valeur_form = $.trim(valeur_form);
if (formulaireAfficheValeurParDefaut()) {
if (formulaireAfficheValeurParDefaut('#nom')) {
if (nomSciEstDemande()) {
$('#nom').val(VALEUR_DEFAUT_NOM_SCI);
} else {
201,6 → 294,32
}
}
 
 
function afficherValeurParDefautAvance(champs) {
if($(champs) != undefined && $(champs).val() != undefined) {
valeur_form = $(champs).val();
valeur_form = $.trim(valeur_form);
if (formulaireAfficheValeurParDefaut(champs)) {
if (champs == "#au") {
$(champs).val(VALEUR_DEFAUT_AU);
}else if (champs == "#bib" ) {
$(champs).val(VALEUR_DEFAUT_BIB);
} else {
$(champs).val(VALEUR_DEFAUT_DATE);
}
$(champs).addClass('valeur-defaut-recherche');
}
 
}
 
}
 
 
 
 
 
/*
* jQuery UI Autocomplete HTML Extension
*