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