fix(Grid): arrow key navigation

This commit is contained in:
Saif Ur Rehman 2019-10-14 17:37:56 +05:00
parent bb3d435569
commit cfb2debacb

View file

@ -416,7 +416,7 @@ export default class GridRow {
var me = this;
if(field.$input) {
field.$input.on('keydown', function(e) {
var { TAB, UP_ARROW, DOWN_ARROW } = frappe.ui.keyCode;
var { TAB, UP: UP_ARROW, DOWN: DOWN_ARROW } = frappe.ui.keyCode;
if(!in_list([TAB, UP_ARROW, DOWN_ARROW], e.which)) {
return;
}
@ -429,43 +429,50 @@ export default class GridRow {
if(in_list(['Text', 'Small Text'], fieldtype)) {
return;
}
if(field.autocomplete_open) {
return;
}
base.toggle_editable_row();
setTimeout(function() {
var input = base.columns[fieldname].field.$input;
if(input) {
input.focus();
}
}, 400)
var input = base.columns[fieldname].field.$input;
if(input) {
input.focus();
}
}
};
// TAB
if(e.which==TAB && !e.shiftKey) {
// last column
if($(this).attr('data-last-input') ||
me.grid.wrapper.find('.grid-row :input:enabled:last').get(0)===this) {
setTimeout(function() {
if(me.doc.idx === values.length) {
// last row
var last_column = me.wrapper.find(':input:enabled:last').get(0);
var is_last_column = $(this).attr('data-last-input') || last_column === this;
if (is_last_column) {
// last row
if (me.doc.idx === values.length) {
setTimeout(function () {
me.grid.add_new_row(null, null, true);
me.grid.grid_rows[me.grid.grid_rows.length - 1].toggle_editable_row();
me.grid.set_focus_on_row();
} else {
me.grid.grid_rows[me.doc.idx].toggle_editable_row();
me.grid.set_focus_on_row(me.doc.idx+1);
}
}, 500);
}, 100);
}
// last column before last row
else {
me.grid.grid_rows[me.doc.idx].toggle_editable_row();
me.grid.set_focus_on_row(me.doc.idx);
return false;
}
}
} else if(e.which==UP_ARROW) {
if(me.doc.idx > 1) {
var prev = me.grid.grid_rows[me.doc.idx-2];
move_up_down(prev);
return false;
}
} else if(e.which==DOWN_ARROW) {
if(me.doc.idx < values.length) {
var next = me.grid.grid_rows[me.doc.idx];
move_up_down(next);
return false;
}
}