filters intersection works even to re enable a categori selected
This commit is contained in:
@@ -127,24 +127,21 @@ function toggle_menu_items(menu_name, x_abled) {
|
||||
let class_name = `filter_menu_${name}`;
|
||||
let items = document.getElementsByClassName(class_name);
|
||||
|
||||
// for (let item of items) {
|
||||
// item.classList.remove('enable');
|
||||
// if (x_abled === "disable") {
|
||||
// item.setAttribute('disabled', '');
|
||||
// }
|
||||
// else {
|
||||
// item.removeAttribute('disabled');
|
||||
// }
|
||||
// }
|
||||
|
||||
if (x_abled === "disable") {
|
||||
for (let item of items) {
|
||||
item.classList.remove('enable');
|
||||
// if item is a menu title (like 'categorie' or 'pays')
|
||||
// don't remove 'enable', instead add it, because it's not in the list of 'to_enable'
|
||||
if (item.selected) {
|
||||
item.classList.add('enable');
|
||||
}
|
||||
else {
|
||||
item.classList.remove('enable');
|
||||
}
|
||||
if (item.classList.contains('to_enable')) {
|
||||
item.classList.replace('to_enable', 'enable');
|
||||
item.removeAttribute('disabled');
|
||||
}
|
||||
else
|
||||
else if (! item.selected)
|
||||
item.setAttribute('disabled', '');
|
||||
}
|
||||
}
|
||||
@@ -158,22 +155,31 @@ function toggle_menu_items(menu_name, x_abled) {
|
||||
|
||||
function disable_menus(menu_name_ori, menu_item_ori, reverse, menu_index) {
|
||||
|
||||
// in case it's a menu title, like "Pays" or "Categories",
|
||||
// or it's Mode menu,
|
||||
// and it was the first selection, meaning it does'nt contains 'enable'
|
||||
// and both (irl and online) are abled or disabled,
|
||||
// just act like Reset button
|
||||
// it's too bas it will also go through this menu items even though it's unnecessary
|
||||
if (menu_item_ori == null) { // it's a menu name
|
||||
// "item" as a menu name will select all items in all menus
|
||||
toggle_menu_items("item", "enable");
|
||||
return;
|
||||
}
|
||||
|
||||
let menu_item_name = menu_item_ori._name;
|
||||
let menu_item_name = "";
|
||||
if (menu_item_ori == null) // it's a menu name
|
||||
menu_item_name = menu_name_ori;
|
||||
else
|
||||
menu_item_name = menu_item_ori._name;
|
||||
let item_ori_html = html_item(menu_name_ori, menu_item_name);
|
||||
let is_enabled = item_ori_html.classList.contains('enable');
|
||||
|
||||
// in case it's a menu title, like "Pays" or "Categories",
|
||||
// and it does'nt contains 'enable'
|
||||
// just act like Reset button
|
||||
// it's too bad it will also go through this menu items even though it's unnecessary
|
||||
if (menu_index == 'menu_name') { // it's a menu name
|
||||
if (! is_enabled) {
|
||||
// "item" as a menu name will select all items in all menus
|
||||
toggle_menu_items("item", "enable");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// if it's Mode menu,
|
||||
// and it was the first selection, meaning it does'nt contains 'enable'
|
||||
// and both (irl and online) are abled or disabled,
|
||||
// just act like Reset button
|
||||
// it's too bas it will also go through this menu items even though it's unnecessary
|
||||
if (menu_name_ori === "mode") {
|
||||
let mode_menus = document.getElementsByClassName("filter_menu_mode");
|
||||
let state = 0;
|
||||
|
||||
@@ -12,6 +12,11 @@ function mp_filter_drop_down($key, &$filter) {
|
||||
onchange="filter_event(this, this.options[this.selectedIndex], \''.$key.'\')"
|
||||
*/
|
||||
$menu_name_class = 'filter_menu_'.str_replace(" ", "_", $key).'';
|
||||
$id = "filter_"
|
||||
. $key
|
||||
. "_"
|
||||
. $key
|
||||
;
|
||||
$content = '
|
||||
<select
|
||||
form="ljdp_form"
|
||||
@@ -20,6 +25,7 @@ function mp_filter_drop_down($key, &$filter) {
|
||||
>
|
||||
<option
|
||||
selected
|
||||
id="'.$id.'"
|
||||
class="filter_menu_item '.$menu_name_class.'"
|
||||
data-menu_index="menu_name"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user