fix bugs.

This commit is contained in:
Sj-Si 2024-04-15 10:13:39 -04:00
parent 451190c7fc
commit 9357ee9787
2 changed files with 22 additions and 7 deletions

View File

@ -637,6 +637,8 @@ function extraNetworksBtnDirsViewItemOnClick(event, tabname_full) {
).forEach(elem => {
delete elem.dataset.selected;
});
// deselect tree view rows
tab.tree_list.onRowSelected(); // empty params deselects all rows.
};
const _select_button = (elem) => {
@ -648,15 +650,15 @@ function extraNetworksBtnDirsViewItemOnClick(event, tabname_full) {
// Select the corresponding tree view button.
if ("selected" in elem.dataset) {
const tree_row = tab.container_elem.querySelector(`.tree-list-item[data-path="${elem.textContent.trim()}"]`);
if (isElement(tree_row)) {
tab.tree_list.onRowSelected(tree_row.dataset.divId, tree_row);
}
tab.tree_list.onRowSelected(tree_row.dataset.divId, tree_row);
}
};
const _deselect_button = (elem) => {
delete elem.dataset.selected;
txt_search_elem.value = "";
// deselect tree view rows
tab.tree_list.onRowSelected(); // empty params deselects all rows.
};
if ("selected" in event.target.dataset) {

View File

@ -244,9 +244,6 @@ class ExtraNetworksClusterizeTreeList extends ExtraNetworksClusterize {
#setVisibility(div_id, visible) {
/** Recursively sets the visibility of a div_id and its children. */
if (!visible && this.selected_div_id === div_id) {
this.selected_div_id = null;
}
const this_obj = this.data_obj[div_id];
this_obj.visible = visible;
for (const child_id of this_obj.children) {
@ -255,7 +252,19 @@ class ExtraNetworksClusterizeTreeList extends ExtraNetworksClusterize {
}
onRowSelected(div_id, elem, override) {
/** Selects a row and deselects all others. */
/** Selects a row and deselects all others.
*
* If both `div_id` and `elem` are null/undefined, then we deselect all rows.
* `override` allows us to manually set the new state instead of toggling.
*/
if (isNullOrUndefined(div_id) && isNullOrUndefined(elem)) {
if (!isNullOrUndefined(this.selected_div_id) && keyExistsLogError(this.data_obj, this.selected_div_id)) {
this.data_obj[this.selected_div_id].selected = false;
this.selected_div_id = null;
}
return;
}
if (!isElementLogError(elem)) {
return;
}
@ -373,9 +382,13 @@ class ExtraNetworksClusterizeTreeList extends ExtraNetworksClusterize {
if (this.data_obj[div_id].expanded) {
parsed_html.dataset.expanded = "";
}
// Only allow one item to have `data-selected`.
delete parsed_html.dataset.selected;
if (div_id === this.selected_div_id) {
parsed_html.dataset.selected = "";
}
res.push(parsed_html.outerHTML);
this.lru.set(String(div_id), parsed_html);
}