MOBILE-3833 course: Decrease WS calls to get_courses_by_fields
parent
147df9b58e
commit
b86cf8d93c
|
@ -203,6 +203,15 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
await this.invalidateCourses(courseIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidate list of courses.
|
||||
*
|
||||
* @return Promise resolved when done.
|
||||
*/
|
||||
protected invalidateCourseList(): Promise<void> {
|
||||
return CoreCourses.invalidateUserCourses();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to invalidate only selected courses.
|
||||
*
|
||||
|
@ -213,7 +222,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
const promises: Promise<void>[] = [];
|
||||
|
||||
// Invalidate course completion data.
|
||||
promises.push(CoreCourses.invalidateUserCourses().finally(() =>
|
||||
promises.push(this.invalidateCourseList().finally(() =>
|
||||
CoreUtils.allPromises(courseIds.map((courseId) =>
|
||||
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
|
||||
|
||||
|
@ -397,7 +406,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
course.hidden = !!data.value;
|
||||
}
|
||||
|
||||
await this.invalidateCourses([course.id]);
|
||||
await this.invalidateCourseList();
|
||||
await this.filterCourses();
|
||||
}
|
||||
|
||||
|
@ -409,7 +418,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
|
||||
course.lastaccess = CoreTimeUtils.timestamp();
|
||||
|
||||
await this.invalidateCourses([course.id]);
|
||||
await this.invalidateCourseList();
|
||||
await this.filterCourses();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,6 +85,17 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
|
|||
await this.invalidateCourses(courseIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidate list of courses.
|
||||
*
|
||||
* @return Promise resolved when done.
|
||||
*/
|
||||
protected async invalidateCourseList(): Promise<void> {
|
||||
return this.site.isVersionGreaterEqualThan('3.8')
|
||||
? CoreCourses.invalidateRecentCourses()
|
||||
: CoreCourses.invalidateUserCourses();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to invalidate only selected courses.
|
||||
*
|
||||
|
@ -94,12 +105,8 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
|
|||
protected async invalidateCourses(courseIds: number[]): Promise<void> {
|
||||
const promises: Promise<void>[] = [];
|
||||
|
||||
const invalidateCoursePromise = this.site.isVersionGreaterEqualThan('3.8')
|
||||
? CoreCourses.invalidateRecentCourses()
|
||||
: CoreCourses.invalidateUserCourses();
|
||||
|
||||
// Invalidate course completion data.
|
||||
promises.push(invalidateCoursePromise.finally(() =>
|
||||
promises.push(this.invalidateCourseList().finally(() =>
|
||||
CoreUtils.allPromises(courseIds.map((courseId) =>
|
||||
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
|
||||
|
||||
|
@ -179,13 +186,13 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
|
|||
this.courses.splice(courseIndex, 1);
|
||||
this.courses.unshift(course);
|
||||
|
||||
await this.invalidateCourses([course.id]);
|
||||
await this.invalidateCourseList();
|
||||
}
|
||||
|
||||
if (data.action == CoreCoursesProvider.ACTION_STATE_CHANGED &&
|
||||
data.state == CoreCoursesProvider.STATE_FAVOURITE && course) {
|
||||
course.isfavourite = !!data.value;
|
||||
await this.invalidateCourses([course.id]);
|
||||
await this.invalidateCourseList();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -81,6 +81,15 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
|
|||
await this.invalidateCourses(courseIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidate list of courses.
|
||||
*
|
||||
* @return Promise resolved when done.
|
||||
*/
|
||||
protected async invalidateCourseList(): Promise<void> {
|
||||
return AddonBlockStarredCourses.invalidateStarredCourses();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to invalidate only selected courses.
|
||||
*
|
||||
|
@ -91,7 +100,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
|
|||
const promises: Promise<void>[] = [];
|
||||
|
||||
// Invalidate course completion data.
|
||||
promises.push(AddonBlockStarredCourses.invalidateStarredCourses().finally(() =>
|
||||
promises.push(this.invalidateCourseList().finally(() =>
|
||||
CoreUtils.allPromises(courseIds.map((courseId) =>
|
||||
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
|
||||
|
||||
|
@ -172,7 +181,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
|
|||
this.courses.unshift(course);
|
||||
}
|
||||
|
||||
await this.invalidateCourses([course.id]);
|
||||
await this.invalidateCourseList();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue