Changeset 502 for Dev


Ignore:
Timestamp:
03/11/14 00:41:43 (11 years ago)
Author:
hendrikvanantwerpen
Message:
  • ListWidget? can be disabled/readOnyl now.
  • Disable question and survey pages when published.
  • Removed weird dialog from survey page and just put a form there. Not very nice, but more consistent with the rest I would say.
Location:
Dev/trunk/src/client/qed-client
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/client/qed-client/model/widgets/QuestionEditorToolkit.js

    r493 r502  
    11define([
     2    "../../widgets/_ComplexValueWidget",
    23    "../classes/categories",
    34    "../classes/topics",
    45    "./CategoryListView",
    5     "dijit/_Container",
    6     "dijit/_TemplatedMixin",
    7     "dijit/_WidgetBase",
    8     "dijit/_WidgetsInTemplateMixin",
    96    "dijit/form/Button",
    107    "dijit/form/ComboBox",
     
    1613    "require",
    1714    "dojo/text!./templates/QuestionEditorToolkit.html"
    18 ], function(categories, topics, CategoryListView, _Container, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, Button, ComboBox, declare, lang, Source, domConstruct, Memory, require, template) {
    19     return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container], {
     15], function(_ComplexValueWidget, categories, topics, CategoryListView, Button, ComboBox, declare, lang, Source, domConstruct, Memory, require, template) {
     16    return declare([_ComplexValueWidget], {
    2017
    2118        contextRequire: require,
  • Dev/trunk/src/client/qed-client/model/widgets/templates/QuestionEditorToolkit.html

    r443 r502  
    1 <div>
     1<form>
    22        <div data-dojo-type="../../widgets/TitleGroup">
    33                <div data-dojo-type="dijit/TitlePane" class="orange" data-dojo-props="open:true" title="Properties" data-dojo-props="iconClass:'rftIcon rftIconProperties'">
     
    2323                </div>
    2424        </div>
    25 </div>
     25</form>
  • Dev/trunk/src/client/qed-client/pages/question.js

    r500 r502  
    1313        contextRequire: require,
    1414        templateString: template,
    15         _toolkit: null,
    1615        _preview: null,
    1716        classStore: questions,
     
    1918            if ( this._started ) { return; }
    2019            this.inherited(arguments);
    21             this.own(this.propertiesForm.on('change',lang.hitch(this,'_handlePropertiesChange')));
     20            this.own(this.QuestionEditorToolkit.on('change',lang.hitch(this,'_handlePropertiesChange')));
    2221            this.own(this.contentList.on('change',lang.hitch(this,'_handleContentChange')));
    2322            this._load();
     
    2524        _refresh: function(initial) {
    2625            if ( initial === true ) {
    27                 this.propertiesForm.set('value',this.object,null);
     26                this.QuestionEditorToolkit.set('value',this.object,null);
    2827                this.contentList.set('value',this.object.content,null);
    2928            }
    3029            this.titleNode.innerHTML = this.object.title || "";
     30            if ( this.object.publicationDate ) {
     31                this.QuestionEditorToolkit.set('readOnly',true);
     32                this.QuestionEditorToolkit.set('disabled',true);
     33                this.contentList.set('readOnly',true);
     34                this.contentList.set('disabled',true);
     35            }
    3136        },
    3237        _handlePropertiesChange: function() {
     
    4146        },
    4247        _updateObject: function() {
    43             var pValid = this.propertiesForm.validate();
    44             lang.mixin(this.object,this.propertiesForm.get('value'));
     48            var pValid = this.QuestionEditorToolkit.validate();
     49            lang.mixin(this.object,this.QuestionEditorToolkit.get('value'));
    4550            var cValid = this.contentList.validate();
    4651            this.object.content = this.contentList.get('value');
  • Dev/trunk/src/client/qed-client/pages/survey.js

    r500 r502  
    2424            this._setupListView();
    2525            this.own(this.questionList.on('change',lang.hitch(this,'_handleQuestionsChange')));
     26            this.own(this.propertiesForm.on('change',lang.hitch(this,'_handlePropertiesChange')));
    2627            this._load();
    2728        },
     
    6768            }
    6869            this.titleNode.innerHTML = this.object.title || "(set title in properties)";
     70            if ( this.object.publicationDate ) {
     71                this.propertiesForm.set('readOnly',true);
     72                this.propertiesForm.set('disabled',true);
     73                this.questionList.set('readOnly',true);
     74                this.questionList.set('disabled',true);
     75            }
    6976        },
    7077        _includeQuestion: function(question) {
     
    7683            this._refresh();
    7784        },
    78         _onShowProperties: function(evt) {
    79             this.propertiesDialog.show();
    80             if ( evt ) { event.stop(evt); }
    81             return false;
    82         },
    83         _onPropertiesOk: function(evt) {
    84             this.propertiesDialog.hide();
     85        _handlePropertiesChange: function() {
    8586            lang.mixin(this.object, this.propertiesForm.get('value').survey);
    8687            this.markDirty();
    8788            this._refresh();
    88             if ( evt ) { event.stop(evt); }
    89             return false;
    90         },
    91         _onPropertiesCancel: function(evt) {
    92             this.propertiesDialog.hide();
    93             this.propertiesForm.set('value',{survey:this.object});
    94             if ( evt ) { event.stop(evt); }
    95             return false;
     89            this.layout();
    9690        },
    9791        _onSave: function(evt) {
     
    128122            this.discardBtn.set('label','Close');
    129123            this.inherited(arguments);
     124        },
     125        _ignore: function(evt) {
     126            event.stop(evt);
     127            return false;
    130128        }
    131129    });
  • Dev/trunk/src/client/qed-client/pages/templates/question.html

    r492 r502  
    66        </h2>
    77    </div>
    8     <form data-dojo-type="dijit/form/Form"
    9          data-dojo-props="region:'left'"
    10          data-dojo-attach-point="propertiesForm"
    11          data-dojo-attach-event="onSubmit:_ignore">
     8    <div data-dojo-type="dijit/layout/ContentPane"
     9         data-dojo-props="region:'left'">
    1210        <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline'" style="width: 300px;">
    13             <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
    14                 <div data-dojo-type="../model/widgets/QuestionEditorToolkit"
    15                      data-dojo-attach-point="QuestionEditorToolkitNode"></div>
    16             </div>
    1711            <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">
    1812                <button data-dojo-type="dijit/form/Button"
    19                         data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'"
     13                        data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconAccept'"
    2014                        data-dojo-attach-point="saveBtn"
    2115                        data-dojo-attach-event="onClick:_onSave">
    2216                  Save</button>
    2317                <button data-dojo-type="dijit/form/Button"
    24                         data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'"
     18                        data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconAccept'"
    2519                        data-dojo-attach-point="saveAndCloseBtn"
    2620                        data-dojo-attach-event="onClick:_onSaveAndClose">
    2721                  Save &amp; Close</button>
    2822                <button data-dojo-type="dijit/form/Button"
    29                         data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconCancel'"
     23                        data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconCancel'"
    3024                        data-dojo-attach-point="discardBtn"
    3125                        data-dojo-attach-event="onClick:_onDiscard">
    3226                  Discard &amp; Close</button>
    3327            </div>
     28            <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
     29                <div data-dojo-type="../model/widgets/QuestionEditorToolkit"
     30                     data-dojo-attach-point="QuestionEditorToolkit"></div>
     31            </div>
    3432        </div>
    35     </form>
     33    </div>
    3634    <div data-dojo-type="../model/widgets/QuestionEditorPreview"
    3735         data-dojo-attach-point="contentList"
  • Dev/trunk/src/client/qed-client/pages/templates/survey.html

    r492 r502  
    1313   
    1414    <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="region:'right'" style="width: 300px">
     15     
     16        <form data-dojo-type="dijit/form/Form"
     17              data-dojo-attach-point="propertiesForm"
     18              data-dojo-attach-event="onSubmit:_ignore"
     19              data-dojo-props="region:'top'">
     20            <fieldset class="qedFieldset">
     21                <div data-dojo-type="../model/widgets/SurveyWidget" data-dojo-props="name:'survey'"></div>
     22            </fieldset>
     23        </form>
     24
    1525        <div data-dojo-attach-point="surveyListViewNode" class="rftSurveyListView">
    1626        </div>
    1727
    18         <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'bottom'">
    19             <button data-dojo-type="dijit/form/Button"
    20                     data-dojo-attach-event="onClick:_onShowProperties"
    21                     data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconProperties'">
    22                 Properties</button>
     28        <div data-dojo-type="dijit/layout/ContentPane"
     29             data-dojo-props="region:'bottom'">
    2330            <button data-dojo-type="dijit/form/Button"
    2431                    data-dojo-attach-event="onClick:_onSave"
    2532                    data-dojo-attach-point="saveBtn"
    26                     data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'">
     33                    data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconAccept'">
    2734                Save</button>
    2835            <button data-dojo-type="dijit/form/Button"
    2936                    data-dojo-attach-event="onClick:_onSaveAndClose"
    3037                    data-dojo-attach-point="saveAndCloseBtn"
    31                     data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'">
     38                    data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconAccept'">
    3239                Save &amp; Close</button>
    3340            <button data-dojo-type="dijit/form/Button"
    3441                    data-dojo-attach-event="onClick:_onDiscardAndClose"
    3542                    data-dojo-attach-point="discardBtn"
    36                     data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconCancel'">
     43                    data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconCancel'">
    3744                Discard &amp; Close</button>
    3845            <button data-dojo-type="dijit/form/Button"
    3946                    data-dojo-attach-event="onClick:_onShowPreview"
    40                     data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconPreview'">
     47                    data-dojo-props="baseClass: 'rftBlockButton', iconClass: 'rftIcon rftIconPreview'">
    4148                Preview</button>
    4249        </div>
    4350    </div>
    4451
    45     <div data-dojo-type="dijit/Dialog"
    46          data-dojo-props="'title':'Survey properties'"
    47          data-dojo-attach-point="propertiesDialog">
    48         <form data-dojo-type="dijit/form/Form"
    49               data-dojo-attach-point="propertiesForm"
    50               data-dojo-attach-event="onSubmit:_onPropertiesOk">
    51             <fieldset class="qedFieldset">
    52                 <div data-dojo-type="../model/widgets/SurveyWidget" data-dojo-props="name:'survey'"></div>
    53             </fieldset>
    54             <button data-dojo-type="dijit/form/Button"
    55                     type="submit"
    56                     data-dojo-attach-event="onClick:_onPropertiesOk">
    57                 OK</button>
    58             <button data-dojo-type="dijit/form/Button"
    59                     type="button"
    60                     data-dojo-attach-event="onClick:_onPropertiesCancel">
    61                 Cancel</button>
    62         </form>
    63     </div>
    64 
    6552</div>
  • Dev/trunk/src/client/qed-client/widgets/ListWidget.js

    r501 r502  
    2323         */
    2424        container: Source,
     25        _restoreParams: null,
    2526        _onChangeActive: false,
    2627        buildRendering: function() {
     
    5455            });
    5556            this.source = new this.container(this.domNode,sourceParams);
     57            this._restoreParams = {
     58                accept: this.source.accept,
     59                selfAccept: this.source.selfAccept,
     60                selfCopy: this.source.selfCopy,
     61                isSource: this.source.isSource
     62            };
    5663            this.own(this.source.on('Drop',
    5764                                    lang.hitch(this,'_handleDrop')));
     
    112119                child.set("disabled", value);
    113120            });
     121            this._updateContainer();
    114122        },
    115123        _setReadOnlyAttr: function(value) {
     
    118126                child.set("readOnly", value);
    119127            });
     128            this._updateContainer();
     129        },
     130        _updateContainer: function() {
     131            if ( this.disabled || this.readOnly ) {
     132                this.source.accept = [];
     133                this.source.selfAccept = false;
     134                this.source.selfCopy = false;
     135                this.source.isSource = false;
     136            } else {
     137                lang.mixin(this.source,this._restoreParams);
     138            }
    120139        },
    121140        focus: function() {
Note: See TracChangeset for help on using the changeset viewer.