diff --git a/srcs/plugins/map_prof/scripts/mp_filter_events.js b/srcs/plugins/map_prof/scripts/mp_filter_events.js
index b545d08..d4c9c0a 100644
--- a/srcs/plugins/map_prof/scripts/mp_filter_events.js
+++ b/srcs/plugins/map_prof/scripts/mp_filter_events.js
@@ -129,27 +129,40 @@ function redraw_clusters(indexes) {
- it will remove class "disabled_by_country"
- if it's the last class containing "disabled_by_" it will be re-enabled
see css attribute selectors : https://www.w3schools.com/css/css_attribute_selectors.asp
- exemple:
- let items = document.getElementsByClassName("menu_item");
- for (let item of items) {
- let item_classes = item.classList;
- item_classes.toggle("disabled_by_city");
- if (item_classes[0] === "") {
-
- }
- }
*/
-function toggle_classes(menu_from, menu_name, menu_item ) {
+
+function toggle_one_class(menu_from, menu_name, menu_item) {
+/*
+*/
console.log("\n" + menu_name + " from " + menu_from + ":");
console.log("- " + menu_item);
+
+ let html_id = `filter_${menu_name}_${menu_item}`;
+ let html_class = `disabled_by_${menu_from}`;
+
+ let item = document.getElementById(html_id);
+ let item_classes = item.classList;
+ item_classes.toggle(html_class);
+}
+
+function toggle_all_classes() {
+/*
+*/
+ // loop through all items elements of menu in html, and toggle "disabled" if there is or not a class "disabled_by_*"
+ // get all elements in all menus
+ let items = document.getElementsByClassName("filter_menu_item");
+
+ for (let item of items) {
+ let item_classes = item.classList;
+ let item_classes_value = item_classes.value;
+ if ( item_classes_value.includes("disabled_by_") )
+ item.setAttribute('disabled', '');
+ else
+ item.removeAttribute('disabled');
+ }
}
function disable_menus(menu_name_ori, menu_item_ori) {
- console.log("menu_name_ori:");
- console.log(menu_name_ori);
- console.log("menu_item_ori:");
- console.log(menu_item_ori);
-
let keys = Object.keys(menu_item_ori);
// loop through list of other menu_items available for this menu_item
// loop though menu names (pays, categories, mode)
@@ -160,10 +173,13 @@ function disable_menus(menu_name_ori, menu_item_ori) {
continue;
// loop through items in menu names (ex. for "pays" : france, chili, cuba)
for (let item of menu_item_ori[menu_name]) {
- toggle_classes( menu_name_ori, menu_name, item.replace(/ /g, "_") );
+ toggle_one_class( menu_name_ori, menu_name, item.replace(/ /g, "_") );
}
-
}
+ toggle_all_classes();
+
+/*
+*/
}
function filter_show_only(element, menu_name) {
diff --git a/srcs/plugins/map_prof/srcs/map/mp_create_div.php b/srcs/plugins/map_prof/srcs/map/mp_create_div.php
index 2a4142b..6bdbbce 100644
--- a/srcs/plugins/map_prof/srcs/map/mp_create_div.php
+++ b/srcs/plugins/map_prof/srcs/map/mp_create_div.php
@@ -19,15 +19,22 @@ function mp_filter_drop_down($key, &$filter) {
>
';
foreach ($filter as $key_filter => $value) {
+ $id = "filter_"
+ . $key
+ . "_"
+ . str_replace( " ", "_", $value->_name)
+ ;
$content .= '