Changeset 457


Ignore:
Timestamp:
06/09/13 17:27:20 (12 years ago)
Author:
hendrikvanantwerpen
Message:

Improve SurveyRun? form and drop Fieldsets as widgets.

  • Improved console message on Page change fail.
  • Renamed some widgets, dropped having Fieldset widgets.
  • Put constraint that survey run start date cannot be before end date.
  • Link to survey from survey summary,
Location:
Dev/trunk/src/client/qed-client
Files:
10 edited
2 copied
4 moved

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/client/qed-client/app/Router.js

    r443 r457  
    7878                        route.callback(params);
    7979                    } catch(err) {
    80                         console.error("Page change failed.",err);
     80                        console.error("Page change failed with",err.toString());
    8181                    }
    8282                    return;
  • Dev/trunk/src/client/qed-client/model/classes/SurveyRun.js

    r443 r457  
    1111                }
    1212                return d;
     13            },
     14            set: function(sr,d) {
     15                if ( d ) {
     16                    sr.startDate = lang.isString(d) ? stamp.toISOString(d) : d;
     17                }
    1318            }
    1419        },
     
    2025                }
    2126                return d;
     27            },
     28            set: function(sr,d) {
     29                if ( d ) {
     30                    sr.endDate = lang.isString(d) ? stamp.toISOString(d) : d;
     31                }
    2232            }
    2333        },
  • Dev/trunk/src/client/qed-client/model/widgets/SurveyRenderWidget.js

    r455 r457  
    11define([
     2    "../../widgets/_ComplexValueWidget",
    23    "../classes/Survey",
    34    "./questions/Factory",
    4     "dijit/_Container",
    5     "dijit/_TemplatedMixin",
    6     "dijit/_WidgetBase",
    7     "dijit/_WidgetsInTemplateMixin",
    85    "dojo/_base/array",
    96    "dojo/_base/declare",
    107    "dojo/dom-construct",
    11     "dojo/text!./templates/SurveyWidget.html"
    12 ], function(Survey, QuestionWidgetFactory, _Container, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, array, declare, domConstruct, template) {
    13     return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{
     8    "dojo/text!./templates/SurveyRenderWidget.html"
     9], function(_ComplexValueWidget, Survey, QuestionWidgetFactory, array, declare, domConstruct, template) {
     10    return declare([_ComplexValueWidget],{
    1411        templateString: template,
    1512        survey: null,
  • Dev/trunk/src/client/qed-client/model/widgets/SurveyRunWidget.js

    r455 r457  
    11define([
    2     'dojo/_base/declare',
    3     'dijit/_Container',
    4     'dijit/_WidgetBase',
    5     'dijit/_TemplatedMixin',
    6     'dijit/_WidgetsInTemplateMixin',
    7     'dojo/text!./templates/SurveyRunFieldset.html'
    8 ],function(declare,_Container,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,template){
    9     return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{
     2    "../../widgets/_ComplexValueWidget",
     3    "dojo/_base/declare",
     4    "dojo/date",
     5    "dojo/text!./templates/SurveyRunWidget.html"
     6], function(_ComplexValueWidget, declare, date, template) {
     7    return declare([_ComplexValueWidget],{
    108        templateString: template,
    11         baseClass: "rftSurveyRunFieldset"
     9        postCreate: function() {
     10            var endDateBox = this.endDateBox;
     11            this.startDateBox.on('change', function(value){
     12                endDateBox.constraints.min  = value;
     13            });
     14        }
    1215    });
    1316});
  • Dev/trunk/src/client/qed-client/model/widgets/SurveySummary.js

    r443 r457  
    11define([
    2     'dojo/_base/declare',
    3     'dijit/_WidgetBase',
    4     'dijit/_TemplatedMixin',
    5     'dojo/text!./templates/SurveySummary.html'
    6 ],function(declare,_WidgetBase,_TemplatedMixin,template){
     2    "../../store",
     3    "../classes/Survey",
     4    "dijit/_TemplatedMixin",
     5    "dijit/_WidgetBase",
     6    "dojo/_base/declare",
     7    "dojo/dom-attr",
     8    "dojo/text!./templates/SurveySummary.html"
     9], function(store, Survey, _TemplatedMixin, _WidgetBase, declare, domAttr, template) {
    710    return declare([_WidgetBase,_TemplatedMixin],{
    811        templateString: template,
     
    1518        },
    1619        _setValueAttr: function(survey) {
    17             this.titleNode.innerHTML = survey.title;
     20            this.titleNode.innerHTML = Survey.DisplayTitle.get(survey);
     21            var id = store.getIdentity(survey);
     22            domAttr.set(this.titleNode, "href", id && ("#!/survey/"+id));
    1823            this.descriptionNode.innerHTML = survey.description;
    1924            this.questionsNode.innerHTML = (survey.questions || []).length;
  • Dev/trunk/src/client/qed-client/model/widgets/SurveyWidget.js

    r455 r457  
    11define([
    2     'dojo/_base/declare',
    3     'dijit/_Container',
    4     'dijit/_WidgetBase',
    5     'dijit/_TemplatedMixin',
    6     'dijit/_WidgetsInTemplateMixin',
    7     'dojo/text!./templates/SurveyFieldset.html'
    8 ],function(declare,_Container,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,template){
    9     return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{
    10         templateString: template,
    11         baseClass: "rftSurveyFieldset"
     2    "../../widgets/_ComplexValueWidget",
     3    "dojo/_base/declare",
     4    "dojo/text!./templates/SurveyWidget.html"
     5], function(_ComplexValueWidget, declare, template) {
     6    return declare([_ComplexValueWidget],{
     7        templateString: template
    128    });
    139});
  • Dev/trunk/src/client/qed-client/model/widgets/templates/SurveyRunWidget.html

    r455 r457  
    1 <fieldset class="${baseClass} qedFieldset">
     1<div class="${baseClass}">
    22
    33    <div>
    4     <label for="mode" class="qedLabel">Description</label>
    5     <textarea name="description" class="qedField" data-dojo-type="dijit/form/Textarea"></textarea>
     4        <label for="mode" class="qedLabel">Description</label>
     5        <textarea name="description" class="qedField" data-dojo-type="dijit/form/Textarea"></textarea>
    66    </div>
    77
    88    <div>
    9     <label for="startDate" class="qedLabel">Start date</label>
    10     <input type="text" name="startDate" class="qedField" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="startDateBox" />
     9        <label for="startDate" class="qedLabel">Start date</label>
     10        <input type="text" name="startDate" class="qedField" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="startDateBox" />
    1111    </div>
    1212
    1313    <div>
    14     <label for="endDate" class="qedLabel">End date</label>
    15     <input type="text" name="endDate" class="qedField" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="endDateBox" />
     14        <label for="endDate" class="qedLabel">End date</label>
     15        <input type="text" name="endDate" class="qedField" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="endDateBox" />
    1616    </div>
    1717
    1818    <div>
    19     <label for="mode" class="qedLabel">Mode</label>
    20     <select name="mode" class="qedField" data-dojo-type="dijit/form/Select">
    21         <option value="open" selected="selected">Open</option>
    22         <option value="closed">Closed</option>
    23     </select>
     19        <label for="mode" class="qedLabel">Mode</label>
     20        <select name="mode" class="qedField" data-dojo-type="dijit/form/Select">
     21            <option value="open" selected="selected">Open</option>
     22            <option value="closed">Closed</option>
     23        </select>
    2424    </div>
    2525
    26 </fieldset>
     26</div>
  • Dev/trunk/src/client/qed-client/model/widgets/templates/SurveySummary.html

    r443 r457  
    1 <fieldset class="qedFieldset">
    2     <legend>Survey</legend>
    3     <div><div class="qedLabel">Title</div><div class="qedField" data-dojo-attach-point="titleNode"></div></div>
     1<div>
     2    <div><div class="qedLabel">Title</div><div class="qedField"><a data-dojo-attach-point="titleNode"></a></div></div>
    43    <div><div class="qedLabel">Description</div><div class="qedField" data-dojo-attach-point="descriptionNode"></div></div>
    54    <div><div class="qedLabel">Questions</div><div class="qedField" data-dojo-attach-point="questionsNode"></div></div>
    6 </fieldset>
     5</div>
  • Dev/trunk/src/client/qed-client/pages/surveyRun.js

    r443 r457  
    2121            if ( this._started ) { return; }
    2222            this.inherited(arguments);
    23             this.propertiesForm.on("blur",lang.hitch(this,'_onPropChange'));
     23            this.surveyRunWidget.on("blur",lang.hitch(this,'_onPropChange'));
    2424            if ( this.surveyRunId ) {
    2525                this._loadSurveyRun();
     
    3838        refreshSurveyRun: function() {
    3939            this.titleNode.innerHTML = SurveyRun.DisplayTitle.get(this.surveyRun);
    40             this.surveyNode.set('value',SurveyRun.Survey.get(this.surveyRun));
    41             this.propertiesForm.set('value',this.surveyRun);
     40            this.surveySummaryWidget.set('value',SurveyRun.Survey.get(this.surveyRun));
     41            this.surveyRunWidget.set('value',this.surveyRun);
    4242            this._onPropChange();
    4343        },
     
    7070        },
    7171        _onPropChange: function(e) {
    72             var surveyRun = this.propertiesForm.get('value');
     72            var surveyRun = this.surveyRunWidget.get('value');
    7373            if ( surveyRun.mode === "open" ) {
    7474                this.runURLNode.innerHTML = this._link(this._getGeneralURL(store.getIdentity(this.surveyRun)));
     
    8787        },
    8888        _onSave: function(evt) {
    89             lang.mixin(this.surveyRun,this.propertiesForm.get('value'));
    90             var not = function(p){ return !p; };
    91             func.modPropIf(this.surveyRun,"startDate",not.compose(lang.isString),store.formatDate);
    92             func.modPropIf(this.surveyRun,"endDate",not.compose(lang.isString),store.formatDate);
    93             store.put(this.surveyRun)
    94             .then(function() {
    95                 Router.go('/surveys');
    96             },function(err){
    97                 Content.notify(err);
    98             });
     89            if ( this.surveyRunWidget.validate() ) {
     90                lang.mixin(this.surveyRun,this.surveyRunWidget.get('value'));
     91
     92                var SD = SurveyRun.StartDate;
     93                var ED = SurveyRun.EndDate;
     94                SD.set(this.surveyRun, SD.get(this.surveyRun));
     95                ED.set(this.surveyRun, ED.get(this.surveyRun));
     96
     97                store.put(this.surveyRun)
     98                .then(function() {
     99                    Router.go('/surveys');
     100                },function(err){
     101                    Content.notify(err);
     102                });
     103            }
    99104            event.stop(evt);
    100105            return false;
  • Dev/trunk/src/client/qed-client/pages/templates/previewSurvey.html

    r443 r457  
    1010    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" data-dojo-attach-point="questionsPane">
    1111        <form data-dojo-type="dijit/form/Form" data-dojo-attach-point="questionsForm" style="overflow: auto">
    12             <div data-dojo-type="../model/widgets/SurveyWidget" data-dojo-attach-point="surveyWidget"></div>
     12            <div data-dojo-type="../model/widgets/SurveyRenderWidget" data-dojo-attach-point="surveyWidget"></div>
    1313        </form>
    1414    </div>
  • Dev/trunk/src/client/qed-client/pages/templates/response.html

    r443 r457  
    1111        <form data-dojo-type="dijit/form/Form" data-dojo-attach-point="responseForm"
    1212              data-dojo-attach-event="onSubmit:_ignoreEvent" style="overflow: auto">
    13             <div data-dojo-type="../model/widgets/SurveyWidget" data-dojo-attach-point="surveyWidget"></div>
     13            <div data-dojo-type="../model/widgets/SurveyRenderWidget" data-dojo-attach-point="surveyWidget"></div>
    1414        </form>
    1515    </div>
  • Dev/trunk/src/client/qed-client/pages/templates/survey.html

    r443 r457  
    4040         data-dojo-attach-point="propertiesDialog"
    4141         data-dojo-attach-event="onSubmit:_onPropertiesOk">
    42         <fieldset data-dojo-type="../model/widgets/SurveyFieldset"></fieldset>
     42        <fieldset class="qedFieldset">
     43            <div data-dojo-type="../model/widgets/SurveyWidget"></div>
     44        </fieldset>
    4345        <button data-dojo-type="dijit/form/Button"
    4446                type="submit"
  • Dev/trunk/src/client/qed-client/pages/templates/surveyRun.html

    r443 r457  
    99   
    1010    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
    11         <div data-dojo-type="../model/widgets/SurveySummary" data-dojo-attach-point="surveyNode"></div>
    12         <div data-dojo-type="dijit/form/Form"
    13              data-dojo-attach-point="propertiesForm">
    14             <fieldset data-dojo-type="../model/widgets/SurveyRunFieldset"></fieldset>
    15         </div>
    1611        <fieldset class="qedFieldset">
     12            <legend>Survey</legend>
     13            <div data-dojo-type="../model/widgets/SurveySummary" data-dojo-attach-point="surveySummaryWidget"></div>
     14        </fieldset>
     15        <fieldset class="qedFieldset">
     16            <legend>Run Details</legend>
     17            <div data-dojo-type="../model/widgets/SurveyRunWidget" data-dojo-attach-point="surveyRunWidget"></div>
     18        </fieldset>
     19        <fieldset class="qedFieldset">
     20            <legend>Response Details</legend>
    1721            <div><div class="qedLabel">General URL</div><div class="qedField" data-dojo-attach-point="runURLNode" style="overflow: ellipsis"></div></div>
    1822            <div><div class="qedLabel">Responses <span data-dojo-attach-point="responsesCountNode"></span></div><div class="qedField qedFill" data-dojo-attach-point="responsesNode"></div></div>
  • Dev/trunk/src/client/qed-client/stddeps.js

    r443 r457  
    2828
    2929    './model/widgets/AccountListView',
    30     './model/widgets/SurveyFieldset',
    31     './model/widgets/SurveyRunFieldset',
     30    './model/widgets/SurveyRenderWidget',
     31    './model/widgets/SurveyRunWidget',
    3232    './model/widgets/SurveySummary',
    3333    './model/widgets/SurveyWidget',
Note: See TracChangeset for help on using the changeset viewer.