From 49ffc1c16dc848062158c726729715a208453046 Mon Sep 17 00:00:00 2001 From: Maki Nishifuji Date: Wed, 14 Sep 2016 23:03:42 +0900 Subject: [PATCH 1/3] Add global keydown event handler Auto focus to `textarea.input-message` when not focused on any input areas. --- packages/rocketchat-ui/lib/fireEvent.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/rocketchat-ui/lib/fireEvent.js b/packages/rocketchat-ui/lib/fireEvent.js index 919a50ca590..5fee7220898 100644 --- a/packages/rocketchat-ui/lib/fireEvent.js +++ b/packages/rocketchat-ui/lib/fireEvent.js @@ -33,3 +33,15 @@ window.addEventListener('message', (e) => { break; } }); + +window.addEventListener('keydown', (e) => { + const target = e.target; + if (/input|textarea/i.test(target.tagName)) { + return; + } + const $inputMessage = $('textarea.input-message'); + if (0 === $inputMessage.length) { + return; + } + $inputMessage.focus(); +}); From a5f98e5b71b7f5574e9b40af681a6d615f8931fe Mon Sep 17 00:00:00 2001 From: Maki Nishifuji Date: Sat, 17 Sep 2016 01:40:00 +0900 Subject: [PATCH 2/3] Move to main.coffee and add select tag to ignore list --- packages/rocketchat-ui-master/master/main.coffee | 9 +++++++++ packages/rocketchat-ui/lib/fireEvent.js | 12 ------------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/rocketchat-ui-master/master/main.coffee b/packages/rocketchat-ui-master/master/main.coffee index d4c7bb085e9..7450a589ca6 100644 --- a/packages/rocketchat-ui-master/master/main.coffee +++ b/packages/rocketchat-ui-master/master/main.coffee @@ -29,6 +29,15 @@ Template.body.onRendered -> if subscription.alert or subscription.unread > 0 Meteor.call 'readMessages', subscription.rid + $(document.body).on 'keydown', (e) -> + target = e.target + if /input|textarea|select/i.test(target.tagName) + return + $inputMessage = $('textarea.input-message') + if 0 == $inputMessage.length + return + $inputMessage.focus() + $(document.body).on 'click', 'a', (e) -> link = e.currentTarget if link.origin is s.rtrim(Meteor.absoluteUrl(), '/') and /msg=([a-zA-Z0-9]+)/.test(link.search) diff --git a/packages/rocketchat-ui/lib/fireEvent.js b/packages/rocketchat-ui/lib/fireEvent.js index 5fee7220898..919a50ca590 100644 --- a/packages/rocketchat-ui/lib/fireEvent.js +++ b/packages/rocketchat-ui/lib/fireEvent.js @@ -33,15 +33,3 @@ window.addEventListener('message', (e) => { break; } }); - -window.addEventListener('keydown', (e) => { - const target = e.target; - if (/input|textarea/i.test(target.tagName)) { - return; - } - const $inputMessage = $('textarea.input-message'); - if (0 === $inputMessage.length) { - return; - } - $inputMessage.focus(); -}); From 70d77432f751414c4ebe814a071bae403b6d55b7 Mon Sep 17 00:00:00 2001 From: Maki Nishifuji Date: Mon, 17 Oct 2016 23:15:55 +0900 Subject: [PATCH 3/3] Change event keydown to keypress --- packages/rocketchat-ui-master/master/main.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-ui-master/master/main.coffee b/packages/rocketchat-ui-master/master/main.coffee index e66d0ba8dcf..8a2b44af539 100644 --- a/packages/rocketchat-ui-master/master/main.coffee +++ b/packages/rocketchat-ui-master/master/main.coffee @@ -29,7 +29,7 @@ Template.body.onRendered -> if subscription.alert or subscription.unread > 0 Meteor.call 'readMessages', subscription.rid - $(document.body).on 'keydown', (e) -> + $(document.body).on 'keypress', (e) -> target = e.target if /input|textarea|select/i.test(target.tagName) return