PageSourceSearch

https://piscineboulognebillancourt.com/js/filtre_type_activite.js

js piscineboulognebillancourt.com collected 2026-10-08 02:27:27 UTC 2,378 bytes, 61 lines download raw bytes

1function select_type_activite_v2() {
2   var typeActiviteSelect = document.getElementById('type_activite');
3   var selectedValue = typeActiviteSelect ? typeActiviteSelect.value : "tous";
4
5   // Réinitialisation de l'affichage personnalisé
6   document.querySelector("#activites_precise summary").textContent = "Toutes";
7
8   const checkboxes = document.querySelectorAll("input[name='activite[]']");
9   checkboxes.forEach(checkbox => {
10      checkbox.checked = false;
11   });
12
13   // Mise à jour de l'URL sans paramètre "activite[]"
14   var url = new URL(window.location.href);
15   url.searchParams.delete('activite');
16
17   if (selectedValue === "tous") {
18      url.searchParams.delete('type_activite');
19   } else {
20      url.searchParams.set('type_activite', selectedValue);
21   }
22   window.history.replaceState({}, '', url);
23
24   var enfantSelect = document.getElementById('type_personne');
25   var selectedEnfantValue = enfantSelect ? enfantSelect.value : "tous";
26
27   // Filtrage des activités
28   var activities = document.querySelectorAll(".card_activity");
29   activities.forEach(function (activity) {
30      var isAdulte = activity.dataset.adulte === "1";
31      var isEnfant = activity.dataset.enfant === "1";
32      var enfantMatch = (selectedEnfantValue === "tous") || (selectedEnfantValue === "adulte" && isAdulte) || (selectedEnfantValue === "enfant" && isEnfant);
33
34      if (selectedValue === "tous" && enfantMatch) {
35         activity.style.display = "flex";
36      } else if (selectedValue === "premium" && activity.dataset.premium === "1" && enfantMatch) {
37         activity.style.display = "flex";
38      } else {
39         var typeMatch = activity.dataset["filtre" + selectedValue] === "1";
40         activity.style.display = (typeMatch && enfantMatch) ? "flex" : "none";
41      }
42   });
43
44   checkCreneaux();
45   update_link_pdf();
46   update_link_periodes();
47}
48
49// Déclenchement au chargement DOM
50window.addEventListener('DOMContentLoaded', function () {
51   const urlParams = new URLSearchParams(window.location.search);
52   if (urlParams.has("type_activite")) {
53       select_type_activite_v2();
54   }
55
56   // Liaison JS dynamique (meilleur que "onchange" HTML)
57   const select = document.getElementById('type_activite');
58   if (select) {
59       select.addEventListener('change', select_type_activite_v2);
60   }
61});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.