Files
grecia/app/components/admin/budget_investments/search_form_component.rb
Javi Martín 4102330abc Add labels to investments filters
Note that adding the labels broke the layout because the button was no
longer aligned with the fields, so we're now using a flex layout.

Since we're using labels, we no longer need a placeholder (which wasn't
very informative, by the way) in the text field.
2024-11-11 15:04:40 +01:00

50 lines
1.3 KiB
Ruby

class Admin::BudgetInvestments::SearchFormComponent < ApplicationComponent
attr_reader :budget
use_helpers :budget_heading_select_options
def initialize(budget)
@budget = budget
end
private
def attribute_name(attribute)
Budget::Investment.human_attribute_name(attribute)
end
def advanced_filters_params
params[:advanced_filters] ||= []
end
def advanced_menu_visibility
if advanced_filters_params.empty? &&
params["min_total_supports"].blank? &&
params["max_total_supports"].blank?
"hide"
else
""
end
end
def admin_select_options
budget.administrators.with_user.map { |v| [v.description_or_name, v.id] }.sort_by { |a| a[0] }
end
def valuator_or_group_select_options
valuator_group_select_options + valuator_select_options
end
def valuator_group_select_options
ValuatorGroup.order("name ASC").map { |g| [g.name, "group_#{g.id}"] }
end
def valuator_select_options
budget.valuators.order("description ASC").order("users.email ASC").includes(:user)
.map { |v| [v.description_or_email, "valuator_#{v.id}"] }
end
def investment_tags_select_options(context)
budget.investments.tags_on(context).order(:name).pluck(:name)
end
end