summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorVincent Schippefilt <vsc@odoo.com>2018-04-25 11:52:44 +0200
committerVincent Schippefilt <vsc@odoo.com>2018-05-02 14:49:23 +0200
commit7cf68c838ba6c293f92def369c7c941cb0a4de7e (patch)
tree0799a256b2c6db61be0b9278705d265012cfdfbe /addons/web/static/src
parent3628014abd31f8102b15685cdf2c47d4b761ba0e (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')
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_record.js30
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;
}
},