[IMP] don't handle keypresses at the editor level, do that in the view instead

maybe the editor could do it and trigger an event of its own for the view to handle?

bzr revid: xmo@openerp.com-20120702093113-berlms96fqzfjlyg
This commit is contained in:
Xavier Morel 2012-07-02 11:31:13 +02:00
parent f83684265d
commit ac2895fd62
1 changed files with 17 additions and 17 deletions

View File

@ -78,16 +78,27 @@ openerp.web.list_editable = function (instance) {
} }
}, },
on_loaded: function (data, grouped) { on_loaded: function (data, grouped) {
var self = this, form_ready = $.when(); var self = this;
// tree/@editable takes priority on everything else if present. // tree/@editable takes priority on everything else if present.
this.options.editable = ! this.options.read_only && (data.arch.attrs.editable || this.options.editable); this.options.editable = ! this.options.read_only && (data.arch.attrs.editable || this.options.editable);
var result = this._super(data, grouped); var result = this._super(data, grouped);
if (this.options.editable || true) { if (this.options.editable || true) {
this.editor = new instance.web.list.Editor(this); this.editor = new instance.web.list.Editor(this);
return $.when( var editor_ready = this.editor.prependTo(this.$element).then(function () {
result, self.editor.$element.on('keyup', function (e) {
this.editor.prependTo(this.$element)); switch (e.which) {
case KEY_RETURN:
self.save_edition();
break;
case KEY_ESCAPE:
self.cancel_edition();
break;
}
});
});
return $.when(result, editor_ready);
} }
return result; return result;
@ -264,19 +275,8 @@ openerp.web.list_editable = function (instance) {
var self = this; var self = this;
var _super = this._super(); var _super = this._super();
this.form.embedded_view = this.getParent().editionView(this); this.form.embedded_view = this.getParent().editionView(this);
var form_ready = this.form.appendTo(this.$element).then(function () { var form_ready = this.form.appendTo(this.$element).then(
self.form.do_hide(); self.form.proxy('do_hide'));
self.form.$element.on('keyup', function (e) {
switch (e.which) {
case KEY_RETURN:
self.save();
break;
case KEY_ESCAPE:
self.cancel();
break;
}
});
});
return $.when(_super, form_ready); return $.when(_super, form_ready);
}, },