Skip to content

Commit 2f94c71

Browse files
shiv-tyagipeterbarker
authored andcommitted
Fix bug in expand collapse all operation
1 parent 14549be commit 2f94c71

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

static/js/add_build.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ const Features = (() => {
170170
return {reset, handleDependenciesForFeature, disableDependents, updateDefaults, applyDefaults};
171171
})();
172172

173-
var all_categories_expanded = false;
173+
var init_categories_expanded = false;
174174

175175
var pending_update_calls = 0; // to keep track of unresolved Promises
176176

@@ -333,21 +333,29 @@ function fillBoards(boards, default_board) {
333333
});
334334
}
335335

336-
function toggle_all_categories() {
337-
// toggle global state
338-
all_categories_expanded = !all_categories_expanded;
339336

340-
all_collapse_elements = document.getElementsByClassName('collapse');
337+
var toggle_all_categories = (() => {
338+
let all_categories_expanded = init_categories_expanded;
341339

342-
for (let i=0; i<all_collapse_elements.length;) {
343-
collapse_instance = bootstrap.Collapse.getOrCreateInstance(all_collapse_elements[i]);
344-
if (all_categories_expanded) {
345-
collapse_instance.show();
346-
} else {
347-
collapse_instance.hide();
340+
function toggle_method() {
341+
// toggle global state
342+
all_categories_expanded = !all_categories_expanded;
343+
344+
let all_collapse_elements = document.getElementsByClassName('feature-group');
345+
346+
for (let i=0; i<all_collapse_elements.length; i+=1) {
347+
let collapse_element = all_collapse_elements[i];
348+
collapse_instance = bootstrap.Collapse.getOrCreateInstance(collapse_element);
349+
if (all_categories_expanded && !collapse_element.classList.contains('show')) {
350+
collapse_instance.show();
351+
} else if (!all_categories_expanded && collapse_element.classList.contains('show')) {
352+
collapse_instance.hide();
353+
}
348354
}
349355
}
350-
}
356+
357+
return toggle_method;
358+
})();
351359

352360
function createCategoryCard(category_name, options, expanded) {
353361
options_html = "";
@@ -373,7 +381,7 @@ function createCategoryCard(category_name, options, expanded) {
373381
'</div>' +
374382
'</div>';
375383
let collapse_element = document.createElement('div');
376-
collapse_element.setAttribute('class', 'collapse '+(expanded == true ? 'show' : ''));
384+
collapse_element.setAttribute('class', 'feature-group collapse '+(expanded == true ? 'show' : ''));
377385
collapse_element.id = id_prefix + '_collapse';
378386
collapse_element.innerHTML = '<div class="container-fluid px-2 py-2">'+options_html+'</div>';
379387
card_element.appendChild(collapse_element);
@@ -408,7 +416,7 @@ function fillBuildOptions(buildOptions) {
408416
}
409417
let col_element = document.createElement('div');
410418
col_element.setAttribute('class', 'col-md-3 col-sm-6 mb-2');
411-
col_element.appendChild(createCategoryCard(category['name'], category['options'], all_categories_expanded));
419+
col_element.appendChild(createCategoryCard(category['name'], category['options'], init_categories_expanded));
412420
document.getElementById('category_'+parseInt(cat_idx/4)+'_row').appendChild(col_element);
413421
});
414422
}

0 commit comments

Comments
 (0)