commit
f10edf083c
|
@ -15,6 +15,7 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { CoreLoggerProvider } from '@providers/logger';
|
||||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle badges.
|
||||
|
@ -79,11 +80,12 @@ export class AddonBadgesProvider {
|
|||
courseid : courseId,
|
||||
userid : userId
|
||||
},
|
||||
presets = {
|
||||
cacheKey: this.getBadgesCacheKey(courseId, userId)
|
||||
preSets = {
|
||||
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) {
|
||||
return response.badges;
|
||||
} else {
|
||||
|
|
|
@ -17,6 +17,7 @@ import { CoreLoggerProvider } from '@providers/logger';
|
|||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle blog entries.
|
||||
|
@ -76,7 +77,8 @@ export class AddonBlogProvider {
|
|||
};
|
||||
|
||||
const preSets = {
|
||||
cacheKey: this.getEntriesCacheKey(filter)
|
||||
cacheKey: this.getEntriesCacheKey(filter),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('core_blog_get_entries', data, preSets);
|
||||
|
|
|
@ -292,7 +292,8 @@ export class AddonCalendarProvider {
|
|||
getEvent(id: number, siteId?: string): Promise<any> {
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const preSets = {
|
||||
cacheKey: this.getEventCacheKey(id)
|
||||
cacheKey: this.getEventCacheKey(id),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
},
|
||||
data = {
|
||||
options: {
|
||||
|
@ -332,7 +333,8 @@ export class AddonCalendarProvider {
|
|||
cacheKey: this.getEventCacheKey(id)
|
||||
},
|
||||
data = {
|
||||
eventid: id
|
||||
eventid: id,
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
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.
|
||||
const preSets = {
|
||||
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) => {
|
||||
|
|
|
@ -16,6 +16,7 @@ import { Injectable } from '@angular/core';
|
|||
import { CoreLoggerProvider } from '@providers/logger';
|
||||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CorePushNotificationsProvider } from '@core/pushnotifications/providers/pushnotifications';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle caompetency learning plans.
|
||||
|
@ -156,7 +157,8 @@ export class AddonCompetencyProvider {
|
|||
userid: userId
|
||||
},
|
||||
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) => {
|
||||
|
@ -185,7 +187,8 @@ export class AddonCompetencyProvider {
|
|||
planid: planId
|
||||
},
|
||||
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) => {
|
||||
|
@ -216,7 +219,8 @@ export class AddonCompetencyProvider {
|
|||
competencyid: competencyId
|
||||
},
|
||||
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) => {
|
||||
|
@ -253,7 +257,8 @@ export class AddonCompetencyProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets: any = {
|
||||
cacheKey: this.getCompetencyInCourseCacheKey(courseId, competencyId, userId)
|
||||
cacheKey: this.getCompetencyInCourseCacheKey(courseId, competencyId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -291,7 +296,8 @@ export class AddonCompetencyProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets: any = {
|
||||
cacheKey: this.getCompetencySummaryCacheKey(competencyId, userId)
|
||||
cacheKey: this.getCompetencySummaryCacheKey(competencyId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -327,7 +333,8 @@ export class AddonCompetencyProvider {
|
|||
courseid: courseId
|
||||
},
|
||||
preSets: any = {
|
||||
cacheKey: this.getCourseCompetenciesCacheKey(courseId)
|
||||
cacheKey: this.getCourseCompetenciesCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -17,6 +17,7 @@ import { CoreLoggerProvider } from '@providers/logger';
|
|||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreCoursesProvider } from '@core/courses/providers/courses';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle course completion.
|
||||
|
@ -108,6 +109,7 @@ export class AddonCourseCompletionProvider {
|
|||
};
|
||||
|
||||
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) => {
|
||||
if (data.completionstatus) {
|
||||
|
|
|
@ -77,7 +77,8 @@ export class AddonFilesProvider {
|
|||
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const preSets = {
|
||||
cacheKey: this.getFilesListCacheKey(params)
|
||||
cacheKey: this.getFilesListCacheKey(params),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('core_files_get_files', params, preSets);
|
||||
|
@ -171,7 +172,8 @@ export class AddonFilesProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getPrivateFilesInfoCacheKey(userId)
|
||||
cacheKey: this.getPrivateFilesInfoCacheKey(userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('core_user_get_private_files_info', params, preSets);
|
||||
|
|
|
@ -16,6 +16,7 @@ import { Injectable } from '@angular/core';
|
|||
import { CoreLoggerProvider } from '@providers/logger';
|
||||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CoreConfigConstants } from '../../../../configconstants';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle Airnotifier message output.
|
||||
|
@ -81,7 +82,8 @@ export class AddonMessageOutputAirnotifierProvider {
|
|||
appid: CoreConfigConstants.app_id
|
||||
};
|
||||
const preSets = {
|
||||
cacheKey: this.getUserDevicesCacheKey()
|
||||
cacheKey: this.getUserDevicesCacheKey(),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
return site.read('message_airnotifier_get_user_devices', data, preSets).then((data) => {
|
||||
|
|
|
@ -571,7 +571,8 @@ export class AddonMessagesProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getCacheKeyForBlockedContacts(userId)
|
||||
cacheKey: this.getCacheKeyForBlockedContacts(userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
return site.read('core_message_get_blocked_users', params, preSets);
|
||||
|
@ -590,7 +591,8 @@ export class AddonMessagesProvider {
|
|||
getContacts(siteId?: string): Promise<any> {
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const preSets = {
|
||||
cacheKey: this.getCacheKeyForContacts()
|
||||
cacheKey: this.getCacheKeyForContacts(),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
return site.read('core_message_get_contacts', undefined, preSets).then((contacts) => {
|
||||
|
@ -632,7 +634,8 @@ export class AddonMessagesProvider {
|
|||
limitnum: limitNum <= 0 ? 0 : limitNum + 1
|
||||
};
|
||||
const preSets = {
|
||||
cacheKey: this.getCacheKeyForUserContacts()
|
||||
cacheKey: this.getCacheKeyForUserContacts(),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
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
|
||||
};
|
||||
const preSets = {
|
||||
cacheKey: this.getCacheKeyForContactRequests()
|
||||
cacheKey: this.getCacheKeyForContactRequests(),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
return site.read('core_message_get_contact_requests', data, preSets).then((requests) => {
|
||||
|
@ -837,7 +841,8 @@ export class AddonMessagesProvider {
|
|||
}
|
||||
|
||||
const preSets = {
|
||||
cacheKey: this.getCacheKeyForConversationMembers(userId, conversationId)
|
||||
cacheKey: this.getCacheKeyForConversationMembers(userId, conversationId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
},
|
||||
params: any = {
|
||||
userid: userId,
|
||||
|
@ -1272,7 +1277,8 @@ export class AddonMessagesProvider {
|
|||
userId = userId || site.getUserId();
|
||||
|
||||
const preSets = {
|
||||
cacheKey: this.getCacheKeyForMemberInfo(userId, otherUserId)
|
||||
cacheKey: this.getCacheKeyForMemberInfo(userId, otherUserId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
},
|
||||
params: any = {
|
||||
referenceuserid: userId,
|
||||
|
@ -1312,7 +1318,8 @@ export class AddonMessagesProvider {
|
|||
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const preSets = {
|
||||
cacheKey: this.getMessagePreferencesCacheKey()
|
||||
cacheKey: this.getMessagePreferencesCacheKey(),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('core_message_get_user_message_preferences', {}, preSets).then((data) => {
|
||||
|
|
|
@ -25,7 +25,7 @@ import { CoreGradesProvider } from '@core/grades/providers/grades';
|
|||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModAssignSubmissionDelegate } from './submission-delegate';
|
||||
import { AddonModAssignOfflineProvider } from './assign-offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreInterceptor } from '@classes/interceptor';
|
||||
|
||||
/**
|
||||
|
@ -146,7 +146,8 @@ export class AddonModAssignProvider {
|
|||
includenotenrolledcourses: 1
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getAssignmentCacheKey(courseId)
|
||||
cacheKey: this.getAssignmentCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -215,7 +216,8 @@ export class AddonModAssignProvider {
|
|||
assignmentids: [assignId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getAssignmentUserMappingsCacheKey(assignId)
|
||||
cacheKey: this.getAssignmentUserMappingsCacheKey(assignId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -437,7 +439,8 @@ export class AddonModAssignProvider {
|
|||
assignmentids: [assignId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSubmissionsCacheKey(assignId)
|
||||
cacheKey: this.getSubmissionsCacheKey(assignId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -642,7 +645,8 @@ export class AddonModAssignProvider {
|
|||
filter: ''
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.listParticipantsCacheKey(assignId, groupId)
|
||||
cacheKey: this.listParticipantsCacheKey(assignId, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -23,6 +23,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* A book chapter inside the toc list.
|
||||
|
@ -97,7 +98,8 @@ export class AddonModBookProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -18,7 +18,7 @@ import { CoreSitesProvider } from '@providers/sites';
|
|||
import { CoreUserProvider } from '@core/user/providers/user';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for chats.
|
||||
|
@ -47,7 +47,8 @@ export class AddonModChatProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
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) => {
|
||||
|
@ -214,6 +215,7 @@ export class AddonModChatProvider {
|
|||
};
|
||||
const preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSessionsCacheKey(chatId, groupId, showAll),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
if (ignoreCache) {
|
||||
preSets.getFromCache = false;
|
||||
|
@ -252,7 +254,8 @@ export class AddonModChatProvider {
|
|||
groupid: groupId
|
||||
};
|
||||
const preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSessionMessagesCacheKey(chatId, sessionStart, groupId)
|
||||
cacheKey: this.getSessionMessagesCacheKey(chatId, sessionStart, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
if (ignoreCache) {
|
||||
preSets.getFromCache = false;
|
||||
|
|
|
@ -19,7 +19,7 @@ import { CoreAppProvider } from '@providers/app';
|
|||
import { CoreFilepoolProvider } from '@providers/filepool';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModChoiceOfflineProvider } from './offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for choices.
|
||||
|
@ -187,7 +187,8 @@ export class AddonModChoiceProvider {
|
|||
};
|
||||
const preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getChoiceDataCacheKey(courseId),
|
||||
omitExpires: forceCache
|
||||
omitExpires: forceCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -252,7 +253,8 @@ export class AddonModChoiceProvider {
|
|||
choiceid: choiceId
|
||||
};
|
||||
const preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getChoiceOptionsCacheKey(choiceId)
|
||||
cacheKey: this.getChoiceOptionsCacheKey(choiceId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -22,6 +22,7 @@ import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
|||
import { AddonModDataOfflineProvider } from './offline';
|
||||
import { AddonModDataFieldsDelegate } from './fields-delegate';
|
||||
import { CoreRatingInfo } from '@core/rating/providers/rating';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Database entry (online or offline).
|
||||
|
@ -538,7 +539,8 @@ export class AddonModDataProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getDatabaseDataCacheKey(courseId)
|
||||
cacheKey: this.getDatabaseDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
if (forceCache) {
|
||||
preSets['omitExpires'] = true;
|
||||
|
@ -675,7 +677,8 @@ export class AddonModDataProvider {
|
|||
order: order
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getEntriesCacheKey(dataId, groupId)
|
||||
cacheKey: this.getEntriesCacheKey(dataId, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -733,7 +736,8 @@ export class AddonModDataProvider {
|
|||
returncontents: 1
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getEntryCacheKey(dataId, entryId)
|
||||
cacheKey: this.getEntryCacheKey(dataId, entryId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -775,7 +779,8 @@ export class AddonModDataProvider {
|
|||
databaseid: dataId
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getFieldsCacheKey(dataId)
|
||||
cacheKey: this.getFieldsCacheKey(dataId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
|
|
@ -20,7 +20,7 @@ import { CoreFilepoolProvider } from '@providers/filepool';
|
|||
import { CoreAppProvider } from '@providers/app';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModFeedbackOfflineProvider } from './offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for feedbacks.
|
||||
|
@ -583,7 +583,8 @@ export class AddonModFeedbackProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getFeedbackCacheKey(courseId)
|
||||
cacheKey: this.getFeedbackCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -650,7 +651,8 @@ export class AddonModFeedbackProvider {
|
|||
feedbackid: feedbackId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getItemsDataCacheKey(feedbackId)
|
||||
cacheKey: this.getItemsDataCacheKey(feedbackId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import { CoreSitesProvider } from '@providers/sites';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for folder.
|
||||
|
@ -61,7 +62,8 @@ export class AddonModFolderProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -472,7 +472,8 @@ export class AddonModForumDiscussionPage implements OnDestroy {
|
|||
const promises = [
|
||||
this.forumProvider.invalidateForumData(this.courseId),
|
||||
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(() => {
|
||||
|
|
|
@ -298,7 +298,8 @@ export class AddonModForumProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
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);
|
||||
|
|
|
@ -71,7 +71,8 @@ export class AddonModGlossaryProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
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) => {
|
||||
|
@ -134,7 +135,8 @@ export class AddonModGlossaryProvider {
|
|||
};
|
||||
const preSets = {
|
||||
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);
|
||||
|
@ -182,7 +184,8 @@ export class AddonModGlossaryProvider {
|
|||
};
|
||||
const preSets = {
|
||||
cacheKey: this.getEntriesByCategoryCacheKey(glossaryId, categoryId),
|
||||
omitExpires: forceCache
|
||||
omitExpires: forceCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('mod_glossary_get_entries_by_category', params, preSets);
|
||||
|
@ -254,7 +257,8 @@ export class AddonModGlossaryProvider {
|
|||
};
|
||||
const preSets = {
|
||||
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);
|
||||
|
@ -311,7 +315,8 @@ export class AddonModGlossaryProvider {
|
|||
};
|
||||
const preSets = {
|
||||
cacheKey: this.getEntriesByLetterCacheKey(glossaryId, letter),
|
||||
omitExpires: forceCache
|
||||
omitExpires: forceCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('mod_glossary_get_entries_by_letter', params, preSets);
|
||||
|
@ -378,6 +383,7 @@ export class AddonModGlossaryProvider {
|
|||
const preSets = {
|
||||
cacheKey: this.getEntriesBySearchCacheKey(glossaryId, query, fullSearch, order, sort),
|
||||
omitExpires: forceCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('mod_glossary_get_entries_by_search', params, preSets);
|
||||
|
@ -444,7 +450,8 @@ export class AddonModGlossaryProvider {
|
|||
limit: limit
|
||||
};
|
||||
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) => {
|
||||
|
@ -496,7 +503,8 @@ export class AddonModGlossaryProvider {
|
|||
id: entryId
|
||||
};
|
||||
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) => {
|
||||
|
|
|
@ -20,6 +20,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for IMSCP.
|
||||
|
@ -162,7 +163,8 @@ export class AddonModImscpProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
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) => {
|
||||
|
|
|
@ -59,7 +59,8 @@ export class AddonModLabelProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getLabelDataCacheKey(courseId)
|
||||
cacheKey: this.getLabelDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
|
|
@ -22,7 +22,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreGradesProvider } from '@core/grades/providers/grades';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
import { AddonModLessonOfflineProvider } from './lesson-offline';
|
||||
|
||||
/**
|
||||
|
@ -1436,7 +1436,8 @@ export class AddonModLessonProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getLessonDataCacheKey(courseId)
|
||||
cacheKey: this.getLessonDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -1761,7 +1762,8 @@ export class AddonModLessonProvider {
|
|||
lessonid: lessonId,
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getPagesCacheKey(lessonId)
|
||||
cacheKey: this.getPagesCacheKey(lessonId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (typeof password == 'string') {
|
||||
|
@ -2118,7 +2120,8 @@ export class AddonModLessonProvider {
|
|||
groupid: groupId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getRetakesOverviewCacheKey(lessonId, groupId)
|
||||
cacheKey: this.getRetakesOverviewCacheKey(lessonId, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -2348,7 +2351,8 @@ export class AddonModLessonProvider {
|
|||
lessonattempt: retake
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getUserRetakeCacheKey(lessonId, userId, retake)
|
||||
cacheKey: this.getUserRetakeCacheKey(lessonId, userId, retake),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
|
|
@ -21,6 +21,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreUrlUtilsProvider } from '@providers/utils/url';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
export interface AddonModLtiParam {
|
||||
name: string;
|
||||
|
@ -108,7 +109,8 @@ export class AddonModLtiProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
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) => {
|
||||
|
|
|
@ -19,6 +19,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
|
|||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreFilepoolProvider } from '@providers/filepool';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for page.
|
||||
|
@ -63,7 +64,8 @@ export class AddonModPageProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -21,7 +21,7 @@ import { CoreDomUtilsProvider } from '@providers/utils/dom';
|
|||
import { CoreTextUtilsProvider } from '@providers/utils/text';
|
||||
import { CoreTimeUtilsProvider } from '@providers/utils/time';
|
||||
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 { CoreQuestionDelegate } from '@core/question/providers/delegate';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
|
@ -570,7 +570,8 @@ export class AddonModQuizProvider {
|
|||
grade: grade
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getFeedbackForGradeCacheKey(quizId, grade)
|
||||
cacheKey: this.getFeedbackForGradeCacheKey(quizId, grade),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -687,7 +688,8 @@ export class AddonModQuizProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getQuizDataCacheKey(courseId)
|
||||
cacheKey: this.getQuizDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -829,7 +831,8 @@ export class AddonModQuizProvider {
|
|||
quizid: quizId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getQuizRequiredQtypesCacheKey(quizId)
|
||||
cacheKey: this.getQuizRequiredQtypesCacheKey(quizId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -991,7 +994,8 @@ export class AddonModQuizProvider {
|
|||
includepreviews: includePreviews ? 1 : 0
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getUserAttemptsCacheKey(quizId, userId)
|
||||
cacheKey: this.getUserAttemptsCacheKey(quizId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
|
|
@ -19,6 +19,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
|
|||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreFilepoolProvider } from '@providers/filepool';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for resources.
|
||||
|
@ -61,7 +62,8 @@ export class AddonModResourceProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -24,7 +24,7 @@ import { CoreTextUtilsProvider } from '@providers/utils/text';
|
|||
import { CoreTimeUtilsProvider } from '@providers/utils/time';
|
||||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { AddonModScormOfflineProvider } from './scorm-offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreConstants } from '@core/constants';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
|
||||
|
@ -547,7 +547,8 @@ export class AddonModScormProvider {
|
|||
ignoremissingcompletion: ignoreMissing ? 1 : 0
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getAttemptCountCacheKey(scormId, userId)
|
||||
cacheKey: this.getAttemptCountCacheKey(scormId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -835,7 +836,8 @@ export class AddonModScormProvider {
|
|||
scormid: scormId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getScosCacheKey(scormId)
|
||||
cacheKey: this.getScosCacheKey(scormId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -1070,7 +1072,8 @@ export class AddonModScormProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getScormDataCacheKey(courseId)
|
||||
cacheKey: this.getScormDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
|
|
@ -20,7 +20,7 @@ import { CoreAppProvider } from '@providers/app';
|
|||
import { CoreFilepoolProvider } from '@providers/filepool';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModSurveyOfflineProvider } from './offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for surveys.
|
||||
|
@ -52,7 +52,8 @@ export class AddonModSurveyProvider {
|
|||
surveyid: surveyId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getQuestionsCacheKey(surveyId)
|
||||
cacheKey: this.getQuestionsCacheKey(surveyId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -106,7 +107,8 @@ export class AddonModSurveyProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSurveyCacheKey(courseId)
|
||||
cacheKey: this.getSurveyCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import { CoreUtilsProvider } from '@providers/utils/utils';
|
|||
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { CoreConstants } from '@core/constants';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for urls.
|
||||
|
@ -114,7 +115,8 @@ export class AddonModUrlProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -22,7 +22,7 @@ import { CoreAppProvider } from '@providers/app';
|
|||
import { CoreFilepoolProvider } from '@providers/filepool';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModWikiOfflineProvider } from './wiki-offline';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
export interface AddonModWikiSubwikiListData {
|
||||
/**
|
||||
|
@ -134,7 +134,8 @@ export class AddonModWikiProvider {
|
|||
pageid: pageId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getPageContentsCacheKey(pageId)
|
||||
cacheKey: this.getPageContentsCacheKey(pageId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -215,7 +216,8 @@ export class AddonModWikiProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSubwikiFilesCacheKey(wikiId, groupId, userId)
|
||||
cacheKey: this.getSubwikiFilesCacheKey(wikiId, groupId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -299,7 +301,8 @@ export class AddonModWikiProvider {
|
|||
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSubwikiPagesCacheKey(wikiId, groupId, userId)
|
||||
cacheKey: this.getSubwikiPagesCacheKey(wikiId, groupId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -352,7 +355,8 @@ export class AddonModWikiProvider {
|
|||
wikiid: wikiId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getSubwikisCacheKey(wikiId)
|
||||
cacheKey: this.getSubwikisCacheKey(wikiId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -408,7 +412,8 @@ export class AddonModWikiProvider {
|
|||
courseids: [courseId]
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -19,6 +19,7 @@ import { CoreSitesProvider } from '@providers/sites';
|
|||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreCourseLogHelperProvider } from '@core/course/providers/log-helper';
|
||||
import { AddonModWorkshopOfflineProvider } from './offline';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service that provides some features for workshops.
|
||||
|
@ -212,7 +213,8 @@ export class AddonModWorkshopProvider {
|
|||
courseids: [courseId]
|
||||
};
|
||||
const preSets: any = {
|
||||
cacheKey: this.getWorkshopDataCacheKey(courseId)
|
||||
cacheKey: this.getWorkshopDataCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (forceCache) {
|
||||
|
@ -355,7 +357,8 @@ export class AddonModWorkshopProvider {
|
|||
workshopid: workshopId
|
||||
};
|
||||
const preSets: any = {
|
||||
cacheKey: this.getUserPlanDataCacheKey(workshopId)
|
||||
cacheKey: this.getUserPlanDataCacheKey(workshopId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -408,7 +411,8 @@ export class AddonModWorkshopProvider {
|
|||
groupid: groupId
|
||||
};
|
||||
const preSets: any = {
|
||||
cacheKey: this.getSubmissionsDataCacheKey(workshopId, userId, groupId)
|
||||
cacheKey: this.getSubmissionsDataCacheKey(workshopId, userId, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -539,7 +543,8 @@ export class AddonModWorkshopProvider {
|
|||
perpage: perPage || AddonModWorkshopProvider.PER_PAGE
|
||||
};
|
||||
const preSets: any = {
|
||||
cacheKey: this.getGradesReportDataCacheKey(workshopId, groupId)
|
||||
cacheKey: this.getGradesReportDataCacheKey(workshopId, groupId),
|
||||
updateFrequency: CoreSite.FREQUENCY_OFTEN
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
@ -1004,7 +1009,8 @@ export class AddonModWorkshopProvider {
|
|||
mode: mode || 'assessment'
|
||||
};
|
||||
const preSets: any = {
|
||||
cacheKey: this.getAssessmentFormDataCacheKey(workshopId, assessmentId, mode)
|
||||
cacheKey: this.getAssessmentFormDataCacheKey(workshopId, assessmentId, mode),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (offline) {
|
||||
|
|
|
@ -17,7 +17,7 @@ import { CoreAppProvider } from '@providers/app';
|
|||
import { CoreLoggerProvider } from '@providers/logger';
|
||||
import { CoreUtilsProvider } from '@providers/utils/utils';
|
||||
import { CoreSitesProvider } from '@providers/sites';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { CoreUserProvider } from '@core/user/providers/user';
|
||||
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.
|
||||
// We use an invalid user ID (-1) to avoid saving the note if the user has permissions.
|
||||
const data = {
|
||||
notes: [
|
||||
{
|
||||
userid: -1,
|
||||
publishstate: 'personal',
|
||||
courseid: courseId,
|
||||
text: '',
|
||||
format: 1
|
||||
}
|
||||
]
|
||||
};
|
||||
notes: [
|
||||
{
|
||||
userid: -1,
|
||||
publishstate: 'personal',
|
||||
courseid: courseId,
|
||||
text: '',
|
||||
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
|
||||
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 = {
|
||||
cacheKey: this.getNotesCacheKey(courseId, userId)
|
||||
cacheKey: this.getNotesCacheKey(courseId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
|
|
@ -21,6 +21,7 @@ import { CoreTimeUtilsProvider } from '@providers/utils/time';
|
|||
import { CoreUserProvider } from '@core/user/providers/user';
|
||||
import { CoreEmulatorHelperProvider } from '@core/emulator/providers/helper';
|
||||
import { AddonMessagesProvider } from '@addon/messages/providers/messages';
|
||||
import { CoreSite } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Service to handle notifications.
|
||||
|
@ -121,7 +122,8 @@ export class AddonNotificationsProvider {
|
|||
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const preSets = {
|
||||
cacheKey: this.getNotificationPreferencesCacheKey()
|
||||
cacheKey: this.getNotificationPreferencesCacheKey(),
|
||||
updateFrequency: CoreSite.FREQUENCY_SOMETIMES
|
||||
};
|
||||
|
||||
return site.read('core_message_get_user_notification_preferences', {}, preSets).then((data) => {
|
||||
|
|
|
@ -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
|
||||
* a new request to the queue. Defaults to true for read requests.
|
||||
* @type {boolean}
|
||||
*/
|
||||
reusePending?: boolean;
|
||||
|
||||
/**
|
||||
* Whether the request will be be sent immediately as a single request. Defaults to false.
|
||||
* @type {boolean}
|
||||
*/
|
||||
skipQueue?: boolean;
|
||||
|
||||
|
@ -129,6 +131,14 @@ export interface CoreSiteWSPreSets {
|
|||
* Cache the response if it returns an errorcode present in this list.
|
||||
*/
|
||||
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.
|
||||
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.
|
||||
protected appProvider: CoreAppProvider;
|
||||
protected dbProvider: CoreDbProvider;
|
||||
|
@ -213,6 +229,14 @@ export class CoreSite {
|
|||
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.
|
||||
protected logger;
|
||||
protected db: SQLiteDB;
|
||||
|
@ -1016,11 +1040,22 @@ export class CoreSite {
|
|||
|
||||
return promise.then((entry) => {
|
||||
const now = Date.now();
|
||||
let expirationTime;
|
||||
|
||||
preSets.omitExpires = preSets.omitExpires || !this.appProvider.isOnline();
|
||||
|
||||
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');
|
||||
|
||||
return Promise.reject(null);
|
||||
|
@ -1028,8 +1063,12 @@ export class CoreSite {
|
|||
}
|
||||
|
||||
if (typeof entry != 'undefined' && typeof entry.data != 'undefined') {
|
||||
const expires = (entry.expirationTime - now) / 1000;
|
||||
this.logger.info(`Cached element found, id: ${id} expires in ${expires} seconds`);
|
||||
if (!expirationTime) {
|
||||
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, {});
|
||||
}
|
||||
|
@ -1064,15 +1103,15 @@ export class CoreSite {
|
|||
}
|
||||
|
||||
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),
|
||||
entry: any = {
|
||||
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) {
|
||||
entry.key = preSets.cacheKey;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,10 @@
|
|||
"desktopappname": "Moodle Desktop",
|
||||
"versioncode": 3700,
|
||||
"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",
|
||||
"languages": {
|
||||
"ar": "عربي",
|
||||
|
|
|
@ -102,7 +102,8 @@ export class CoreCommentsProvider {
|
|||
};
|
||||
|
||||
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) => {
|
||||
|
|
|
@ -258,7 +258,8 @@ export class CoreCourseProvider {
|
|||
courseid: courseId
|
||||
},
|
||||
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) => {
|
||||
|
@ -336,7 +337,8 @@ export class CoreCourseProvider {
|
|||
options: []
|
||||
};
|
||||
const preSets: CoreSiteWSPreSets = {
|
||||
omitExpires: preferCache
|
||||
omitExpires: preferCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (includeStealth) {
|
||||
|
@ -446,7 +448,8 @@ export class CoreCourseProvider {
|
|||
cmid: moduleId
|
||||
},
|
||||
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) => {
|
||||
|
@ -502,7 +505,8 @@ export class CoreCourseProvider {
|
|||
module: module
|
||||
},
|
||||
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) => {
|
||||
|
@ -629,6 +633,7 @@ export class CoreCourseProvider {
|
|||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
preSets = preSets || {};
|
||||
preSets.cacheKey = this.getSectionsCacheKey(courseId);
|
||||
preSets.updateFrequency = preSets.updateFrequency || CoreSite.FREQUENCY_RARELY;
|
||||
|
||||
const params = {
|
||||
courseid: courseId,
|
||||
|
|
|
@ -63,7 +63,8 @@ export class CoreCoursesProvider {
|
|||
addsubcategories: addSubcategories ? 1 : 0
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getCategoriesCacheKey(categoryId, addSubcategories)
|
||||
cacheKey: this.getCategoriesCacheKey(categoryId, addSubcategories),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
return site.read('core_course_get_categories', data, preSets);
|
||||
|
@ -271,7 +272,8 @@ export class CoreCoursesProvider {
|
|||
courseid: id
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getCourseEnrolmentMethodsCacheKey(id)
|
||||
cacheKey: this.getCourseEnrolmentMethodsCacheKey(id),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
return site.read('core_enrol_get_course_enrolment_methods', params, preSets);
|
||||
|
@ -301,7 +303,8 @@ export class CoreCoursesProvider {
|
|||
instanceid: instanceId
|
||||
},
|
||||
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) => {
|
||||
|
@ -343,7 +346,8 @@ export class CoreCoursesProvider {
|
|||
}
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getCoursesCacheKey(ids)
|
||||
cacheKey: this.getCoursesCacheKey(ids),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
return site.read('core_course_get_courses', data, preSets);
|
||||
|
@ -445,7 +449,8 @@ export class CoreCoursesProvider {
|
|||
value: field ? value : ''
|
||||
},
|
||||
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) => {
|
||||
|
@ -604,7 +609,8 @@ export class CoreCoursesProvider {
|
|||
courseids: courseIds
|
||||
},
|
||||
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) => {
|
||||
|
@ -650,7 +656,8 @@ export class CoreCoursesProvider {
|
|||
courseids: courseIds
|
||||
},
|
||||
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) => {
|
||||
|
@ -728,7 +735,8 @@ export class CoreCoursesProvider {
|
|||
preSets = {
|
||||
cacheKey: this.getUserCoursesCacheKey(),
|
||||
getCacheUsingCacheKey: true,
|
||||
omitExpires: !!preferCache
|
||||
omitExpires: !!preferCache,
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (site.isVersionGreaterEqualThan('3.7')) {
|
||||
|
|
|
@ -49,7 +49,8 @@ export class CoreCoursesDashboardProvider {
|
|||
const params = {
|
||||
},
|
||||
preSets = {
|
||||
cacheKey: this.getDashboardBlocksCacheKey(userId)
|
||||
cacheKey: this.getDashboardBlocksCacheKey(userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (userId) {
|
||||
|
|
|
@ -251,7 +251,8 @@ export class CoreRatingProvider {
|
|||
sort: sort
|
||||
};
|
||||
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) {
|
||||
preSets.getFromCache = false;
|
||||
|
|
|
@ -234,6 +234,8 @@ export class CoreSitePluginsProvider {
|
|||
|
||||
preSets = preSets || {};
|
||||
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);
|
||||
}).then((result) => {
|
||||
|
|
|
@ -151,7 +151,8 @@ export class CoreUserProvider {
|
|||
}
|
||||
]
|
||||
}, preSets: any = {
|
||||
cacheKey: this.getParticipantsListCacheKey(courseId)
|
||||
cacheKey: this.getParticipantsListCacheKey(courseId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -235,7 +236,8 @@ export class CoreUserProvider {
|
|||
protected getUserFromWS(userId: number, courseId?: number, siteId?: string): Promise<any> {
|
||||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const presets = {
|
||||
cacheKey: this.getUserCacheKey(userId)
|
||||
cacheKey: this.getUserCacheKey(userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
let wsName, data;
|
||||
|
||||
|
@ -329,7 +331,8 @@ export class CoreUserProvider {
|
|||
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||
const data = { name };
|
||||
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) => {
|
||||
|
|
|
@ -16,7 +16,7 @@ import { Injectable } from '@angular/core';
|
|||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { CoreSitesProvider } from './sites';
|
||||
import { CoreCoursesProvider } from '@core/courses/providers/courses';
|
||||
import { CoreSiteWSPreSets } from '@classes/site';
|
||||
import { CoreSite, CoreSiteWSPreSets } from '@classes/site';
|
||||
|
||||
/**
|
||||
* Group info for an activity.
|
||||
|
@ -89,7 +89,8 @@ export class CoreGroupsProvider {
|
|||
userid: userId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getActivityAllowedGroupsCacheKey(cmId, userId)
|
||||
cacheKey: this.getActivityAllowedGroupsCacheKey(cmId, userId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -196,7 +197,8 @@ export class CoreGroupsProvider {
|
|||
cmid: cmId
|
||||
},
|
||||
preSets: CoreSiteWSPreSets = {
|
||||
cacheKey: this.getActivityGroupModeCacheKey(cmId)
|
||||
cacheKey: this.getActivityGroupModeCacheKey(cmId),
|
||||
updateFrequency: CoreSite.FREQUENCY_RARELY
|
||||
};
|
||||
|
||||
if (ignoreCache) {
|
||||
|
@ -283,7 +285,8 @@ export class CoreGroupsProvider {
|
|||
courseid: courseId
|
||||
},
|
||||
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) => {
|
||||
|
|
|
@ -4,6 +4,7 @@ information provided here is intended especially for developers.
|
|||
=== 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.
|
||||
- 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 ===
|
||||
|
||||
|
|
Loading…
Reference in New Issue