File "preloadIntegrity.js"
Full path: /var/www/vhosts/msproyectoscloud.cl/siadrecursos.msproyectoscloud.cl/RECURSOS/recursos.siadspsminsal.cl/Dolor_cronico/M2/scormdriver/preloadIntegrity.js
File size: 3.01 KiB (3079 bytes)
MIME-type: text/plain
Charset: utf-8
function isTrue(val) {
return val && String(val).toLowerCase() === 'true';
}
function verifySuspendDataVersion(maxAttempts) {
var commitDataAndBook;
var launchData;
var manifestCPV;
var resetFlag;
var sentBookCheck;
var sentDataCheck;
var suspendData = GetDataChunk();
var suspendDataCPV;
if (!suspendData) {
return;
}
if (maxAttempts === 0) {
WriteToDebug('WARNING: ERROR WITH CLEARING SUSPEND OR BOOKMARKING DATA!');
WriteToDebug('NO MORE ATTEMPTS LEFT. COURSE BEHAVIOR MAY BE NEGATIVELY IMPACTED.');
return;
}
try {
launchData = JSON.parse(atob(GetLaunchData()));
} catch (e) {
WriteToDebug('WARNING: Issue with obtaining manifest launch data. Version reset behavior disabled.');
return;
}
try {
suspendData = JSON.parse(suspendData);
} catch (e) {
WriteToDebug('WARNING: Unable to parse suspend data. Version reset behavior disabled.');
return;
}
manifestCPV = launchData.cpv;
resetFlag = launchData.rld;
suspendDataCPV = suspendData.cpv;
if (suspendDataCPV !== manifestCPV) {
WriteToDebug('WARNING: Suspend data version mismatch against manifest version.');
if (resetFlag) {
if (reviewModeIsReadOnly() && GetLessonMode() === 3) {
WriteToDebug('WARNING: Course is in review mode. Unable to clear suspend and bookmarking data!');
WriteToDebug('Resetting of learner data will not occur. Course behavior may be negatively impacted.');
return;
}
WriteToDebug('Okay to clear data. Now clearing suspend and bookmarking data...');
sentDataCheck = SetDataChunk("");
WriteToDebug('Suspend Data Cleared: ' + sentDataCheck );
sentBookCheck = SetBookmark("");
WriteToDebug('Bookmark Data Cleared: ' + sentBookCheck );
commitDataAndBook = CommitData();
WriteToDebug('Data Commited: ' + commitDataAndBook );
if (isTrue(sentDataCheck) && isTrue(sentBookCheck) && isTrue(commitDataAndBook)) {
WriteToDebug('Verified that all bookmarking and suspend data have been cleared. Data commited successfully.');
} else {
WriteToDebug('WARNING: ERROR WITH CLEARING SUSPEND OR BOOKMARKING DATA! RETRY ATTEMPTS LEFT: ' + (maxAttempts-1));
verifySuspendDataVersion(maxAttempts-1);
}
} else {
WriteToDebug('WARNING: Course reset flag not turned on. Resetting of learner data will not occur.');
WriteToDebug('Course behavior may be negatively impacted.');
}
}
}
function verifyForcedCommitTime() {
if (FORCED_COMMIT_TIME >= 5000) {
WriteToDebug('Starting Forced Commit heartbeat...');
var intervalID = setInterval(commitHeartbeat, FORCED_COMMIT_TIME);
} else {
WriteToDebug('Forced Commit Time cannot be lower than 5000 milliseconds. Not using forced commit time.');
}
}
function commitHeartbeat() {
WriteToDebug('Forced Commit heartbeat triggered. Now saving current session time...');
SetSessionTime(GetSessionAccumulatedTime());
WriteToDebug('Forced Commit heartbeat trigger is now triggering a commit...');
CommitData();
}