diff --git a/app/javascript/src/utils/accordion.js b/app/javascript/src/utils/accordion.js index d80ee9c5ee..253893bbd9 100644 --- a/app/javascript/src/utils/accordion.js +++ b/app/javascript/src/utils/accordion.js @@ -31,21 +31,23 @@ * */ $(() => { - $('body').on('click', '.accordion-controls', (e) => { + $('body').on('click', '.accordion-controls a', (e) => { e.preventDefault(); const currentTarget = $(e.currentTarget); const target = $(e.target); const direction = target.attr('data-toggle-direction'); + const parentTargetName = currentTarget.parent().attr('data-parent'); if (direction) { // Selects all .panel elements where the parent is currentTarget.attr('data-parent') and // after gets the immediately children whose class selector is panel-collapse - $(`#${currentTarget.attr('data-parent')} > .panel`).children('.panel-collapse').each((i, el) => { + const parentTarget = $(`#${parentTargetName}`).length ? $(`#${parentTargetName}`) : $(`.${parentTargetName}`); + $(parentTarget).find('.panel').find('.panel-collapse').each((i, el) => { const panelCollapse = $(el); // Expands or collapses the panel according to the // direction passed (e.g. show --> expands, hide --> collapses) if (direction === 'show') { - if (!panelCollapse.hasClass('in')) { - panelCollapse.prev().trigger('click'); + if (!panelCollapse.find('.panel-body').attr('data-loaded') || !panelCollapse.hasClass('in')) { + panelCollapse.prev()[0].click(); } } else { panelCollapse.collapse(direction); diff --git a/app/views/org_admin/sections/_section.html.erb b/app/views/org_admin/sections/_section.html.erb index ca7062ca7f..cb56aa07b2 100644 --- a/app/views/org_admin/sections/_section.html.erb +++ b/app/views/org_admin/sections/_section.html.erb @@ -46,4 +46,4 @@ <% end %> - + \ No newline at end of file diff --git a/app/views/org_admin/sections/_section_group.html.erb b/app/views/org_admin/sections/_section_group.html.erb index 4623c019b0..37a960ab59 100644 --- a/app/views/org_admin/sections/_section_group.html.erb +++ b/app/views/org_admin/sections/_section_group.html.erb @@ -1,5 +1,5 @@ -
@@ -12,4 +12,4 @@ data_parent: panel_id, draggable: draggable_for_section?(section) } %> <% end%> -
+ \ No newline at end of file