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 @@
0">
-
+
{{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;
}
/**