Refactored task status into a view model
This commit is contained in:
@@ -1,2 +1,9 @@
|
||||
details.dropdown class=selector_class id=id data-controller="tasks--status-selector"
|
||||
= render partial: 'status_selector_inner', locals: {selector_id: id, task:, with_form:}
|
||||
details.dropdown.task-status-selector id=id data-controller="tasks--status-selector"
|
||||
summary= task_status_badge[task.status]
|
||||
ul
|
||||
- project_task_statuses.each do |status|
|
||||
li
|
||||
a href="#" data-status-id="#{status.id}" data-action="tasks--status-selector#changeStatus:prevent" = task_status_badge[status]
|
||||
- if with_form
|
||||
= form_with model: Tasks::ChangeStatus.new, url: change_status_task_path(task), method: :patch, data: {'tasks--status-selector-target': 'form', action: 'turbo:submit-end->tasks--status-selector#finalize'} do |f|
|
||||
= f.hidden_field :status_id, data: {'tasks--status-selector-target': 'statusField'}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
summary= task_status_badge task.status
|
||||
ul
|
||||
- task.project.task_statuses.default_order.each do |status|
|
||||
li
|
||||
a href="#" data-status-id="#{status.id}" data-action="tasks--status-selector#changeStatus:prevent" = task_status_badge status
|
||||
- if with_form
|
||||
= form_with model: Tasks::ChangeStatus.new, url: change_status_task_path(task), method: :patch, data: {'tasks--status-selector-target': 'form', action: 'turbo:submit-end->tasks--status-selector#finalize'} do |f|
|
||||
= hidden_field_tag :selector_id, selector_id
|
||||
= f.hidden_field :status_id, data: {'tasks--status-selector-target': 'statusField'}
|
||||
@@ -1,2 +1,2 @@
|
||||
- selector_id = params.fetch(:selector_id)
|
||||
= turbo_stream.update selector_id, render(partial: 'status_selector_inner', locals: {selector_id:, task: @task, with_form: true})
|
||||
- view_model = Tasks::Statuses::SelectorViewModel.new(@task, with_form: true)
|
||||
= turbo_stream.replace view_model.dom_id, render(view_model)
|
||||
|
||||
@@ -4,7 +4,7 @@ h1= tasks_index_title
|
||||
= link_to 'New', new_task_path(project: current_project&.code)
|
||||
|
||||
- if @tasks.exists?
|
||||
table
|
||||
table.tasks-table
|
||||
thead
|
||||
tbody
|
||||
- @tasks.each do |task|
|
||||
@@ -12,7 +12,7 @@ h1= tasks_index_title
|
||||
tr
|
||||
td= link_to task.full_number, task_path(task)
|
||||
td
|
||||
= task_status_selector task, selector_class: 'small', id: "task_status_selector_#{task.id}", with_form: true
|
||||
= task_status_selector task, with_form: true
|
||||
td= task.title
|
||||
td
|
||||
= link_to 'Edit', edit_task_path(task)
|
||||
|
||||
Reference in New Issue
Block a user