Module: LcpRuby::SearchHelper

Defined in:
app/helpers/lcp_ruby/search_helper.rb

Instance Method Summary collapse

Instance Method Details

#search_parameter_association_options(param, model_definition) ⇒ Object



16
17
18
19
20
21
22
23
# File 'app/helpers/lcp_ruby/search_helper.rb', line 16

def search_parameter_association_options(param, model_definition)
  assoc = model_definition.belongs_to_fk_map[param.field]
  return [] unless assoc&.lcp_model?

  opts = param.to_input_options
  oq = build_options_query(assoc, opts, user: LcpRuby::Current.user)
  format_options_for_select(oq, opts)
end

#search_parameter_select_url(param) ⇒ Object



25
26
27
28
29
# File 'app/helpers/lcp_ruby/search_helper.rb', line 25

def search_parameter_select_url(param)
  if respond_to?(:current_presenter) && current_presenter && respond_to?(:lcp_ruby)
    lcp_ruby.select_options_path(lcp_slug: current_page.slug, field: param.field)
  end
end

#visible_search_parameters(presenter, slot_context) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'app/helpers/lcp_ruby/search_helper.rb', line 3

def visible_search_parameters(presenter, slot_context)
  return [] unless presenter.has_search_parameters?

  user = slot_context.evaluator&.user
  page_param_fields = Array(slot_context.locals[:page_parameter_fields])

  presenter.search_parameters.reject { |p|
    page_param_fields.include?(p.field)
  }.select { |p|
    p.visible_for_user?(user)
  }
end