diff options
author | Steffen van Bergerem <svbergerem@omgsrsly.net> | 2016-09-29 17:29:07 +0300 |
---|---|---|
committer | Dennis Schubert <mail@dennis-schubert.de> | 2016-09-30 02:44:24 +0300 |
commit | 35aa0badc529ecb738030d1f62224c74010c9f34 (patch) | |
tree | 7da814e3c28513994deb0872acfbcc4ec399db38 /app/assets | |
parent | 0a264c1fe0bc960e5aea091b5f66e48e4ef06b00 (diff) |
Refactor stream shortcuts
closes #7127
Diffstat (limited to 'app/assets')
-rw-r--r-- | app/assets/javascripts/app/helpers/shortcuts.js | 31 | ||||
-rw-r--r-- | app/assets/javascripts/app/views/stream/shortcuts.js | 18 |
2 files changed, 34 insertions, 15 deletions
diff --git a/app/assets/javascripts/app/helpers/shortcuts.js b/app/assets/javascripts/app/helpers/shortcuts.js new file mode 100644 index 000000000..c8d79f3fa --- /dev/null +++ b/app/assets/javascripts/app/helpers/shortcuts.js @@ -0,0 +1,31 @@ +// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later +(function() { + app.helpers.Shortcuts = function(evtname, fn) { + var textAcceptingInputTypes = [ + "color", + "date", + "datetime", + "datetime-local", + "email", + "month", + "number", + "password", + "range", + "search", + "select", + "text", + "textarea", + "time", + "url", + "week" + ]; + + $("body").on(evtname, function(event) { + // make sure that the user is not typing in an input field + if (textAcceptingInputTypes.indexOf(event.target.type) === -1) { + fn(event); + } + }); + }; +})(); +// @license-end diff --git a/app/assets/javascripts/app/views/stream/shortcuts.js b/app/assets/javascripts/app/views/stream/shortcuts.js index 56d9df05d..a19a1fa06 100644 --- a/app/assets/javascripts/app/views/stream/shortcuts.js +++ b/app/assets/javascripts/app/views/stream/shortcuts.js @@ -3,18 +3,12 @@ app.views.StreamShortcuts = Backbone.View.extend({ _headerSize: 60, - events: { - "keydown": "_onHotkeyDown", - "keyup": "_onHotkeyUp" + initialize: function() { + app.helpers.Shortcuts("keydown", this._onHotkeyDown.bind(this)); + app.helpers.Shortcuts("keyup", this._onHotkeyUp.bind(this)); }, _onHotkeyDown: function(event) { - //make sure that the user is not typing in an input field - var textAcceptingInputTypes = ["textarea", "select", "text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime", "datetime-local", "search", "color"]; - if(jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1){ - return; - } - // trigger the events based on what key was pressed switch (String.fromCharCode( event.which ).toLowerCase()) { case "j": @@ -28,12 +22,6 @@ app.views.StreamShortcuts = Backbone.View.extend({ }, _onHotkeyUp: function(event) { - //make sure that the user is not typing in an input field - var textAcceptingInputTypes = ["textarea", "select", "text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime", "datetime-local", "search", "color"]; - if(jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1){ - return; - } - // trigger the events based on what key was pressed switch (String.fromCharCode( event.which ).toLowerCase()) { case "c": |