From 0cb65685e51f3d3618ab71768b2426cdba13648c Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Wed, 3 Dec 2025 13:28:44 +0100 Subject: [PATCH] Capture key presses inside the column edit form to prevent interferences with column navigation https://app.fizzy.do/5986089/cards/3249 --- app/javascript/controllers/dialog_controller.js | 4 ++++ app/views/boards/show/menu/_column_form.html.erb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/javascript/controllers/dialog_controller.js b/app/javascript/controllers/dialog_controller.js index 3df135c12..cdc8ea7cd 100644 --- a/app/javascript/controllers/dialog_controller.js +++ b/app/javascript/controllers/dialog_controller.js @@ -57,4 +57,8 @@ export default class extends Controller { loadLazyFrames() { Array.from(this.dialogTarget.querySelectorAll("turbo-frame")).forEach(frame => { frame.loading = "eager" }) } + + captureKey(event) { + if (event.key !== "Escape") { event.stopPropagation() } + } } diff --git a/app/views/boards/show/menu/_column_form.html.erb b/app/views/boards/show/menu/_column_form.html.erb index f9eab1c16..80d1be481 100644 --- a/app/views/boards/show/menu/_column_form.html.erb +++ b/app/views/boards/show/menu/_column_form.html.erb @@ -1,4 +1,4 @@ -<%= form_with model: [board, column], data: { controller: "form", action: "turbo:submit-end->dialog#close turbo:submit-end->form#reset" } do |form| %> +<%= form_with model: [board, column], data: { controller: "form", action: "turbo:submit-end->dialog#close turbo:submit-end->form#reset keydown->dialog#captureKey" } do |form| %> <%= form.text_field :name, class: "input", placeholder: "Name this column", value: column.name, required: true, autocomplete: "off", pattern: ".*\\S.*", title: "Column name cannot be blank", data: { action: "focus->form#select" } %>