Extract component for investment toggle selection

This way it'll be easier to refactor it.
This commit is contained in:
Javi Martín
2021-08-21 00:25:36 +02:00
parent b9c3e75930
commit fde24870bc
5 changed files with 113 additions and 99 deletions

View File

@@ -55,40 +55,7 @@
</td>
<td data-field="selected">
<% if investment.selected? %>
<%= link_to_if can?(:toggle_selection, investment),
t("admin.budget_investments.index.selected"),
toggle_selection_admin_budget_budget_investment_path(
budget,
investment,
filter: params[:filter],
sort_by: params[:sort_by],
min_total_supports: params[:min_total_supports],
max_total_supports: params[:max_total_supports],
advanced_filters: params[:advanced_filters],
page: params[:page]
),
method: :patch,
remote: true,
class: "button small expanded" %>
<% elsif investment.feasible? && investment.valuation_finished? %>
<% if can?(:toggle_selection, investment) %>
<%= link_to t("admin.budget_investments.index.select"),
toggle_selection_admin_budget_budget_investment_path(
budget,
investment,
filter: params[:filter],
sort_by: params[:sort_by],
min_total_supports: params[:min_total_supports],
max_total_supports: params[:max_total_supports],
advanced_filters: params[:advanced_filters],
page: params[:page]
),
method: :patch,
remote: true,
class: "button small hollow expanded" %>
<% end %>
<% end %>
<%= render Admin::BudgetInvestments::ToggleSelectionComponent.new(investment) %>
</td>
<% if params[:advanced_filters]&.include?("selected") %>

View File

@@ -0,0 +1,34 @@
<% if investment.selected? %>
<%= link_to_if can?(:toggle_selection, investment),
t("admin.budget_investments.index.selected"),
toggle_selection_admin_budget_budget_investment_path(
budget,
investment,
filter: params[:filter],
sort_by: params[:sort_by],
min_total_supports: params[:min_total_supports],
max_total_supports: params[:max_total_supports],
advanced_filters: params[:advanced_filters],
page: params[:page]
),
method: :patch,
remote: true,
class: "button small expanded" %>
<% elsif investment.feasible? && investment.valuation_finished? %>
<% if can?(:toggle_selection, investment) %>
<%= link_to t("admin.budget_investments.index.select"),
toggle_selection_admin_budget_budget_investment_path(
budget,
investment,
filter: params[:filter],
sort_by: params[:sort_by],
min_total_supports: params[:min_total_supports],
max_total_supports: params[:max_total_supports],
advanced_filters: params[:advanced_filters],
page: params[:page]
),
method: :patch,
remote: true,
class: "button small hollow expanded" %>
<% end %>
<% end %>

View File

@@ -0,0 +1,14 @@
class Admin::BudgetInvestments::ToggleSelectionComponent < ApplicationComponent
attr_reader :investment
use_helpers :can?
def initialize(investment)
@investment = investment
end
private
def budget
investment.budget
end
end