projectb/json2html.js
2023-10-12 10:18:33 +05:30

183 lines
6.8 KiB
JavaScript

function jsonToHtml(jsonData) {
console.log(jsonData);
if(jsonData == "" || jsonData == null)
{
document.getElementById('Question_title').querySelector('.ql-editor').innerHTML = "";
document.getElementById('Question_description').querySelector('.ql-editor').innerHTML = "";
document.getElementById('Max_Marks').value = "";
document.getElementById('Course_ID').value = "";
document.getElementById('Course_Code').value = "";
document.getElementById('Subject_ID').value = "";
document.getElementById('Subject_Code').value = "";
document.getElementById('Paper_No').value = "";
document.getElementById('Subject_Name').value = "";
document.getElementById('Sub_Paper_Prefix').value = "";
}
else
{
var title = jsonData.question_paper_title;
var description = jsonData.question_paper_description;
var question_Paper_uuid = jsonData.attributes.Id;
var max_marks = jsonData.attributes.MaxMarks;
var course_ID = jsonData.attributes.CourseId;
var course_Code = jsonData.attributes.CourseCode;
var subject_ID = jsonData.attributes.SubjectId;
var subject_Code = jsonData.attributes.SubjectCode;
var paper_No = jsonData.attributes.PaperNo;
var subject_Name = jsonData.attributes.SubjectName;
var sub_Paper_Prefix = jsonData.attributes.SubPaperPrefix;
document.getElementById('Question_title').querySelector('.ql-editor').innerHTML = title;
document.getElementById('Question_description').querySelector('.ql-editor').innerHTML = description;
document.getElementById('Max_Marks').value = max_marks;
document.getElementById('Course_ID').value = course_ID;
document.getElementById('Course_Code').value = course_Code;
document.getElementById('Subject_ID').value = subject_ID;
document.getElementById('Subject_Code').value = subject_Code;
document.getElementById('Paper_No').value = paper_No;
document.getElementById('Subject_Name').value = subject_Name;
document.getElementById('Sub_Paper_Prefix').value = sub_Paper_Prefix;
document.getElementById('QuestionPaper_UUID_ID').value = question_Paper_uuid;
}
jsonData.sections.forEach(function(section, index) {
const random_no = Date.now();
var sectionTitle = section.section_title;
var sectionDescription = section.section_description;
var sectionMarks = section.section_marks;
var sectionUUID = section.attributes.Id;
var sectionDispalyMarks = section.section_display_marks;
var sectionAttemptAny = section.section_attempt_any;
addSection(sectionTitle, sectionDescription, random_no, sectionUUID, sectionMarks, sectionDispalyMarks, sectionAttemptAny);
section.questions.forEach(function(Question, index) {
const questionRandomNo = Date.now();
var questionTypeFormets = "";
if(Question.question_type)
{
questionTypeFormets = Question.question_type;
}
else
{
questionTypeFormets ='question_group';
}
var questionTitle = Question.question;
var questionDescription = Question.question_description;
var questionType = questionTypeFormets;
var questionSubType = Question.question_sub_type;
var mathEnabled = Question.is_math_enabled;
var questionMarks = Question.marks;
var questionUUID = Question.attributes.Id;
var questionDisplayMarks = Question.display_marks;
var Choice = Question.answers;
var questionAreaId = 'question_area_'+random_no;
if(questionType == 'text')
{
textQuestion(false, false, false, questionTitle, questionDescription, questionSubType, mathEnabled, questionAreaId, false, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
}
else if (questionType == 'group')
{
groupQuestion(false, false, false, questionTitle, questionDescription, questionSubType, mathEnabled, Choice, questionAreaId, false, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
// groupQuestion(false, false, false, question_Title, question_Description, mathEnabled, Choice, false, questionGroupId, false, QuestionGroupRandomNo, false, false, group_question_marks, group_question_uuid, false, group_question_Display_Marks);
Choice = Choice.slice(1);
Choice.forEach(function(choicenames, index) {
var choiceName = choicenames.choice_name;
var choiceDescription = choicenames.choice_description;
var choiceID = choicenames.id;
addNewChoice(false , choiceName, choiceDescription, questionRandomNo, false, choiceID, mathEnabled);
});
}
else if (questionType == 'question_group')
{
generateGroupQuestion(Question, questionAreaId, questionRandomNo);
}
})
})
}
function generateGroupQuestion(Question, questionAreaId, questionRandomNo)
{
var idObj = {
"section_question_area_id":questionAreaId,
'question_group_obj': Question ,
'questions_randon_id':questionRandomNo,
};
addQuestionGroup(idObj);
Question.questions.forEach(function(GroupQuestions, index) {
const QuestionGroupRandomNo = Date.now();
console.log(GroupQuestions);
console.log("**********************************");
// question level variables
var group_question_Title = GroupQuestions.question;
var group_question_Description = GroupQuestions.question_description;
var group_question_Type = GroupQuestions.question_type;
var group_questionSubType = GroupQuestions.question_sub_type;
var mathEnabled = GroupQuestions.is_math_enabled;
var group_question_marks = GroupQuestions.marks;
var group_question_uuid = GroupQuestions.attributes.Id;
var group_question_Display_Marks = GroupQuestions.display_marks;
//
var Choice = GroupQuestions.answers;
var questionGroupId = 'group_question_area_'+questionRandomNo;
// console.log('questionGroupId :' + questionGroupId)
if(group_question_Type == 'text')
{
// console.log('child gtext' + group_question_Title)
textQuestion(false, false, false, group_question_Title, group_question_Description, group_questionSubType, mathEnabled, false, questionGroupId, false, QuestionGroupRandomNo, false, false, group_question_marks, group_question_uuid, false, group_question_Display_Marks);
}
else if(group_question_Type == 'group')
{
// console.log('child ggroup'+group_question_Title)
groupQuestion(false, false, false, group_question_Title, group_question_Description, mathEnabled, Choice, false, questionGroupId, false, QuestionGroupRandomNo, false, false, group_question_marks, group_question_uuid, false, group_question_Display_Marks);
Choice = Choice.slice(1);
Choice.forEach(function(choicenames, index) {
var choiceName = choicenames.choice_name;
var choiceDescription = choicenames.choice_description;
var choiceID = choicenames.id;
addNewChoice(false , choiceName, choiceDescription, false, QuestionGroupRandomNo, choiceID, mathEnabled)
});
}
else
{
generateGroupQuestion(GroupQuestions, questionGroupId, QuestionGroupRandomNo);
// console.log('child group question'+group_question_Title)
}
});
}