Changeset 511 for Dev/trunk/src/client/qed-client/model/widgets/questions
- Timestamp:
- 03/13/14 00:44:08 (11 years ago)
- Location:
- Dev/trunk/src/client/qed-client/model/widgets/questions
- Files:
-
- 5 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/src/client/qed-client/model/widgets/questions/Factory.js
r510 r511 9 9 "./ScaleInputConfigWidget", 10 10 "./ScaleInputWidget", 11 "./SingleChoiceInputConfigWidget",12 "./SingleChoiceInputWidget",13 11 "./StringInputConfigWidget", 14 12 "./StringInputWidget", … … 19 17 "dijit/_WidgetBase", 20 18 "dojo/_base/declare" 21 ], function(objectFuns, HeaderConfigWidget, HeaderWidget, MultipleChoiceInputConfigWidget, MultipleChoiceInputWidget, NumberInputConfigWidget, NumberInputWidget, ScaleInputConfigWidget, ScaleInputWidget, S ingleChoiceInputConfigWidget, SingleChoiceInputWidget, StringInputConfigWidget, StringInputWidget, TextConfigWidget, TextInputConfigWidget, TextInputWidget, TextWidget, _WidgetBase, declare) {19 ], function(objectFuns, HeaderConfigWidget, HeaderWidget, MultipleChoiceInputConfigWidget, MultipleChoiceInputWidget, NumberInputConfigWidget, NumberInputWidget, ScaleInputConfigWidget, ScaleInputWidget, StringInputConfigWidget, StringInputWidget, TextConfigWidget, TextInputConfigWidget, TextInputWidget, TextWidget, _WidgetBase, declare) { 22 20 23 21 var DividerWidget = declare([_WidgetBase], { … … 34 32 TextInput: TextInputWidget, 35 33 NumberInput: NumberInputWidget, 36 MultipleChoiceInput: MultipleChoiceInputWidget, 37 SingleChoiceInput: SingleChoiceInputWidget, 34 MultipleChoiceInput: declare([MultipleChoiceInputWidget], 35 {allowMultiple:true}), 36 SingleChoiceInput: declare([MultipleChoiceInputWidget], 37 {allowMultiple:false}), 38 38 ScaleInput: ScaleInputWidget 39 39 }; … … 44 44 TextInput: TextInputConfigWidget, 45 45 NumberInput: NumberInputConfigWidget, 46 MultipleChoiceInput: MultipleChoiceInputConfigWidget, 47 SingleChoiceInput: SingleChoiceInputConfigWidget, 46 MultipleChoiceInput: declare([MultipleChoiceInputConfigWidget], 47 {allowMultiple:true}), 48 SingleChoiceInput: declare([MultipleChoiceInputConfigWidget], 49 {allowMultiple:false}), 48 50 ScaleInput: ScaleInputConfigWidget 49 51 }; -
Dev/trunk/src/client/qed-client/model/widgets/questions/MultipleChoiceInputConfigWidget.js
r510 r511 19 19 20 20 return declare([_ComplexValueWidget],{ 21 baseClass: 'qedMultipleChoice Widget',21 baseClass: 'qedMultipleChoiceConfigWidget', 22 22 templateString: template, 23 allowMultiple: false, 23 24 buildRendering: function() { 24 25 this.inherited(arguments); … … 36 37 id: id, 37 38 value: item, 39 _valueOrSubcode: this.allowMultiple ? 'subcode' : 'value', 40 _valueOrSubcodeName: this.allowMultiple ? 'Subcode' : 'Value', 38 41 onDestroy: lang.hitch(this,function(evt){ 39 42 this.itemsWidget.removeItem(id,true); … … 54 57 if ( evt ) { event.stop(evt); } 55 58 return false; 59 }, 60 _setDisabledAttr: function() { 61 this.inherited(arguments); 62 this._handleOpenItemChange(); 63 }, 64 _setReadOnlyAttr: function() { 65 this.inherited(arguments); 66 this._handleOpenItemChange(); 67 }, 68 _getValueAttr: function() { 69 var value = this.inherited(arguments); 70 if ( value.lastItemIsOpen[0] ) { 71 value.lastItemIsOpen = { 72 subcode: value.openItemSubcode 73 }; 74 } else { 75 delete value.lastItemIsOpen; 76 } 77 delete value.openItemSubcode; 78 return value; 79 }, 80 _setValueAttr: function(value) { 81 if ( value.lastItemIsOpen ) { 82 value.openItemSubcode = value.lastItemIsOpen.subcode; 83 value.lastItemIsOpen = ["on"]; 84 } 85 this.inherited(arguments); 86 }, 87 _handleOpenItemChange: function() { 88 var enabled = !(this.readOnly || this.disabled) && 89 this.openItemCheckBox.get('value')[0]; 90 this.openItemSubcodeTextBox.set('disabled',!enabled); 91 this.openItemSubcodeTextBox.set('readOnly',!enabled); 56 92 } 57 93 }); -
Dev/trunk/src/client/qed-client/model/widgets/questions/MultipleChoiceInputWidget.js
r510 r511 1 1 define([ 2 "dijit/_Container", 3 "dijit/_TemplatedMixin", 4 "dijit/_WidgetBase", 5 "dijit/_WidgetsInTemplateMixin", 2 "../../../widgets/_ComplexValueWidget", 6 3 "dijit/form/CheckBox", 4 "dijit/form/RadioButton", 5 "dijit/form/TextBox", 7 6 "dojo/_base/array", 8 7 "dojo/_base/declare", 8 "dojo/_base/lang", 9 9 "dojo/dom-construct", 10 10 "dojo/text!./templates/MultipleChoiceInputWidget.html" 11 ], function(_Co ntainer, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, CheckBox, array, declare, domConstruct, template) {12 return declare([_ WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{11 ], function(_ComplexValueWidget, CheckBox, RadioButton, TextBox, array, declare, lang, domConstruct, template) { 12 return declare([_ComplexValueWidget],{ 13 13 templateString: template, 14 baseClass: 'qedMultipleChoiceWidget', 15 allowMultiple: false, 14 16 startup: function() { 15 17 if ( this._started ) { return; } 16 18 this.inherited(arguments); 17 19 20 var Ctor = this.allowMultiple ? CheckBox : RadioButton; 21 22 var input; 18 23 domConstruct.empty(this.domNode); 19 24 array.forEach(this.items, function(item){ 20 25 var div = domConstruct.create("div", { 21 26 }, this.domNode, "last"); 22 var input = new CheckBox({23 name: this.code + item.subcode,24 value: 127 input = new Ctor({ 28 name: this.code + (this.allowMultiple?item.subcode:this.subcode), 29 value: this.allowMultiple ? 1 : item.value 25 30 }).placeAt(div); 26 31 var label = domConstruct.create("label",{ … … 29 34 }, div); 30 35 }, this); 36 37 if ( this.lastItemIsOpen && input ) { 38 this.lastItem = input; 39 var openItemDiv = domConstruct.create("div", { 40 }, this.domNode, "last"); 41 this.openItemTextBox = new TextBox({ 42 name: this.code + this.lastItemIsOpen.subcode, 43 disabled: true, 44 readOnly: true, 45 'class': 'openItem' 46 }); 47 this.openItemTextBox.placeAt(openItemDiv); 48 this.own(this.lastItem.on( 49 'change',lang.hitch(this,'_handleOpenItemChange'))); 50 } 51 }, 52 _setDisabledAttr: function() { 53 this.inherited(arguments); 54 this._handleOpenItemChange(); 55 }, 56 _setReadOnlyAttr: function() { 57 this.inherited(arguments); 58 this._handleOpenItemChange(); 59 }, 60 _handleOpenItemChange: function() { 61 if ( this.lastItem ) { 62 var value = this.allowMultiple ? 63 this.lastItem.get('value') : 64 this.lastItem.get('value')[0]; 65 var enabled = !(this.readOnly || this.disabled) && value; 66 this.openItemTextBox.set('disabled',!enabled); 67 this.openItemTextBox.set('readOnly',!enabled); 68 } 31 69 } 32 70 }); -
Dev/trunk/src/client/qed-client/model/widgets/questions/NumberInputWidget.js
r510 r511 1 1 define([ 2 "dijit/_Container", 3 "dijit/_TemplatedMixin", 4 "dijit/_WidgetBase", 5 "dijit/_WidgetsInTemplateMixin", 2 "../../../widgets/_ComplexValueWidget", 6 3 "dojo/_base/declare", 7 4 "dojo/text!./templates/NumberInputWidget.html" 8 ], function(_Co ntainer, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, declare, template) {9 return declare([_ WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{5 ], function(_ComplexValueWidget, declare, template) { 6 return declare([_ComplexValueWidget],{ 10 7 templateString: template, 11 8 text: '', -
Dev/trunk/src/client/qed-client/model/widgets/questions/ScaleInputWidget.js
r508 r511 1 1 define([ 2 "dijit/_Container", 3 "dijit/_TemplatedMixin", 4 "dijit/_WidgetBase", 5 "dijit/_WidgetsInTemplateMixin", 2 "../../../widgets/_ComplexValueWidget", 3 "dijit/form/CheckBox", 6 4 "dijit/form/RadioButton", 7 5 "dojo/_base/array", … … 11 9 "dojo/dom-construct", 12 10 "dojo/text!./templates/ScaleInputWidget.html" 13 ], function(_Co ntainer, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, RadioButton, array, declare, lang, domAttr, domConstruct, template) {14 return declare([_ WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{11 ], function(_ComplexValueWidget, CheckBox, RadioButton, array, declare, lang, domAttr, domConstruct, template) { 12 return declare([_ComplexValueWidget],{ 15 13 templateString: template, 16 14 baseClass: "qedScaleWidget", -
Dev/trunk/src/client/qed-client/model/widgets/questions/StringInputWidget.js
r510 r511 1 1 define([ 2 "dijit/_Container", 3 "dijit/_TemplatedMixin", 4 "dijit/_WidgetBase", 5 "dijit/_WidgetsInTemplateMixin", 2 "../../../widgets/_ComplexValueWidget", 6 3 "dojo/_base/declare", 7 4 "dojo/text!./templates/StringInputWidget.html" 8 ], function(_Co ntainer, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, declare, template) {9 return declare([_ WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{5 ], function(_ComplexValueWidget, declare, template) { 6 return declare([_ComplexValueWidget],{ 10 7 templateString: template, 11 8 text: '', -
Dev/trunk/src/client/qed-client/model/widgets/questions/TextInputWidget.js
r510 r511 1 1 define([ 2 "dijit/_Container", 3 "dijit/_TemplatedMixin", 4 "dijit/_WidgetBase", 5 "dijit/_WidgetsInTemplateMixin", 2 "../../../widgets/_ComplexValueWidget", 6 3 "dojo/_base/declare", 7 4 "dojo/text!./templates/TextInputWidget.html" 8 ], function(_Co ntainer, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, declare, template) {9 return declare([_ WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{5 ], function(_ComplexValueWidget, declare, template) { 6 return declare([_ComplexValueWidget],{ 10 7 templateString: template, 11 8 text: '', -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/MultipleChoiceInputConfigRowWidget.html
r510 r511 1 1 <form> 2 <div data-dojo-type="dijit/form/CheckBox"3 data-dojo-props="disabled: true, readOnly: true"></div>4 2 <div data-dojo-type="dijit/form/ValidationTextBox" 5 data-dojo-props="required: true, placeholder: ' Subcode'"3 data-dojo-props="required: true, placeholder: '${_valueOrSubcodeName}'" 6 4 class="subcode" 7 name=" subcode"></div>5 name="${_valueOrSubcode}"></div> 8 6 <div data-dojo-type="dijit/form/ValidationTextBox" 9 7 data-dojo-props="required: true, placeholder: 'Item text'" -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/MultipleChoiceInputConfigWidget.html
r510 r511 1 1 <form class="${baseClass}"> 2 <div> 3 <label class="qedLabel" for="subcode">Subcode</label> 4 <input data-dojo-type="dijit/form/ValidationTextBox" 5 data-dojo-props="required:true,placeHolder:'Subcode'" 6 class="subcode" 7 name="subcode"/> 8 </div> 2 9 <div data-dojo-attach-point="itemsNode"> 3 10 </div> 4 11 <div data-dojo-type="dijit/form/Button" 5 12 data-dojo-attach-event="onClick:onAddItem">Add item</div> 13 <div> 14 <label class="qedLabel" for="lastItemIsOpen">Last option is open</label> 15 <input data-dojo-type="dijit/form/CheckBox" 16 class="qedField" 17 name="lastItemIsOpen" 18 data-dojo-attach-point="openItemCheckBox" 19 data-dojo-attach-event="onChange:_handleOpenItemChange"/> 20 <input data-dojo-type="dijit/form/ValidationTextBox" 21 data-dojo-props="required:true,disabled:true,placeHolder:'Subcode'" 22 data-dojo-attach-point="openItemSubcodeTextBox" 23 class="subcode" 24 name="openItemSubcode"/> 25 </div> 6 26 </form> -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/MultipleChoiceInputWidget.html
r508 r511 1 < div>2 </ div>1 <form class="${baseClass}"> 2 </form> -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/NumberInputWidget.html
r508 r511 1 < div>1 <form> 2 2 <p>${text}</p> 3 3 <div class="qedField" … … 5 5 data-dojo-type="dijit/form/NumberTextBox" 6 6 name="${code}${subcode}"></div> 7 </ div>7 </form> -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/ScaleInputWidget.html
r508 r511 1 < divclass="${baseClass}">1 <form class="${baseClass}"> 2 2 <table> 3 3 <thead> … … 12 12 </tbody> 13 13 </table> 14 </ div>14 </form> -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/StringInputWidget.html
r508 r511 1 < div>1 <form> 2 2 <p>${text}</p> 3 3 <div data-dojo-type="dijit/form/TextBox" 4 4 name="${code}${subcode}"></div> 5 </ div>5 </form> -
Dev/trunk/src/client/qed-client/model/widgets/questions/templates/TextInputWidget.html
r508 r511 1 < div>1 <form> 2 2 <p>${text}</p> 3 3 <textarea class="qedField" … … 5 5 data-dojo-type="dijit/form/Textarea" 6 6 name="${code}${subcode}"></textarea> 7 </ div>7 </form>
Note: See TracChangeset
for help on using the changeset viewer.