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 } }); }