From 74b91c8832edb9b2ba08b2e689bb45597198d0d8 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Wed, 25 Feb 2026 17:08:11 +0100 Subject: [PATCH 01/10] Add "show label" and "main action" attributes --- .../initializers/bridge/bridge_element.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/javascript/initializers/bridge/bridge_element.js b/app/javascript/initializers/bridge/bridge_element.js index 7ddeb1b33..29aa52549 100644 --- a/app/javascript/initializers/bridge/bridge_element.js +++ b/app/javascript/initializers/bridge/bridge_element.js @@ -1,10 +1,14 @@ import { BridgeElement } from "@hotwired/hotwire-native-bridge" BridgeElement.prototype.getButton = function() { - return { + const button = { title: this.title, - icon: this.getIcon() + icon: this.getIcon(), + showLabel: this.getShowLabel(), + isMainAction: this.getIsMainAction() } + console.log(button) + return button } BridgeElement.prototype.getIcon = function() { @@ -16,3 +20,11 @@ BridgeElement.prototype.getIcon = function() { return null } + +BridgeElement.prototype.getShowLabel = function() { + return !!this.bridgeAttribute(`show-label`) +} + +BridgeElement.prototype.getIsMainAction = function() { + return !!this.bridgeAttribute(`main-action`) +} From feea5289b6ba89c78507d0d40cd68b3097e5e6f1 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Wed, 25 Feb 2026 17:08:41 +0100 Subject: [PATCH 02/10] Apply to add/done actions --- app/views/cards/container/_closure_buttons.html.erb | 2 +- app/views/columns/show/_add_card_button.html.erb | 2 +- app/views/events/index/_add_board_button.html.erb | 2 +- app/views/events/index/_add_card_button.html.erb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/cards/container/_closure_buttons.html.erb b/app/views/cards/container/_closure_buttons.html.erb index 990a17982..decc954b8 100644 --- a/app/views/cards/container/_closure_buttons.html.erb +++ b/app/views/cards/container/_closure_buttons.html.erb @@ -7,7 +7,7 @@ <% end %> <%= button_to card_closure_path(card), class: "btn btn--circle-mobile borderless", - data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark as Done", bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, + data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_show_label: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, form: { data: { controller: "form" } } do %> <%= icon_tag "check", class: "icon--mobile-only" %> Mark as Done diff --git a/app/views/columns/show/_add_card_button.html.erb b/app/views/columns/show/_add_card_button.html.erb index 040fd55d3..2d82bbb7e 100644 --- a/app/views/columns/show/_add_card_button.html.erb +++ b/app/views/columns/show/_add_card_button.html.erb @@ -1,7 +1,7 @@
<%= button_to board_cards_path(board), method: :post, class: "btn btn--link", form: { data: { turbo_frame: "_top" } }, - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add", class: "show-on-touch" %> Add a card C diff --git a/app/views/events/index/_add_board_button.html.erb b/app/views/events/index/_add_board_button.html.erb index a534626d4..42b882a12 100644 --- a/app/views/events/index/_add_board_button.html.erb +++ b/app/views/events/index/_add_board_button.html.erb @@ -1,7 +1,7 @@
<%= link_to new_board_path, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.b@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add a board", bridge_icon_url: bridge_icon("board") } do %> + data: { controller: "hotkey", action: "keydown.b@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add board", bridge_show_label: true, bridge_icon_url: bridge_icon("board") } do %> <%= icon_tag "board" %> Add a board B diff --git a/app/views/events/index/_add_card_button.html.erb b/app/views/events/index/_add_card_button.html.erb index f865e5403..0a4ecf1d8 100644 --- a/app/views/events/index/_add_card_button.html.erb +++ b/app/views/events/index/_add_card_button.html.erb @@ -1,7 +1,7 @@
<% if board = user_filtering.single_board_or_first %> <%= button_to board_cards_path(board), method: :post, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add a card", bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add" %> Add a card C From 7f058a7cea3262f6c47b6658f4a0a7830689750c Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Wed, 25 Feb 2026 17:55:15 +0100 Subject: [PATCH 03/10] Make add card and mark done main actions --- app/views/cards/container/_closure_buttons.html.erb | 2 +- app/views/columns/show/_add_card_button.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/cards/container/_closure_buttons.html.erb b/app/views/cards/container/_closure_buttons.html.erb index decc954b8..ce2c57aa5 100644 --- a/app/views/cards/container/_closure_buttons.html.erb +++ b/app/views/cards/container/_closure_buttons.html.erb @@ -7,7 +7,7 @@ <% end %> <%= button_to card_closure_path(card), class: "btn btn--circle-mobile borderless", - data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_show_label: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, + data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, form: { data: { controller: "form" } } do %> <%= icon_tag "check", class: "icon--mobile-only" %> Mark as Done diff --git a/app/views/columns/show/_add_card_button.html.erb b/app/views/columns/show/_add_card_button.html.erb index 2d82bbb7e..a2f9d9b44 100644 --- a/app/views/columns/show/_add_card_button.html.erb +++ b/app/views/columns/show/_add_card_button.html.erb @@ -1,7 +1,7 @@
<%= button_to board_cards_path(board), method: :post, class: "btn btn--link", form: { data: { turbo_frame: "_top" } }, - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add", class: "show-on-touch" %> Add a card C From 158e95de42f9df05d38a3c607c726a4251710330 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 11:12:01 +0100 Subject: [PATCH 04/10] Rename show-label to display-title --- app/javascript/initializers/bridge/bridge_element.js | 6 +++--- app/views/cards/container/_closure_buttons.html.erb | 2 +- app/views/columns/show/_add_card_button.html.erb | 2 +- app/views/events/index/_add_board_button.html.erb | 2 +- app/views/events/index/_add_card_button.html.erb | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/javascript/initializers/bridge/bridge_element.js b/app/javascript/initializers/bridge/bridge_element.js index 29aa52549..c29b4d9a1 100644 --- a/app/javascript/initializers/bridge/bridge_element.js +++ b/app/javascript/initializers/bridge/bridge_element.js @@ -4,7 +4,7 @@ BridgeElement.prototype.getButton = function() { const button = { title: this.title, icon: this.getIcon(), - showLabel: this.getShowLabel(), + displayTitle: this.getDisplayTitle(), isMainAction: this.getIsMainAction() } console.log(button) @@ -21,8 +21,8 @@ BridgeElement.prototype.getIcon = function() { return null } -BridgeElement.prototype.getShowLabel = function() { - return !!this.bridgeAttribute(`show-label`) +BridgeElement.prototype.getDisplayTitle = function() { + return !!this.bridgeAttribute(`display-title`) } BridgeElement.prototype.getIsMainAction = function() { diff --git a/app/views/cards/container/_closure_buttons.html.erb b/app/views/cards/container/_closure_buttons.html.erb index ce2c57aa5..2872238c7 100644 --- a/app/views/cards/container/_closure_buttons.html.erb +++ b/app/views/cards/container/_closure_buttons.html.erb @@ -7,7 +7,7 @@ <% end %> <%= button_to card_closure_path(card), class: "btn btn--circle-mobile borderless", - data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, + data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, form: { data: { controller: "form" } } do %> <%= icon_tag "check", class: "icon--mobile-only" %> Mark as Done diff --git a/app/views/columns/show/_add_card_button.html.erb b/app/views/columns/show/_add_card_button.html.erb index a2f9d9b44..bbb42e3ec 100644 --- a/app/views/columns/show/_add_card_button.html.erb +++ b/app/views/columns/show/_add_card_button.html.erb @@ -1,7 +1,7 @@
<%= button_to board_cards_path(board), method: :post, class: "btn btn--link", form: { data: { turbo_frame: "_top" } }, - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add", class: "show-on-touch" %> Add a card C diff --git a/app/views/events/index/_add_board_button.html.erb b/app/views/events/index/_add_board_button.html.erb index 42b882a12..b8134266a 100644 --- a/app/views/events/index/_add_board_button.html.erb +++ b/app/views/events/index/_add_board_button.html.erb @@ -1,7 +1,7 @@
<%= link_to new_board_path, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.b@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add board", bridge_show_label: true, bridge_icon_url: bridge_icon("board") } do %> + data: { controller: "hotkey", action: "keydown.b@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add board", bridge_display_title: true, bridge_icon_url: bridge_icon("board") } do %> <%= icon_tag "board" %> Add a board B diff --git a/app/views/events/index/_add_card_button.html.erb b/app/views/events/index/_add_card_button.html.erb index 0a4ecf1d8..7d3b62c33 100644 --- a/app/views/events/index/_add_card_button.html.erb +++ b/app/views/events/index/_add_card_button.html.erb @@ -1,7 +1,7 @@
<% if board = user_filtering.single_board_or_first %> <%= button_to board_cards_path(board), method: :post, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_show_label: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add" %> Add a card C From fc1ee616c870966e6ab9c9f38ade4a57ea499685 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 11:13:39 +0100 Subject: [PATCH 05/10] Remove debug line --- app/javascript/initializers/bridge/bridge_element.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/javascript/initializers/bridge/bridge_element.js b/app/javascript/initializers/bridge/bridge_element.js index c29b4d9a1..53a474a9b 100644 --- a/app/javascript/initializers/bridge/bridge_element.js +++ b/app/javascript/initializers/bridge/bridge_element.js @@ -7,7 +7,6 @@ BridgeElement.prototype.getButton = function() { displayTitle: this.getDisplayTitle(), isMainAction: this.getIsMainAction() } - console.log(button) return button } From 047e8efad337161424b382e91d4c32c5f2f93d73 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 11:33:24 +0100 Subject: [PATCH 06/10] Rename is-main-action to display-as-primary-action --- app/javascript/initializers/bridge/bridge_element.js | 6 +++--- app/views/cards/container/_closure_buttons.html.erb | 2 +- app/views/columns/show/_add_card_button.html.erb | 2 +- app/views/events/index/_add_card_button.html.erb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/javascript/initializers/bridge/bridge_element.js b/app/javascript/initializers/bridge/bridge_element.js index 53a474a9b..0923f9512 100644 --- a/app/javascript/initializers/bridge/bridge_element.js +++ b/app/javascript/initializers/bridge/bridge_element.js @@ -5,7 +5,7 @@ BridgeElement.prototype.getButton = function() { title: this.title, icon: this.getIcon(), displayTitle: this.getDisplayTitle(), - isMainAction: this.getIsMainAction() + displayAsPrimaryAction: this.getDisplayAsPrimaryAction() } return button } @@ -24,6 +24,6 @@ BridgeElement.prototype.getDisplayTitle = function() { return !!this.bridgeAttribute(`display-title`) } -BridgeElement.prototype.getIsMainAction = function() { - return !!this.bridgeAttribute(`main-action`) +BridgeElement.prototype.getDisplayAsPrimaryAction = function() { + return !!this.bridgeAttribute(`display-as-primary-action`) } diff --git a/app/views/cards/container/_closure_buttons.html.erb b/app/views/cards/container/_closure_buttons.html.erb index 2872238c7..458631244 100644 --- a/app/views/cards/container/_closure_buttons.html.erb +++ b/app/views/cards/container/_closure_buttons.html.erb @@ -7,7 +7,7 @@ <% end %> <%= button_to card_closure_path(card), class: "btn btn--circle-mobile borderless", - data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, + data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, form: { data: { controller: "form" } } do %> <%= icon_tag "check", class: "icon--mobile-only" %> Mark as Done diff --git a/app/views/columns/show/_add_card_button.html.erb b/app/views/columns/show/_add_card_button.html.erb index bbb42e3ec..1adceae73 100644 --- a/app/views/columns/show/_add_card_button.html.erb +++ b/app/views/columns/show/_add_card_button.html.erb @@ -1,7 +1,7 @@
<%= button_to board_cards_path(board), method: :post, class: "btn btn--link", form: { data: { turbo_frame: "_top" } }, - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add", class: "show-on-touch" %> Add a card C diff --git a/app/views/events/index/_add_card_button.html.erb b/app/views/events/index/_add_card_button.html.erb index 7d3b62c33..1ca879755 100644 --- a/app/views/events/index/_add_card_button.html.erb +++ b/app/views/events/index/_add_card_button.html.erb @@ -1,7 +1,7 @@
<% if board = user_filtering.single_board_or_first %> <%= button_to board_cards_path(board), method: :post, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_main_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add" %> Add a card C From a62defb570a5fe6b36959ad32cc2063537e657e6 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 11:48:01 +0100 Subject: [PATCH 07/10] Just return the object --- app/javascript/initializers/bridge/bridge_element.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/javascript/initializers/bridge/bridge_element.js b/app/javascript/initializers/bridge/bridge_element.js index 0923f9512..438cf22e1 100644 --- a/app/javascript/initializers/bridge/bridge_element.js +++ b/app/javascript/initializers/bridge/bridge_element.js @@ -1,13 +1,12 @@ import { BridgeElement } from "@hotwired/hotwire-native-bridge" BridgeElement.prototype.getButton = function() { - const button = { + return { title: this.title, icon: this.getIcon(), displayTitle: this.getDisplayTitle(), displayAsPrimaryAction: this.getDisplayAsPrimaryAction() } - return button } BridgeElement.prototype.getIcon = function() { From 3f7b33889bc487fa7e8a310f005ba70b0e332203 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 12:14:13 +0100 Subject: [PATCH 08/10] Update app/views/events/index/_add_card_button.html.erb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- app/views/events/index/_add_card_button.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/events/index/_add_card_button.html.erb b/app/views/events/index/_add_card_button.html.erb index 1ca879755..31caef555 100644 --- a/app/views/events/index/_add_card_button.html.erb +++ b/app/views/events/index/_add_card_button.html.erb @@ -1,7 +1,7 @@
<% if board = user_filtering.single_board_or_first %> <%= button_to board_cards_path(board), method: :post, class: "btn btn--link btn--circle-mobile", - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: true, bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add" %> Add a card C From 7f6351ea41208f28d3ca954d709551c3c34d399d Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 12:14:28 +0100 Subject: [PATCH 09/10] Update app/views/columns/show/_add_card_button.html.erb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- app/views/columns/show/_add_card_button.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/columns/show/_add_card_button.html.erb b/app/views/columns/show/_add_card_button.html.erb index 1adceae73..ee2f87196 100644 --- a/app/views/columns/show/_add_card_button.html.erb +++ b/app/views/columns/show/_add_card_button.html.erb @@ -1,7 +1,7 @@
<%= button_to board_cards_path(board), method: :post, class: "btn btn--link", form: { data: { turbo_frame: "_top" } }, - data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> + data: { controller: "hotkey", action: "keydown.c@document->hotkey#click", bridge__buttons_target: "button", bridge_title: "Add card", bridge_display_as_primary_action: true, bridge_display_title: true, bridge_icon_url: bridge_icon("add") } do %> <%= icon_tag "add", class: "show-on-touch" %> Add a card C From c4cea3d5dbcf70c3f8e44adec6d83b79e6dba4d9 Mon Sep 17 00:00:00 2001 From: Adrien Maston Date: Thu, 26 Feb 2026 12:14:37 +0100 Subject: [PATCH 10/10] Update app/views/cards/container/_closure_buttons.html.erb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- app/views/cards/container/_closure_buttons.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/cards/container/_closure_buttons.html.erb b/app/views/cards/container/_closure_buttons.html.erb index 458631244..e1ea75ec7 100644 --- a/app/views/cards/container/_closure_buttons.html.erb +++ b/app/views/cards/container/_closure_buttons.html.erb @@ -7,7 +7,7 @@ <% end %> <%= button_to card_closure_path(card), class: "btn btn--circle-mobile borderless", - data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_display_as_primary_action: "true", bridge_display_title: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, + data: { controller: "hotkey", form_target: "submit", bridge__buttons_target: "button", bridge_title: "Mark done", bridge_display_as_primary_action: true, bridge_display_title: true, bridge_icon_url: bridge_icon("check"), action: "keydown.d@document->hotkey#click" }, form: { data: { controller: "form" } } do %> <%= icon_tag "check", class: "icon--mobile-only" %> Mark as Done