CHECK_QUESTION_GROUP : AADHAVAN
This commit is contained in:
parent
5bbceb5ed1
commit
fecf365462
@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
60
addform.html
60
addform.html
@ -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
25
checkParent.js
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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))
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user