summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-07-02 11:31:13 +0200
committerXavier Morel <xmo@openerp.com>2012-07-02 11:31:13 +0200
commitac2895fd62bf18787c83c7ff43d0e7eba4f31c12 (patch)
tree78faf43b7d2df7cfbb0e92e5be451d563060017d /addons/web/static/src
parentf83684265d4bf7b4d59789873cc1571810ee8df6 (diff)
[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
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_list_editable.js34
1 files changed, 17 insertions, 17 deletions
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index fb367c41bb4..0971edc348e 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -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);
},