Adding setting to always commit total_time, listeners for commit requests

This commit is contained in:
Jonathan Putney
2020-08-14 15:40:29 -04:00
parent e9fee3c258
commit 4582d733af
7 changed files with 33 additions and 14 deletions

View File

@@ -27,6 +27,7 @@ export default class BaseAPI {
autoProgress: false,
logLevel: global_constants.LOG_LEVEL_ERROR,
selfReportSessionTime: false,
alwaysSendTotalTime: false,
responseHandler: function(xhr) {
let result;
if (typeof xhr !== 'undefined') {
@@ -1065,7 +1066,13 @@ export default class BaseAPI {
errorCode: 0,
};
} else {
return process(url, params, this.settings, this.error_codes);
const result = process(url, params, this.settings, this.error_codes);
if (result.errorCode === 0) {
this.processListeners('CommitSuccess');
} else {
this.processListeners('CommitError');
}
return result;
}
}

View File

@@ -294,7 +294,8 @@ export default class Scorm12API extends BaseAPI {
}
}
const commitObject = this.renderCommitCMI(terminateCommit);
const commitObject = this.renderCommitCMI(terminateCommit ||
this.settings.alwaysSendTotalTime);
if (this.settings.lmsCommitUrl) {
if (this.apiLogLevel === global_constants.LOG_LEVEL_DEBUG) {
@@ -302,7 +303,8 @@ export default class Scorm12API extends BaseAPI {
(terminateCommit ? 'yes' : 'no') + '): ');
console.debug(commitObject);
}
return this.processHttpRequest(this.settings.lmsCommitUrl, commitObject, terminateCommit);
return this.processHttpRequest(this.settings.lmsCommitUrl, commitObject,
terminateCommit);
} else {
console.log('Commit (terminated: ' +
(terminateCommit ? 'yes' : 'no') + '): ');

View File

@@ -547,7 +547,8 @@ export default class Scorm2004API extends BaseAPI {
navRequest = true;
}
const commitObject = this.renderCommitCMI(terminateCommit);
const commitObject = this.renderCommitCMI(terminateCommit ||
this.settings.alwaysSendTotalTime);
if (this.settings.lmsCommitUrl) {
if (this.apiLogLevel === global_constants.LOG_LEVEL_DEBUG) {
@@ -561,7 +562,7 @@ export default class Scorm2004API extends BaseAPI {
// check if this is a sequencing call, and then call the necessary JS
{
if (navRequest && result.navRequest !== undefined &&
result.navRequest !== '') {
result.navRequest !== '') {
Function(`"use strict";(() => { ${result.navRequest} })()`)();
}
}