diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 2f89eaca5a6..15a402efb47 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1582,7 +1582,7 @@ openerp.web.form.FieldSelection = openerp.web.form.Field.extend({ .change(function () { ischanging = true; }) .click(function () { ischanging = false; }) .keyup(function (e) { - if (!_([13, 38, 40]).contains(e.which) || !ischanging) { return; } + if (e.which !== 13 || !ischanging) { return; } e.stopPropagation(); ischanging = false; }); @@ -1790,16 +1790,13 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ minLength: 0, delay: 0 }); - // Don't propagate KEY_UP and KEY_DOWN event to parent (for editable - // list), don't propagate KEY_RETURN either when the autocomplete - // control is currently open + // used to correct a bug when selecting an element by pushing 'enter' in an editable list this.$input.keyup(function(e) { - if (e.which === 38 || e.which === 40) { - e.stopPropagation(); - } else if (isSelecting && e.which === 13) { - e.stopPropagation(); - isSelecting = false; + if (e.which === 13) { + if (isSelecting) + e.stopPropagation(); } + isSelecting = false; }); }, // autocomplete component content handling diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 805ce0de1af..b2edf55b314 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -3,11 +3,8 @@ * @namespace */ openerp.web.list_editable = function (openerp) { - // https://developer.mozilla.org/en/DOM/KeyboardEvent#Virtual_key_codes var KEY_RETURN = 13, - KEY_ESCAPE = 27, - KEY_UP = 38, - KEY_DOWN = 40; + KEY_ESCAPE = 27; var QWeb = openerp.web.qweb; // editability status of list rows @@ -181,7 +178,7 @@ openerp.web.list_editable = function (openerp) { var next_record_id, next_record = self.records.at( - self.records.indexOf(result.edited_record) + 1); + self.records.indexOf(result.edited_record) + 1); if (next_record) { next_record_id = next_record.get('id'); self.dataset.index = _(self.dataset.ids) @@ -193,39 +190,6 @@ openerp.web.list_editable = function (openerp) { self.edit_record(next_record_id); }); break; - case KEY_DOWN: - this.save_row().then(function (result) { - var next_record_id, - next_record = self.records.at( - self.records.indexOf(result.edited_record) + 1); - if (next_record) { - next_record_id = next_record.get('id'); - self.dataset.index = _(self.dataset.ids) - .indexOf(next_record_id); - } else { - self.dataset.index = 0; - next_record_id = self.records.at(0).get('id'); - } - self.edit_record(next_record_id); - }); - break; - case KEY_UP: - this.save_row().then(function (result) { - var previous_record_id, - previous_record = self.records.at( - self.records.indexOf(result.edited_record) - 1); - if (previous_record) { - previous_record_id = previous_record.get('id'); - self.dataset.index = _(self.dataset.ids) - .indexOf(previous_record_id); - } else { - var last = self.records.length - 1; - self.dataset.index = last; - previous_record_id = self.records.at(last).get('id'); - } - self.edit_record(previous_record_id); - }); - break; case KEY_ESCAPE: this.cancel_edition(); break;