Skip to content

Commit d0de8c2

Browse files
committed
Display: LP: Improve styles for accordion when lp.lp_view_accordion is set - refs BT#21588
1 parent b99648c commit d0de8c2

File tree

4 files changed

+24
-60
lines changed

4 files changed

+24
-60
lines changed

assets/css/scorm.scss

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,12 @@ See https://support.chamilo.org/issues/6976
645645
}
646646

647647
&.scorm_item_section {
648+
&.accordion {
649+
.section {
650+
@apply cursor-pointer;
651+
}
652+
}
653+
648654
.section {
649655
@apply py-3 pr-4 bg-no-repeat bg-left relative bg-gray-10
650656
after:block after:absolute after:bottom-0 after:left-0 after:right-0 after:mr-4 after:border-b after:border-gray-25
@@ -820,4 +826,14 @@ See https://support.chamilo.org/issues/6976
820826

821827
.item-children {
822828
@apply bg-white;
829+
830+
.accordion + & {
831+
@apply hidden;
832+
}
833+
834+
.accordion.active + &,
835+
.accordion + &:has(> .scorm_highlight),
836+
&:has(& .scorm_highlight) {
837+
@apply block;
838+
}
823839
}

assets/js/legacy/lp.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,8 @@ document.addEventListener("DOMContentLoaded", (event) => {
3939
}
4040
})
4141
})
42+
43+
document
44+
.querySelectorAll(".accordion")
45+
.forEach((accordion) => accordion.addEventListener("click", () => accordion.classList.toggle("active")))
4246
})

src/CoreBundle/Resources/views/LearnPath/scorm_list.html.twig

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
{% autoescape false %}
22
{% macro processItem(item, lp_current_item_id, status_list) %}
33
{% import _self as self %}
4-
{% set itemClass = '' %}
4+
{% set itemClass = ' ' %}
55
{% if 'dir' == item.itemType %}
6-
{% set itemClass = 'scorm_item_section' %}
6+
{% set itemClass = itemClass ~ 'scorm_item_section ' %}
77
{% endif %}
88

99
{% if lp_current_item_id == item.iid %}
10-
{% set itemClass = 'scorm_highlight' %}
10+
{% set itemClass = itemClass ~ 'scorm_highlight ' %}
1111
{% endif %}
1212

1313
{% set itemLevel = 'level_' ~ (item.lvl - 1) %}
1414
{% set itemStatusClass = status_list[item.iid] %}
15-
{% set accordionClass = '' %}
16-
{% if item.itemType == 'dir' %}
17-
{% set accordionClass = 'accordion' %}
18-
{% endif %}
15+
{% set accordionClass = item.itemType == 'dir' and 'true' == chamilo_settings_get('lp.lp_view_accordion') ? 'accordion' : '' %}
1916
<div id="toc_{{ item.iid }}"
2017
class=" scorm_item_normal {{ itemStatusClass }} {{ itemClass }} item-{{ item.itemType }} {{ accordionClass }}">
2118
{% if item.itemType == 'dir' %}
@@ -119,34 +116,3 @@
119116
</div>
120117
{% endif %}
121118
{% endautoescape %}
122-
<script>
123-
document.addEventListener("DOMContentLoaded", function() {
124-
setTimeout(function() {
125-
var lpCurrentItemId = '{{ lp_current_item_id }}'
126-
var currentElement = document.getElementById("toc_" + lpCurrentItemId)
127-
128-
if (currentElement) {
129-
var parentContainer = currentElement.closest(".item-children")
130-
var previousSibling
131-
132-
if (parentContainer) {
133-
previousSibling = parentContainer.previousElementSibling
134-
}
135-
136-
if (previousSibling) {
137-
previousSibling.click()
138-
var parentContainer2 = previousSibling.closest(".item-children")
139-
var previousSibling2
140-
141-
if (parentContainer2) {
142-
previousSibling2 = parentContainer2.previousElementSibling
143-
}
144-
145-
if (previousSibling2) {
146-
previousSibling2.click()
147-
}
148-
}
149-
}
150-
}, 1000)
151-
})
152-
</script>

src/CoreBundle/Resources/views/LearnPath/view.html.twig

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -387,27 +387,5 @@
387387
{% endif %}
388388
})
389389
</script>
390-
<script>
391-
document.addEventListener("DOMContentLoaded", function() {
392-
var acc = document.getElementsByClassName("accordion")
393-
var i
394-
for (i = 0; i < acc.length; i++) {
395-
acc[i].addEventListener("click", function() {
396-
this.classList.toggle("active")
397-
var panel = this.nextElementSibling
398-
if (panel.style.display == "block") {
399-
panel.style.display = "none"
400-
} else {
401-
panel.style.display = "block"
402-
}
403-
})
404-
}
405-
})
406-
</script>
407-
<style>
408-
.item-children {
409-
display: none;
410-
}
411-
</style>
412390
{% endautoescape %}
413391
{% endblock %}

0 commit comments

Comments
 (0)