@@ -170,7 +170,7 @@ const Features = (() => {
170
170
return { reset, handleDependenciesForFeature, disableDependents, updateDefaults, applyDefaults} ;
171
171
} ) ( ) ;
172
172
173
- var all_categories_expanded = false ;
173
+ var init_categories_expanded = false ;
174
174
175
175
var pending_update_calls = 0 ; // to keep track of unresolved Promises
176
176
@@ -333,21 +333,29 @@ function fillBoards(boards, default_board) {
333
333
} ) ;
334
334
}
335
335
336
- function toggle_all_categories ( ) {
337
- // toggle global state
338
- all_categories_expanded = ! all_categories_expanded ;
339
336
340
- all_collapse_elements = document . getElementsByClassName ( 'collapse' ) ;
337
+ var toggle_all_categories = ( ( ) => {
338
+ let all_categories_expanded = init_categories_expanded ;
341
339
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
+ }
348
354
}
349
355
}
350
- }
356
+
357
+ return toggle_method ;
358
+ } ) ( ) ;
351
359
352
360
function createCategoryCard ( category_name , options , expanded ) {
353
361
options_html = "" ;
@@ -373,7 +381,7 @@ function createCategoryCard(category_name, options, expanded) {
373
381
'</div>' +
374
382
'</div>' ;
375
383
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' : '' ) ) ;
377
385
collapse_element . id = id_prefix + '_collapse' ;
378
386
collapse_element . innerHTML = '<div class="container-fluid px-2 py-2">' + options_html + '</div>' ;
379
387
card_element . appendChild ( collapse_element ) ;
@@ -408,7 +416,7 @@ function fillBuildOptions(buildOptions) {
408
416
}
409
417
let col_element = document . createElement ( 'div' ) ;
410
418
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 ) ) ;
412
420
document . getElementById ( 'category_' + parseInt ( cat_idx / 4 ) + '_row' ) . appendChild ( col_element ) ;
413
421
} ) ;
414
422
}
0 commit comments