Ignore:
Timestamp:
03/19/14 21:33:13 (11 years ago)
Author:
hendrikvanantwerpen
Message:
  • Allow empty subcodes.
  • Use HTTPResult exclusively on server (no more q).
  • Set readonly & disabled on ourselves as well in _ComplexValueMixin
  • Split server into several modules.
  • Check codes on the variable level, not question level.
  • We can add modules in design documents now.
Location:
Dev/trunk/src/client/qed-client
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/client/qed-client/model/classes/_Class.js

    r510 r525  
    7171            } else if ( lang.isObject(obj) ) {
    7272                objectFuns.forEach(obj,function(v,prop){
    73                     if ( v === null ||
    74                          v === "" ||
    75                          (typeof v === "number" && isNaN(v)) ) {
     73                    if ( ( v === null ||
     74                           v === "" ||
     75                           (typeof v === "number" && isNaN(v)) ) &&
     76                         prop !== 'subcode' ) // HACK : this hardcoded exclusion for subcode is quite nasty
     77                    {
    7678                        delete obj[prop];
    7779                    } else {
  • Dev/trunk/src/client/qed-client/model/widgets/QuestionEditorPreviewItem.js

    r513 r525  
    149149            if ( this.innerWidget !== null ) {
    150150                if ( this._editing === true ) {
    151                     this._onChange();
    152                     // how to force event on widget here?
     151                    // because the widget doesn't generate an event
     152                    // unless it loses focus, we set the value here
     153                    // just to be sure not to lose any user input
     154                    this._setValueInternal(this.innerWidget.get('value'));
    153155                }
    154156                this.removeChild(this.innerWidget);
  • Dev/trunk/src/client/qed-client/model/widgets/questions/ScaleInputWidget.js

    r511 r525  
    2222            this.minNode.innerHTML = this.minLabel || "";
    2323            this.maxNode.innerHTML = this.maxLabel || "";
    24             if ( this.naLabel !== null ) {
     24            if ( this.naLabel ) {
    2525                this.naNode.innerHTML = this.naLabel;
    2626            }
     
    5656                    className: 'max'
    5757                }, tr);
    58                 if ( this.naLabel !== null && this.naLabel !== "" ) {
     58                if ( this.naLabel ) {
    5959                    td = domConstruct.create("td", {}, tr);
    6060                    radio = new RadioButton({
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/MultipleChoiceInputConfigWidget.html

    r511 r525  
    33    <label class="qedLabel" for="subcode">Subcode</label>
    44    <input data-dojo-type="dijit/form/ValidationTextBox"
    5            data-dojo-props="required:true,placeHolder:'Subcode'"
     5           data-dojo-props="placeHolder:'Subcode'"
    66           class="subcode"
    77           name="subcode"/>
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/NumberInputConfigWidget.html

    r510 r525  
    55         data-dojo-attach-point="subcodeBox"
    66         data-dojo-type="dijit/form/ValidationTextBox"
    7          data-dojo-props="required: true, placeholder: 'Subcode'"
     7         data-dojo-props="placeholder: 'Subcode'"
    88         name="subcode"></div>
    99  </div>
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/ScaleInputConfigRowWidget.html

    r506 r525  
    22  <th class="subcode">
    33    <div data-dojo-type="dijit/form/ValidationTextBox"
    4          data-dojo-props="required: true, placeholder: 'Subcode'"
     4         data-dojo-props="placeholder: 'Subcode'"
    55         name="subcode"></div>
    66  </th>
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/StringInputConfigWidget.html

    r510 r525  
    55         data-dojo-attach-point="subcodeBox"
    66         data-dojo-type="dijit/form/ValidationTextBox"
    7          data-dojo-props="required: true, placeholder: 'Subcode'"
     7         data-dojo-props="placeholder: 'Subcode'"
    88         name="subcode"></div>
    99  </div>
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/TextInputConfigWidget.html

    r510 r525  
    55         data-dojo-attach-point="subcodeBox"
    66         data-dojo-type="dijit/form/ValidationTextBox"
    7          data-dojo-props="required: true, placeholder: 'Subcode'"
     7         data-dojo-props="placeholder: 'Subcode'"
    88         name="subcode"></div>
    99  </div>
  • Dev/trunk/src/client/qed-client/widgets/ListWidget.js

    r513 r525  
    9898        _getValueAttr: function() {
    9999            return array.map(
    100                 this._getDescendantFormWidgets(),
    101                 function(child) { return child.get('value'); }
    102                 ,this);
     100                this.source.getAllNodes(),
     101                lang.hitch(this,function(node){
     102                    var widget = registry.byNode(node);
     103                    if ( widget && 'value' in widget ) {
     104                        return widget.get('value');
     105                    } else {
     106                        return this.source.getItem(node.id).data;
     107                    }
     108                }));
    103109        },
    104110        _setValueAttr: function(value,priorityChange) {
  • Dev/trunk/src/client/qed-client/widgets/_ComplexValueMixin.js

    r513 r525  
    6464                    if (typeof widgets[0].checked === 'boolean') {
    6565                        array.forEach(widgets, function(w){
    66                             w.set('value', array.indexOf(values, w._get('value')) !== -1, priorityChange);
     66                            w.set('value',
     67                                  array.indexOf(values,w._get('value'))!==-1,
     68                                  priorityChange);
    6769                        });
    6870                    } else if (widgets[0].multiple) {
     
    9092        _setDisabledAttr: function(disabled) {
    9193            this.inherited(arguments);
     94            this._set('disabled',disabled);
    9295            array.forEach(
    9396                this._getDescendantFormWidgets(),
     
    98101        _setReadOnlyAttr: function(readOnly) {
    99102            this.inherited(arguments);
     103            this._set('readOnly',readOnly);
    100104            array.forEach(
    101105                this._getDescendantFormWidgets(),
Note: See TracChangeset for help on using the changeset viewer.