MOBILE-4282 course: Respect indentation format

main
Noel De Martin 2023-04-24 13:23:02 +02:00
parent f019afa920
commit 7a761fd47f
3 changed files with 28 additions and 2 deletions

View File

@ -14,6 +14,7 @@
import { Component, ElementRef, Input, OnInit } from '@angular/core'; import { Component, ElementRef, Input, OnInit } from '@angular/core';
import { import {
CoreCourse,
CoreCourseModuleCompletionStatus, CoreCourseModuleCompletionStatus,
CoreCourseModuleCompletionTracking, CoreCourseModuleCompletionTracking,
CoreCourseProvider, CoreCourseProvider,
@ -77,7 +78,8 @@ export class CoreCourseCourseIndexComponent implements OnInit {
// Clone sections to add information. // Clone sections to add information.
const site = CoreSites.getRequiredCurrentSite(); const site = CoreSites.getRequiredCurrentSite();
const enableIndentation = site.isVersionGreaterEqualThan('4.2');
const enableIndentation = await CoreCourse.isCourseIndentationEnabled(site, this.course.id);
this.sectionsToRender = this.sections this.sectionsToRender = this.sections
.filter((section) => !CoreCourseHelper.isSectionStealth(section)) .filter((section) => !CoreCourseHelper.isSectionStealth(section))

View File

@ -71,8 +71,9 @@ export class CoreCourseModuleComponent implements OnInit, OnDestroy {
*/ */
async ngOnInit(): Promise<void> { async ngOnInit(): Promise<void> {
const site = CoreSites.getRequiredCurrentSite(); const site = CoreSites.getRequiredCurrentSite();
const enableIndentation = await CoreCourse.isCourseIndentationEnabled(site, this.module.course);
this.indented = site.isVersionGreaterEqualThan('4.2') && this.module.indent > 0; this.indented = enableIndentation && this.module.indent > 0;
this.modNameTranslated = CoreCourse.translateModuleName(this.module.modname, this.module.modplural); this.modNameTranslated = CoreCourse.translateModuleName(this.module.modname, this.module.modplural);
this.showLegacyCompletion = this.showLegacyCompletion ?? this.showLegacyCompletion = this.showLegacyCompletion ??
CoreConstants.CONFIG.uselegacycompletion ?? CoreConstants.CONFIG.uselegacycompletion ??

View File

@ -33,6 +33,7 @@ import { CoreCourseOffline } from './course-offline';
import { CoreError } from '@classes/errors/error'; import { CoreError } from '@classes/errors/error';
import { import {
CoreCourseAnyCourseData, CoreCourseAnyCourseData,
CoreCourses,
CoreCoursesProvider, CoreCoursesProvider,
} from '../../courses/services/courses'; } from '../../courses/services/courses';
import { CoreDomUtils } from '@services/utils/dom'; import { CoreDomUtils } from '@services/utils/dom';
@ -250,6 +251,28 @@ export class CoreCourseProvider {
completion.state === CoreCourseModuleCompletionStatus.COMPLETION_INCOMPLETE; completion.state === CoreCourseModuleCompletionStatus.COMPLETION_INCOMPLETE;
} }
/**
* Check whether a course has indentation enabled.
*
* @param site Site.
* @param courseId Course id.
* @returns Whether indentation is enabled.
*/
async isCourseIndentationEnabled(site: CoreSite, courseId: number): Promise<boolean> {
if (!site.isVersionGreaterEqualThan('4.0')) {
return false;
}
const course = await CoreCourses.getCourseByField('id', courseId, site.id);
const formatOptions = CoreUtils.objectToKeyValueMap<{ indentation?: string }>(
course.courseformatoptions ?? [],
'name',
'value',
);
return formatOptions.indentation === '1';
}
/** /**
* Clear all courses status in a site. * Clear all courses status in a site.
* *