Skip to content

Commit 969c927

Browse files
committed
Merge pull request #389 from dpalou/MOBILE-1427
MOBILE-1427 scorm: Fix download error if view was cached
2 parents 26780e4 + 0970a84 commit 969c927

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

www/addons/mod_scorm/services/handlers.js

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ angular.module('mm.addons.mod_scorm')
2323
*/
2424
.factory('$mmaModScormHandlers', function($mmCourse, $mmaModScorm, $mmEvents, $state, $mmSite, $mmaModScormHelper,
2525
$mmCoursePrefetchDelegate, mmCoreDownloading, mmCoreNotDownloaded, mmCoreOutdated, mmCoreEventPackageStatusChanged,
26-
mmaModScormComponent, $q, $mmContentLinksHelper) {
26+
mmaModScormComponent, $q, $mmContentLinksHelper, $mmUtil) {
2727
var self = {};
2828

2929
/**
@@ -90,12 +90,26 @@ angular.module('mm.addons.mod_scorm')
9090
timemodified = 0;
9191

9292
function download() {
93-
$mmaModScormHelper.confirmDownload(scorm).then(function() {
94-
$mmaModScorm.prefetch(scorm).catch(function() {
95-
if (!$scope.$$destroyed) {
96-
$mmaModScormHelper.showDownloadError(scorm);
97-
}
93+
// We need to call getScorm again, the package might have been updated.
94+
$scope.spinner = true; // Show spinner since this operation might take a while.
95+
$mmaModScorm.getScorm(courseid, module.id, module.url).then(function(scorm) {
96+
$mmaModScormHelper.confirmDownload(scorm).then(function() {
97+
$mmaModScorm.prefetch(scorm).catch(function() {
98+
if (!$scope.$$destroyed) {
99+
$mmaModScormHelper.showDownloadError(scorm);
100+
}
101+
});
102+
}).catch(function() {
103+
// User hasn't confirmed, stop spinner.
104+
$scope.spinner = false;
98105
});
106+
}).catch(function(error) {
107+
$scope.spinner = false;
108+
if (error) {
109+
$mmUtil.showErrorModal(error);
110+
} else {
111+
$mmaModScormHelper.showDownloadError(scorm);
112+
}
99113
});
100114
}
101115

0 commit comments

Comments
 (0)