function html2json() { // console.clear(); $.fn.getTextQuestion = function(element_id) { var questionTitle = document.getElementById('textQuestionName_' + element_id).querySelector('.ql-editor').innerHTML; var marks = document.getElementById('Text_Question_Marks_Id_' + element_id).value; var questionUUID = document.getElementById('Text_Question_UUID_ID_' + element_id).value; var isMathEnabled = document.getElementById('math_' + element_id).checked; var displayMarks = document.getElementById('Text_Question_Display_Marks_Id_' + element_id).checked; var questionSubTitle = ""; if(isMathEnabled == true) { questionSubTitle = document.getElementById('textQuestionSubtitle_math_' + element_id).value; } else { questionSubTitle = document.getElementById('textQuestionSubtitle_' + element_id).querySelector('.ql-editor').innerHTML; } var questionType = document.getElementById('question_type_' + element_id).value; // console.log(questionType); var questionSubType = document.getElementById('longAnswer_' + element_id).checked; return { "question": questionTitle, "question_description": questionSubTitle, "question_type": questionType, "question_sub_type": questionSubType, "is_math_enabled": isMathEnabled, "display_marks": displayMarks, "marks":marks, "text_question_uuid":questionUUID, } } $.fn.getChoiceQuestion = function(element_id) { var questionTitle = document.getElementById('textQuestionName_' + element_id).querySelector('.ql-editor').innerHTML; var marks = document.getElementById('Choice_Question_Marks_Id_' + element_id).value; var questionUUID = document.getElementById('Choice_Question_UUID_ID_' + element_id).value; var isMathEnabled = document.getElementById('math_' + element_id).checked; var displayMarks = document.getElementById('Choice_Question_Display_Marks_Id_' + element_id).checked; var questionSubTitle = ""; if(isMathEnabled == true) { questionSubTitle = document.getElementById('textQuestionSubtitle_math_' + element_id).value; } else { questionSubTitle = document.getElementById('textQuestionSubtitle_' + element_id).querySelector('.ql-editor').innerHTML; } var questionType = document.getElementById('question_type_' + element_id).value; // console.log(questionType); var questionSubType = document.getElementById('multipleAnswer_' + element_id).checked; var answers = []; //get choice group //get default choice details var choice_name = ""; if(isMathEnabled == true) { choice_name = document.getElementById('choiceTextField_math_' + element_id).value; } else { choice_name = document.getElementById('choiceTextField_' + element_id).querySelector('.ql-editor').innerHTML; } var choice_description = document.getElementById('commentField_' + element_id).value; var choice_group_fixed_uuid = document.getElementById('Choice_Group_Fixed_UUID_ID_' + element_id).value; // var choice_image = document.getElementById('imageInput_' + element_id).value; answers.push({ "choice_name": choice_name, "choice_description": choice_description, "choice_uuid": choice_group_fixed_uuid, }); // console.log('before group'); //get dynamically added choice detailscolor: #999; var $newlyAddedChoices = $('#addChoiceArea_' + element_id); $newlyAddedChoices.children().each(function(index, element) { var groupChoiceId = ((element.id).split('_').slice(-1)[0]).split('.').slice(0)[0]; var individualChoiceId = (element.id).split('.').slice(-1)[0]; // console.log('newChoiceTextField_'+groupChoiceId+'.'+individualChoiceId); var choice_name = ""; if(isMathEnabled == true) { choice_name = document.getElementById('newchoiceTextField_math_' + groupChoiceId + '.' + individualChoiceId).value; } else { choice_name = document.getElementById('newChoiceTextField_' + groupChoiceId + '.' + individualChoiceId).querySelector('.ql-editor').innerHTML; // console.log('choice_name'); // console.log(choice_name) } // console.log('choice_description id in the html to json script'); var id = document.getElementById('newChoiceCommentField_' + groupChoiceId + '.' + individualChoiceId); // console.log(id); var choice_description = document.getElementById('newChoiceCommentField_' + groupChoiceId + '.' + individualChoiceId).value; var choice_group_dynamic_uuid = document.getElementById('Choice_Group_Dynamic_UUID_ID_' + groupChoiceId + '.' + individualChoiceId).value; // var choice_image = document.getElementById('newChoiceImageInput_' + groupChoiceId + '.' + individualChoiceId).value; answers.push({ "choice_name": choice_name, "choice_description": choice_description, "choice_uuid": choice_group_dynamic_uuid, }); }); return { "question": questionTitle, "question_description": questionSubTitle, "question_type": questionType, "question_sub_type": questionSubType, "is_math_enabled": isMathEnabled, "display_marks": displayMarks, "marks":marks, "choice_question_uuid":questionUUID, "answers": answers } } $.fn.getQuestionsData = function(element_id, type = 'question') // type for single question or group question { // console.log('getQuestionsData - '+element_id); var $questionArea = (type == 'question' ? $('#question_area_' + element_id) : $('#group_question_area_' + element_id)); // console.log('getQuestionsData'); // console.log($questionArea); var questionsArr = []; $questionArea.children("div").each(function(index, element) { var questionRowID = (element.id).split("_").slice(-1)[0]; // console.log('row question' + questionRowID); var question_type = document.getElementById('question_type_' + questionRowID); // check whether current element is single question or question group if (typeof question_type !== null && question_type != undefined) { if (document.getElementById('question_type_' + questionRowID).value == 'text') { //get text type question data var textQuestion = $.fn.getTextQuestion(questionRowID); // console.log('textQuestion') // console.log(textQuestion) questionsArr.push(textQuestion); } else { // console.log('get choice question'); //get choice type question data var getChoiceQuestion = $.fn.getChoiceQuestion(questionRowID); // console.log('getChoiceQuestion'); // console.log(getChoiceQuestion); questionsArr.push(getChoiceQuestion) } } else // handle question group { // console.log('QUESTION GROUP'); // console.log('row question' + questionRowID); var questionGroupData = $.fn.getQuestionQroupData(element); questionsArr.push(questionGroupData) // console.log('questionGroupData'); // console.log(questionGroupData); } }); return questionsArr } $.fn.getQuestionQroupData = function(element) { // console.log('getSectionData'); // console.log(element.id); const rand_id = (element.id).split("_").slice(-1)[0]; // console.log(rand_id); // console.log('section_title_text_'+rand_id); var groupQuestion = {} var group_title = document.getElementById('subSection_title_text_' + rand_id); var group_description = document.getElementById('subSection_description_text_' + rand_id); var group_marks = document.getElementById('Question_Group_Marks_Id_' + rand_id); var group_uuid = document.getElementById('Question_Group_UUID_ID_' + rand_id); var group_display_marks = document.getElementById('Question_Group_Display_Marks_Id_' + rand_id); var group_attempt_any = document.getElementById('Question_Attempt_Any_Id_' + rand_id); groupQuestion['group_title'] = ((typeof group_title !== null && group_title !== 'undefined') ? (group_title !== null ? group_title.querySelector('.ql-editor').innerHTML : null) : null); groupQuestion['group_description'] = ((typeof group_description !== null && group_description !== 'undefined') ? (group_description !== null ? group_description.querySelector('.ql-editor').innerHTML : null) : null); groupQuestion['group_marks'] = ((typeof group_marks !== null && group_marks !== 'undefined') ? (group_marks !== null ? group_marks.value : null) : null); groupQuestion['group_uuid'] = ((typeof group_uuid !== null && group_uuid !== 'undefined') ? (group_uuid !== null ? group_uuid.value : null) : null); groupQuestion['group_display_marks'] = ((typeof group_display_marks !== null && group_display_marks !== 'undefined') ? (group_display_marks !== null ? group_display_marks.checked : null) : null); groupQuestion['group_attempt_any'] = ((typeof group_attempt_any !== null && group_attempt_any !== 'undefined') ? (group_attempt_any !== null ? group_attempt_any.value : null) : null); if (group_title !== null) { var questionsData = $.fn.getQuestionsData(rand_id, 'group'); // console.log('Section Data'); // console.log(questionsData); groupQuestion['questions'] = questionsData; return groupQuestion; } } $.fn.getSectionData = function(element) { // console.log('getSectionData'); // console.log(element.id); const rand_id = (element.id).split("_").slice(-1)[0]; // console.log(rand_id); // console.log('section_title_text_'+rand_id); var section = {} var section_title = document.getElementById('section_title_text_' + rand_id); var section_description = document.getElementById('section_description_text_' + rand_id); var section_marks = document.getElementById('Section_Marks_Id_' + rand_id); var section_uuid = document.getElementById('Section_UUID_ID_' + rand_id); var section_display_marks = document.getElementById('Section_Display_Marks_Id_' + rand_id); var section_attempt_any = document.getElementById('Section_Attempt_Any_Id_' + rand_id); section['section_title'] = ((typeof section_title !== null && section_title !== 'undefined') ? (section_title !== null ? section_title.querySelector('.ql-editor').innerHTML : null) : null); section['section_description'] = ((typeof section_description !== null && section_description !== 'undefined') ? (section_description !== null ? section_description.querySelector('.ql-editor').innerHTML : null) : null); section['section_marks'] = ((typeof section_marks !== null && section_marks !== 'undefined') ? (section_marks !== null ? section_marks.value : null) : null); section['section_uuid'] = ((typeof section_uuid !== null && section_uuid !== 'undefined') ? (section_uuid !== null ? section_uuid.value : null) : null); section['section_display_marks'] = ((typeof section_display_marks !== null && section_display_marks !== 'undefined') ? (section_display_marks !== null ? section_display_marks.checked : null) : null); section['section_attempt_any'] = ((typeof section_attempt_any !== null && section_attempt_any !== 'undefined') ? (section_attempt_any !== null ? section_attempt_any.value : null) : null); if (section_title !== null) { var questionsData = $.fn.getQuestionsData(rand_id); // console.log('Section Data'); // console.log(questionsData); section['questions'] = questionsData; return section; } } var formData = {}; var question_paper_title = document.getElementById('Question_title').querySelector('.ql-editor').innerHTML; var question_paper_description = document.getElementById('Question_description').querySelector('.ql-editor').innerHTML; var max_marks = document.getElementById('Max_Marks').value; var course_ID = document.getElementById('Course_ID').value; var course_Code = document.getElementById('Course_Code').value; var subject_ID = document.getElementById('Subject_ID').value; var subject_Code = document.getElementById('Subject_Code').value; var paper_No = document.getElementById('Paper_No').value; var subject_Name = document.getElementById('Subject_Name').value; var sub_Paper_Prefix = document.getElementById('Sub_Paper_Prefix').value; var question_Paper_UUID = document.getElementById('QuestionPaper_UUID_ID').value; formData['question_paper_title'] = question_paper_title; formData['question_paper_description'] = question_paper_description; formData['max_marks'] = max_marks; formData['course_ID'] = course_ID; formData['course_Code'] = course_Code; formData['subject_ID'] = subject_ID; formData['subject_Code'] = subject_Code; formData['paper_No'] = paper_No; formData['subject_Name'] = subject_Name; formData['sub_Paper_Prefix'] = sub_Paper_Prefix; formData['question_Paper_uuid'] = question_Paper_UUID; formData['sections'] = []; // console.log(formData); // return False; var $parentSectionElement = $("#addNewSection"); $parentSectionElement.find(".section").each(function(index, element) { // console.log(element); // if(index == 2){return false;} var sectionData = $.fn.getSectionData(element); // console.log(sectionData); if (sectionData !== null && sectionData !== undefined) { formData['sections'].push(sectionData); } }); // console.log((formData)); // console.log(JSON.stringify(formData, null, 1)); localStorage.setItem("json", JSON.stringify((formData))); // console.log(JSON.stringify(formData)); // console.log(OBJtoXML(({'question_paper' : formData}))); }