From 429faf405cc876949d2a2cefaeb076493ac32f9d Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 2 Aug 2022 18:35:14 +0300 Subject: [PATCH] focus on searcn bar shortcut --- client/src/views/list.js | 24 +++++++++++++++++ client/src/views/modals/select-records.js | 32 +++++++++++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/client/src/views/list.js b/client/src/views/list.js index fb11d506e6..c1c9513c23 100644 --- a/client/src/views/list.js +++ b/client/src/views/list.js @@ -162,6 +162,9 @@ function (Dep, /** typeof module:search-manager.Class */SearchManager) { 'Control+Space': function (e) { this.handleShortcutKeyCtrlSpace(e); }, + 'Control+Slash': function (e) { + this.handleShortcutKeyCtrlSlash(e); + }, }, /** @@ -767,5 +770,26 @@ function (Dep, /** typeof module:search-manager.Class */SearchManager) { this.actionCreate({focusForCreate: true}); }, + + /** + * @protected + * @param {JQueryKeyEventObject} e + */ + handleShortcutKeyCtrlSlash: function (e) { + if (!this.searchPanel) { + return; + } + + let $search = this.$el.find('input.text-filter').first(); + + if (!$search.length) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + $search.focus(); + }, }); }); diff --git a/client/src/views/modals/select-records.js b/client/src/views/modals/select-records.js index 532517c9a4..ade72ffc75 100644 --- a/client/src/views/modals/select-records.js +++ b/client/src/views/modals/select-records.js @@ -56,6 +56,15 @@ define('views/modals/select-records', ['views/modal', 'search-manager'], functio className: 'dialog dialog-record', + /** + * @inheritDoc + */ + shortcutKeys: { + 'Control+Slash': function (e) { + this.handleShortcutKeyCtrlSlash(e); + }, + }, + data: function () { return { createButton: this.createButton, @@ -171,9 +180,7 @@ define('views/modals/select-records', ['views/modal', 'search-manager'], functio } this.loadSearch(); - this.wait(true); - this.loadList(); }); }, @@ -334,5 +341,26 @@ define('views/modals/select-records', ['views/modal', 'search-manager'], functio }); }); }, + + /** + * @protected + * @param {JQueryKeyEventObject} e + */ + handleShortcutKeyCtrlSlash: function (e) { + if (!this.searchPanel) { + return; + } + + let $search = this.$el.find('input.text-filter').first(); + + if (!$search.length) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + $search.focus(); + }, }); });