diff --git a/www/addons/mod_book/services/handlers.js b/www/addons/mod_book/services/handlers.js index 0a9a18790d1..5179858c6a8 100644 --- a/www/addons/mod_book/services/handlers.js +++ b/www/addons/mod_book/services/handlers.js @@ -87,7 +87,7 @@ angular.module('mm.addons.mod_book') $scope.title = module.name; $scope.icon = $mmCourse.getModuleIconSrc('book'); $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_folder/services/handlers.js b/www/addons/mod_folder/services/handlers.js index 178c8856a1c..15bfda1cb82 100644 --- a/www/addons/mod_folder/services/handlers.js +++ b/www/addons/mod_folder/services/handlers.js @@ -93,7 +93,7 @@ angular.module('mm.addons.mod_folder') $scope.icon = $mmCourse.getModuleIconSrc('folder'); $scope.title = module.name; $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_imscp/services/handlers.js b/www/addons/mod_imscp/services/handlers.js index 315fd3cd8dc..ba0e9620e91 100644 --- a/www/addons/mod_imscp/services/handlers.js +++ b/www/addons/mod_imscp/services/handlers.js @@ -93,7 +93,7 @@ angular.module('mm.addons.mod_imscp') $scope.title = module.name; $scope.icon = $mmCourse.getModuleIconSrc('imscp'); $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_page/services/handlers.js b/www/addons/mod_page/services/handlers.js index 1f588587b3f..b1e20366513 100644 --- a/www/addons/mod_page/services/handlers.js +++ b/www/addons/mod_page/services/handlers.js @@ -87,7 +87,7 @@ angular.module('mm.addons.mod_page') $scope.title = module.name; $scope.icon = $mmCourse.getModuleIconSrc('page'); $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_resource/services/handlers.js b/www/addons/mod_resource/services/handlers.js index 847993f08cd..520eab31b91 100644 --- a/www/addons/mod_resource/services/handlers.js +++ b/www/addons/mod_resource/services/handlers.js @@ -98,7 +98,7 @@ angular.module('mm.addons.mod_resource') $scope.icon = $mmCourse.getModuleIconSrc('resource'); } $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_scorm/services/handlers.js b/www/addons/mod_scorm/services/handlers.js index a2824ea7652..694e74be2be 100644 --- a/www/addons/mod_scorm/services/handlers.js +++ b/www/addons/mod_scorm/services/handlers.js @@ -74,7 +74,7 @@ angular.module('mm.addons.mod_scorm') $scope.icon = $mmCourse.getModuleIconSrc('scorm'); $scope.title = module.name; $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/addons/mod_wiki/services/handlers.js b/www/addons/mod_wiki/services/handlers.js index 18c207b89b6..8d6c9da1fce 100644 --- a/www/addons/mod_wiki/services/handlers.js +++ b/www/addons/mod_wiki/services/handlers.js @@ -85,7 +85,7 @@ angular.module('mm.addons.mod_wiki') $scope.title = module.name; $scope.icon = $mmCourse.getModuleIconSrc('wiki'); $scope.buttons = [downloadBtn, refreshBtn]; - $scope.spinner = false; + $scope.spinner = true; // Show spinner while calculating status. $scope.action = function(e) { if (e) { diff --git a/www/core/components/course/controllers/sections.js b/www/core/components/course/controllers/sections.js index 0d4094cb7e7..cdd3be1abba 100644 --- a/www/core/components/course/controllers/sections.js +++ b/www/core/components/course/controllers/sections.js @@ -155,8 +155,11 @@ angular.module('mm.core.course') e.preventDefault(); e.stopPropagation(); + section.isCalculating = true; $mmCourseHelper.confirmDownloadSize(courseId, section, $scope.sections).then(function() { prefetch(section, true); + }).finally(function() { + section.isCalculating = false; }); }; diff --git a/www/core/components/course/services/helper.js b/www/core/components/course/services/helper.js index ed419e32142..6932a76e799 100644 --- a/www/core/components/course/services/helper.js +++ b/www/core/components/course/services/helper.js @@ -107,12 +107,16 @@ angular.module('mm.core.course') if (section.id === mmCoreCourseAllSectionsId) { // "All sections" section status is calculated using the status of the rest of sections. allsectionssection = section; + section.isCalculating = true; } else { + section.isCalculating = true; statuspromises.push(self.calculateSectionStatus(section, courseid, restoreDownloads, refresh, downloadpromises) .then(function(result) { // Calculate "All sections" status. allsectionsstatus = $mmFilepool.determinePackagesStatus(allsectionsstatus, result.status); + }).finally(function() { + section.isCalculating = false; })); } }); @@ -125,6 +129,10 @@ angular.module('mm.core.course') allsectionssection.isDownloading = allsectionsstatus === mmCoreDownloading; } return downloadpromises; + }).finally(function() { + if (allsectionssection) { + allsectionssection.isCalculating = false; + } }); }; diff --git a/www/core/components/course/templates/sections.html b/www/core/components/course/templates/sections.html index ed6bce2dba8..b3eb9f0e5b0 100644 --- a/www/core/components/course/templates/sections.html +++ b/www/core/components/course/templates/sections.html @@ -9,14 +9,14 @@ {{section.name}} - - - + {{section.count}} / {{section.total}}