diff options
| author | Vincent Schippefilt <vsc@odoo.com> | 2018-04-25 11:52:44 +0200 |
|---|---|---|
| committer | Vincent Schippefilt <vsc@odoo.com> | 2018-05-02 14:49:23 +0200 |
| commit | 7cf68c838ba6c293f92def369c7c941cb0a4de7e (patch) | |
| tree | 0799a256b2c6db61be0b9278705d265012cfdfbe /addons/web/static/src/js | |
| parent | 3628014abd31f8102b15685cdf2c47d4b761ba0e (diff) | |
[FIX] web: kanban card do correct action on ENTER key
When the focus is on a kanban card that do not have
oe_kanban_global_click or oe_kanban_global_click_edit when hitting the
ENTER key,
before this fix, the default action was to open the record of the card
after this fix, the action executed will be the action of the first
button or link of the card
if the card has the oe_kanban_global_click or
oe_kanban_global_click_edit class, the record still opens with ENTER key
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/views/kanban/kanban_record.js | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views/kanban/kanban_record.js b/addons/web/static/src/js/views/kanban/kanban_record.js index 072f4d41f27..30bafaab117 100644 --- a/addons/web/static/src/js/views/kanban/kanban_record.js +++ b/addons/web/static/src/js/views/kanban/kanban_record.js @@ -23,7 +23,6 @@ var KanbanRecord = Widget.extend({ events: { 'click .oe_kanban_action': '_onKanbanActionClicked', 'click .o_kanban_manage_toggle_button': '_onManageTogglerClicked', - 'keydown' : '_onKanbanKeyDown', }, /** * @override @@ -289,6 +288,9 @@ var KanbanRecord = Widget.extend({ if (this.$el.hasClass('oe_kanban_global_click') || this.$el.hasClass('oe_kanban_global_click_edit')) { this.$el.on('click', this._onGlobalClick.bind(this)); + this.$el.on('keydown', this._onKeyDownCard.bind(this)); + } else { + this.$el.on('keydown', this._onKeyDownOpenFirstLink.bind(this)); } this._processFields(); this._processWidgets(); @@ -505,11 +507,33 @@ var KanbanRecord = Widget.extend({ this.do_warn("Kanban: no action for type : " + type); } }, - _onKanbanKeyDown: function (event) { + /** + * This event is linked to the kanban card when there is a global_click + * class on this card + * + * @private + * @param {KeyDownEvent} event + */ + _onKeyDownCard: function (event) { + switch (event.keyCode) { + case $.ui.keyCode.ENTER: + event.preventDefault(); + this._onGlobalClick(event); + break; + } + }, + /** + * This event is linked ot the kanban card when there is no global_click + * class on the card + * + * @private + * @param {KeyDownEvent} event + */ + _onKeyDownOpenFirstLink: function (event) { switch (event.keyCode) { case $.ui.keyCode.ENTER: event.preventDefault(); - this._openRecord(); + $(event.target).find('a, button').first().click(); break; } }, |
