DRAG&DROP

This commit is contained in:
aadhavan 2023-12-12 09:42:15 +05:30
parent 9bc8c93824
commit e4663c28b2
3 changed files with 84 additions and 14 deletions

View File

@ -51,6 +51,11 @@
<style> <style>
.question_Text img{
margin-top: 25px;
}
.ql-align-right-add{ .ql-align-right-add{
display: flow-root; display: flow-root;
} }

View File

@ -52,9 +52,22 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> --> <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> -->
<script id="MathJax-script" async src="./node_modules/mathjax/es5/tex-mml-chtml.js"></script> <script id="MathJax-script" async src="./node_modules/mathjax/es5/tex-mml-chtml.js"></script>
<link rel="stylesheet" href="assets/css/quillTable.css" type="text/css" media="all" />
<style> <style>
.ql-toolbar .ql-picker.ql-table .ql-picker-item{
display: block !important;
}
#ql-picker-options-14{
margin: -327px 0px 0px -217px;
}
#ql-picker-options-15{
margin: -199px 0px 0px -252px;
}
/* Start custom css for table icon options in RTE editor */ /* Start custom css for table icon options in RTE editor */
.ql-picker.ql-table:nth-of-type(1) .ql-picker-options { .ql-picker.ql-table:nth-of-type(1) .ql-picker-options {
width: 310px !important; width: 310px !important;
@ -875,8 +888,26 @@ var toolbarOptions = [
var quill = new Quill('#workarea', { var quill = new Quill('#workarea', {
theme: 'snow', theme: 'snow',
modules: { modules: {
toolbar: toolbarOptions, imageResize:{
} displaySize:true,
modules: [ 'Resize', 'DisplaySize', 'Toolbar' ],
},
toolbar: {
container: toolbarOptions,
handlers: {
table: function () {
// this.quill.getModule('table').insert();
this.quill.getModule('table').insert();
},
},
},
table: {
cellSelectionOnClick: true,
// Other options for quill1-table module...
},
keyboard: keyboardOptions,
},
}); });
var chat_Div = $("#workarea"); var chat_Div = $("#workarea");
@ -1640,6 +1671,7 @@ function loadXML(xmlFileName) {
// Function for Save the XML File // Function for Save the XML File
function saveFile(flag=0) { function saveFile(flag=0) {
console.log("flag = ", flag);
console.log("SaveFile"); console.log("SaveFile");
var title_id = localStorage.getItem('JSON_FOR_EMPTY_QUESTION'); var title_id = localStorage.getItem('JSON_FOR_EMPTY_QUESTION');
@ -1669,9 +1701,11 @@ function saveFile(flag=0) {
const newFileName = FileName.split(".")[0]; const newFileName = FileName.split(".")[0];
//if 1 it is used for re-order and redirect to the qn paper itself //if 1 it is used for re-order and redirect to the qn paper itself
if (flag==1){ if (flag==1){
// alert("reorder True")
savexml(newFileName,reorder=true); savexml(newFileName,reorder=true);
//if 0 it is used as nrml save which will redierect to dashboard //if 0 it is used as nrml save which will redierect to dashboard
}else{ }else{
// alert("reorder Flase")
savexml(newFileName); savexml(newFileName);
} }
@ -2441,16 +2475,16 @@ function addQuestionGroup(idObj)
// console.log(group_question_id); // console.log(group_question_id);
addQuestionGroup += addQuestionGroup +=
`<div draggable='true' class="draggable-group hidedrag" id="draggedGroup_${QuestionGroup_ID}"> `<div draggable='' 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> <i id="collapseSubSection_${QuestionGroup_ID}" aria-hidden="true" style=" font-size: 24px; margin-right: 9px; margin-top: 25px;"></i>
<input type="hidden" id="Question_Group_UUID_ID_${QuestionGroup_ID}" value="${idObj.hasOwnProperty('question_group_obj') ? idObj.question_group_obj.attributes.Id : QuestionGroup_UUID}"> <input type="hidden" id="Question_Group_UUID_ID_${QuestionGroup_ID}" value="${idObj.hasOwnProperty('question_group_obj') ? idObj.question_group_obj.attributes.Id : QuestionGroup_UUID}">
<div class="groupsection" draggable='true' id="group_question_${QuestionGroup_ID}"> <div class="groupsection" draggable='' id="group_question_${QuestionGroup_ID}">
<div class="question-group-linestyle"><img src="assets/images/line2.svg"/></div> <div class="question-group-linestyle"><img src="assets/images/line2.svg"/></div>
<div class="sectionTitle" id="group_question_title_${QuestionGroup_ID}"> <div class="sectionTitle" id="group_question_title_${QuestionGroup_ID}">
<div class="col-lg-12 col-md-12"> <div class="col-lg-12 col-md-12">
<div onmouseover="showButtons(this)" id="QuestionGroupButtons_${QuestionGroup_ID}" class="row question element"> <div onmouseover="showButtons(this)" id="QuestionGroupButtons_${QuestionGroup_ID}" class="row question element">
<div id="dragHandle" class="drag-handle"> <div id="dragHandle" class="drag-handle" >
<i class="fas fa-grip-horizontal"></i> <i class="fas fa-grip-horizontal" draggable="true"></i>
</div> </div>
<h4 class="QuestionGroup-titleHead">Question Group</h4> <h4 class="QuestionGroup-titleHead">Question Group</h4>
<div class="items align-items-center hideondrag"> <div class="items align-items-center hideondrag">
@ -2887,10 +2921,10 @@ function groupQuestion(question_id = false, section_id = false , group_question_
// console.log(questionIdS); // console.log(questionIdS);
// aa =2 // aa =2
groupQuestion += groupQuestion +=
`<div class="question hidedrag element Question-Border-Top col-lg-12 choiceQuestion" draggable="true" id="removeAndCloneQroupQuestion_${addChoiceAreaId}" style="" onclick="toggleClasses(this); multipleAnswerCheck(this); resetthe_radio(this)" onmouseover="showButtons(this); "> `<div class="question hidedrag element Question-Border-Top col-lg-12 choiceQuestion" draggable="" id="removeAndCloneQroupQuestion_${addChoiceAreaId}" style="" onclick="toggleClasses(this); multipleAnswerCheck(this); resetthe_radio(this)" onmouseover="showButtons(this); ">
<div class="question-linestyle"><img src="assets/images/${lineImg}"/></div> <div class="question-linestyle"><img src="assets/images/${lineImg}"/></div>
<div id="dragHandle" class="drag-handle"> <div id="dragHandle" class="drag-handle">
<i class="fas fa-grip-horizontal"></i> <i class="fas fa-grip-horizontal" draggable="true"></i>
</div> </div>
<div class="items hideondrag" style="display: none;"> <div class="items hideondrag" style="display: none;">
<i onclick="ReArrangeQuestions(event)" class="fa fa-chevron-up up-icon"></i>&nbsp;&nbsp; <i onclick="ReArrangeQuestions(event)" class="fa fa-chevron-up up-icon"></i>&nbsp;&nbsp;
@ -3710,10 +3744,10 @@ var ssa=ss.replace('<p>','').replace('</p>','').replace('<br>','');
// console.log(ssa); // console.log(ssa);
textQuestion += textQuestion +=
`<div class="col-lg-12 question hidedrag element Question-Border-Top" draggable="true" id="removeAndCloneTextQuestion_${addTextQuestionId}" style="" onclick="toggleClasses(this)" onmouseover="showButtons(this)"> `<div class="col-lg-12 question hidedrag element Question-Border-Top" draggable="" id="removeAndCloneTextQuestion_${addTextQuestionId}" style="" onclick="toggleClasses(this)" onmouseover="showButtons(this)">
<div class="question-linestyle"><img src="assets/images/${lineImg}"/></div> <div class="question-linestyle"><img src="assets/images/${lineImg}"/></div>
<div id="dragHandle" class="drag-handle"> <div id="dragHandle" class="drag-handle" >
<i class="fas fa-grip-horizontal"></i> <i class="fas fa-grip-horizontal" draggable="true"></i>
</div> </div>
<div class="items align-items-center hideondrag" style="display: none;"> <div class="items align-items-center hideondrag" style="display: none;">
@ -4682,7 +4716,7 @@ return text;
<script> <script>
let draggedItemGroup = null; let draggedItemGroup = null;
let draggedItemQuestion = null; let draggedItemQuestion = null;
let dropTarget = null; let dropTarget = null;
@ -4811,7 +4845,10 @@ return text;
}); });
</script>
</script>
<script> <script>
@ -5296,5 +5333,32 @@ function findInputByValue(value) {
</script> </script>
<!-- End the Choice Question Mandatory Check --> <!-- End the Choice Question Mandatory Check -->
<!-- <script>
function name(params) {
var drags = document.querySelector('.fa-grip-horizontal')
var a =drags.parentNode.parentNode
drags.addEventListener('dragstart', function(event){
// a.draggable = true
})
drags.addEventListener('dragend', function(event){
a.draggable = false
})
}
setInterval(name, 2000)
</script> -->
</body> </body>
</html> </html>

View File

@ -235,7 +235,7 @@ function html2json() {
$.fn.getSectionData = function(element) { $.fn.getSectionData = function(element) {
// console.log('getSectionData'); // console.log('getSectionData');
// console.log(element.id); console.log(element);
const rand_id = (element.id).split("_").slice(-1)[0]; const rand_id = (element.id).split("_").slice(-1)[0];
// console.log(rand_id); // console.log(rand_id);
// console.log('section_title_text_'+rand_id); // console.log('section_title_text_'+rand_id);
@ -304,6 +304,7 @@ function html2json() {
}); });
console.log((formData)); console.log((formData));
// return false
// console.log(JSON.stringify(formData, null, 1)); // console.log(JSON.stringify(formData, null, 1));
localStorage.setItem("json", JSON.stringify((formData))); localStorage.setItem("json", JSON.stringify((formData)));
console.log(JSON.stringify(formData)); console.log(JSON.stringify(formData));