Ignore:
Timestamp:
04/29/13 19:35:10 (12 years ago)
Author:
hendrikvanantwerpen
Message:

Big cleanup of the question content.

  • Replaced old list implementations with a new one that behaves like a form widget.
  • All question content is now in separate widgets, not in the factory itself.
  • Added form and widget validation for question editing.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/client/qed/pages/question.js

    r426 r441  
    4242        _refresh: function () {
    4343            this.titleNode.innerHTML = Question.DisplayTitle.get(this.question);
    44             this._toolkit.set('value',this.question);
    45             this._preview.appendItems(Question.Content.get(this.question));
     44            this._toolkit.set('value', this.question);
     45            this._preview.set('value', Question.Content.get(this.question));
    4646        },
    4747        _onSave: function(evt) {
    48             lang.mixin(this.question, this._toolkit.get('value'));
    49             Question.Content.set(this.question, this._preview.getItems());
    50             store.put(this.question)
    51             .then(function() {
    52                 Router.go('/questions');
    53             },function(err){
    54                 Content.notify(err,'error');
    55             });
     48            if ( this._preview.validate() ) {
     49                lang.mixin(this.question, this._toolkit.get('value'));
     50                Question.Content.set(this.question, this._preview.get('value'));
     51                store.put(this.question)
     52                .then(function() {
     53                    Router.go('/questions');
     54                },function(err){
     55                    Content.notify(err,'error');
     56                });
     57            }
    5658            if ( evt ) { event.stop( evt ); }
    5759            return false;
     
    6870
    6971            this._preview = new QuestionEditorPreview({
    70             },this.QuestionEditorPreviewNode);
     72                name: 'content',
     73                delay: 5,
     74                region: 'center'
     75            });
    7176            this._preview.startup();
    72             this._supportingWidgets.push(this._toolkit, this._preview);
     77            this.addChild(this._preview);
    7378        }
    7479    });
Note: See TracChangeset for help on using the changeset viewer.