Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3959 → Rev 3960

/trunk/widget/modules/photo/squelettes/js/WidgetPhoto.js
44,4 → 44,115
$( '.autres-filtres, .bouton-plus-filtres .moins', $thisGalerie ).addClass( 'hidden' );
$( '.bouton-plus-filtres .plus', $thisGalerie ).removeClass( 'hidden' );
});
 
lthis.rechercher();
};
 
WidgetPhoto.prototype.rechercher = function(){
const lthis = this;
$("#bouton-rechercher-1").click(function(event){
event.preventDefault();
var rechercheValue = $('#champ-recherche-1').val();
lthis.lancerLaRecherche(rechercheValue, "recherche");
})
 
$("#champ-recherche-1").keyup(function(event) {
if (event.key === "Enter") {
event.preventDefault();
var rechercheValue = $('#champ-recherche-1').val();
lthis.lancerLaRecherche(rechercheValue, "recherche");
}
});
 
$(".bloc-filtre input").keyup(function (event){
if (event.key === "Enter") {
event.preventDefault();
var rechercheValue = $(this).val();
var filterName = $(this).attr('name');
lthis.lancerLaRecherche(rechercheValue, filterName);
}
})
 
$(".bloc-filtre #referentiel").on("change", function (event){
event.preventDefault();
var rechercheValue = $(this).val();
var filterName = $(this).attr('name');
lthis.lancerLaRecherche(rechercheValue, filterName);
})
 
$(".bloc-filtre #date_deb").on("change", function (event){
event.preventDefault();
var rechercheValue = $(this).val();
lthis.lancerLaRecherche(rechercheValue, "date_deb");
})
 
$(".bloc-filtre #date_fin").on("change", function (event){
event.preventDefault();
var rechercheValue = $(this).val();
lthis.lancerLaRecherche(rechercheValue, "date_fin");
})
 
$(".bloc-filtre input[type='checkbox']").change(function() {
var filterName = $(this).attr('name');
var isChecked = $(this).is(':checked');
if (isChecked) {
lthis.updateURLWithCheckboxValue(isChecked, filterName);
} else {
lthis.removeURLParameter(filterName);
}
});
}
 
WidgetPhoto.prototype.lancerLaRecherche = function(rechercheValue, filterName){
var url = window.location.href;
var parameter = filterName + "=" + encodeURIComponent( rechercheValue );
 
// Utiliser une expression régulière pour rechercher le paramètre "recherche=" dans l'URL
var regex = new RegExp('(\\?|&)+' + filterName + '=([^&]*)');
 
// Vérifier si le paramètre "recherche=" existe dans l'URL initial
if (regex.test(url)) {
// Remplacer le paramètre existant par le nouveau paramètre
url = url.replace(regex, "$1" + parameter);
} else {
// Ajouter le nouveau paramètre à la fin de l'URL
url.indexOf("?") !== -1 ? url += "&" + parameter : url += "?" + parameter;
}
 
// Recharger la page avec le nouvel URL
window.location.replace(url);
}
 
WidgetPhoto.prototype.updateURLWithCheckboxValue = function(isChecked, filterName) {
var url = window.location.href;
var parameter = filterName + "=" + (isChecked ? "true" : "false");
var regex = new RegExp('(\\?|&)+' + filterName + '=(true|false)');
 
if (regex.test(url)) {
url = url.replace(regex, "$1" + parameter);
} else {
url.indexOf("?") !== -1 ? url += "&" + parameter : url += "?" + parameter;
}
 
// Rediriger vers la nouvelle URL
window.location.replace(url);
}
 
WidgetPhoto.prototype.removeURLParameter = function(filterName) {
var url = window.location.href;
var regex = new RegExp('(\\?|&)' + filterName + '=(true|false)(\\?|&|$)');
 
url = url.replace(regex, function(match, p1, p2, p3) {
switch (p1){
case "?":
return p3 === '&' ? '?' : '';
case "&":
return p3 === '&' ? '&' : '';
default :
return match;
}
});
 
// Rediriger vers la nouvelle URL
window.location.replace(url);
};