@@ -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