CHECK_QUESTION_GROUP : AADHAVAN

This commit is contained in:
aadhavan valli 2023-10-13 15:25:50 +05:30
parent 5bbceb5ed1
commit fecf365462
6 changed files with 96 additions and 29 deletions

View File

@ -1,7 +1,7 @@
function QuestionPaperPreview(jsonData){
// The provided JSON data
// console.log(jsonData)
function convertToLatex(text, mathstatus) {
// Parse mathstatus into a boolean
const mathStatusBoolean = JSON.parse(mathstatus);
@ -67,10 +67,10 @@ function GroupQuestion(question, questionIndex, depth) {
questionPaper += `${question.group_title}`;
questionPaper += `${question.group_description}`;
const nestedQuestions = question.questions;
// Process nested questions in the same way
nestedQuestions.forEach((nestedQuestion) => {
processQuestion(nestedQuestion, questionIndex, depth);
// processQuestion(nestedQuestion, questionIndex, depth);
CheakQnType(nestedQuestion,questionIndex,depth);
});
}

View File

@ -542,7 +542,13 @@
<!-- nave pane -->
<script src="nav_pane.js"></script>
<!-- Main.js its used to trigger auto save when system online -->
<script src="main.js"></script>
<script src="checkParent.js"></script>
<script>
var sidebarWrapper = document.getElementById("questionPaper");
@ -645,9 +651,9 @@ function loadXML(xmlFileName) {
}
resolve(decodeData)
xml2json(decodeData)
// json2nav();
// clearSidebarWrapper();
// navpane();
json2nav();
clearSidebarWrapper();
navpane();
}
});
});
@ -1083,6 +1089,7 @@ function addSection(title = false, description = false, random_no = false, secti
//Function for Create a New Question Group
function addQuestionGroup(idObj)
{
const QuestionGroup_UUID = uuidv4();
//set default values
@ -1097,6 +1104,7 @@ function addQuestionGroup(idObj)
}
else if(idObj.hasOwnProperty('add_question_group_id'))
{
// console.log(idObj.add_question_group_id);
question_group_id = idObj.add_question_group_id;
}
@ -1118,7 +1126,6 @@ function addQuestionGroup(idObj)
localStorage.setItem('QuestionGroupId', QuestionGroup_ID)
var sectionRandomID = localStorage.getItem('sectionId');
addQuestionGroup +=
`<div draggable='true' class="draggable-group hidedrag" id="draggedGroup_${QuestionGroup_ID}">
<i id="collapseSubSection_${QuestionGroup_ID}" aria-hidden="true" style=" font-size: 24px; margin-right: 9px; margin-top: 25px;"></i>
@ -1221,6 +1228,7 @@ function addQuestionGroup(idObj)
}
else if(add_question_group_id)
{
var formContainer = document.getElementById(add_question_group_id);
formContainer.insertAdjacentHTML('beforeend', addQuestionGroup);
}
@ -1342,7 +1350,7 @@ function addQuestionGroup(idObj)
var question_groupid = 'subSection_title_text_'+ QuestionGroup_ID;
var inputElement = document.getElementById(question_groupid);
inputElement.addEventListener("keyup", function(event) {
json2nav();
clearSidebarWrapper();
navpane();
@ -1353,15 +1361,43 @@ function addQuestionGroup(idObj)
clearSidebarWrapper();
navpane();
// start the find Parent count and Remove the Fivth Question Group list
const value = localStorage.getItem('JSON_FOR_NAV')
const parsedValue = JSON.parse(value);
const questionGroupId =question_groupid;
const classes = findParent(parsedValue, questionGroupId); //this line goto checkParent.js and give the Parent count
let originalString = questionGroupId;
let substringToRemove = "subSection_title_text_";
let modifiedString = originalString.replace(substringToRemove, '');
// let finalString = "QuestionGroupButtons_" + modifiedString;
let finalString ="draggedGroup_" +modifiedString;
var element = document.getElementById(`${finalString}`);
if (classes < 5) {
console.log("Div not found.");
} else {
const Swal = require('sweetalert2');
Swal.fire({
title: 'Alert!!!',
text: 'Only Four Question Groups allowed.',
icon: 'info',
confirmButtonText: 'OK'
});
element.parentNode.removeChild(element);
console.log("Div removed successfully.");
}
// end of find QG level script
}
//Function for Create a New Choice Question in the Section and Question Group
function groupQuestion( question_id = false, section_id = false , group_question_area_id = false, questionTitle = false, questionDescription = false, questionType = false, questionSubType = false, mathEnabled = false, Choice = false, random_no = false, questionGroupId = false, questionAreaId = false, questionRandomNo = false, QuestionGroupRandomNo = false, questionMarks = false, questionUUID = false, group_question_marks = false, group_question_uuid = false, questionDisplayMarks = false, group_question_Display_Marks = false)
{
console.log('===========================================================================================================================================')
console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
console.log('===========================================================================================================================================')
// console.log('===========================================================================================================================================')
// console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
// console.log('===========================================================================================================================================')
const ChoiceGroupFixed_UUID = uuidv4();
@ -1987,9 +2023,9 @@ function addNewChoice(NewaddChoiceAreaId = false , choiceName = false, choiceDes
//Function for Create a New Text Question in the Section and Question Group
function textQuestion(question_id = false, section_id = false, group_question_area_id = false, questionTitle = false, questionDescription = false, questionType = false, questionSubType = false, mathEnabled = false, random_no = false, questionGroupId = false, questionAreaId = false, questionRandomNo = false, QuestionGroupRandomNo = false, questionMarks = false, questionUUID = false, group_question_marks = false, group_question_uuid = false, questionDisplayMarks = false, group_question_Display_Marks = false)
{
console.log('===========================================================================================================================================')
console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
console.log('===========================================================================================================================================')
// console.log('===========================================================================================================================================')
// console.log("group_question_area_id : "+group_question_area_id, 'questionGroupId : '+ questionGroupId, 'questionAreaId : '+questionAreaId)
// console.log('===========================================================================================================================================')
const Text_Question_UUID = uuidv4();
@ -2400,7 +2436,6 @@ function MultiLevelQuestionGroup(e)
//Function for Add a Text and Choice Question in the Section Question Area
function addNewQuestions(e, type)
{
clone_id_time = e.target.id;
var clone_id = clone_id_time.split("_")[1];
var section_id = 'question_area_'+clone_id;
@ -2415,7 +2450,6 @@ function addNewQuestions(e, type)
//Function For Add a Group Question in the Section Question Area
function addNewGroupQuestions(e, type)
{
clone_id_time = e.target.id;
var clone_id = clone_id_time.split("_")[1];
var group_question_area_id = 'group_question_area_'+clone_id;

25
checkParent.js Normal file
View File

@ -0,0 +1,25 @@
function findParent(jsonData, targetId) {
function findParentChild(data, id, parentClasses, idKey) {
for (let i = 0; i < data.length; i++) {
const section = data[i];
if (section[idKey] === id) {
parentClasses.push(i);
// const childClassCount = (section.questions && section.questions.length > 0) ? section.questions.length : 0;
return parentClasses.length - 1
} else if (section.questions) {
const newParentClasses = parentClasses.slice(); // Create a shallow copy of parentClasses array
newParentClasses.push(i);
const childClass = findParentChild(section.questions, id, newParentClasses, idKey);
if (childClass) {
return childClass; // If childClass is found, return it
}
}
}
return null;
}
let result = findParentChild(jsonData.sections, targetId, [], "question_group_id");
return result;
}

View File

@ -1,5 +1,5 @@
function jsonToHtml(jsonData) {
if(jsonData == "" || jsonData == null)
{
@ -18,6 +18,8 @@ function jsonToHtml(jsonData) {
else
{
var title = jsonData.question_paper_title;
console.log(title)
console.log("TItle")
var description = jsonData.question_paper_description;
var question_Paper_uuid = jsonData.attributes.Id;
var max_marks = jsonData.attributes.MaxMarks;
@ -81,12 +83,12 @@ function jsonToHtml(jsonData) {
if(questionType == 'text')
{
textQuestion(false, false, false, questionTitle, questionDescription, questionType, questionSubType, mathEnabled, random_no, false, questionAreaId, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
textQuestion(false, false, false, questionTitle, questionDescription, questionType, questionSubType, mathEnabled, random_no, false, questionAreaId, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
}
else if (questionType == 'group')
{
groupQuestion(false, false, false, questionTitle, questionDescription, questionType, questionSubType, mathEnabled, Choice, random_no, false, questionAreaId, questionRandomNo, false, questionMarks, questionUUID, false, false, questionDisplayMarks, false);
Choice = Choice.slice(1);
Choice.forEach(function(choicenames, index) {

View File

@ -2,7 +2,7 @@
function xml2json(xmlData) {
// console.clear();
console.log('xml to json converstion');
console.log(xmlData);
// console.log(xmlData);
function getAttributesOfXMLNode(node)
{
@ -120,8 +120,8 @@ jsonObj['sections'] = [];
sectionsList = xmlDoc.getElementsByTagName("Items")[0].childNodes;
// console.log(sectionsList);
// console.log('no of sections:'+sectionsList.length);
console.log(sectionsList);
console.log('no of sections:'+sectionsList.length);
for (let i = 0; i < sectionsList.length ;i++) {
var tempObj = {};
@ -163,9 +163,10 @@ jsonObj['sections'] = [];
var jsonData = JSON.stringify(jsonObj);
console.log('Xml to Json Conversion ');
console.log(jsonData);
// console.log(jsonData);
// console.log(jsonObj);
jsonToHtml(jsonObj);
// console.log(jsonToHtml(jsonObj))
}

View File

@ -2,7 +2,7 @@
function xml2json(xmlData) {
// console.clear();
console.log('xml to json converstion');
console.log(xmlData);
// console.log(xmlData);
function getAttributesOfXMLNode(node)
{
@ -34,8 +34,8 @@ function getQuestionsNodes(questionNode,type)
questionObj['is_math_enabled'] = questionNode.childNodes[4].firstChild.nodeValue;
}
else
{
else
{
questionObj['question'] = questionNode.childNodes[0].firstChild.nodeValue;
questionObj['question_description'] = (questionNode.childNodes[1].firstChild !== null? questionNode.childNodes[1].firstChild.nodeValue : "");
questionObj['question_type'] = 'group';
@ -69,7 +69,6 @@ function getQuestionsNodes(questionNode,type)
function getQuestionGroupNodes(questionGroup)
{
var questionGroupObj = {};
questionGroupObj['group_title'] = questionGroup.childNodes[0].firstChild.nodeValue;
questionGroupObj['group_description'] = (questionGroup.childNodes[1].firstChild !== null ? questionGroup.childNodes[1].firstChild.nodeValue : "");
questionGroupObj['group_marks'] = questionGroup.childNodes[2].firstChild.nodeValue;
@ -84,7 +83,6 @@ function getQuestionGroupNodes(questionGroup)
{
var questionType = questionList[q].getAttribute("xsi:type");
// console.log(questionType);
if(questionType == 'DescriptiveQuestion')
{
questionGroupObj['questions'].push(getQuestionsNodes(questionList[q],1));
@ -93,6 +91,10 @@ function getQuestionGroupNodes(questionGroup)
{
questionGroupObj['questions'].push(getQuestionsNodes(questionList[q],2));
}
else
{
questionGroupObj['questions'].push(getQuestionGroupNodes(questionList[q]));
}
}
return questionGroupObj;
@ -133,7 +135,8 @@ jsonObj['sections'] = [];
//handle questions
var questionList = sectionsList[i].childNodes[5].childNodes;
// console.log('No of quetions:' + questionList.length);
console.log(questionList);
// console.log("Question List")
// console.log(questionList);
for(let j = 0; j < questionList.length ;j++)
{
//check weather quesiotn or question grup
@ -159,7 +162,9 @@ jsonObj['sections'] = [];
var jsonData = JSON.stringify(jsonObj);
localStorage.setItem('pjsonData', jsonData );
// console.log(jsonData);
QuestionPaperPreview(jsonObj);
}