From 8111186f66554c278c03e8216957fa98257b87bf Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Mon, 14 Feb 2022 18:29:56 +0200
Subject: [PATCH] add answer option

---
 editors/demo/src/HHMI/HHMI.js                               | 6 +++---
 .../schema/multipleChoiceSingleCorrectNode.js               | 2 ++
 .../TrueFalseQuestionService/schema/trueFalseNode.js        | 2 ++
 .../schema/trueFalseSingleCorrectNode.js                    | 2 ++
 .../components/SwitchComponent.js                           | 2 +-
 .../schema/multipleChoiceNode.js                            | 6 ++----
 6 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js
index eaa5b0582..5d85c3ced 100644
--- a/editors/demo/src/HHMI/HHMI.js
+++ b/editors/demo/src/HHMI/HHMI.js
@@ -22,7 +22,7 @@ const SubmitButton = styled.button`
   top: 16px;
 `;
 
-const t = `<p class="paragraph"></p><div id="84db3734-94ed-4dd0-82bb-15404854df0f" class="multiple-choice"><div class="multiple-choice-question" id="38de8538-647a-489d-8474-f92d0d256c32"><p class="paragraph">question</p></div><div class="multiple-choice-option" id="debb868e-bbfe-4ba2-bf93-c963153ff791" correct="false" feedback="feedback 1"><p class="paragraph">answer 1</p></div><div class="multiple-choice-option" id="810bcf10-4fcb-4d1e-9dab-ce35cbd28527" correct="true" feedback="feedback 2"><p class="paragraph">answer 2</p></div></div>`;
+const t = `<p class="paragraph"></p><div id="" class="multiple-choice"><div class="multiple-choice-question" id="38de8538-647a-489d-8474-f92d0d256c32"><p class="paragraph">question </p></div><div class="multiple-choice-option" id="debb868e-bbfe-4ba2-bf93-c963153ff791" correct="false" correctanswer="false" feedback="feedback 1"><p class="paragraph">answer 1</p></div><div class="multiple-choice-option" id="810bcf10-4fcb-4d1e-9dab-ce35cbd28527" correct="true" correctanswer="false" feedback="feedback 2"><p class="paragraph">answer 2</p></div></div>`;
 
 const Hhmi = () => {
   const [submited, isSubmited] = useState(false);
@@ -39,9 +39,9 @@ const Hhmi = () => {
         customValues={{ showFeedBack: submited }}
         fileUpload={file => renderImage(file)}
         value={t}
-        readonly
+        // readonly
         layout={HhmiLayout}
-        // onChange={source => console.log(source)}
+        onChange={source => console.log(source)}
       />
     </>
   );
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
index 719d7e994..3abffaeff 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
@@ -5,6 +5,7 @@ const multipleChoiceSingleCorrectNode = {
     class: { default: 'multiple-choice-option-single-correct' },
     id: { default: uuidv4() },
     correct: { default: false },
+    answer: { default: false },
     feedback: { default: '' },
   },
   group: 'block questions',
@@ -19,6 +20,7 @@ const multipleChoiceSingleCorrectNode = {
           id: dom.getAttribute('id'),
           class: dom.getAttribute('class'),
           correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
+          answer: JSON.parse(dom.getAttribute('answer').toLowerCase()),
           feedback: dom.getAttribute('feedback'),
         };
       },
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/schema/trueFalseNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/schema/trueFalseNode.js
index 2d9c0de70..d7f82a8e5 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/schema/trueFalseNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/schema/trueFalseNode.js
@@ -5,6 +5,7 @@ const trueFalseNode = {
     class: { default: 'true-false-option' },
     id: { default: uuidv4() },
     correct: { default: false },
+    answer: { default: false },
     feedback: { default: '' },
   },
   group: 'block questions',
@@ -19,6 +20,7 @@ const trueFalseNode = {
           id: dom.getAttribute('id'),
           class: dom.getAttribute('class'),
           correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
+          answer: JSON.parse(dom.getAttribute('answer').toLowerCase()),
           feedback: dom.getAttribute('feedback'),
         };
       },
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/schema/trueFalseSingleCorrectNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/schema/trueFalseSingleCorrectNode.js
index 6182b81c7..f5f90c4c0 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/schema/trueFalseSingleCorrectNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/schema/trueFalseSingleCorrectNode.js
@@ -5,6 +5,7 @@ const trueFalseSingleCorrectNode = {
     class: { default: 'true-false-single-correct-option' },
     id: { default: uuidv4() },
     correct: { default: false },
+    answer: { default: false },
     feedback: { default: '' },
   },
   group: 'block questions',
@@ -19,6 +20,7 @@ const trueFalseSingleCorrectNode = {
           id: dom.getAttribute('id'),
           class: dom.getAttribute('class'),
           correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
+          answer: JSON.parse(dom.getAttribute('answer').toLowerCase()),
           feedback: dom.getAttribute('feedback'),
         };
       },
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
index b0464c6c8..446f801fb 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js
@@ -62,7 +62,7 @@ const CustomSwitch = ({ node, getPos }) => {
           main.dispatch(
             main.state.tr.setNodeMarkup(getPos(), undefined, {
               ...singleNode.node.attrs,
-              correctAnswer: !checkedAnswerMode,
+              answer: !checkedAnswerMode,
             }),
           );
         }
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
index 9d1ff8867..b3b15511d 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceNode.js
@@ -5,15 +5,12 @@ const multipleChoiceNode = {
     class: { default: 'multiple-choice-option' },
     id: { default: uuidv4() },
     correct: { default: false },
-    correctAnswer: { default: false },
+    answer: { default: false },
     feedback: { default: '' },
   },
   group: 'block questions',
   content: 'block*',
   defining: true,
-  // selectable: true,
-  // draggable: true,
-  // atom: true,
   parseDOM: [
     {
       tag: 'div.multiple-choice-option',
@@ -22,6 +19,7 @@ const multipleChoiceNode = {
           id: dom.getAttribute('id'),
           class: dom.getAttribute('class'),
           correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
+          answer: JSON.parse(dom.getAttribute('answer').toLowerCase()),
           feedback: dom.getAttribute('feedback'),
         };
       },
-- 
GitLab