From 254107075b3c38451863f6fe07166ea15536b083 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 9 Apr 2020 10:29:00 +0200 Subject: [PATCH] MOBILE-3134 folder: Fix componentId and description in folder --- .../index/addon-mod-folder-index.html | 6 +-- .../mod/folder/components/index/index.ts | 40 ++++++++++--------- src/addon/mod/folder/pages/index/index.html | 4 +- src/addon/mod/folder/pages/index/index.ts | 8 ++-- 4 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/addon/mod/folder/components/index/addon-mod-folder-index.html b/src/addon/mod/folder/components/index/addon-mod-folder-index.html index 03eb3838a..4627aaeba 100644 --- a/src/addon/mod/folder/components/index/addon-mod-folder-index.html +++ b/src/addon/mod/folder/components/index/addon-mod-folder-index.html @@ -4,7 +4,7 @@ - + @@ -17,11 +17,11 @@ - +

{{file.name}}

- +
diff --git a/src/addon/mod/folder/components/index/index.ts b/src/addon/mod/folder/components/index/index.ts index 922ec3836..622acb449 100644 --- a/src/addon/mod/folder/components/index/index.ts +++ b/src/addon/mod/folder/components/index/index.ts @@ -29,7 +29,8 @@ import { AddonModFolderHelperProvider } from '../../providers/helper'; templateUrl: 'addon-mod-folder-index.html', }) export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceComponent { - @Input() path: string; // For subfolders. Use the path instead of a boolean so Angular detects them as different states. + @Input() folderInstance?: any; // The mod_folder instance. + @Input() subfolder?: any; // Subfolder to show. component = AddonModFolderProvider.COMPONENT; canGetFolder: boolean; @@ -48,9 +49,9 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo this.canGetFolder = this.folderProvider.isGetFolderWSAvailable(); - if (this.path) { + if (this.subfolder) { // Subfolder. Use module param. - this.showModuleData(this.module, this.module.contents); + this.showModuleData(this.subfolder.contents); this.loaded = true; this.refreshIcon = 'refresh'; } else { @@ -77,15 +78,14 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo } /** - * Convenience function to set scope data using module. - * @param module Module to show. + * Convenience function to set data to display. + * + * @param folderContents Contents to show. */ - protected showModuleData(module: any, folderContents: any): void { - this.description = module.intro || module.description; + protected showModuleData(folderContents: any): void { + this.description = this.folderInstance ? this.folderInstance.intro : this.module.description; - this.dataRetrieved.emit(module); - - if (this.path) { + if (this.subfolder) { // Subfolder. this.contents = folderContents; } else { @@ -107,25 +107,29 @@ export class AddonModFolderIndexComponent extends CoreCourseModuleMainResourceCo promise = this.folderProvider.getFolder(this.courseId, this.module.id).then((folder) => { return this.courseProvider.loadModuleContents(this.module, this.courseId, undefined, false, refresh).then(() => { folderContents = this.module.contents; + this.folderInstance = folder; return folder; }); }); } else { - promise = this.courseProvider.getModule(this.module.id, this.courseId).then((folder) => { - if (!folder.contents.length && this.module.contents.length && !this.appProvider.isOnline()) { + promise = this.courseProvider.getModule(this.module.id, this.courseId).then((module) => { + if (!module.contents.length && this.module.contents.length && !this.appProvider.isOnline()) { // The contents might be empty due to a cached data. Use the old ones. - folder.contents = this.module.contents; + module.contents = this.module.contents; } - this.module = folder; - folderContents = folder.contents; + this.module = module; + folderContents = module.contents; - return folder; + return module; }); } - return promise.then((folder) => { - this.showModuleData(folder, folderContents); + return promise.then(() => { + + this.dataRetrieved.emit(this.folderInstance || this.module); + + this.showModuleData(folderContents); }).finally(() => { this.fillContextMenu(refresh); }); diff --git a/src/addon/mod/folder/pages/index/index.html b/src/addon/mod/folder/pages/index/index.html index c435f6866..27f9f1509 100644 --- a/src/addon/mod/folder/pages/index/index.html +++ b/src/addon/mod/folder/pages/index/index.html @@ -8,9 +8,9 @@ - + - + diff --git a/src/addon/mod/folder/pages/index/index.ts b/src/addon/mod/folder/pages/index/index.ts index 74c63b22e..a64d7b499 100644 --- a/src/addon/mod/folder/pages/index/index.ts +++ b/src/addon/mod/folder/pages/index/index.ts @@ -30,13 +30,15 @@ export class AddonModFolderIndexPage { title: string; module: any; courseId: number; - path: string; + folderInstance: any; + subfolder: any; constructor(navParams: NavParams) { this.module = navParams.get('module') || {}; this.courseId = navParams.get('courseId'); - this.path = navParams.get('path'); - this.title = this.module.name; + this.folderInstance = navParams.get('folderInstance'); + this.subfolder = navParams.get('subfolder'); + this.title = this.subfolder ? this.subfolder.name : this.module.name; } /**