|
@@ -15,6 +15,19 @@ var _debug = false;
|
|
|
var findAPITries = 0;
|
|
|
var _apiHandle = null; //private variable
|
|
|
var errMsgLocate = "Unable to locate the LMS's API implementation";
|
|
|
+
|
|
|
+var _NoError = 0;
|
|
|
+var _GeneralException = 101;
|
|
|
+var _ServerBusy = 102;
|
|
|
+var _InvalidArgumentError = 201;
|
|
|
+var _ElementCannotHaveChildren = 202;
|
|
|
+var _ElementIsNotAnArray = 203;
|
|
|
+var _NotInitialized = 301;
|
|
|
+var _NotImplementedError = 401;
|
|
|
+var _InvalidSetValue = 402;
|
|
|
+var _ElementIsReadOnly = 403;
|
|
|
+var _ElementIsWriteOnly = 404;
|
|
|
+var _IncorrectDataType = 405;
|
|
|
/**
|
|
|
* Gets the API handle right into the local API object and ensure there is only one.
|
|
|
* Using the singleton pattern to ensure there's only one API object.
|
|
@@ -400,25 +413,24 @@ var questions_types = new Array();
|
|
|
*/
|
|
|
function checkAnswers(interrupted)
|
|
|
{
|
|
|
- alert('Test');
|
|
|
var tmpScore = 0;
|
|
|
+ var status = 'not attempted';
|
|
|
for(var i=0; i<questions_types.length;i++)
|
|
|
{
|
|
|
var idQuestion = questions[i];
|
|
|
- alert('Question'+idQuestion);
|
|
|
var type = questions_types[idQuestion];
|
|
|
var interactionScore = 0;
|
|
|
- var interactionAnswer = '';
|
|
|
+ var interactionAnswers = '';
|
|
|
+ var interactionCorrectResponses = '';
|
|
|
if (type == 'mcma')
|
|
|
{
|
|
|
var myScore = 0;
|
|
|
- for(var j=0; j<questions_answers[idQuestion];j++)
|
|
|
+ for(var j=0; j<questions_answers[idQuestion].length;j++)
|
|
|
{
|
|
|
var idAnswer = questions_answers[idQuestion][j];
|
|
|
var answer = document.getElementById('question_'+(idQuestion)+'_multiple_'+(idAnswer));
|
|
|
if(answer.checked.value == 'checked')
|
|
|
{
|
|
|
- alert(idQuestion+'_'+idAnswer+' was selected');
|
|
|
myScore += questions_answers_correct[idQuestion][idAnswer];
|
|
|
}
|
|
|
}
|
|
@@ -428,7 +440,7 @@ function checkAnswers(interrupted)
|
|
|
else if(type == 'mcua')
|
|
|
{
|
|
|
var myScore = 0;
|
|
|
- for(var j=0; j<questions_answers[idQuestion];j++)
|
|
|
+ for(var j=0; j<questions_answers[idQuestion].length;j++)
|
|
|
{
|
|
|
var idAnswer = questions_answers[idQuestion][j];
|
|
|
var answer = document.getElementById('question_'+(idQuestion)+'_unique_'+(idAnswer));
|
|
@@ -443,7 +455,7 @@ function checkAnswers(interrupted)
|
|
|
else if(type == 'tf')
|
|
|
{
|
|
|
var myScore = 0;
|
|
|
- for(var j=0; j<questions_answers[idQuestion];j++)
|
|
|
+ for(var j=0; j<questions_answers[idQuestion].length;j++)
|
|
|
{
|
|
|
var idAnswer = questions_answers[idQuestion][j];
|
|
|
var answer = document.getElementById('question_'+(idQuestion)+'_tf_'+(idAnswer));
|
|
@@ -458,7 +470,7 @@ function checkAnswers(interrupted)
|
|
|
else if(type == 'fib')
|
|
|
{
|
|
|
var myScore = 0;
|
|
|
- for(var j=0; j<questions_answers[idQuestion];j++)
|
|
|
+ for(var j=0; j<questions_answers[idQuestion].length;j++)
|
|
|
{
|
|
|
var idAnswer = questions_answers[idQuestion][j];
|
|
|
var answer = document.getElementById('question_'+(idQuestion)+'_fib_'+(idAnswer));
|
|
@@ -488,7 +500,7 @@ function checkAnswers(interrupted)
|
|
|
//
|
|
|
}
|
|
|
var interactionCorrectResponses = '';
|
|
|
- for(var i=0; i<questions_answers_correct.length();i++)
|
|
|
+ for(var i=0; i<questions_answers_correct.length;i++)
|
|
|
{
|
|
|
interactionCorrectResponses += questions_answers_correct[i];
|
|
|
}
|
|
@@ -496,11 +508,24 @@ function checkAnswers(interrupted)
|
|
|
doLMSSetValue('cmi.core.interactions.'+idQuestion+'.result',interactionScore);
|
|
|
doLMSSetValue('cmi.core.interactions.'+idQuestion+'.type',type);
|
|
|
doLMSSetValue('cmi.core.interactions.'+idQuestion+'.student_response',interactionAnswers);
|
|
|
- doLMSSetValue('cmi.core.interactions.'+idQuestion+'.correct_responses',interactionCorrectRespnoses);
|
|
|
+ doLMSSetValue('cmi.core.interactions.'+idQuestion+'.correct_responses',interactionCorrectResponses);
|
|
|
}
|
|
|
- LMSSetValue('cmi.core.score_raw',tmpScore);
|
|
|
+ doLMSSetValue('cmi.core.score.raw',tmpScore);
|
|
|
//get status
|
|
|
- LMSSetValue('cmi.core.lesson_status','completed');
|
|
|
+ var mastery_score = doLMSGetValue('cmi.student_data.mastery_score');
|
|
|
+ if(mastery_score <= 0)
|
|
|
+ {
|
|
|
+ mastery_score = 80;
|
|
|
+ }
|
|
|
+ if(tmpScore > mastery_score)
|
|
|
+ {
|
|
|
+ status = 'passed';
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ status = 'failed';
|
|
|
+ }
|
|
|
+ doLMSSetValue('cmi.core.lesson_status',status);
|
|
|
|
|
|
if((interrupted==true) && (status != 'completed') && (status != 'passed'))
|
|
|
{
|