From 0f664a8ce1b0409b5ffe2fca0bf3c4badef22588 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Tue, 11 Nov 2025 12:38:23 +0100 Subject: [PATCH] Add create cards with keyboard CTRL+ENTER to create CTRL+SHIFT+ENTER to create and add another --- app/javascript/controllers/clicker_controller.js | 6 +++++- app/views/cards/container/footer/_draft.html.erb | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/javascript/controllers/clicker_controller.js b/app/javascript/controllers/clicker_controller.js index d09cb9ede..6d3571942 100644 --- a/app/javascript/controllers/clicker_controller.js +++ b/app/javascript/controllers/clicker_controller.js @@ -6,6 +6,10 @@ export default class extends Controller { async click() { await nextFrame() - this.clickableTarget.click() + this.#clickable.click() + } + + get #clickable() { + return this.hasClickableTarget ? this.clickableTarget : this.element } } diff --git a/app/views/cards/container/footer/_draft.html.erb b/app/views/cards/container/footer/_draft.html.erb index bacf320c6..1c898c30d 100644 --- a/app/views/cards/container/footer/_draft.html.erb +++ b/app/views/cards/container/footer/_draft.html.erb @@ -1,12 +1,13 @@
<%= button_to card_publish_path(card), name: "creation_type", value: "add", class: "btn", form: { data: { controller: "form" } }, - data: { form_target: "submit" } do %> + data: { form_target: "submit", controller: "clicker", action: "keydown.ctrl+enter@document->clicker#click keydown.meta+enter@document->clicker#click" } do %> Create card <% end %> <%= button_to card_publish_path(card), method: :post, class: "btn btn--reversed", name: "creation_type", value: "add_another", - title: "Create and add another (ctrl+shift+enter)", form: { data: { controller: "form" } }, data: { form_target: "submit" } do %> + title: "Create and add another (ctrl+shift+enter)", form: { data: { controller: "form" } }, + data: { form_target: "submit", controller: "clicker", action: "keydown.ctrl+shift+enter@document->clicker#click keydown.meta+shift+enter@document->clicker#click" } do %> Create and add another <% end %>