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 class_name = `filter_menu_${name}`;
|
||||||
let items = document.getElementsByClassName(class_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") {
|
if (x_abled === "disable") {
|
||||||
for (let item of items) {
|
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')) {
|
if (item.classList.contains('to_enable')) {
|
||||||
item.classList.replace('to_enable', 'enable');
|
item.classList.replace('to_enable', 'enable');
|
||||||
item.removeAttribute('disabled');
|
item.removeAttribute('disabled');
|
||||||
}
|
}
|
||||||
else
|
else if (! item.selected)
|
||||||
item.setAttribute('disabled', '');
|
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) {
|
function disable_menus(menu_name_ori, menu_item_ori, reverse, menu_index) {
|
||||||
|
|
||||||
// in case it's a menu title, like "Pays" or "Categories",
|
let menu_item_name = "";
|
||||||
// or it's Mode menu,
|
if (menu_item_ori == null) // it's a menu name
|
||||||
// and it was the first selection, meaning it does'nt contains 'enable'
|
menu_item_name = menu_name_ori;
|
||||||
// and both (irl and online) are abled or disabled,
|
else
|
||||||
// just act like Reset button
|
menu_item_name = menu_item_ori._name;
|
||||||
// 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 item_ori_html = html_item(menu_name_ori, menu_item_name);
|
let item_ori_html = html_item(menu_name_ori, menu_item_name);
|
||||||
let is_enabled = item_ori_html.classList.contains('enable');
|
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") {
|
if (menu_name_ori === "mode") {
|
||||||
let mode_menus = document.getElementsByClassName("filter_menu_mode");
|
let mode_menus = document.getElementsByClassName("filter_menu_mode");
|
||||||
let state = 0;
|
let state = 0;
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ function mp_filter_drop_down($key, &$filter) {
|
|||||||
onchange="filter_event(this, this.options[this.selectedIndex], \''.$key.'\')"
|
onchange="filter_event(this, this.options[this.selectedIndex], \''.$key.'\')"
|
||||||
*/
|
*/
|
||||||
$menu_name_class = 'filter_menu_'.str_replace(" ", "_", $key).'';
|
$menu_name_class = 'filter_menu_'.str_replace(" ", "_", $key).'';
|
||||||
|
$id = "filter_"
|
||||||
|
. $key
|
||||||
|
. "_"
|
||||||
|
. $key
|
||||||
|
;
|
||||||
$content = '
|
$content = '
|
||||||
<select
|
<select
|
||||||
form="ljdp_form"
|
form="ljdp_form"
|
||||||
@@ -20,6 +25,7 @@ function mp_filter_drop_down($key, &$filter) {
|
|||||||
>
|
>
|
||||||
<option
|
<option
|
||||||
selected
|
selected
|
||||||
|
id="'.$id.'"
|
||||||
class="filter_menu_item '.$menu_name_class.'"
|
class="filter_menu_item '.$menu_name_class.'"
|
||||||
data-menu_index="menu_name"
|
data-menu_index="menu_name"
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user