86 lines
2.7 KiB
JavaScript
86 lines
2.7 KiB
JavaScript
var H5PUpgrades = H5PUpgrades || {};
|
|
|
|
H5PUpgrades['H5P.QuestionSet'] = (function ($) {
|
|
return {
|
|
1: {
|
|
3: function (parameters, finished) {
|
|
for (var i = 0; i < parameters.questions.length; i++) {
|
|
if (parameters.questions[i].subContentId === undefined) {
|
|
// NOTE: We avoid using H5P.createUUID since this is an upgrade script and H5P function may change in the
|
|
// future
|
|
parameters.questions[i].subContentId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(char) {
|
|
var random = Math.random()*16|0, newChar = char === 'x' ? random : (random&0x3|0x8);
|
|
return newChar.toString(16);
|
|
});
|
|
}
|
|
}
|
|
finished(null, parameters);
|
|
},
|
|
|
|
/**
|
|
* Asynchronous content upgrade hook.
|
|
* Upgrades content parameters to support IV 1.7.
|
|
*
|
|
* Groups all UI text strings to make them eaiser to translate and handle.
|
|
*
|
|
* @params {Object} parameters
|
|
* @params {function} finished
|
|
*/
|
|
8: function (parameters, finished) {
|
|
|
|
if (parameters.override) {
|
|
if (parameters.override.overrideButtons) {
|
|
// Set new variables
|
|
parameters.override.showSolutionButton =
|
|
(parameters.override.overrideShowSolutionButton ? 'on' : 'off');
|
|
parameters.override.retryButton =
|
|
(parameters.override.overrideRetry ? 'on' : 'off');
|
|
}
|
|
|
|
// Remove old field variables
|
|
delete parameters.override.overrideButtons;
|
|
delete parameters.override.overrideShowSolutionButton;
|
|
delete parameters.override.overrideRetry;
|
|
}
|
|
|
|
// Move copyright dialog question label
|
|
if (parameters.questionLabel) {
|
|
parameters.texts = parameters.texts || {};
|
|
parameters.texts.questionLabel = parameters.questionLabel;
|
|
}
|
|
|
|
// Remove old copyright dialog question label
|
|
delete parameters.questionLabel;
|
|
|
|
finished(null, parameters);
|
|
},
|
|
|
|
/**
|
|
* Asynchronous content upgrade hook.
|
|
*
|
|
* Upgrade params to support overall feedback
|
|
*
|
|
* @param {Object} parameters
|
|
* @param {function} finished
|
|
*/
|
|
13: function (parameters, finished) {
|
|
|
|
parameters.endGame = parameters.endGame || {};
|
|
parameters.endGame.overallFeedback = [];
|
|
|
|
if (parameters.endGame.scoreString) {
|
|
parameters.endGame.overallFeedback.push({
|
|
from: 0,
|
|
to: 100,
|
|
feedback: parameters.endGame.scoreString
|
|
});
|
|
|
|
delete parameters.endGame.scoreString;
|
|
}
|
|
|
|
finished(null, parameters);
|
|
}
|
|
}
|
|
};
|
|
})(H5P.jQuery);
|