Merge pull request #1939 from dpalou/MOBILE-3036

Mobile 3036
main
Juan Leyva 2019-05-24 10:11:09 +02:00 committed by GitHub
commit f10edf083c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 295 additions and 130 deletions

View File

@ -15,6 +15,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { CoreLoggerProvider } from '@providers/logger'; import { CoreLoggerProvider } from '@providers/logger';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle badges. * Service to handle badges.
@ -79,11 +80,12 @@ export class AddonBadgesProvider {
courseid : courseId, courseid : courseId,
userid : userId userid : userId
}, },
presets = { preSets = {
cacheKey: this.getBadgesCacheKey(courseId, userId) cacheKey: this.getBadgesCacheKey(courseId, userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_badges_get_user_badges', data, presets).then((response) => { return site.read('core_badges_get_user_badges', data, preSets).then((response) => {
if (response && response.badges) { if (response && response.badges) {
return response.badges; return response.badges;
} else { } else {

View File

@ -17,6 +17,7 @@ import { CoreLoggerProvider } from '@providers/logger';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications'; import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle blog entries. * Service to handle blog entries.
@ -76,7 +77,8 @@ export class AddonBlogProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getEntriesCacheKey(filter) cacheKey: this.getEntriesCacheKey(filter),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_blog_get_entries', data, preSets); return site.read('core_blog_get_entries', data, preSets);

View File

@ -292,7 +292,8 @@ export class AddonCalendarProvider {
getEvent(id: number, siteId?: string): Promise<any> { getEvent(id: number, siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const preSets = { const preSets = {
cacheKey: this.getEventCacheKey(id) cacheKey: this.getEventCacheKey(id),
updateFrequency: CoreSite.FREQUENCY_RARELY
}, },
data = { data = {
options: { options: {
@ -332,7 +333,8 @@ export class AddonCalendarProvider {
cacheKey: this.getEventCacheKey(id) cacheKey: this.getEventCacheKey(id)
}, },
data = { data = {
eventid: id eventid: id,
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_calendar_get_calendar_event_by_id', data, preSets).then((response) => { return site.read('core_calendar_get_calendar_event_by_id', data, preSets).then((response) => {
@ -469,7 +471,8 @@ export class AddonCalendarProvider {
// We need to retrieve cached data using cache key because we have timestamp in the params. // We need to retrieve cached data using cache key because we have timestamp in the params.
const preSets = { const preSets = {
cacheKey: this.getEventsListCacheKey(daysToStart, daysInterval), cacheKey: this.getEventsListCacheKey(daysToStart, daysInterval),
getCacheUsingCacheKey: true getCacheUsingCacheKey: true,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_calendar_get_calendar_events', data, preSets).then((response) => { return site.read('core_calendar_get_calendar_events', data, preSets).then((response) => {

View File

@ -16,6 +16,7 @@ import { Injectable } from '@angular/core';
import { CoreLoggerProvider } from '@providers/logger'; import { CoreLoggerProvider } from '@providers/logger';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications'; import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle caompetency learning plans. * Service to handle caompetency learning plans.
@ -156,7 +157,8 @@ export class AddonCompetencyProvider {
userid: userId userid: userId
}, },
preSets = { preSets = {
cacheKey: this.getLearningPlansCacheKey(userId) cacheKey: this.getLearningPlansCacheKey(userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('tool_lp_data_for_plans_page', params, preSets).then((response) => { return site.read('tool_lp_data_for_plans_page', params, preSets).then((response) => {
@ -185,7 +187,8 @@ export class AddonCompetencyProvider {
planid: planId planid: planId
}, },
preSets = { preSets = {
cacheKey: this.getLearningPlanCacheKey(planId) cacheKey: this.getLearningPlanCacheKey(planId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('tool_lp_data_for_plan_page', params, preSets).then((response) => { return site.read('tool_lp_data_for_plan_page', params, preSets).then((response) => {
@ -216,7 +219,8 @@ export class AddonCompetencyProvider {
competencyid: competencyId competencyid: competencyId
}, },
preSets = { preSets = {
cacheKey: this.getCompetencyInPlanCacheKey(planId, competencyId) cacheKey: this.getCompetencyInPlanCacheKey(planId, competencyId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('tool_lp_data_for_user_competency_summary_in_plan', params, preSets).then((response) => { return site.read('tool_lp_data_for_user_competency_summary_in_plan', params, preSets).then((response) => {
@ -253,7 +257,8 @@ export class AddonCompetencyProvider {
userid: userId userid: userId
}, },
preSets: any = { preSets: any = {
cacheKey: this.getCompetencyInCourseCacheKey(courseId, competencyId, userId) cacheKey: this.getCompetencyInCourseCacheKey(courseId, competencyId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -291,7 +296,8 @@ export class AddonCompetencyProvider {
userid: userId userid: userId
}, },
preSets: any = { preSets: any = {
cacheKey: this.getCompetencySummaryCacheKey(competencyId, userId) cacheKey: this.getCompetencySummaryCacheKey(competencyId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -327,7 +333,8 @@ export class AddonCompetencyProvider {
courseid: courseId courseid: courseId
}, },
preSets: any = { preSets: any = {
cacheKey: this.getCourseCompetenciesCacheKey(courseId) cacheKey: this.getCourseCompetenciesCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -17,6 +17,7 @@ import { CoreLoggerProvider } from '@providers/logger';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCoursesProvider } from '@core/courses/providers/courses'; import { CoreCoursesProvider } from '@core/courses/providers/courses';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle course completion. * Service to handle course completion.
@ -108,6 +109,7 @@ export class AddonCourseCompletionProvider {
}; };
preSets.cacheKey = this.getCompletionCacheKey(courseId, userId); preSets.cacheKey = this.getCompletionCacheKey(courseId, userId);
preSets.updateFrequency = preSets.updateFrequency || CoreSite.FREQUENCY_SOMETIMES;
return site.read('core_completion_get_course_completion_status', data, preSets).then((data) => { return site.read('core_completion_get_course_completion_status', data, preSets).then((data) => {
if (data.completionstatus) { if (data.completionstatus) {

View File

@ -77,7 +77,8 @@ export class AddonFilesProvider {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const preSets = { const preSets = {
cacheKey: this.getFilesListCacheKey(params) cacheKey: this.getFilesListCacheKey(params),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_files_get_files', params, preSets); return site.read('core_files_get_files', params, preSets);
@ -171,7 +172,8 @@ export class AddonFilesProvider {
userid: userId userid: userId
}, },
preSets = { preSets = {
cacheKey: this.getPrivateFilesInfoCacheKey(userId) cacheKey: this.getPrivateFilesInfoCacheKey(userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_user_get_private_files_info', params, preSets); return site.read('core_user_get_private_files_info', params, preSets);

View File

@ -16,6 +16,7 @@ import { Injectable } from '@angular/core';
import { CoreLoggerProvider } from '@providers/logger'; import { CoreLoggerProvider } from '@providers/logger';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CoreConfigConstants } from '../../../../configconstants'; import { CoreConfigConstants } from '../../../../configconstants';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle Airnotifier message output. * Service to handle Airnotifier message output.
@ -81,7 +82,8 @@ export class AddonMessageOutputAirnotifierProvider {
appid: CoreConfigConstants.app_id appid: CoreConfigConstants.app_id
}; };
const preSets = { const preSets = {
cacheKey: this.getUserDevicesCacheKey() cacheKey: this.getUserDevicesCacheKey(),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('message_airnotifier_get_user_devices', data, preSets).then((data) => { return site.read('message_airnotifier_get_user_devices', data, preSets).then((data) => {

View File

@ -571,7 +571,8 @@ export class AddonMessagesProvider {
userid: userId userid: userId
}, },
preSets = { preSets = {
cacheKey: this.getCacheKeyForBlockedContacts(userId) cacheKey: this.getCacheKeyForBlockedContacts(userId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
return site.read('core_message_get_blocked_users', params, preSets); return site.read('core_message_get_blocked_users', params, preSets);
@ -590,7 +591,8 @@ export class AddonMessagesProvider {
getContacts(siteId?: string): Promise<any> { getContacts(siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const preSets = { const preSets = {
cacheKey: this.getCacheKeyForContacts() cacheKey: this.getCacheKeyForContacts(),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
return site.read('core_message_get_contacts', undefined, preSets).then((contacts) => { return site.read('core_message_get_contacts', undefined, preSets).then((contacts) => {
@ -632,7 +634,8 @@ export class AddonMessagesProvider {
limitnum: limitNum <= 0 ? 0 : limitNum + 1 limitnum: limitNum <= 0 ? 0 : limitNum + 1
}; };
const preSets = { const preSets = {
cacheKey: this.getCacheKeyForUserContacts() cacheKey: this.getCacheKeyForUserContacts(),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
return site.read('core_message_get_user_contacts', params, preSets).then((contacts) => { return site.read('core_message_get_user_contacts', params, preSets).then((contacts) => {
@ -673,7 +676,8 @@ export class AddonMessagesProvider {
limitnum: limitNum <= 0 ? 0 : limitNum + 1 limitnum: limitNum <= 0 ? 0 : limitNum + 1
}; };
const preSets = { const preSets = {
cacheKey: this.getCacheKeyForContactRequests() cacheKey: this.getCacheKeyForContactRequests(),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
return site.read('core_message_get_contact_requests', data, preSets).then((requests) => { return site.read('core_message_get_contact_requests', data, preSets).then((requests) => {
@ -837,7 +841,8 @@ export class AddonMessagesProvider {
} }
const preSets = { const preSets = {
cacheKey: this.getCacheKeyForConversationMembers(userId, conversationId) cacheKey: this.getCacheKeyForConversationMembers(userId, conversationId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}, },
params: any = { params: any = {
userid: userId, userid: userId,
@ -1272,7 +1277,8 @@ export class AddonMessagesProvider {
userId = userId || site.getUserId(); userId = userId || site.getUserId();
const preSets = { const preSets = {
cacheKey: this.getCacheKeyForMemberInfo(userId, otherUserId) cacheKey: this.getCacheKeyForMemberInfo(userId, otherUserId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}, },
params: any = { params: any = {
referenceuserid: userId, referenceuserid: userId,
@ -1312,7 +1318,8 @@ export class AddonMessagesProvider {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const preSets = { const preSets = {
cacheKey: this.getMessagePreferencesCacheKey() cacheKey: this.getMessagePreferencesCacheKey(),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_message_get_user_message_preferences', {}, preSets).then((data) => { return site.read('core_message_get_user_message_preferences', {}, preSets).then((data) => {

View File

@ -25,7 +25,7 @@ import { CoreGradesProvider } from '@core/grades/providers/grades';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModAssignSubmissionDelegate } from './submission-delegate'; import { AddonModAssignSubmissionDelegate } from './submission-delegate';
import { AddonModAssignOfflineProvider } from './assign-offline'; import { AddonModAssignOfflineProvider } from './assign-offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
import { CoreInterceptor } from '@classes/interceptor'; import { CoreInterceptor } from '@classes/interceptor';
/** /**
@ -146,7 +146,8 @@ export class AddonModAssignProvider {
includenotenrolledcourses: 1 includenotenrolledcourses: 1
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getAssignmentCacheKey(courseId) cacheKey: this.getAssignmentCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -215,7 +216,8 @@ export class AddonModAssignProvider {
assignmentids: [assignId] assignmentids: [assignId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getAssignmentUserMappingsCacheKey(assignId) cacheKey: this.getAssignmentUserMappingsCacheKey(assignId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (ignoreCache) { if (ignoreCache) {
@ -437,7 +439,8 @@ export class AddonModAssignProvider {
assignmentids: [assignId] assignmentids: [assignId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getSubmissionsCacheKey(assignId) cacheKey: this.getSubmissionsCacheKey(assignId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (ignoreCache) { if (ignoreCache) {
@ -642,7 +645,8 @@ export class AddonModAssignProvider {
filter: '' filter: ''
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.listParticipantsCacheKey(assignId, groupId) cacheKey: this.listParticipantsCacheKey(assignId, groupId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -23,6 +23,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSite } from '@classes/site';
/** /**
* A book chapter inside the toc list. * A book chapter inside the toc list.
@ -97,7 +98,8 @@ export class AddonModBookProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getBookDataCacheKey(courseId) cacheKey: this.getBookDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_book_get_books_by_courses', params, preSets).then((response) => { return site.read('mod_book_get_books_by_courses', params, preSets).then((response) => {

View File

@ -18,7 +18,7 @@ import { CoreSitesProvider } from '@providers/sites';
import { CoreUserProvider } from '@core/user/providers/user'; import { CoreUserProvider } from '@core/user/providers/user';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
/** /**
* Service that provides some features for chats. * Service that provides some features for chats.
@ -47,7 +47,8 @@ export class AddonModChatProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getChatsCacheKey(courseId) cacheKey: this.getChatsCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_chat_get_chats_by_courses', params, preSets).then((response) => { return site.read('mod_chat_get_chats_by_courses', params, preSets).then((response) => {
@ -214,6 +215,7 @@ export class AddonModChatProvider {
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getSessionsCacheKey(chatId, groupId, showAll), cacheKey: this.getSessionsCacheKey(chatId, groupId, showAll),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
preSets.getFromCache = false; preSets.getFromCache = false;
@ -252,7 +254,8 @@ export class AddonModChatProvider {
groupid: groupId groupid: groupId
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getSessionMessagesCacheKey(chatId, sessionStart, groupId) cacheKey: this.getSessionMessagesCacheKey(chatId, sessionStart, groupId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
preSets.getFromCache = false; preSets.getFromCache = false;

View File

@ -19,7 +19,7 @@ import { CoreAppProvider } from '@providers/app';
import { CoreFilepoolProvider } from '@providers/filepool'; import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModChoiceOfflineProvider } from './offline'; import { AddonModChoiceOfflineProvider } from './offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
/** /**
* Service that provides some features for choices. * Service that provides some features for choices.
@ -187,7 +187,8 @@ export class AddonModChoiceProvider {
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getChoiceDataCacheKey(courseId), cacheKey: this.getChoiceDataCacheKey(courseId),
omitExpires: forceCache omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
@ -252,7 +253,8 @@ export class AddonModChoiceProvider {
choiceid: choiceId choiceid: choiceId
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getChoiceOptionsCacheKey(choiceId) cacheKey: this.getChoiceOptionsCacheKey(choiceId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -22,6 +22,7 @@ import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModDataOfflineProvider } from './offline'; import { AddonModDataOfflineProvider } from './offline';
import { AddonModDataFieldsDelegate } from './fields-delegate'; import { AddonModDataFieldsDelegate } from './fields-delegate';
import { CoreRatingInfo } from '@core/rating/providers/rating'; import { CoreRatingInfo } from '@core/rating/providers/rating';
import { CoreSite } from '@classes/site';
/** /**
* Database entry (online or offline). * Database entry (online or offline).
@ -538,7 +539,8 @@ export class AddonModDataProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getDatabaseDataCacheKey(courseId) cacheKey: this.getDatabaseDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
preSets['omitExpires'] = true; preSets['omitExpires'] = true;
@ -675,7 +677,8 @@ export class AddonModDataProvider {
order: order order: order
}, },
preSets = { preSets = {
cacheKey: this.getEntriesCacheKey(dataId, groupId) cacheKey: this.getEntriesCacheKey(dataId, groupId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (forceCache) { if (forceCache) {
@ -733,7 +736,8 @@ export class AddonModDataProvider {
returncontents: 1 returncontents: 1
}, },
preSets = { preSets = {
cacheKey: this.getEntryCacheKey(dataId, entryId) cacheKey: this.getEntryCacheKey(dataId, entryId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -775,7 +779,8 @@ export class AddonModDataProvider {
databaseid: dataId databaseid: dataId
}, },
preSets = { preSets = {
cacheKey: this.getFieldsCacheKey(dataId) cacheKey: this.getFieldsCacheKey(dataId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {

View File

@ -20,7 +20,7 @@ import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreAppProvider } from '@providers/app'; import { CoreAppProvider } from '@providers/app';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModFeedbackOfflineProvider } from './offline'; import { AddonModFeedbackOfflineProvider } from './offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
/** /**
* Service that provides some features for feedbacks. * Service that provides some features for feedbacks.
@ -583,7 +583,8 @@ export class AddonModFeedbackProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getFeedbackCacheKey(courseId) cacheKey: this.getFeedbackCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
@ -650,7 +651,8 @@ export class AddonModFeedbackProvider {
feedbackid: feedbackId feedbackid: feedbackId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getItemsDataCacheKey(feedbackId) cacheKey: this.getItemsDataCacheKey(feedbackId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -18,6 +18,7 @@ import { CoreSitesProvider } from '@providers/sites';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for folder. * Service that provides some features for folder.
@ -61,7 +62,8 @@ export class AddonModFolderProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getFolderCacheKey(courseId) cacheKey: this.getFolderCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_folder_get_folders_by_courses', params, preSets).then((response) => { return site.read('mod_folder_get_folders_by_courses', params, preSets).then((response) => {

View File

@ -472,7 +472,8 @@ export class AddonModForumDiscussionPage implements OnDestroy {
const promises = [ const promises = [
this.forumProvider.invalidateForumData(this.courseId), this.forumProvider.invalidateForumData(this.courseId),
this.forumProvider.invalidateDiscussionPosts(this.discussionId), this.forumProvider.invalidateDiscussionPosts(this.discussionId),
this.forumProvider.invalidateAccessInformation(this.forumId) this.forumProvider.invalidateAccessInformation(this.forumId),
this.forumProvider.invalidateCanAddDiscussion(this.forumId)
]; ];
return this.utils.allPromises(promises).catch(() => { return this.utils.allPromises(promises).catch(() => {

View File

@ -298,7 +298,8 @@ export class AddonModForumProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets = { const preSets = {
cacheKey: this.getForumDataCacheKey(courseId) cacheKey: this.getForumDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_forum_get_forums_by_courses', params, preSets); return site.read('mod_forum_get_forums_by_courses', params, preSets);

View File

@ -71,7 +71,8 @@ export class AddonModGlossaryProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets = { const preSets = {
cacheKey: this.getCourseGlossariesCacheKey(courseId) cacheKey: this.getCourseGlossariesCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_glossary_get_glossaries_by_courses', params, preSets).then((result) => { return site.read('mod_glossary_get_glossaries_by_courses', params, preSets).then((result) => {
@ -134,7 +135,8 @@ export class AddonModGlossaryProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getEntriesByAuthorCacheKey(glossaryId, letter, field, sort), cacheKey: this.getEntriesByAuthorCacheKey(glossaryId, letter, field, sort),
omitExpires: forceCache omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_entries_by_author', params, preSets); return site.read('mod_glossary_get_entries_by_author', params, preSets);
@ -182,7 +184,8 @@ export class AddonModGlossaryProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getEntriesByCategoryCacheKey(glossaryId, categoryId), cacheKey: this.getEntriesByCategoryCacheKey(glossaryId, categoryId),
omitExpires: forceCache omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_entries_by_category', params, preSets); return site.read('mod_glossary_get_entries_by_category', params, preSets);
@ -254,7 +257,8 @@ export class AddonModGlossaryProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getEntriesByDateCacheKey(glossaryId, order, sort), cacheKey: this.getEntriesByDateCacheKey(glossaryId, order, sort),
omitExpires: forceCache omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_entries_by_date', params, preSets); return site.read('mod_glossary_get_entries_by_date', params, preSets);
@ -311,7 +315,8 @@ export class AddonModGlossaryProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getEntriesByLetterCacheKey(glossaryId, letter), cacheKey: this.getEntriesByLetterCacheKey(glossaryId, letter),
omitExpires: forceCache omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_entries_by_letter', params, preSets); return site.read('mod_glossary_get_entries_by_letter', params, preSets);
@ -378,6 +383,7 @@ export class AddonModGlossaryProvider {
const preSets = { const preSets = {
cacheKey: this.getEntriesBySearchCacheKey(glossaryId, query, fullSearch, order, sort), cacheKey: this.getEntriesBySearchCacheKey(glossaryId, query, fullSearch, order, sort),
omitExpires: forceCache, omitExpires: forceCache,
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_entries_by_search', params, preSets); return site.read('mod_glossary_get_entries_by_search', params, preSets);
@ -444,7 +450,8 @@ export class AddonModGlossaryProvider {
limit: limit limit: limit
}; };
const preSets = { const preSets = {
cacheKey: this.getCategoriesCacheKey(glossaryId) cacheKey: this.getCategoriesCacheKey(glossaryId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('mod_glossary_get_categories', params, preSets).then((response) => { return site.read('mod_glossary_get_categories', params, preSets).then((response) => {
@ -496,7 +503,8 @@ export class AddonModGlossaryProvider {
id: entryId id: entryId
}; };
const preSets = { const preSets = {
cacheKey: this.getEntryCacheKey(entryId) cacheKey: this.getEntryCacheKey(entryId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_glossary_get_entry_by_id', params, preSets).then((response) => { return site.read('mod_glossary_get_entry_by_id', params, preSets).then((response) => {

View File

@ -20,6 +20,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for IMSCP. * Service that provides some features for IMSCP.
@ -162,7 +163,8 @@ export class AddonModImscpProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets = { const preSets = {
cacheKey: this.getImscpDataCacheKey(courseId) cacheKey: this.getImscpDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_imscp_get_imscps_by_courses', params, preSets).then((response) => { return site.read('mod_imscp_get_imscps_by_courses', params, preSets).then((response) => {

View File

@ -59,7 +59,8 @@ export class AddonModLabelProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getLabelDataCacheKey(courseId) cacheKey: this.getLabelDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {

View File

@ -22,7 +22,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreGradesProvider } from '@core/grades/providers/grades'; import { CoreGradesProvider } from '@core/grades/providers/grades';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
import { AddonModLessonOfflineProvider } from './lesson-offline'; import { AddonModLessonOfflineProvider } from './lesson-offline';
/** /**
@ -1436,7 +1436,8 @@ export class AddonModLessonProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getLessonDataCacheKey(courseId) cacheKey: this.getLessonDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
@ -1761,7 +1762,8 @@ export class AddonModLessonProvider {
lessonid: lessonId, lessonid: lessonId,
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getPagesCacheKey(lessonId) cacheKey: this.getPagesCacheKey(lessonId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (typeof password == 'string') { if (typeof password == 'string') {
@ -2118,7 +2120,8 @@ export class AddonModLessonProvider {
groupid: groupId groupid: groupId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getRetakesOverviewCacheKey(lessonId, groupId) cacheKey: this.getRetakesOverviewCacheKey(lessonId, groupId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (forceCache) { if (forceCache) {
@ -2348,7 +2351,8 @@ export class AddonModLessonProvider {
lessonattempt: retake lessonattempt: retake
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getUserRetakeCacheKey(lessonId, userId, retake) cacheKey: this.getUserRetakeCacheKey(lessonId, userId, retake),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (forceCache) { if (forceCache) {

View File

@ -21,6 +21,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreUrlUtilsProvider } from '@providers/utils/url'; import { CoreUrlUtilsProvider } from '@providers/utils/url';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreSite } from '@classes/site';
export interface AddonModLtiParam { export interface AddonModLtiParam {
name: string; name: string;
@ -108,7 +109,8 @@ export class AddonModLtiProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getLtiCacheKey(courseId) cacheKey: this.getLtiCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return this.sitesProvider.getCurrentSite().read('mod_lti_get_ltis_by_courses', params, preSets).then((response) => { return this.sitesProvider.getCurrentSite().read('mod_lti_get_ltis_by_courses', params, preSets).then((response) => {

View File

@ -19,6 +19,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreFilepoolProvider } from '@providers/filepool'; import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for page. * Service that provides some features for page.
@ -63,7 +64,8 @@ export class AddonModPageProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getPageCacheKey(courseId) cacheKey: this.getPageCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_page_get_pages_by_courses', params, preSets).then((response) => { return site.read('mod_page_get_pages_by_courses', params, preSets).then((response) => {

View File

@ -21,7 +21,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom';
import { CoreTextUtilsProvider } from '@providers/utils/text'; import { CoreTextUtilsProvider } from '@providers/utils/text';
import { CoreTimeUtilsProvider } from '@providers/utils/time'; import { CoreTimeUtilsProvider } from '@providers/utils/time';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
import { CoreGradesHelperProvider } from '@core/grades/providers/helper'; import { CoreGradesHelperProvider } from '@core/grades/providers/helper';
import { CoreQuestionDelegate } from '@core/question/providers/delegate'; import { CoreQuestionDelegate } from '@core/question/providers/delegate';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
@ -570,7 +570,8 @@ export class AddonModQuizProvider {
grade: grade grade: grade
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getFeedbackForGradeCacheKey(quizId, grade) cacheKey: this.getFeedbackForGradeCacheKey(quizId, grade),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -687,7 +688,8 @@ export class AddonModQuizProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getQuizDataCacheKey(courseId) cacheKey: this.getQuizDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
@ -829,7 +831,8 @@ export class AddonModQuizProvider {
quizid: quizId quizid: quizId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getQuizRequiredQtypesCacheKey(quizId) cacheKey: this.getQuizRequiredQtypesCacheKey(quizId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -991,7 +994,8 @@ export class AddonModQuizProvider {
includepreviews: includePreviews ? 1 : 0 includepreviews: includePreviews ? 1 : 0
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getUserAttemptsCacheKey(quizId, userId) cacheKey: this.getUserAttemptsCacheKey(quizId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (offline) { if (offline) {

View File

@ -19,6 +19,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreFilepoolProvider } from '@providers/filepool'; import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for resources. * Service that provides some features for resources.
@ -61,7 +62,8 @@ export class AddonModResourceProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getResourceCacheKey(courseId) cacheKey: this.getResourceCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_resource_get_resources_by_courses', params, preSets).then((response) => { return site.read('mod_resource_get_resources_by_courses', params, preSets).then((response) => {

View File

@ -24,7 +24,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
import { CoreTimeUtilsProvider } from '@providers/utils/time'; import { CoreTimeUtilsProvider } from '@providers/utils/time';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { AddonModScormOfflineProvider } from './scorm-offline'; import { AddonModScormOfflineProvider } from './scorm-offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
import { CoreConstants } from '@core/constants'; import { CoreConstants } from '@core/constants';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
@ -547,7 +547,8 @@ export class AddonModScormProvider {
ignoremissingcompletion: ignoreMissing ? 1 : 0 ignoremissingcompletion: ignoreMissing ? 1 : 0
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getAttemptCountCacheKey(scormId, userId) cacheKey: this.getAttemptCountCacheKey(scormId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -835,7 +836,8 @@ export class AddonModScormProvider {
scormid: scormId scormid: scormId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getScosCacheKey(scormId) cacheKey: this.getScosCacheKey(scormId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {
@ -1070,7 +1072,8 @@ export class AddonModScormProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getScormDataCacheKey(courseId) cacheKey: this.getScormDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {

View File

@ -20,7 +20,7 @@ import { CoreAppProvider } from '@providers/app';
import { CoreFilepoolProvider } from '@providers/filepool'; import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModSurveyOfflineProvider } from './offline'; import { AddonModSurveyOfflineProvider } from './offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
/** /**
* Service that provides some features for surveys. * Service that provides some features for surveys.
@ -52,7 +52,8 @@ export class AddonModSurveyProvider {
surveyid: surveyId surveyid: surveyId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getQuestionsCacheKey(surveyId) cacheKey: this.getQuestionsCacheKey(surveyId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -106,7 +107,8 @@ export class AddonModSurveyProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getSurveyCacheKey(courseId) cacheKey: this.getSurveyCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -20,6 +20,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { CoreConstants } from '@core/constants'; import { CoreConstants } from '@core/constants';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for urls. * Service that provides some features for urls.
@ -114,7 +115,8 @@ export class AddonModUrlProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getUrlCacheKey(courseId) cacheKey: this.getUrlCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_url_get_urls_by_courses', params, preSets).then((response) => { return site.read('mod_url_get_urls_by_courses', params, preSets).then((response) => {

View File

@ -22,7 +22,7 @@ import { CoreAppProvider } from '@providers/app';
import { CoreFilepoolProvider } from '@providers/filepool'; import { CoreFilepoolProvider } from '@providers/filepool';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModWikiOfflineProvider } from './wiki-offline'; import { AddonModWikiOfflineProvider } from './wiki-offline';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
export interface AddonModWikiSubwikiListData { export interface AddonModWikiSubwikiListData {
/** /**
@ -134,7 +134,8 @@ export class AddonModWikiProvider {
pageid: pageId pageid: pageId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getPageContentsCacheKey(pageId) cacheKey: this.getPageContentsCacheKey(pageId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (offline) { if (offline) {
@ -215,7 +216,8 @@ export class AddonModWikiProvider {
userid: userId userid: userId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getSubwikiFilesCacheKey(wikiId, groupId, userId) cacheKey: this.getSubwikiFilesCacheKey(wikiId, groupId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (offline) { if (offline) {
@ -299,7 +301,8 @@ export class AddonModWikiProvider {
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getSubwikiPagesCacheKey(wikiId, groupId, userId) cacheKey: this.getSubwikiPagesCacheKey(wikiId, groupId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (offline) { if (offline) {
@ -352,7 +355,8 @@ export class AddonModWikiProvider {
wikiid: wikiId wikiid: wikiId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getSubwikisCacheKey(wikiId) cacheKey: this.getSubwikisCacheKey(wikiId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (offline) { if (offline) {
@ -408,7 +412,8 @@ export class AddonModWikiProvider {
courseids: [courseId] courseids: [courseId]
}, },
preSets = { preSets = {
cacheKey: this.getWikiDataCacheKey(courseId) cacheKey: this.getWikiDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('mod_wiki_get_wikis_by_courses', params, preSets).then((response) => { return site.read('mod_wiki_get_wikis_by_courses', params, preSets).then((response) => {

View File

@ -19,6 +19,7 @@ import { CoreSitesProvider } from '@providers/sites';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper'; import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
import { AddonModWorkshopOfflineProvider } from './offline'; import { AddonModWorkshopOfflineProvider } from './offline';
import { CoreSite } from '@classes/site';
/** /**
* Service that provides some features for workshops. * Service that provides some features for workshops.
@ -212,7 +213,8 @@ export class AddonModWorkshopProvider {
courseids: [courseId] courseids: [courseId]
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getWorkshopDataCacheKey(courseId) cacheKey: this.getWorkshopDataCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (forceCache) { if (forceCache) {
@ -355,7 +357,8 @@ export class AddonModWorkshopProvider {
workshopid: workshopId workshopid: workshopId
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getUserPlanDataCacheKey(workshopId) cacheKey: this.getUserPlanDataCacheKey(workshopId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (offline) { if (offline) {
@ -408,7 +411,8 @@ export class AddonModWorkshopProvider {
groupid: groupId groupid: groupId
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getSubmissionsDataCacheKey(workshopId, userId, groupId) cacheKey: this.getSubmissionsDataCacheKey(workshopId, userId, groupId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (offline) { if (offline) {
@ -539,7 +543,8 @@ export class AddonModWorkshopProvider {
perpage: perPage || AddonModWorkshopProvider.PER_PAGE perpage: perPage || AddonModWorkshopProvider.PER_PAGE
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getGradesReportDataCacheKey(workshopId, groupId) cacheKey: this.getGradesReportDataCacheKey(workshopId, groupId),
updateFrequency: CoreSite.FREQUENCY_OFTEN
}; };
if (offline) { if (offline) {
@ -1004,7 +1009,8 @@ export class AddonModWorkshopProvider {
mode: mode || 'assessment' mode: mode || 'assessment'
}; };
const preSets: any = { const preSets: any = {
cacheKey: this.getAssessmentFormDataCacheKey(workshopId, assessmentId, mode) cacheKey: this.getAssessmentFormDataCacheKey(workshopId, assessmentId, mode),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (offline) { if (offline) {

View File

@ -17,7 +17,7 @@ import { CoreAppProvider } from '@providers/app';
import { CoreLoggerProvider } from '@providers/logger'; import { CoreLoggerProvider } from '@providers/logger';
import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreUtilsProvider } from '@providers/utils/utils';
import { CoreSitesProvider } from '@providers/sites'; import { CoreSitesProvider } from '@providers/sites';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { CoreUserProvider } from '@core/user/providers/user'; import { CoreUserProvider } from '@core/user/providers/user';
import { AddonNotesOfflineProvider } from './notes-offline'; import { AddonNotesOfflineProvider } from './notes-offline';
@ -160,20 +160,23 @@ export class AddonNotesProvider {
// The only way to detect if it's enabled is to perform a WS call. // The only way to detect if it's enabled is to perform a WS call.
// We use an invalid user ID (-1) to avoid saving the note if the user has permissions. // We use an invalid user ID (-1) to avoid saving the note if the user has permissions.
const data = { const data = {
notes: [ notes: [
{ {
userid: -1, userid: -1,
publishstate: 'personal', publishstate: 'personal',
courseid: courseId, courseid: courseId,
text: '', text: '',
format: 1 format: 1
} }
] ]
}; },
preSets = {
updateFrequency: CoreSite.FREQUENCY_RARELY
};
/* Use .read to cache data and be able to check it in offline. This means that, if a user loses the capabilities /* Use .read to cache data and be able to check it in offline. This means that, if a user loses the capabilities
to add notes, he'll still see the option in the app. */ to add notes, he'll still see the option in the app. */
return this.utils.promiseWorks(site.read('core_notes_create_notes', data)); return this.utils.promiseWorks(site.read('core_notes_create_notes', data, preSets));
}); });
} }
@ -232,7 +235,8 @@ export class AddonNotesProvider {
} }
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getNotesCacheKey(courseId, userId) cacheKey: this.getNotesCacheKey(courseId, userId),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
if (ignoreCache) { if (ignoreCache) {

View File

@ -21,6 +21,7 @@ import { CoreTimeUtilsProvider } from '@providers/utils/time';
import { CoreUserProvider } from '@core/user/providers/user'; import { CoreUserProvider } from '@core/user/providers/user';
import { CoreEmulatorHelperProvider } from '@core/emulator/providers/helper'; import { CoreEmulatorHelperProvider } from '@core/emulator/providers/helper';
import { AddonMessagesProvider } from '@addon/messages/providers/messages'; import { AddonMessagesProvider } from '@addon/messages/providers/messages';
import { CoreSite } from '@classes/site';
/** /**
* Service to handle notifications. * Service to handle notifications.
@ -121,7 +122,8 @@ export class AddonNotificationsProvider {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const preSets = { const preSets = {
cacheKey: this.getNotificationPreferencesCacheKey() cacheKey: this.getNotificationPreferencesCacheKey(),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_message_get_user_notification_preferences', {}, preSets).then((data) => { return site.read('core_message_get_user_notification_preferences', {}, preSets).then((data) => {

View File

@ -117,11 +117,13 @@ export interface CoreSiteWSPreSets {
/** /**
* Wehther a pending request in the queue matching the same function and arguments can be reused instead of adding * Wehther a pending request in the queue matching the same function and arguments can be reused instead of adding
* a new request to the queue. Defaults to true for read requests. * a new request to the queue. Defaults to true for read requests.
* @type {boolean}
*/ */
reusePending?: boolean; reusePending?: boolean;
/** /**
* Whether the request will be be sent immediately as a single request. Defaults to false. * Whether the request will be be sent immediately as a single request. Defaults to false.
* @type {boolean}
*/ */
skipQueue?: boolean; skipQueue?: boolean;
@ -129,6 +131,14 @@ export interface CoreSiteWSPreSets {
* Cache the response if it returns an errorcode present in this list. * Cache the response if it returns an errorcode present in this list.
*/ */
cacheErrors?: string[]; cacheErrors?: string[];
/**
* Update frequency. This value determines how often the cached data will be updated. Possible values:
* CoreSite.FREQUENCY_USUALLY, CoreSite.FREQUENCY_OFTEN, CoreSite.FREQUENCY_SOMETIMES, CoreSite.FREQUENCY_RARELY.
* Defaults to CoreSite.FREQUENCY_USUALLY.
* @type {number}
*/
updateFrequency?: number;
} }
/** /**
@ -184,6 +194,12 @@ export class CoreSite {
// @todo Set REQUEST_QUEUE_FORCE_WS to false before the release. // @todo Set REQUEST_QUEUE_FORCE_WS to false before the release.
static REQUEST_QUEUE_FORCE_WS = true; // Use "tool_mobile_call_external_functions" even for calling a single function. static REQUEST_QUEUE_FORCE_WS = true; // Use "tool_mobile_call_external_functions" even for calling a single function.
// Constants for cache update frequency.
static FREQUENCY_USUALLY = 0;
static FREQUENCY_OFTEN = 1;
static FREQUENCY_SOMETIMES = 2;
static FREQUENCY_RARELY = 3;
// List of injected services. This class isn't injectable, so it cannot use DI. // List of injected services. This class isn't injectable, so it cannot use DI.
protected appProvider: CoreAppProvider; protected appProvider: CoreAppProvider;
protected dbProvider: CoreDbProvider; protected dbProvider: CoreDbProvider;
@ -213,6 +229,14 @@ export class CoreSite {
3.7: 2019052000 3.7: 2019052000
}; };
// Possible cache update frequencies.
protected UPDATE_FREQUENCIES = [
CoreConfigConstants.cache_update_frequency_usually || 420000,
CoreConfigConstants.cache_update_frequency_often || 1200000,
CoreConfigConstants.cache_update_frequency_sometimes || 3600000,
CoreConfigConstants.cache_update_frequency_rarely || 43200000
];
// Rest of variables. // Rest of variables.
protected logger; protected logger;
protected db: SQLiteDB; protected db: SQLiteDB;
@ -1016,11 +1040,22 @@ export class CoreSite {
return promise.then((entry) => { return promise.then((entry) => {
const now = Date.now(); const now = Date.now();
let expirationTime;
preSets.omitExpires = preSets.omitExpires || !this.appProvider.isOnline(); preSets.omitExpires = preSets.omitExpires || !this.appProvider.isOnline();
if (!preSets.omitExpires) { if (!preSets.omitExpires) {
if (now > entry.expirationTime) { let expirationDelay = this.UPDATE_FREQUENCIES[preSets.updateFrequency] ||
this.UPDATE_FREQUENCIES[CoreSite.FREQUENCY_USUALLY];
if (this.appProvider.isNetworkAccessLimited()) {
// Not WiFi, increase the expiration delay a 50% to decrease the data usage in this case.
expirationDelay *= 1.5;
}
expirationTime = entry.expirationTime + expirationDelay;
if (now > expirationTime) {
this.logger.debug('Cached element found, but it is expired'); this.logger.debug('Cached element found, but it is expired');
return Promise.reject(null); return Promise.reject(null);
@ -1028,8 +1063,12 @@ export class CoreSite {
} }
if (typeof entry != 'undefined' && typeof entry.data != 'undefined') { if (typeof entry != 'undefined' && typeof entry.data != 'undefined') {
const expires = (entry.expirationTime - now) / 1000; if (!expirationTime) {
this.logger.info(`Cached element found, id: ${id} expires in ${expires} seconds`); this.logger.info(`Cached element found, id: ${id}. Expiration time ignored.`);
} else {
const expires = (expirationTime - now) / 1000;
this.logger.info(`Cached element found, id: ${id}. Expires in expires in ${expires} seconds`);
}
return this.textUtils.parseJSON(entry.data, {}); return this.textUtils.parseJSON(entry.data, {});
} }
@ -1064,15 +1103,15 @@ export class CoreSite {
} }
return promise.then(() => { return promise.then(() => {
// Since 3.7, the expiration time contains the time the entry is modified instead of the expiration time.
// We decided to reuse this field to prevent modifying the database table.
const id = this.getCacheId(method, data), const id = this.getCacheId(method, data),
entry: any = { entry: any = {
id: id, id: id,
data: JSON.stringify(response) data: JSON.stringify(response),
expirationTime: Date.now()
}; };
let cacheExpirationTime = CoreConfigConstants.cache_expiration_time;
cacheExpirationTime = isNaN(cacheExpirationTime) ? 300000 : cacheExpirationTime;
entry.expirationTime = new Date().getTime() + cacheExpirationTime;
if (preSets.cacheKey) { if (preSets.cacheKey) {
entry.key = preSets.cacheKey; entry.key = preSets.cacheKey;
} }

View File

@ -4,7 +4,10 @@
"desktopappname": "Moodle Desktop", "desktopappname": "Moodle Desktop",
"versioncode": 3700, "versioncode": 3700,
"versionname": "3.7.0-dev", "versionname": "3.7.0-dev",
"cache_expiration_time": 300000, "cache_update_frequency_usually": 420000,
"cache_update_frequency_often": 1200000,
"cache_update_frequency_sometimes": 3600000,
"cache_update_frequency_rarely": 43200000,
"default_lang": "en", "default_lang": "en",
"languages": { "languages": {
"ar": "عربي", "ar": "عربي",

View File

@ -102,7 +102,8 @@ export class CoreCommentsProvider {
}; };
const preSets = { const preSets = {
cacheKey: this.getCommentsCacheKey(contextLevel, instanceId, component, itemId, area, page) cacheKey: this.getCommentsCacheKey(contextLevel, instanceId, component, itemId, area, page),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_comment_get_comments', params, preSets).then((response) => { return site.read('core_comment_get_comments', params, preSets).then((response) => {

View File

@ -258,7 +258,8 @@ export class CoreCourseProvider {
courseid: courseId courseid: courseId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getCourseBlocksCacheKey(courseId) cacheKey: this.getCourseBlocksCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_block_get_course_blocks', params, preSets).then((result) => { return site.read('core_block_get_course_blocks', params, preSets).then((result) => {
@ -336,7 +337,8 @@ export class CoreCourseProvider {
options: [] options: []
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
omitExpires: preferCache omitExpires: preferCache,
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (includeStealth) { if (includeStealth) {
@ -446,7 +448,8 @@ export class CoreCourseProvider {
cmid: moduleId cmid: moduleId
}, },
preSets = { preSets = {
cacheKey: this.getModuleCacheKey(moduleId) cacheKey: this.getModuleCacheKey(moduleId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_course_module', params, preSets).then((response) => { return site.read('core_course_get_course_module', params, preSets).then((response) => {
@ -502,7 +505,8 @@ export class CoreCourseProvider {
module: module module: module
}, },
preSets = { preSets = {
cacheKey: this.getModuleBasicInfoByInstanceCacheKey(id, module) cacheKey: this.getModuleBasicInfoByInstanceCacheKey(id, module),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_course_module_by_instance', params, preSets).then((response) => { return site.read('core_course_get_course_module_by_instance', params, preSets).then((response) => {
@ -629,6 +633,7 @@ export class CoreCourseProvider {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
preSets = preSets || {}; preSets = preSets || {};
preSets.cacheKey = this.getSectionsCacheKey(courseId); preSets.cacheKey = this.getSectionsCacheKey(courseId);
preSets.updateFrequency = preSets.updateFrequency || CoreSite.FREQUENCY_RARELY;
const params = { const params = {
courseid: courseId, courseid: courseId,

View File

@ -63,7 +63,8 @@ export class CoreCoursesProvider {
addsubcategories: addSubcategories ? 1 : 0 addsubcategories: addSubcategories ? 1 : 0
}, },
preSets = { preSets = {
cacheKey: this.getCategoriesCacheKey(categoryId, addSubcategories) cacheKey: this.getCategoriesCacheKey(categoryId, addSubcategories),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_categories', data, preSets); return site.read('core_course_get_categories', data, preSets);
@ -271,7 +272,8 @@ export class CoreCoursesProvider {
courseid: id courseid: id
}, },
preSets = { preSets = {
cacheKey: this.getCourseEnrolmentMethodsCacheKey(id) cacheKey: this.getCourseEnrolmentMethodsCacheKey(id),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_enrol_get_course_enrolment_methods', params, preSets); return site.read('core_enrol_get_course_enrolment_methods', params, preSets);
@ -301,7 +303,8 @@ export class CoreCoursesProvider {
instanceid: instanceId instanceid: instanceId
}, },
preSets = { preSets = {
cacheKey: this.getCourseGuestEnrolmentInfoCacheKey(instanceId) cacheKey: this.getCourseGuestEnrolmentInfoCacheKey(instanceId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('enrol_guest_get_instance_info', params, preSets).then((response) => { return site.read('enrol_guest_get_instance_info', params, preSets).then((response) => {
@ -343,7 +346,8 @@ export class CoreCoursesProvider {
} }
}, },
preSets = { preSets = {
cacheKey: this.getCoursesCacheKey(ids) cacheKey: this.getCoursesCacheKey(ids),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_courses', data, preSets); return site.read('core_course_get_courses', data, preSets);
@ -445,7 +449,8 @@ export class CoreCoursesProvider {
value: field ? value : '' value: field ? value : ''
}, },
preSets = { preSets = {
cacheKey: this.getCoursesByFieldCacheKey(field, value) cacheKey: this.getCoursesByFieldCacheKey(field, value),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_courses_by_field', data, preSets).then((courses) => { return site.read('core_course_get_courses_by_field', data, preSets).then((courses) => {
@ -604,7 +609,8 @@ export class CoreCoursesProvider {
courseids: courseIds courseids: courseIds
}, },
preSets = { preSets = {
cacheKey: this.getUserAdministrationOptionsCacheKey(courseIds) cacheKey: this.getUserAdministrationOptionsCacheKey(courseIds),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_user_administration_options', params, preSets).then((response) => { return site.read('core_course_get_user_administration_options', params, preSets).then((response) => {
@ -650,7 +656,8 @@ export class CoreCoursesProvider {
courseids: courseIds courseids: courseIds
}, },
preSets = { preSets = {
cacheKey: this.getUserNavigationOptionsCacheKey(courseIds) cacheKey: this.getUserNavigationOptionsCacheKey(courseIds),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_course_get_user_navigation_options', params, preSets).then((response) => { return site.read('core_course_get_user_navigation_options', params, preSets).then((response) => {
@ -728,7 +735,8 @@ export class CoreCoursesProvider {
preSets = { preSets = {
cacheKey: this.getUserCoursesCacheKey(), cacheKey: this.getUserCoursesCacheKey(),
getCacheUsingCacheKey: true, getCacheUsingCacheKey: true,
omitExpires: !!preferCache omitExpires: !!preferCache,
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (site.isVersionGreaterEqualThan('3.7')) { if (site.isVersionGreaterEqualThan('3.7')) {

View File

@ -49,7 +49,8 @@ export class CoreCoursesDashboardProvider {
const params = { const params = {
}, },
preSets = { preSets = {
cacheKey: this.getDashboardBlocksCacheKey(userId) cacheKey: this.getDashboardBlocksCacheKey(userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (userId) { if (userId) {

View File

@ -251,7 +251,8 @@ export class CoreRatingProvider {
sort: sort sort: sort
}; };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getItemRatingsCacheKey(contextLevel, instanceId, component, ratingArea, itemId, scaleId, sort) cacheKey: this.getItemRatingsCacheKey(contextLevel, instanceId, component, ratingArea, itemId, scaleId, sort),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
preSets.getFromCache = false; preSets.getFromCache = false;

View File

@ -234,6 +234,8 @@ export class CoreSitePluginsProvider {
preSets = preSets || {}; preSets = preSets || {};
preSets.cacheKey = this.getContentCacheKey(component, method, args); preSets.cacheKey = this.getContentCacheKey(component, method, args);
preSets.updateFrequency = typeof preSets.updateFrequency != 'undefined' ? preSets.updateFrequency :
CoreSite.FREQUENCY_OFTEN;
return this.sitesProvider.getCurrentSite().read('tool_mobile_get_content', data, preSets); return this.sitesProvider.getCurrentSite().read('tool_mobile_get_content', data, preSets);
}).then((result) => { }).then((result) => {

View File

@ -151,7 +151,8 @@ export class CoreUserProvider {
} }
] ]
}, preSets: any = { }, preSets: any = {
cacheKey: this.getParticipantsListCacheKey(courseId) cacheKey: this.getParticipantsListCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -235,7 +236,8 @@ export class CoreUserProvider {
protected getUserFromWS(userId: number, courseId?: number, siteId?: string): Promise<any> { protected getUserFromWS(userId: number, courseId?: number, siteId?: string): Promise<any> {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const presets = { const presets = {
cacheKey: this.getUserCacheKey(userId) cacheKey: this.getUserCacheKey(userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
let wsName, data; let wsName, data;
@ -329,7 +331,8 @@ export class CoreUserProvider {
return this.sitesProvider.getSite(siteId).then((site) => { return this.sitesProvider.getSite(siteId).then((site) => {
const data = { name }; const data = { name };
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getUserPreferenceCacheKey(data.name) cacheKey: this.getUserPreferenceCacheKey(data.name),
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
}; };
return site.read('core_user_get_user_preferences', data, preSets).then((result) => { return site.read('core_user_get_user_preferences', data, preSets).then((result) => {

View File

@ -16,7 +16,7 @@ import { Injectable } from '@angular/core';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { CoreSitesProvider } from './sites'; import { CoreSitesProvider } from './sites';
import { CoreCoursesProvider } from '@core/courses/providers/courses'; import { CoreCoursesProvider } from '@core/courses/providers/courses';
import { CoreSiteWSPreSets } from '@classes/site'; import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
/** /**
* Group info for an activity. * Group info for an activity.
@ -89,7 +89,8 @@ export class CoreGroupsProvider {
userid: userId userid: userId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getActivityAllowedGroupsCacheKey(cmId, userId) cacheKey: this.getActivityAllowedGroupsCacheKey(cmId, userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -196,7 +197,8 @@ export class CoreGroupsProvider {
cmid: cmId cmid: cmId
}, },
preSets: CoreSiteWSPreSets = { preSets: CoreSiteWSPreSets = {
cacheKey: this.getActivityGroupModeCacheKey(cmId) cacheKey: this.getActivityGroupModeCacheKey(cmId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
if (ignoreCache) { if (ignoreCache) {
@ -283,7 +285,8 @@ export class CoreGroupsProvider {
courseid: courseId courseid: courseId
}, },
preSets = { preSets = {
cacheKey: this.getUserGroupsInCourseCacheKey(courseId, userId) cacheKey: this.getUserGroupsInCourseCacheKey(courseId, userId),
updateFrequency: CoreSite.FREQUENCY_RARELY
}; };
return site.read('core_group_get_course_user_groups', data, preSets).then((response) => { return site.read('core_group_get_course_user_groups', data, preSets).then((response) => {

View File

@ -4,6 +4,7 @@ information provided here is intended especially for developers.
=== 3.7.0 === === 3.7.0 ===
- The pushnotifications addon has been moved to core. All imports of that addon need to be fixed to use the right path and name. - The pushnotifications addon has been moved to core. All imports of that addon need to be fixed to use the right path and name.
- Now the expirationTime of cache entries contains the time the entry was modified, not the expiration time. This is to allow calculating dynamic expiration times. We decided to reuse the same field to prevent modifying the database table.
=== 3.6.1 === === 3.6.1 ===