@@ -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 ;
0 commit comments