From 91fd5e1bff7aa337dfb3eace91408233e91f93f8 Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 31 Oct 2019 00:20:09 -0500 Subject: [PATCH] js: add "ctrl+enter to submit form" shortcut. Press Ctrl+Enter inside any text box to submit the form. --- app/javascript/src/javascripts/shortcuts.js | 7 ++++++ app/javascript/src/javascripts/uploads.js.erb | 14 +++-------- app/javascript/src/javascripts/utility.js | 4 ++-- app/views/static/keyboard_shortcuts.html.erb | 23 +++++++++---------- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/app/javascript/src/javascripts/shortcuts.js b/app/javascript/src/javascripts/shortcuts.js index 7709b9290..3cd29a446 100644 --- a/app/javascript/src/javascripts/shortcuts.js +++ b/app/javascript/src/javascripts/shortcuts.js @@ -5,6 +5,8 @@ let Shortcuts = {}; Shortcuts.initialize = function() { Utility.keydown("s", "scroll_down", Shortcuts.nav_scroll_down); Utility.keydown("w", "scroll_up", Shortcuts.nav_scroll_up); + Utility.keydown("ctrl+return", "submit_form", Shortcuts.submit_form, 'input[type="text"], textarea'); + Shortcuts.initialize_data_shortcuts(); } @@ -42,6 +44,11 @@ Shortcuts.initialize_data_shortcuts = function() { }); }; +Shortcuts.submit_form = function(event) { + $(event.target).parents("form").find('input[type="submit"]').click(); + event.preventDefault(); +}; + Shortcuts.nav_scroll_down = function() { window.scrollBy(0, $(window).height() * 0.15); } diff --git a/app/javascript/src/javascripts/uploads.js.erb b/app/javascript/src/javascripts/uploads.js.erb index 766cf8765..2088d38bf 100644 --- a/app/javascript/src/javascripts/uploads.js.erb +++ b/app/javascript/src/javascripts/uploads.js.erb @@ -1,4 +1,6 @@ import Post from './posts.js.erb' +import Shortcuts from './shortcuts.js'; +import Utility from './utility.js'; import Dropzone from 'dropzone'; import SparkMD5 from 'spark-md5'; @@ -11,7 +13,7 @@ Upload.IQDB_HIGH_SIMILARITY = 65; Upload.initialize_all = function() { if ($("#c-uploads,#c-posts").length) { - this.initialize_enter_on_tags(); + Utility.keydown("return", "submit", Shortcuts.submit_form, "#upload_tag_string, #post_tag_string"); $("#upload_source").on("change.danbooru", Upload.fetch_data_manual); $(document).on("click.danbooru", "#fetch-data-manual", Upload.fetch_data_manual); } @@ -66,16 +68,6 @@ Upload.validate_upload = function (e) { } } -Upload.initialize_enter_on_tags = function() { - var $textarea = $("#upload_tag_string, #post_tag_string"); - var $submit = $textarea.parents("form").find('input[type="submit"]'); - - $textarea.on("keydown.danbooru.submit", null, "return", function(e) { - $submit.click(); - e.preventDefault(); - }); -} - Upload.initialize_similar = function() { $("#similar-button").on("click.danbooru", function(e) { e.preventDefault(); diff --git a/app/javascript/src/javascripts/utility.js b/app/javascript/src/javascripts/utility.js index 72bb4325b..9efff3d45 100644 --- a/app/javascript/src/javascripts/utility.js +++ b/app/javascript/src/javascripts/utility.js @@ -67,9 +67,9 @@ Utility.dialog = function(title, html) { }); } -Utility.keydown = function(keys, namespace, handler) { +Utility.keydown = function(keys, namespace, handler, selector = document) { if (CurrentUser.data("enable-post-navigation")) { - $(document).on("keydown.danbooru." + namespace, null, keys, handler); + $(selector).on("keydown.danbooru." + namespace, null, keys, handler); } }; diff --git a/app/views/static/keyboard_shortcuts.html.erb b/app/views/static/keyboard_shortcuts.html.erb index 794ee6a1b..6b5ee1393 100644 --- a/app/views/static/keyboard_shortcuts.html.erb +++ b/app/views/static/keyboard_shortcuts.html.erb @@ -4,31 +4,30 @@
-

Listing

+

Global

    -
  • a, Previous page
  • -
  • d, Next page
  • -
  • q Search
  • +
  • q Focus search box
  • w Scroll up
  • s Scroll down
  • -
  • r Go to random post
  • -
  • 1, 2, 3... Switch tag script
  • +
  • a, Previous page
  • +
  • d, Next page
  • +
  • ctrl + enter Submit form
+

Posts

+
    +
  • r Go to random post
  • +
  • 1, 2, 3... Switch tag script
  • +
+

Post

  • n New note
  • e Edit tags
  • shift+e Edit tags in dialog window
  • shift+o Approve post
  • -
  • enter Submit tag changes
  • -
  • q Search
  • -
  • w Scroll up
  • -
  • s Scroll down
  • -
  • a Previous post
  • -
  • d Next post
  • f Favorite post
  • shift+f Unfavorite post
  • g Add post to favorite group