Skip to content

Commit 3fab7f5

Browse files
committed
MOBILE-2178 database: Prefetch getFields WS call
1 parent 253e957 commit 3fab7f5

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

www/addons/mod/data/services/data.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -829,11 +829,13 @@ angular.module('mm.addons.mod_data')
829829
* @module mm.addons.mod_data
830830
* @ngdoc method
831831
* @name $mmaModData#getFields
832-
* @param {Number} dataId Data ID.
833-
* @param {String} [siteId] Site ID. If not defined, current site.
834-
* @return {Promise} Promise resolved when the database is retrieved.
832+
* @param {Number} dataId Data ID.
833+
* @param {Boolean} [forceCache] True to always get the value from cache, false otherwise. Default false.
834+
* @param {Boolean} [ignoreCache] True if it should ignore cached data (it will always fail in offline or server down).
835+
* @param {String} [siteId] Site ID. If not defined, current site.
836+
* @return {Promise} Promise resolved when the fields are retrieved.
835837
*/
836-
self.getFields = function(dataId, siteId) {
838+
self.getFields = function(dataId, forceCache, ignoreCache, siteId) {
837839
return $mmSitesManager.getSite(siteId).then(function(site) {
838840
var params = {
839841
databaseid: dataId
@@ -842,6 +844,13 @@ angular.module('mm.addons.mod_data')
842844
cacheKey: getFieldsCacheKey(dataId)
843845
};
844846

847+
if (forceCache) {
848+
preSets.omitExpires = true;
849+
} else if (ignoreCache) {
850+
preSets.getFromCache = 0;
851+
preSets.emergencyCache = 0;
852+
}
853+
845854
return site.read('mod_data_get_fields', params, preSets).then(function(response) {
846855
if (response && response.fields) {
847856
return response.fields;

www/addons/mod/data/services/prefetch_handler.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,8 @@ angular.module('mm.addons.mod_data')
323323
var database = info.database,
324324
promises = [];
325325

326+
promises.push($mmaModData.getFields(database.id, false, true, siteId));
327+
326328
promises.push($mmFilepool.addFilesToQueueByUrl(siteId, info.files, self.component, module.id));
327329

328330
angular.forEach(info.groups, function(group) {

0 commit comments

Comments
 (0)