[FIX] web: typo in function name (FieldBoolean._onKeydown)
When focusing a checkbox field and hitting the "enter" key, the checkbox should change its status. Before this commit, this produced a traceback instead as it was trying to call the `_onKeyDown` function while it was defined as `_onKeydown`. Also the `_onKeydown` method is in fact declared in the `AbstractField` parent implementation, so there is no point in declaring the event binding twice. Also, part of the `FieldBoolean._onKeydown` code was in common with its parent `AbstractField._onKeydown` code so remove it as there is no point in duplicating it. Note: this `_onKeydown` method has to be refactored as it is breaking form view navigation anyway. Also modify an existing test to check the checkbox keyboard navigation.
This commit is contained in:
@@ -373,7 +373,6 @@ var FieldBoolean = AbstractField.extend({
|
||||
className: 'o_field_boolean',
|
||||
events: _.extend({}, AbstractField.prototype.events, {
|
||||
change: '_onChange',
|
||||
keydown: '_onKeyDown',
|
||||
}),
|
||||
replace_element: true,
|
||||
supportedFieldTypes: ['boolean'],
|
||||
@@ -455,6 +454,7 @@ var FieldBoolean = AbstractField.extend({
|
||||
* @param {KeyEvent} event
|
||||
*/
|
||||
_onKeydown: function (event) {
|
||||
this._super.apply(this, arguments);
|
||||
switch (event.which) {
|
||||
case $.ui.keyCode.DOWN:
|
||||
this.trigger_up('move_down');
|
||||
@@ -468,10 +468,6 @@ var FieldBoolean = AbstractField.extend({
|
||||
case $.ui.keyCode.RIGHT:
|
||||
this.trigger_up('move_right');
|
||||
break;
|
||||
case $.ui.keyCode.TAB:
|
||||
this.trigger_up('move_next');
|
||||
event.preventDefault();
|
||||
break;
|
||||
case $.ui.keyCode.ENTER:
|
||||
this.$input.prop('checked', !this.value);
|
||||
this._setValue(!this.value);
|
||||
|
||||
@@ -109,7 +109,7 @@ QUnit.module('basic_fields', {
|
||||
|
||||
QUnit.module('FieldBoolean');
|
||||
|
||||
QUnit.test('boolean field in form view', function(assert) {
|
||||
QUnit.test('boolean field in form view', function (assert) {
|
||||
assert.expect(7);
|
||||
|
||||
var form = createView({
|
||||
@@ -142,8 +142,11 @@ QUnit.module('basic_fields', {
|
||||
form.$buttons.find('.o_form_button_edit').click();
|
||||
assert.strictEqual(form.$('.o_field_boolean input:checked').length, 0,
|
||||
"checkbox should still be unchecked");
|
||||
// check the checkbox
|
||||
form.$('.o_field_boolean input').click();
|
||||
// check the checkbox by hitting the "enter" key after focusing it
|
||||
form.$('.o_field_boolean input')
|
||||
.trigger("focusin")
|
||||
.trigger({type: "keydown", which: $.ui.keyCode.ENTER})
|
||||
.trigger({type: "keyup", which: $.ui.keyCode.ENTER});
|
||||
assert.strictEqual(form.$('.o_field_boolean input:checked').length, 1,
|
||||
"checkbox should now be checked");
|
||||
|
||||
@@ -154,7 +157,7 @@ QUnit.module('basic_fields', {
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('boolean field in editable list view', function(assert) {
|
||||
QUnit.test('boolean field in editable list view', function (assert) {
|
||||
assert.expect(11);
|
||||
|
||||
var list = createView({
|
||||
|
||||
Reference in New Issue
Block a user