update project status in real time on index page

This commit is contained in:
Chris Zhu
2025-01-18 09:53:27 -08:00
parent 0de43487d5
commit b8fc798885
3 changed files with 4 additions and 2 deletions

View File

@@ -1,3 +1,5 @@
class ApplicationRecord < ActiveRecord::Base
include ActionView::RecordIdentifier
primary_abstract_class
end

View File

@@ -50,7 +50,7 @@ class Project < ApplicationRecord
validate :name_is_unique_to_cluster, on: :create
after_save_commit do
broadcast_replace_to [ self, :status ], target: "status", partial: "projects/status", locals: { project: self }
broadcast_replace_to [ self, :status ], target: dom_id(self, :status), partial: "projects/status", locals: { project: self }
end
enum :status, {

View File

@@ -1,5 +1,5 @@
<%= turbo_stream_from project, :status %>
<div id="status">
<div id="<%= dom_id(project, :status) %>">
<% if project.last_build&.in_progress? %>
<div aria-label="Badge" class="badge border-0 bg-warning/10 font-medium capitalize text-warning">
Building <iconify-icon class="ml-1 animate-spin" icon="lucide:loader-circle"></iconify-icon>