[REM] revert arrow navigation in editable list (postponed)

bzr revid: al@openerp.com-20111211153010-mrydgknz0tg2tbqq
This commit is contained in:
Antony Lesuisse 2011-12-11 16:30:10 +01:00
parent 35895bde21
commit e59a573534
2 changed files with 8 additions and 47 deletions

View File

@ -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

View File

@ -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;