Ignore:
Timestamp:
03/09/14 14:23:42 (11 years ago)
Author:
hendrikvanantwerpen
Message:
  • Enable/disable buttons on content change.
  • One place to do date formatting, because it was going wrong again.
  • Serialize questions in survey properly.
  • _ComplexValueMixin consumes submit events, but does trigger outer forms if present.
  • Trigger dialog show/hide for login only after previous effect is finished.
  • Check that documents are actually valid, not just that validator returned a result.
  • Validate email and timestamp formats.
  • Prepared for live runs.
Location:
Dev/trunk/src/client/qed-client/model
Files:
11 edited

Legend:

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

    r490 r492  
    22    "./_View",
    33    "dojo/_base/declare",
    4     "dojo/_base/lang"
    5 ], function(_View, declare, lang) {
     4    "dojo/_base/lang",
     5    "dojo/date/stamp"
     6], function(_View, declare, lang, stamp) {
    67
    78    var _Class = declare([_View],{
     
    5657                                             idOrObj :
    5758                                             this.getId(idOrObj));
     59        },
     60        _formatDate: function(date) {
     61            return stamp.toISOString(date,{zulu:true,milliseconds:false});
    5862        }
    5963    });
  • Dev/trunk/src/client/qed-client/model/classes/_View.js

    r490 r492  
    55    "dojo/_base/json",
    66    "dojo/_base/lang",
     7    "dojo/date/stamp",
    78    "dojo/store/util/QueryResults"
    8 ], function(JsonRest, Deferred, declare, json, lang, queryResults) {
     9], function(JsonRest, Deferred, declare, json, lang, stamp, queryResults) {
    910
    1011    var _View = declare([],{
     
    3839        getCollectionPath: function() {
    3940            return '/'+this._collection;
     41        },
     42        _parseDate: function(str) {
     43            return stamp.fromISOString(str);
    4044        }
    4145    });
  • Dev/trunk/src/client/qed-client/model/classes/questions.js

    r487 r492  
    11define([
    22    "./_Class",
    3     "dojo/_base/declare",
    4     "dojo/date/stamp"
    5 ], function(_Class, declare, stamp) {
     3    "dojo/_base/declare"
     4], function(_Class, declare) {
    65
    76    var Questions = declare([_Class],{
     
    2019        _deserialize: function(obj) {
    2120            if (obj.publicationDate) {
    22                 obj.publicationDate = stamp.fromISOString(obj.publicationDate);
     21                obj.publicationDate = this._parseDate(obj.publicationDate);
    2322            }
    2423        },
    2524        _serialize: function(obj) {
    2625            if (obj.publicationDate) {
    27                 obj.publicationDate = stamp.toISOString(obj.publicationDate);
     26                obj.publicationDate = this._formatDate(obj.publicationDate);
    2827            }
    2928        }
  • Dev/trunk/src/client/qed-client/model/classes/responses.js

    r490 r492  
    66    "dojo/_base/json",
    77    "dojo/_base/lang",
    8     "dojo/_base/xhr",
    9     "dojo/date/stamp"
    10 ], function(_Class, surveyRuns, Deferred, declare, json, lang, xhr, stamp) {
     8    "dojo/_base/xhr"
     9], function(_Class, surveyRuns, Deferred, declare, json, lang, xhr) {
    1110
    1211    var Responses = declare([_Class],{
     
    2625            }
    2726            if (obj.publicationDate) {
    28                 obj.publicationDate = stamp.fromISOString(obj.publicationDate);
     27                obj.publicationDate = this._parseDate(obj.publicationDate);
    2928            }
    3029        },
     
    3433            }
    3534            if (obj.publicationDate) {
    36                 obj.publicationDate = stamp.toISOString(obj.publicationDate);
     35                obj.publicationDate = this._formatDate(obj.publicationDate);
    3736            }
    3837        },
  • Dev/trunk/src/client/qed-client/model/classes/surveyRuns.js

    r487 r492  
    22    "./_Class",
    33    "./surveys",
    4     "dojo/_base/declare",
    5     "dojo/date/stamp"
    6 ], function(_Class, surveys, declare, stamp) {
     4    "dojo/_base/declare"
     5], function(_Class, surveys, declare) {
    76
    87    var SurveyRuns = declare([_Class],{
     
    2120        _deserialize: function(obj) {
    2221            if (obj.endDate) {
    23                 obj.endDate = stamp.fromISOString(obj.endDate);
     22                obj.endDate = this._parseDate(obj.endDate);
    2423            }
    2524            if (obj.startDate) {
    26                 obj.startDate = stamp.fromISOString(obj.startDate);
     25                obj.startDate = this._parseDate(obj.startDate);
    2726            }
    2827            if (obj.survey) {
     
    3231        _serialize: function(obj) {
    3332            if (obj.endDate) {
    34                 obj.endDate = stamp.toISOString(obj.endDate);
     33                obj.endDate = this._formatDate(obj.endDate);
    3534            }
    3635            if (obj.startDate) {
    37                 obj.startDate = stamp.toISOString(obj.startDate);
     36                obj.startDate = this._formatDate(obj.startDate);
    3837            }
    3938            if (obj.survey) {
  • Dev/trunk/src/client/qed-client/model/classes/surveys.js

    r490 r492  
    11define([
    22    "./_Class",
     3    "./questions",
     4    "dojo/_base/array",
    35    "dojo/_base/declare",
    4     "dojo/date/stamp",
    5     "dojo/store/JsonRest"
    6 ], function(_Class, declare, stamp, JsonRest) {
     6    "dojo/_base/lang"
     7], function(_Class, questions, array, declare, lang) {
    78
    89    var Surveys = declare([_Class],{
     
    1819        },
    1920        _deserialize: function(obj) {
     21            obj.questions = array.map(obj.questions,
     22                                      lang.hitch(questions,'_doDeserialize'));
    2023            if (obj.publicationDate) {
    21                 obj.publicationDate = stamp.fromISOString(obj.publicationDate);
     24                obj.publicationDate = this._parseDate(obj.publicationDate);
    2225            }
    2326        },
    2427        _serialize: function(obj) {
     28            obj.questions = array.map(obj.questions,
     29                                      lang.hitch(questions,'_doSerialize'));
    2530            if (obj.publicationDate) {
    26                 obj.publicationDate = stamp.toISOString(obj.publicationDate);
     31                obj.publicationDate = this._formatDate(obj.publicationDate);
    2732            }
    2833        },
  • Dev/trunk/src/client/qed-client/model/widgets/SurveyRunWidget.js

    r457 r492  
    1212                endDateBox.constraints.min  = value;
    1313            });
     14        },
     15        _getValueAttr: function() {
     16            var value = this.inherited(arguments);
     17            if ( !value.startDate ) { delete value.startDate; }
     18            if ( !value.endDate ) { delete value.endDate; }
     19            value.respondentCanDeleteOwnResponse = value.respondentCanDeleteOwnResponse[0] === true;
     20            return value;
    1421        }
    1522    });
  • Dev/trunk/src/client/qed-client/model/widgets/questions/templates/TextInputWidget.html

    r461 r492  
    11<form>
    22  <p>${text}</p>
    3   <div class="qedField" data-dojo-attach-point="textArea" data-dojo-type="dijit/form/Textarea" name="text"></div>
     3  <textarea class="qedField" data-dojo-attach-point="textArea" data-dojo-type="dijit/form/Textarea" name="text"></textarea>
    44</form>
  • Dev/trunk/src/client/qed-client/model/widgets/templates/QuestionWidget.html

    r443 r492  
    77            <input data-dojo-type="dijit/form/TextBox" name="title" type="text" class="loginInput" />
    88            <label for="question" class="loginLabel">Description</label>
    9             <input data-dojo-type="dijit/form/Textarea" name="description" type="text" class="loginInput"/>
     9            <textarea data-dojo-type="dijit/form/Textarea" name="description" type="text" class="loginInput"></textarea>
    1010            <label for="category" class="loginLabel">Category</label>
    1111            <input data-dojo-type="dijit/form/TextBox" name="category" type="text" class="loginInput" />
  • Dev/trunk/src/client/qed-client/model/widgets/templates/SurveyRunWidget.html

    r461 r492  
    33    <div>
    44        <label for="mode" class="qedLabel">Description</label>
    5         <textarea name="description" class="qedField" data-dojo-type="dijit/form/Textarea"></textarea>
     5        <textarea name="description" class="qedField"
     6                  data-dojo-type="dijit/form/Textarea"></textarea>
    67    </div>
    78
    89    <div>
    910        <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" />
     11        <input type="text" name="startDate" class="qedField"
     12               data-dojo-type="dijit/form/DateTextBox"
     13               data-dojo-attach-point="startDateBox" />
    1114    </div>
    1215
    1316    <div>
    1417        <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" />
     18        <input type="text" name="endDate" class="qedField"
     19               data-dojo-type="dijit/form/DateTextBox"
     20               data-dojo-attach-point="endDateBox" />
     21    </div>
     22
     23    <div>
     24        <label for="endDate" class="qedLabel">Allow respondents to delete their unsubmitted response</label>
     25        <input type="text" name="respondentCanDeleteOwnResponse"
     26               class="qedField"
     27               data-dojo-type="dijit/form/CheckBox"
     28               data-dojo-props="'value':true" />
    1629    </div>
    1730
  • Dev/trunk/src/client/qed-client/model/widgets/templates/SurveyWidget.html

    r461 r492  
    33    <input data-dojo-type="dijit/form/TextBox" name="title"/><br/>
    44    <label for="description">Description</label>
    5     <input data-dojo-type="dijit/form/Textarea" name="description"/><br/>
     5    <textarea data-dojo-type="dijit/form/Textarea" name="description"></textarea><br/>
    66</form>
Note: See TracChangeset for help on using the changeset viewer.