X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/3dfe15d50b60598341b9754876db4a48162c5cd0..6d7963d9e1a726e9e8d2173b7df165c63421f546:/src/editor/plugins/core/edumed/choice/choiceTrueOrFalse.js diff --git a/src/editor/plugins/core/edumed/choice/choiceTrueOrFalse.js b/src/editor/plugins/core/edumed/choice/choiceTrueOrFalse.js new file mode 100644 index 0000000..7ac0470 --- /dev/null +++ b/src/editor/plugins/core/edumed/choice/choiceTrueOrFalse.js @@ -0,0 +1,56 @@ +define(function(require) { + +'use strict'; + +/* globals gettext */ + +var $ = require('libs/jquery'), + _ = require('libs/underscore'), + choiceBase = require('./choiceBase'), + switchTemplate = require('libs/text!./trueOrFalseSwitch.html'), + ListView = require('./list'); + + +var trueOrFalse = Object.create(choiceBase); +_.extend(trueOrFalse, { + type: 'true-or-false', + createListView: function(listNode) { + return new ListView(this, listNode, { + onItemViewAdded: function(itemView) { + var switchView = new Switch(itemView.node.getAttr('answer') === 'true', function(choice) { + itemView.node.document.transaction(function() { + itemView.node.getParent('exercise.choice').object.setAnswer(itemView.node, choice); + }, { + metadata: { + description: gettext('Change answer') + } + }); + }); + itemView.addPrefixView(switchView); + } + }); + } +}); + +var Switch = function(checked, onValueChange) { + this.dom = $(_.template(switchTemplate)()); + var trueBtn = this.dom.find('.true'), + falseBtn = this.dom.find('.false'); + + trueBtn.on('click', function() { + trueBtn.addClass('selected'); + falseBtn.removeClass('selected'); + onValueChange(true); + }); + this.dom.find('.false').on('click', function() { + falseBtn.addClass('selected'); + trueBtn.removeClass('selected'); + onValueChange(false); + }); + trueBtn.toggleClass('selected', checked); + falseBtn.toggleClass('selected', !checked); +}; + +return trueOrFalse; + +}); \ No newline at end of file