Render 'complete' button only if the task's status is not 'done'.

This commit is contained in:
KaungKaung
2026-01-28 15:27:17 +06:30
parent 7c9e164a9a
commit e3da79930c
2 changed files with 24 additions and 16 deletions

View File

@@ -18,9 +18,18 @@ class TasksController < ApplicationController
end
def destroy
@task = @project.tasks.find(params[:id])
@task = @project.tasks.find_by(id: params[:id])
return unless @task
task_dom_id = "task_#{@task.id}"
@task.destroy
respond_to do |format|
format.turbo_stream { render turbo_stream: turbo_stream.remove(task_dom_id) }
format.html { redirect_to @project }
end
end
def complete
@task = @project.tasks.find(params[:id])
@@ -30,7 +39,7 @@ class TasksController < ApplicationController
format.turbo_stream
format.html { redirect_to @project }
end
end
end
private

View File

@@ -2,13 +2,12 @@
<li>
<%= task.title %> (<%= task.status %>)
<%= link_to "Destroy", project_task_path(task.project, task), data: {
turbo_method: :delete,
turbo_confirm: "Are you sure?"
} %>
<%= link_to "Destroy", project_task_path(task.project, task),
data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %>
<% unless task.status == "completed" %>
<%= button_to "Complete", complete_project_task_path(task.project, task),
<% unless task.status == "done" %>
<%= button_to "Complete",
complete_project_task_path(task.project, task),
method: :patch,
form: { data: { turbo_frame: dom_id(task) } } %>
<% end %>