From 6f95403fd96b319ca7bb591ee43b5cb8c9583057 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 9 Dec 2021 09:13:45 +0200
Subject: [PATCH] add new tool

---
 .../MultipleChoiceQuestionService.js          |  2 ++
 .../TrueFalseQuestion.js                      |  4 +--
 .../TrueFalseSingleCorrectNodeView.js         |  1 -
 .../TrueFalseSingleCorrectQuestionService.js  | 32 +++++++++++++++++++
 .../MultipleDropDown.js                       | 14 ++++----
 5 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
index 29a78d46f..32b9cd531 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestionService.js
@@ -6,6 +6,7 @@ import QuestionComponent from './components/QuestionComponent';
 import MultipleChoiceNodeView from './MultipleChoiceNodeView';
 import MultipleChoiceSingleCorrectQuestionService from './MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestionService';
 import TrueFalseQuestionService from './TrueFalseQuestionService/TrueFalseQuestionService';
+import TrueFalseSingleCorrectQuestionService from './TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService';
 
 class MultipleChoiceQuestionService extends Service {
   register() {
@@ -31,6 +32,7 @@ class MultipleChoiceQuestionService extends Service {
   dependencies = [
     new MultipleChoiceSingleCorrectQuestionService(),
     new TrueFalseQuestionService(),
+    new TrueFalseSingleCorrectQuestionService(),
   ];
 }
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
index 403b24551..a5d73636e 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
@@ -11,7 +11,7 @@ import helpers from '../helpers/helpers';
 import Tools from '../../lib/Tools';
 
 @injectable()
-class MultipleChoiceQuestion extends Tools {
+class TrueFalseQuestion extends Tools {
   title = 'Add True False Question';
   icon = 'multipleChoice';
   name = 'TrueFalse';
@@ -66,4 +66,4 @@ class MultipleChoiceQuestion extends Tools {
   }
 }
 
-export default MultipleChoiceQuestion;
+export default TrueFalseQuestion;
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
index 327937384..d57375c18 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js
@@ -23,7 +23,6 @@ export default class TrueFalseSingleCorrectNodeView extends AbstractNodeView {
   }
 
   update(node) {
-    // if (!node.sameMarkup(this.node)) return false;
     this.node = node;
     if (this.context.view[node.attrs.id]) {
       const { state } = this.context.view[node.attrs.id];
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
index e69de29bb..f90d3bb2b 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestionService.js
@@ -0,0 +1,32 @@
+import Service from '../../Service';
+import TrueFalseSingleCorrectQuestion from './TrueFalseSingleCorrectQuestion';
+import trueFalseSingleCorrectNode from './schema/trueFalseSingleCorrectNode';
+import trueFalseSingleCorrectContainerNode from './schema/trueFalseSingleCorrectContainerNode';
+import QuestionComponent from './components/QuestionComponent';
+import TrueFalseSingleCorrectNodeView from './TrueFalseSingleCorrectNodeView';
+
+class TrueFalseSingleCorrectQuestionService extends Service {
+  register() {
+    this.container
+      .bind('TrueFalseSingleCorrectQuestion')
+      .to(TrueFalseSingleCorrectQuestion);
+    const createNode = this.container.get('CreateNode');
+    const addPortal = this.container.get('AddPortal');
+
+    createNode({
+      true_false_single_correct: trueFalseSingleCorrectNode,
+    });
+
+    createNode({
+      true_false_single_correct_container: trueFalseSingleCorrectContainerNode,
+    });
+
+    addPortal({
+      nodeView: TrueFalseSingleCorrectNodeView,
+      component: QuestionComponent,
+      context: this.app,
+    });
+  }
+}
+
+export default TrueFalseSingleCorrectQuestionService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
index 75f1b2359..3972ed034 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/MultipleDropDown.js
@@ -16,12 +16,14 @@ class MultipleDropDown extends ToolGroup {
     @inject('MultipleChoiceSingleCorrectQuestion')
     multipleChoiceSingleCorrectQuestion,
     @inject('TrueFalseQuestion') trueFalseQuestion,
+    @inject('TrueFalseSingleCorrectQuestion') trueFalseSingleCorrectQuestion,
   ) {
     super();
     this.tools = [
       multipleChoiceQuestion,
       multipleChoiceSingleCorrectQuestion,
       trueFalseQuestion,
+      trueFalseSingleCorrectQuestion,
     ];
   }
 
@@ -67,7 +69,7 @@ class MultipleDropDown extends ToolGroup {
       view: { main },
     } = context;
     const { state } = view;
-
+    console.log(this._tools);
     const dropDownOptions = [
       {
         label: 'Multiple Choice',
@@ -84,11 +86,11 @@ class MultipleDropDown extends ToolGroup {
         value: '2',
         item: this._tools[2],
       },
-      // {
-      //   label: 'True/False (single correct)',
-      //   value: '3',
-      //   item: this._tools[0],
-      // },
+      {
+        label: 'True/False (single correct)',
+        value: '3',
+        item: this._tools[3],
+      },
     ];
 
     const isDisabled = this._tools[0].select(state, activeView);
-- 
GitLab