[REM] revert arrow navigation in editable list (postponed)
bzr revid: al@openerp.com-20111211153010-mrydgknz0tg2tbqq
This commit is contained in:
parent
35895bde21
commit
e59a573534
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue