diff --git a/src/addon/mod/data/components/index/index.ts b/src/addon/mod/data/components/index/index.ts index 3e5688421..4a5b45fc2 100644 --- a/src/addon/mod/data/components/index/index.ts +++ b/src/addon/mod/data/components/index/index.ts @@ -151,6 +151,7 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp promises.push(this.dataProvider.invalidateDatabaseAccessInformationData(this.data.id)); promises.push(this.groupsProvider.invalidateActivityGroupInfo(this.data.coursemodule)); promises.push(this.dataProvider.invalidateEntriesData(this.data.id)); + promises.push(this.dataProvider.invalidateFieldsData(this.data.id)); if (this.hasComments) { this.eventsProvider.trigger(CoreCommentsProvider.REFRESH_COMMENTS_EVENT, { diff --git a/src/addon/mod/data/pages/entry/entry.ts b/src/addon/mod/data/pages/entry/entry.ts index eec7f7367..b21c9c50d 100644 --- a/src/addon/mod/data/pages/entry/entry.ts +++ b/src/addon/mod/data/pages/entry/entry.ts @@ -216,6 +216,7 @@ export class AddonModDataEntryPage implements OnDestroy { promises.push(this.dataProvider.invalidateEntryData(this.data.id, this.entryId)); promises.push(this.groupsProvider.invalidateActivityGroupInfo(this.data.coursemodule)); promises.push(this.dataProvider.invalidateEntriesData(this.data.id)); + promises.push(this.dataProvider.invalidateFieldsData(this.data.id)); if (this.data.comments && this.entry && this.entry.id > 0 && this.commentsEnabled && this.comments) { // Refresh comments. Don't add it to promises because we don't want the comments fetch to block the entry fetch. diff --git a/src/addon/mod/data/providers/data.ts b/src/addon/mod/data/providers/data.ts index 98de9d3ae..09bedf35a 100644 --- a/src/addon/mod/data/providers/data.ts +++ b/src/addon/mod/data/providers/data.ts @@ -830,6 +830,7 @@ export class AddonModDataProvider { // Do not invalidate module data before getting module info, we need it! ps.push(this.invalidateDatabaseData(courseId, siteId)); ps.push(this.invalidateDatabaseWSData(data.id, siteId)); + ps.push(this.invalidateFieldsData(data.id, siteId)); return Promise.all(ps); })); @@ -865,6 +866,19 @@ export class AddonModDataProvider { }); } + /** + * Invalidates database fields data. + * + * @param dataId Data ID. + * @param siteId Site ID. If not defined, current site. + * @return Promise resolved when the data is invalidated. + */ + invalidateFieldsData(dataId: number, siteId?: string): Promise { + return this.sitesProvider.getSite(siteId).then((site) => { + return site.invalidateWsCacheForKey(this.getFieldsCacheKey(dataId)); + }); + } + /** * Invalidate the prefetched files. *