Merge branch 'release' of github.com:h5p/h5p-php-library into release
commit
510016b1cc
|
@ -95,7 +95,8 @@ H5P.EventDispatcher.prototype.triggerXAPIScored = function (score, maxScore, ver
|
||||||
H5P.EventDispatcher.prototype.setActivityStarted = function() {
|
H5P.EventDispatcher.prototype.setActivityStarted = function() {
|
||||||
if (this.activityStartTime === undefined) {
|
if (this.activityStartTime === undefined) {
|
||||||
// Don't trigger xAPI events in the editor
|
// Don't trigger xAPI events in the editor
|
||||||
if (H5PIntegration.contents !== undefined &&
|
if (this.contentId !== undefined &&
|
||||||
|
H5PIntegration.contents !== undefined &&
|
||||||
H5PIntegration.contents['cid-' + this.contentId] !== undefined) {
|
H5PIntegration.contents['cid-' + this.contentId] !== undefined) {
|
||||||
this.triggerXAPI('attempted');
|
this.triggerXAPI('attempted');
|
||||||
}
|
}
|
||||||
|
|
15
js/h5p.js
15
js/h5p.js
|
@ -1953,8 +1953,14 @@ H5P.createTitle = function (rawTitle, maxLength) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (H5PIntegration.saveFreq !== false) {
|
if (H5PIntegration.saveFreq !== false) {
|
||||||
|
// When was the last state stored
|
||||||
|
var lastStoredOn = 0;
|
||||||
// Store the current state of the H5P when leaving the page.
|
// Store the current state of the H5P when leaving the page.
|
||||||
var storeCurrentState = function () {
|
var storeCurrentState = function () {
|
||||||
|
// Make sure at least 250 ms has passed since last save
|
||||||
|
var currentTime = new Date().getTime();
|
||||||
|
if (currentTime - lastStoredOn > 250) {
|
||||||
|
lastStoredOn = currentTime;
|
||||||
for (var i = 0; i < H5P.instances.length; i++) {
|
for (var i = 0; i < H5P.instances.length; i++) {
|
||||||
var instance = H5P.instances[i];
|
var instance = H5P.instances[i];
|
||||||
if (instance.getCurrentState instanceof Function ||
|
if (instance.getCurrentState instanceof Function ||
|
||||||
|
@ -1966,8 +1972,15 @@ H5P.createTitle = function (rawTitle, maxLength) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
H5P.$window.one('beforeunload unload', storeCurrentState);
|
// iPad does not support beforeunload, therefore using unload
|
||||||
|
H5P.$window.one('beforeunload unload', function () {
|
||||||
|
// Only want to do this once
|
||||||
|
H5P.$window.off('pagehide beforeunload unload');
|
||||||
|
storeCurrentState();
|
||||||
|
});
|
||||||
|
// pagehide is used on iPad when tabs are switched
|
||||||
H5P.$window.on('pagehide', storeCurrentState);
|
H5P.$window.on('pagehide', storeCurrentState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue