function json2nav() { // console.clear(); $.fn.getTextQuestion = function(element_id) { var questionTitle = document.getElementById('textQuestionName_' + element_id).querySelector('.ql-editor').innerHTML; var textQuestionId = 'textQuestionName_' + element_id; return { "question": questionTitle, "textQuestion_Id":textQuestionId } } $.fn.getChoiceQuestion = function(element_id) { var questionTitle = document.getElementById('textQuestionName_' + element_id).querySelector('.ql-editor').innerHTML; var choiceQuestionId = 'textQuestionName_' + element_id; return { "question": questionTitle, "choice_question_id":choiceQuestionId } } $.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); questionsArr.push(textQuestion); } else { // console.log('get choice question'); //get choice type question data var getChoiceQuestion = $.fn.getChoiceQuestion(questionRowID); questionsArr.push(getChoiceQuestion) } } else // handle question group { // console.log('QUESTION GROUP'); // console.log('row question' + questionRowID); var questionGroupData = $.fn.getQuestionQroupData(element); questionsArr.push(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); groupQuestion['group_title'] = ((typeof group_title !== null && group_title !== 'undefined') ? (group_title !== null ? group_title.querySelector('.ql-editor').innerHTML : null) : null); groupQuestion['question_group_id'] = 'subSection_title_text_' + rand_id; if (group_title !== null) { var questionsData = $.fn.getQuestionsData(rand_id, 'group'); groupQuestion['questions'] = questionsData; return groupQuestion; } } $.fn.getSectionDataNavigation = 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); // console.log('section title in nav script'); // console.log(section_title); // section['section_title'] = ((section_title !== null && section_title !== 'undefined') ? (section_title !== null ? section_title.querySelector('.ql-editor').innerHTML : null) : null); section['section_title'] = (section_title && section_title.querySelector('.ql-editor') ? section_title.querySelector('.ql-editor').innerHTML : null); section['section_id'] = 'section_title_text_' + rand_id; 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; formData['question_paper_title'] = question_paper_title; formData['Question_title_id'] = 'Question_title'; 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.getSectionDataNavigation(element); // console.log('sectionData:',sectionData); if (sectionData !== null && sectionData !== undefined) { formData['sections'].push(sectionData); } }); // console.log((formData)); // console.log(JSON.stringify(formData, null, 1)); localStorage.setItem("JSON_FOR_NAV", JSON.stringify((formData))); console.log('JSON_FOR_NAV'); console.log('*********************************************************************************'); console.log(JSON.stringify(formData)); console.log('*********************************************************************************'); // console.log(OBJtoXML(({'question_paper' : formData}))); }