238 lines
6.4 KiB
JavaScript
238 lines
6.4 KiB
JavaScript
function markCalculation() {
|
|
|
|
console.clear();
|
|
|
|
// Get jsonData from the Localstorage
|
|
var jsonString = localStorage.getItem('JSON_FOR_NAV');
|
|
console.log('jsonData markCalculation');
|
|
const jsonData = JSON.parse(jsonString);
|
|
console.log(jsonData);
|
|
|
|
|
|
//Section Level foreach
|
|
jsonData.sections.forEach(function(section, index) {
|
|
|
|
const random_no = Date.now();
|
|
var sectionMarks = section.section_marks;
|
|
var sectionAttemptAny = section.section_attempt_any;
|
|
var section_id = section.section_id;
|
|
|
|
console.log('sectionMarks : ' + sectionMarks);
|
|
console.log('sectionAttemptAny : ' + sectionAttemptAny);
|
|
console.log('section_id : ' + section_id);
|
|
|
|
//send a object for generateSingleQuestions() function using foreach and mark calc
|
|
var QuestionObjects = {
|
|
|
|
'sectionData': section,
|
|
'sectionRandomNo': random_no,
|
|
'sectionMarks': sectionMarks,
|
|
'sectionAttemptAny': sectionAttemptAny,
|
|
}
|
|
|
|
// generateSingleQuestions(section,random_no);
|
|
generateSingleQuestions(QuestionObjects);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//Function for Question Level foreach
|
|
// function generateSingleQuestions(section, random_no)
|
|
function generateSingleQuestions(QuestionObjects)
|
|
{
|
|
//set default value for reciveing questionObjects
|
|
var section = false;
|
|
var random_no = false;
|
|
|
|
//end of set default value for reciveing questionObjects
|
|
|
|
|
|
//set values from QuestionObjects param if exists
|
|
|
|
if(QuestionObjects.hasOwnProperty('sectionData'))
|
|
{
|
|
section = QuestionObjects.sectionData;
|
|
}
|
|
else if(QuestionObjects.hasOwnProperty('sectionRandomNo'))
|
|
{
|
|
random_no = QuestionObjects.sectionRandomNo;
|
|
}
|
|
|
|
//end of set values from QuestionObjects param if exists
|
|
|
|
|
|
section.questions.forEach(function(Question, index) {
|
|
|
|
const questionRandomNo = Date.now();
|
|
var questionTypeFormets = "";
|
|
if(Question.question_type)
|
|
{
|
|
questionTypeFormets = Question.question_type;
|
|
}
|
|
else
|
|
{
|
|
questionTypeFormets ='question_group';
|
|
}
|
|
|
|
//Questions Variables
|
|
var questionType = questionTypeFormets;
|
|
var questionMarks = Question.marks;
|
|
var question_Id = Question.question_Id;
|
|
|
|
// section mark divided by section attempt any
|
|
|
|
var sectionMarks = QuestionObjects.sectionMarks;
|
|
var sectionAttemptAny = QuestionObjects.sectionAttemptAny;
|
|
var sectionMarkDivideVale = sectionMarks / sectionAttemptAny;
|
|
|
|
//end of section mark divided by section attempt any
|
|
|
|
|
|
var questionAreaId = 'question_area_'+random_no;
|
|
if(questionType == 'text')
|
|
{
|
|
//this part for Text question only
|
|
var addTextQuestionId = question_Id.split("_")[1];
|
|
var textQuestionMarkField = document.getElementById('Text_Question_Marks_Id_'+ addTextQuestionId);
|
|
|
|
if(QuestionObjects.sectionAttemptAny !== "")
|
|
{
|
|
textQuestionMarkField.value = sectionMarkDivideVale;
|
|
}
|
|
else
|
|
{
|
|
textQuestionMarkField.value = "";
|
|
}
|
|
|
|
}
|
|
else if (questionType == 'group')
|
|
{
|
|
//this part for Choice question only
|
|
var addChoiceAreaId = question_Id.split("_")[1];
|
|
var choiceQuestionMarkField = document.getElementById('Choice_Question_Marks_Id_' + addChoiceAreaId);
|
|
|
|
if(QuestionObjects.sectionAttemptAny !== "")
|
|
{
|
|
console.log(choiceQuestionMarkField);
|
|
choiceQuestionMarkField.value = sectionMarkDivideVale;
|
|
choiceQuestionMarkField.disable = true;
|
|
|
|
}
|
|
else
|
|
{
|
|
choiceQuestionMarkField.value = "";
|
|
}
|
|
|
|
|
|
}
|
|
else if (questionType == 'question_group')
|
|
{
|
|
|
|
//the objects contain QuestionGroup Data for send generateGroupQuestion()
|
|
var QuestionGroupObjects = {
|
|
|
|
'questionGroupData': Question,
|
|
'sectionMarks': sectionMarkDivideVale,
|
|
'sectionAttemptAny': QuestionObjects.sectionAttemptAny,
|
|
|
|
}
|
|
|
|
generateGroupQuestion(QuestionGroupObjects); //function for forEach QuestionGroups and Questions
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// function for QuestionGroups and QuestionGroup questions Level Foreach
|
|
// function generateGroupQuestion(Question, questionRandomNo)
|
|
function generateGroupQuestion(QuestionGroupObjects)
|
|
{
|
|
|
|
|
|
//set default value for reciveing questionObjects
|
|
var Question = false;
|
|
|
|
//end of set default value for reciveing questionObjects
|
|
|
|
|
|
//set values from QuestionObjects param if exists
|
|
|
|
if(QuestionGroupObjects.hasOwnProperty('questionGroupData'))
|
|
{
|
|
Question = QuestionGroupObjects.questionGroupData;
|
|
}
|
|
|
|
//end of set values from QuestionObjects param if exists
|
|
|
|
|
|
//QuestionGroup Variables
|
|
var group_marks = Question.group_marks;
|
|
var group_attempt_any = Question.group_attempt_any;
|
|
var question_group_id = Question.question_group_id;
|
|
|
|
console.log(question_group_id);
|
|
|
|
|
|
var QuestionGroup_ID = question_group_id.split("_")[3];
|
|
var Question_Group_Marks_Field = document.getElementById('Question_Group_Marks_Id_' + QuestionGroup_ID);
|
|
console.log(Question_Group_Marks_Field);
|
|
|
|
if(QuestionGroupObjects.sectionAttemptAny !== "")
|
|
{
|
|
// alert(QuestionGroupObjects.sectionMarks)
|
|
Question_Group_Marks_Field.value = QuestionGroupObjects.sectionMarks;
|
|
|
|
}
|
|
else
|
|
{
|
|
Question_Group_Marks_Field.value = "";
|
|
}
|
|
|
|
|
|
console.log('group_marks : ' + group_marks);
|
|
console.log('group_attempt_any : ' + group_attempt_any);
|
|
console.log('question_group_id : ' + question_group_id);
|
|
|
|
// QuestionGroup question Level Foreach
|
|
Question.questions.forEach(function(GroupQuestions, index) {
|
|
|
|
const QuestionGroupRandomNo = Date.now();
|
|
|
|
//QuestionGroup Questions Variables
|
|
var group_question_Type = GroupQuestions.question_type;
|
|
var group_question_marks = GroupQuestions.marks;
|
|
var group_question_id = GroupQuestions.question_Id;
|
|
|
|
// var questionGroupId = 'group_question_area_'+questionRandomNo;
|
|
|
|
if(group_question_Type == 'text')
|
|
{
|
|
console.log('group_question_Type : ' + group_question_Type);
|
|
console.log('group_question_marks : ' + group_question_marks);
|
|
console.log('group_question_id : ' + group_question_id);
|
|
}
|
|
else if(group_question_Type == 'group')
|
|
{
|
|
console.log('group_question_Type : ' + group_question_Type);
|
|
console.log('group_question_marks : ' + group_question_marks);
|
|
console.log('group_question_id : ' + group_question_id);
|
|
|
|
}
|
|
else
|
|
{
|
|
generateGroupQuestion(GroupQuestions, questionGroupId, QuestionGroupRandomNo); // function for 4 level QuestionGroup Handle
|
|
}
|
|
|
|
});
|
|
}
|