Show Done tasks and Fixed turbo frame and stream bug

This commit is contained in:
KaungKaung
2026-01-30 09:38:32 +06:30
parent 7c9aef4324
commit 7f6123a6e6
4 changed files with 27 additions and 35 deletions

View File

@@ -1,26 +1,20 @@
<h1><%= @project.project_name %></h1> <h1><%= @project.project_name %></h1>
<p><%= @project.description %></p> <p><%= @project.description %></p>
<turbo-frame id="tasks"> <%= turbo_frame_tag "tasks" do %>
<ul id="tasks_list"> <ul id="tasks_list">
<% @project.tasks.each do |task| %> <% # First: pending or in-progress tasks %>
<turbo-frame id="<%= dom_id(task) %>"> <%= render @project.tasks.reject { |t| t.status == "done" } %>
<li>
<%= task.title %> (<%= task.status %>)
<%= link_to "Destroy", project_task_path(@project, task), data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %> <% done_tasks = @project.tasks.select { |t| t.status == "done" } %>
<% if done_tasks.any? %>
<% unless task.status == "done" %> <%= render done_tasks %>
<%= button_to "Complete", complete_project_task_path(@project, task), method: :patch, form: { data: { turbo_frame: dom_id(task) } } %>
<% end %>
</li>
</turbo-frame>
<% end %> <% end %>
</ul> </ul>
</turbo-frame> <% end %>
<turbo-frame id="new_task"> <%= turbo_frame_tag "new_task" do %>
<br> <br>
<h2>Add New Task</h2> <h2>Add New Task</h2>
<%= render partial: "tasks/form", locals: { project: @project, task: Task.new } %> <%= render "tasks/form", project: @project, task: Task.new %>
</turbo-frame> <% end %>

View File

@@ -1,15 +1,20 @@
<turbo-frame id="<%= dom_id(task) %>"> <turbo-frame id="<%= dom_id(task) %>">
<li> <li id="<%= dom_id(task) %>" class="task-item <%= 'done-task' if task.status == 'done' %>">
<%= task.title %> (<%= task.status %>) <div class="task-title"><%= task.title %></div>
<div class="task-status"><%= task.status.titleize %></div>
<%= link_to "Destroy", project_task_path(task.project, task), <div class="task-actions flex gap-2">
data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %>
<% unless task.status == "done" %> <% unless task.status == "done" %>
<%= button_to "Complete", <%= button_to "Complete",
complete_project_task_path(task.project, task), complete_project_task_path(task.project, task),
method: :patch, method: :patch,
form: { data: { turbo_frame: dom_id(task) } } %> data: { turbo_frame: dom_id(task) },
class: "task-btn complete-btn" %>
<% end %> <% end %>
<%= link_to "Destroy",
project_task_path(task.project, task),
data: { turbo_method: :delete, turbo_confirm: "Are you sure?" },
class: "task-btn destroy-btn" %>
</div>
</li> </li>
</turbo-frame> </turbo-frame>

View File

@@ -1,10 +1,3 @@
<%= turbo_stream.replace dom_id(@task) do %> <%= turbo_stream.replace dom_id(@task) do %>
<li> <%= render @task %>
<%= @task.title %> (<%= @task.status %>)
<%= link_to "Destroy", project_task_path(@project, @task), data: {
turbo_method: :delete,
turbo_confirm: "Are you sure?"
} %>
</li>
<% end %> <% end %>

View File

@@ -1,7 +1,7 @@
<%= turbo_stream.append "tasks_list" do %> <%= turbo_stream.append "tasks" do %>
<%= render partial: "tasks/task", locals: { task: @task } %> <%= render @task %> <!-- renders _task.html.erb -->
<% end %> <% end %>
<%= turbo_stream.replace "new_task" do %> <%= turbo_stream.replace "new_task" do %>
<%= render partial: "tasks/form", locals: { project: @project, task: Task.new } %> <%= render "tasks/form", project: @project, task: Task.new %>
<% end %> <% end %>