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