MDL-68677 core: Correct usage of templaterev for caching templates
[moodle.git] / lib / amd / src / templates.js
index 8ac79ab..db830df 100644 (file)
@@ -79,11 +79,6 @@ define([
      * @return {Object} jQuery promise resolved with the template source
      */
     var getTemplatePromiseFromCache = function(searchKey) {
-        // Do not cache anything if templaterev is not valid.
-        if (M.cfg.templaterev <= 0) {
-            return null;
-        }
-
         // First try the cache of promises.
         if (searchKey in templatePromises) {
             return templatePromises[searchKey];
@@ -96,6 +91,11 @@ define([
             return templatePromises[searchKey];
         }
 
+        if (M.cfg.templaterev <= 0) {
+            // Template caching is disabled. Do not store in persistent storage.
+            return null;
+        }
+
         // Now try local storage.
         var cached = storage.get('core_template/' + M.cfg.templaterev + ':' + searchKey);
         if (cached) {
@@ -183,7 +183,11 @@ define([
                                 // Cache all of the dependent templates because we'll need them to render
                                 // the requested template.
                                 templateCache[tempSearchKey] = data.value;
-                                storage.set('core_template/' + M.cfg.templaterev + ':' + tempSearchKey, data.value);
+
+                                if (M.cfg.templaterev > 0) {
+                                    // The template cache is enabled - set the value there.
+                                    storage.set('core_template/' + M.cfg.templaterev + ':' + tempSearchKey, data.value);
+                                }
 
                                 if (data.component == component && data.name == name) {
                                     // This is the original template that was requested so remember it to return.