Ignore:
Timestamp:
03/13/13 17:07:58 (12 years ago)
Author:
hendrikvanantwerpen
Message:

Added grunt tasks and code cleanup.

Added grunt for less and jshint procesing.
Cleanup of code to pass jshint (one bug found :).

Location:
Dev/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk

    • Property svn:ignore
      •  

        old new  
        11data
        22nbproject
         3node_modules
  • Dev/trunk/client

    • Property svn:externals
      •  

        old new  
        1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8.0/dojo
        2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8.0/dijit
        3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8.0/dojox
        4 util http://svn.dojotoolkit.org/src/tags/release-1.8.0/util
         1dojo http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojo
         2dijit http://svn.dojotoolkit.org/src/tags/release-1.8.3/dijit
         3dojox http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojox
         4util http://svn.dojotoolkit.org/src/tags/release-1.8.3/util
  • Dev/trunk/client/qed/model/widgets/QuestionWidget.js

    r417 r426  
    22    'dijit/_TemplatedMixin','dijit/_WidgetsInTemplateMixin',
    33    'dojo/text!./templates/QuestionWidget.html','dijit/form/TextBox',
    4     'dijit/form/Textarea','../../widgets/MultipleChoiceWidget'],
    5     function(declare,lang,domConstruct,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,templateString,TextBox,Textarea,MultipleChoiceWidget){
    6         return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{
    7             templateString: templateString,
    8             mode: 'view', // view || edit
    9             name: '',
    10             value: null,
    11             _scale: null,
    12             _widgetCache: null,
    13             constructor: function() {
    14                 this.inherited(arguments);
    15                 this.value = {};
    16                 this._widgetCache = {};
    17             },
    18             postCreate: function() {
    19                 this._resetValue = this.value;
    20                 this.scaleSelector.set('disabled', this.mode == 'edit');
    21             },
    22             _setValueAttr: function(value) {
    23                 this.value = value;
    24                 this._onTypeChange(value.scale || 'string');
    25                 this.ourForm.set('value',value);
    26             },
    27             _getValueAttr: function() {
    28                 var value = this.ourForm.get('value');
    29                 lang.mixin(this.value,value);
    30                 return this.value;
    31             },
    32             _onTypeChange: function(scale) {
    33                 if ( this._scale == scale ) return;
    34                 this._scale = scale;
    35                 domConstruct.empty(this.scaleDetails);
    36                 var widget = this._getTypeWidget(scale);
    37                 widget && widget.placeAt(this.scaleDetails,'only');
    38             },
    39             _getTypeWidget: function(scale) {
    40                 var widget = this._widgetCache[scale];
    41                 if (!widget) {
    42                     switch(scale) {
    43                         case 'string':
    44                             widget = new TextBox({
    45                                 name: 'answers',
    46                                 disabled: this.mode == 'view'
    47                             });
    48                             break;
    49                         case 'text':
    50                             widget = new Textarea({
    51                                 name: 'answers',
    52                                 disabled: this.mode == 'view',
    53                                 style: 'min-height: 120px'
    54                             });
    55                             break;
    56                         case 'singleChoice':
    57                         case 'multipleChoice':
    58                             widget = new MultipleChoiceWidget({
    59                                 name: 'answers',
    60                                 mode: this.mode,
    61                                 allowMultiple: scale == 'multipleChoice'
    62                             });
    63                             break;
    64                     }
    65                     this._widgetCache[scale] = widget;
     4    'dijit/form/Textarea','../../widgets/MultipleChoiceWidget'
     5], function(declare,lang,domConstruct,_WidgetBase,_TemplatedMixin,
     6        _WidgetsInTemplateMixin,templateString,TextBox,Textarea,MultipleChoiceWidget){
     7    return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{
     8        templateString: templateString,
     9        mode: 'view', // view || edit
     10        name: '',
     11        value: null,
     12        _scale: null,
     13        _widgetCache: null,
     14        constructor: function() {
     15            this.inherited(arguments);
     16            this.value = {};
     17            this._widgetCache = {};
     18        },
     19        postCreate: function() {
     20            this._resetValue = this.value;
     21            this.scaleSelector.set('disabled', this.mode === 'edit');
     22        },
     23        _setValueAttr: function(value) {
     24            this.value = value;
     25            this._onTypeChange(value.scale || 'string');
     26            this.ourForm.set('value',value);
     27        },
     28        _getValueAttr: function() {
     29            var value = this.ourForm.get('value');
     30            lang.mixin(this.value,value);
     31            return this.value;
     32        },
     33        _onTypeChange: function(scale) {
     34            if ( this._scale === scale ) { return; }
     35            this._scale = scale;
     36            domConstruct.empty(this.scaleDetails);
     37            var widget = this._getTypeWidget(scale);
     38            if ( widget ) { widget.placeAt(this.scaleDetails,'only'); }
     39        },
     40        _getTypeWidget: function(scale) {
     41            var widget = this._widgetCache[scale];
     42            if (!widget) {
     43                switch(scale) {
     44                case 'string':
     45                    widget = new TextBox({
     46                        name: 'answers',
     47                        disabled: this.mode === 'view'
     48                    });
     49                    break;
     50                case 'text':
     51                    widget = new Textarea({
     52                        name: 'answers',
     53                        disabled: this.mode === 'view',
     54                        style: 'min-height: 120px'
     55                    });
     56                    break;
     57                case 'singleChoice':
     58                case 'multipleChoice':
     59                    widget = new MultipleChoiceWidget({
     60                        name: 'answers',
     61                        mode: this.mode,
     62                        allowMultiple: scale === 'multipleChoice'
     63                    });
     64                    break;
    6665                }
    67                 return widget;
    68             },
    69             reset: function() {
    70                 this.ourForm.reset();
    71                 this._setValueAttr(this._resetValue);
     66                this._widgetCache[scale] = widget;
    7267            }
    73         });
     68            return widget;
     69        },
     70        reset: function() {
     71            this.ourForm.reset();
     72            this._setValueAttr(this._resetValue);
     73        }
    7474    });
     75});
Note: See TracChangeset for help on using the changeset viewer.