From 37ce2c98d10d573c2ba1cceb27738a4375ab7600 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Mon, 3 Nov 2025 13:04:21 +0100 Subject: [PATCH] Refresh the cards perma dynamically with page refreshes --- app/models/card.rb | 6 +++--- app/models/card/broadcastable.rb | 7 +++++++ app/views/cards/display/common/_assignees.html.erb | 2 +- app/views/cards/display/perma/_assignees.html.erb | 2 +- app/views/cards/display/perma/_collection.html.erb | 4 ++-- app/views/cards/display/perma/_tags.html.erb | 4 ++-- app/views/cards/show.html.erb | 1 + app/views/cards/triage/_columns.html.erb | 2 +- 8 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 app/models/card/broadcastable.rb diff --git a/app/models/card.rb b/app/models/card.rb index 3b455a424..cdc32824d 100644 --- a/app/models/card.rb +++ b/app/models/card.rb @@ -1,7 +1,7 @@ class Card < ApplicationRecord - include Assignable, Attachments, Closeable, Colored, Entropic, Eventable, - Golden, Mentions, Multistep, Pinnable, Postponable, Promptable, Readable, - Searchable, Stallable, Statuses, Taggable, Triageable, Watchable + include Assignable, Attachments, Broadcastable, Closeable, Colored, Entropic, + Eventable, Golden, Mentions, Multistep, Pinnable, Postponable, Promptable, + Readable, Searchable, Stallable, Statuses, Taggable, Triageable, Watchable belongs_to :collection, touch: true belongs_to :creator, class_name: "User", default: -> { Current.user } diff --git a/app/models/card/broadcastable.rb b/app/models/card/broadcastable.rb new file mode 100644 index 000000000..aa24b776c --- /dev/null +++ b/app/models/card/broadcastable.rb @@ -0,0 +1,7 @@ +module Card::Broadcastable + extend ActiveSupport::Concern + + included do + broadcasts_refreshes + end +end diff --git a/app/views/cards/display/common/_assignees.html.erb b/app/views/cards/display/common/_assignees.html.erb index 19aebd6a9..c07ec9e6d 100644 --- a/app/views/cards/display/common/_assignees.html.erb +++ b/app/views/cards/display/common/_assignees.html.erb @@ -9,7 +9,7 @@ Assign - + <%= yield %> diff --git a/app/views/cards/display/perma/_assignees.html.erb b/app/views/cards/display/perma/_assignees.html.erb index 1c530263e..a115f39b2 100644 --- a/app/views/cards/display/perma/_assignees.html.erb +++ b/app/views/cards/display/perma/_assignees.html.erb @@ -1,3 +1,3 @@ <%= render "cards/display/common/assignees", card: card do %> - <%= turbo_frame_tag card, :assignment, src: new_card_assignment_path(card) %> + <%= turbo_frame_tag card, :assignment, src: new_card_assignment_path(card), refresh: "morph" %> <% end %> diff --git a/app/views/cards/display/perma/_collection.html.erb b/app/views/cards/display/perma/_collection.html.erb index a9e0cbbfa..d660f252d 100644 --- a/app/views/cards/display/perma/_collection.html.erb +++ b/app/views/cards/display/perma/_collection.html.erb @@ -6,8 +6,8 @@ Choose a collection for this card - - <%= turbo_frame_tag "collection_picker", src: edit_card_collection_path(card), target: "_top" %> + + <%= turbo_frame_tag "collection_picker", src: edit_card_collection_path(card), target: "_top", refresh: "morph" %> <% end %> diff --git a/app/views/cards/display/perma/_tags.html.erb b/app/views/cards/display/perma/_tags.html.erb index 91c112540..e72041211 100644 --- a/app/views/cards/display/perma/_tags.html.erb +++ b/app/views/cards/display/perma/_tags.html.erb @@ -5,8 +5,8 @@ Add a tag - - <%= turbo_frame_tag card, :tagging, src: new_card_tagging_path(card) %> + + <%= turbo_frame_tag card, :tagging, src: new_card_tagging_path(card), refresh: "morph" %> diff --git a/app/views/cards/show.html.erb b/app/views/cards/show.html.erb index 9ce4cf342..c33a2c40b 100644 --- a/app/views/cards/show.html.erb +++ b/app/views/cards/show.html.erb @@ -11,6 +11,7 @@ <% end %> +<%= turbo_stream_from @card %> <%= turbo_stream_from @card, :activity %>
diff --git a/app/views/cards/triage/_columns.html.erb b/app/views/cards/triage/_columns.html.erb index 2ceaab98b..591a8e256 100644 --- a/app/views/cards/triage/_columns.html.erb +++ b/app/views/cards/triage/_columns.html.erb @@ -1 +1 @@ -<%= turbo_frame_tag dom_id(card, :columns), src: edit_card_column_path(card), target: "_top" %> +<%= turbo_frame_tag dom_id(card, :columns), src: edit_card_column_path(card), target: "_top", refresh: "morph" %>