MDL-61234 tool_usertours: Wrap library calls in pendingjs
authorAndrew Nicols <andrew@nicols.co.uk>
Fri, 19 Jan 2018 07:06:45 +0000 (15:06 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Fri, 19 Jan 2018 07:06:45 +0000 (15:06 +0800)
admin/tool/usertours/amd/build/usertours.min.js
admin/tool/usertours/amd/src/usertours.js

index efc5448..3caa790 100644 (file)
Binary files a/admin/tool/usertours/amd/build/usertours.min.js and b/admin/tool/usertours/amd/build/usertours.min.js differ
index 044180b..70bd057 100644 (file)
@@ -54,6 +54,7 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
          * @param   {Number}    tourId      The ID of the tour to start.
          */
         fetchTour: function(tourId) {
+            M.util.js_pending('admin_usertour_fetchTour' + tourId);
             $.when(
                 ajax.call([
                     {
@@ -66,10 +67,16 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
                     }
                 ])[0],
                 templates.render('tool_usertours/tourstep', {})
-            ).then(function(response, template) {
-                usertours.startBootstrapTour(tourId, template[0], response.tourconfig);
+            )
+            .then(function(response, template) {
+                return usertours.startBootstrapTour(tourId, template[0], response.tourconfig);
+            })
+            .always(function() {
+                M.util.js_complete('admin_usertour_fetchTour' + tourId);
+
                 return;
-            }).fail(notification.exception);
+            })
+            .fail(notification.exception);
         },
 
         /**
@@ -79,6 +86,8 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
          */
         addResetLink: function() {
             var ele;
+            M.util.js_pending('admin_usertour_addResetLink');
+
             // Append the link to the most suitable place on the page
             // with fallback to legacy selectors and finally the body
             // if there is no better place.
@@ -92,9 +101,17 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
                 ele = $('body');
             }
             templates.render('tool_usertours/resettour', {})
-                .done(function(html, js) {
-                    templates.appendNodeContents(ele, html, js);
-                });
+            .then(function(html, js) {
+                templates.appendNodeContents(ele, html, js);
+
+                return;
+            })
+            .always(function() {
+                M.util.js_complete('admin_usertour_addResetLink');
+
+                return;
+            })
+            .fail();
         },
 
         /**
@@ -104,6 +121,7 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
          * @param   {Number}    tourId      The ID of the tour to start.
          * @param   {String}    template    The template to use.
          * @param   {Object}    tourConfig  The tour configuration.
+         * @return  {Object}
          */
         startBootstrapTour: function(tourId, template, tourConfig) {
             if (usertours.currentTour) {
@@ -147,7 +165,7 @@ function(ajax, BootstrapTour, $, templates, str, log, notification) {
             });
 
             usertours.currentTour = new BootstrapTour(tourConfig);
-            usertours.currentTour.startTour();
+            return usertours.currentTour.startTour();
         },
 
         /**