From ec6332583c1679a9c8578ff7d35a94a3c8e3567e Mon Sep 17 00:00:00 2001 From: Albert Gasset Date: Thu, 25 Apr 2019 14:49:56 +0200 Subject: [PATCH] MOBILE-2994 lesson: Prefetch embedded files in essays --- .../mod/lesson/providers/prefetch-handler.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/addon/mod/lesson/providers/prefetch-handler.ts b/src/addon/mod/lesson/providers/prefetch-handler.ts index 3660a90cd..8fba4a13c 100644 --- a/src/addon/mod/lesson/providers/prefetch-handler.ts +++ b/src/addon/mod/lesson/providers/prefetch-handler.ts @@ -388,7 +388,24 @@ export class AddonModLessonPrefetchHandler extends CoreCourseActivityPrefetchHan } retakePromises.push(this.lessonProvider.getUserRetake(lesson.id, lastRetake.try, student.id, false, - true, siteId)); + true, siteId).then((attempt) => { + if (!attempt || !attempt.answerpages) { + return; + } + + // Download embedded files in essays. + const files = []; + attempt.answerpages.forEach((answerPage) => { + if (answerPage.page.qtype != AddonModLessonProvider.LESSON_PAGE_ESSAY) { + return; + } + answerPage.answerdata.answers.forEach((answer) => { + files.push(...this.domUtils.extractDownloadableFilesFromHtmlAsFakeFileObjects(answer[0])); + }); + }); + + return this.filepoolProvider.addFilesToQueue(siteId, files, this.component, module.id); + })); }); return Promise.all(retakePromises);