Skip to content

Commit

Permalink
Merge pull request #4201 from crazyserver/MOBILE-4616
Browse files Browse the repository at this point in the history
MOBILE-4616 course: Fix change section from course index when mod opens
  • Loading branch information
dpalou authored Oct 10, 2024
2 parents de51c41 + a699670 commit a33027e
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions src/core/features/course/components/course-format/course-format.ts
Original file line number Diff line number Diff line change
Expand Up @@ -483,12 +483,15 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy {
id: data.moduleId === undefined ? data.sectionId : undefined,
});

// Select the root section.
this.sectionChanged(parents[0] ?? section);
// If a section is selected (no moduleId), or all sections are not displayed. Change section.
if (!data.moduleId || !this.selectedSection || this.selectedSection.id !== this.allSectionsId) {
// Select the root section.
this.sectionChanged(parents[0] ?? section);
}

if (parents.length && section) {
// It's a subsection. Expand all the parents and the subsection.
for (let i = 1; i < parents.length; i++) {
if (section) {
// It's a subsection. Expand its parents too.
for (let i = 0; i < parents.length; i++) {
this.setSectionExpanded(parents[i]);
}

Expand Down Expand Up @@ -811,6 +814,9 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy {
*/
accordionMultipleChange(ev: AccordionGroupChangeEventDetail): void {
const sectionIds = ev.value as string[] | undefined;

this.accordionMultipleValue = ev.value;

const allSections = CoreCourseHelper.flattenSections(this.sections);
allSections.forEach((section) => {
section.expanded = false;
Expand All @@ -836,8 +842,14 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy {
*/
protected setSectionExpanded(section: CoreCourseSectionToDisplay): void {
section.expanded = true;

if (!this.accordionMultipleValue.includes(section.id.toString())) {
this.accordionMultipleValue.push(section.id.toString());
// Force detect changes to update the view.
this.accordionMultipleValue = [
...this.accordionMultipleValue,
section.id.toString(),
];

this.saveExpandedSections();
}
}
Expand Down

0 comments on commit a33027e

Please sign in to comment.