Changeset 436


Ignore:
Timestamp:
04/24/13 20:28:45 (12 years ago)
Author:
hendrikvanantwerpen
Message:

Support validation for InputWidgets? and have slightly better hover color.

Location:
Dev/trunk/client/qed
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/client/qed/css/dijit/overrides.less

    r432 r436  
    107107    border: none;
    108108}
     109
     110.claro .dojoDndItemAnchor {
     111    background-color: #000000;
     112}
     113
     114.claro .dojoDndItemOver {
     115    background-color: #333333;
     116}
  • Dev/trunk/client/qed/css/qed.css

    r434 r436  
    339339  border: none;
    340340}
     341/* line 110, /home/hendrik/gamelab/qed.svn/Dev/trunk/client/qed/css/dijit/overrides.less */
     342@media -sass-debug-info{filename{font-family:file\:\/\/\/home\/hendrik\/gamelab\/qed\.svn\/Dev\/trunk\/client\/qed\/css\/dijit\/overrides\.less}line{font-family:\00003110}}
     343.claro .dojoDndItemAnchor {
     344  background-color: #000000;
     345}
     346/* line 114, /home/hendrik/gamelab/qed.svn/Dev/trunk/client/qed/css/dijit/overrides.less */
     347@media -sass-debug-info{filename{font-family:file\:\/\/\/home\/hendrik\/gamelab\/qed\.svn\/Dev\/trunk\/client\/qed\/css\/dijit\/overrides\.less}line{font-family:\00003114}}
     348.claro .dojoDndItemOver {
     349  background-color: #333333;
     350}
    341351/* line 3, /home/hendrik/gamelab/qed.svn/Dev/trunk/client/qed/css/dijit/ContentPane.less */
    342352@media -sass-debug-info{filename{font-family:file\:\/\/\/home\/hendrik\/gamelab\/qed\.svn\/Dev\/trunk\/client\/qed\/css\/dijit\/ContentPane\.less}line{font-family:\000033}}
  • Dev/trunk/client/qed/model/widgets/QuestionEditorPreview.js

    r417 r436  
    2020        _createListNode: function(item) {
    2121            var previewItem = new QuestionEditorPreviewItem({
    22                 item: item
     22                value: item
    2323            });
    24             previewItem.on('close',lang.hitch(this,'removeItem',item));
     24            this.own(previewItem.on('close',
     25                                    lang.hitch(this,'removeItem',item)));
    2526            previewItem.startup();
    2627            return previewItem.domNode;
  • Dev/trunk/client/qed/model/widgets/QuestionEditorPreviewItem.js

    r417 r436  
    11define([
    2     'dojo/_base/declare',
    3     'dojo/_base/fx',
    4     'dojo/_base/lang',
    5     'dojo/dom-class',
    6     'dojo/dom-geometry',
    7     'dojo/on',
    8     'dijit/_Container',
    9     'dijit/_TemplatedMixin',
    10     'dijit/_WidgetBase',
    11     'dijit/_WidgetsInTemplateMixin',
    12     './QuestionWidgetFactory',
    13     'dojo/text!./templates/QuestionEditorPreviewItem.html'
    14 ], function(
    15     declare,
    16     fx,
    17     lang,
    18     domClass,
    19     domGeom,
    20     on,
    21     _Container,
    22     _TemplatedMixin,
    23     _WidgetBase,
    24     _WidgetsInTemplateMixin,
    25     QuestionWidgetFactory,
    26     template
    27 ){
     2    "./QuestionWidgetFactory",
     3    "dijit/_Container",
     4    "dijit/_TemplatedMixin",
     5    "dijit/_WidgetBase",
     6    "dijit/_WidgetsInTemplateMixin",
     7    "dojo/_base/declare",
     8    "dojo/_base/fx",
     9    "dojo/_base/lang",
     10    "dojo/dom-class",
     11    "dojo/dom-geometry",
     12    "dojo/on",
     13    "dojo/text!./templates/QuestionEditorPreviewItem.html"
     14], function(QuestionWidgetFactory, _Container, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, declare, fx, lang, domClass, domGeom, on, template) {
    2815    return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container], {
    29         version: "full",
    3016        templateString: template,
    3117        baseClass: "surveyEditorPreviewItem",
    3218        previousContentHeight: 200,
    33         item: null,
     19        value: null,
    3420        innerWidget: null,
    3521        foldDuration: [250, 250],
    3622        animation: null,
    3723        _editing: false,
     24        _factory: new QuestionWidgetFactory(),
    3825
    3926        startup: function() {
    4027            if ( this._started ){ return; }
    4128            this.inherited(arguments);
    42             this.foldButtonNode.onClick = lang.hitch(this, this.toggleFold);
    43             this.removeButtonNode.onClick = lang.hitch(this, "onClose");
    44             this.editButtonNode.onClick = lang.hitch(this, this.toggleEdit);
    45             if (this.item) {
    46                 this._showViewWidget();
     29            this.own(on(this.foldButtonNode,'click',
     30                        lang.hitch(this, 'onToggleFold')));
     31            this.own(on(this.removeButtonNode,'click',
     32                        lang.hitch(this, 'onClose')));
     33            this.own(on(this.editButtonNode,'click',
     34                        lang.hitch(this, 'onToggleEdit')));
     35            if (this.value) {
     36                this._showEditWidget();
    4737            } else {
    4838                throw "No data supplied to create an innerWidget!";
    4939            }
    5040        },
    51         _destroyInnerWidget: function() {
    52             if ( this.innerWidget !== null ) {
    53                 this.innerWidget.destroyRecursive();
    54             }
    55         },
    56         _showViewWidget: function() {
    57             var factory = new QuestionWidgetFactory();
    58             this.innerWidget = factory.createViewWidget( this.item );
    59             if ( this.innerWidget !== null ) {
    60                 this.innerWidget.placeAt(this.containerNode);
    61                 this.innerWidget.startup();
    62                 this.innerWidget.set('readOnly',true);
    63             }
    64             this.titleNode.innerHTML = this.item.type+" [preview]";
    65         },
    66         _showEditWidget: function() {
    67             var factory = new QuestionWidgetFactory();
    68             this.innerWidget = factory.createEditWidget( this.item );
    69             if ( this.innerWidget !== null ) {
    70                 this.innerWidget.placeAt(this.containerNode);
    71                 this.innerWidget.startup();
    72             }
    73             this.titleNode.innerHTML = this.item.type+" [editing]";
    74         },
    7541        onClose: function() {},
    7642        _getValueAttr: function(value) {
    77             return this.item;
     43            return this.value;
    7844        },
    7945        _setValueAttr: function(value) {
    80             this.item = value;
     46            this.value = value;
    8147            this._destroyInnerWidget();
    8248            if ( this._editing ) {
     
    8652            }
    8753        },
    88         toggleEdit: function() {
    89             if(this._editing) {
     54        onToggleEdit: function() {
     55            if (this._editing) {
    9056                if ( this.innerWidget !== null ) {
    91                     this.item = this.innerWidget.get('value');
     57                    if (!this.innerWidget.validate ||
     58                        this.innerWidget.validate() ) {
     59                        this.value = this.innerWidget.get('value');
     60                        this._showViewWidget();
     61                    }
     62                } else {
     63                    this._showViewWidget();
    9264                }
    93                 this._destroyInnerWidget();
    94                 this._showViewWidget();
    95                 this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconAccept", "rftIconEdit");
    96                 this.editButtonNode.set("label", "Edit");
    9765            } else {
    98                 this._destroyInnerWidget();
    9966                this._showEditWidget();
    100                 this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconEdit", "rftIconAccept");
    101                 this.editButtonNode.set("label", "Done");
    10267            }
    103             this._editing = !this._editing;
    10468        },
    105         toggleFold: function() {
     69        _showViewWidget: function() {
     70            this._destroyInnerWidget();
     71            this.innerWidget = this._factory.createViewWidget( this.value );
     72            if ( this.innerWidget !== null ) {
     73                this.innerWidget.placeAt(this.containerNode);
     74                this.innerWidget.startup();
     75                this.innerWidget.set('readOnly',true);
     76            }
     77            this.titleNode.innerHTML = this.value.type+" [preview]";
     78            this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconAccept", "rftIconEdit");
     79            this.editButtonNode.set("label", "Edit");
     80            this._editing = false;
     81        },
     82        _showEditWidget: function() {
     83            this._destroyInnerWidget();
     84            this.innerWidget = this._factory.createEditWidget( this.value );
     85            if ( this.innerWidget !== null ) {
     86                this.innerWidget.placeAt(this.containerNode);
     87                this.innerWidget.startup();
     88            }
     89            this.titleNode.innerHTML = this.value.type+" [editing]";
     90            this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconEdit", "rftIconAccept");
     91            this.editButtonNode.set("label", "Done");
     92            this._editing = true;
     93        },
     94        _destroyInnerWidget: function() {
     95            if ( this.innerWidget !== null ) {
     96                this.innerWidget.destroyRecursive();
     97            }
     98        },
     99        onToggleFold: function() {
    106100            if (!this.animation) {
    107101                if (!domClass.contains(this.domNode, "fold")) {
Note: See TracChangeset for help on using the changeset viewer.