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); |
}; |