Module: Utilities::SearchHelper

Includes:
EnumHelper, IconHelper, PageHelper, TemplateHelper
Included in:
BaseEditingHelper
Defined in:
app/helpers/utilities/search_helper.rb

Instance Method Summary collapse

Methods included from EnumHelper

#enum_collection, #enum_translation

Methods included from IconHelper

#icon

Methods included from PageHelper

#boolean_to_icon, #error_messages_for, #new_button, #title_mod_g, #title_new_g

Methods included from TemplateHelper

#find_template_with_fallbacks

Methods included from BaseEditingBootstrap::Logging

#bs_logger

Instance Method Details

#render_cell_field(obj, field) ⇒ ActiveSupport::SafeBuffer

Renderizza la cella della tabella nella pagina della index

Parameters:

  • obj (BaseModel)
  • field (Symbol)

Returns:

  • (ActiveSupport::SafeBuffer)


37
38
39
40
# File 'app/helpers/utilities/search_helper.rb', line 37

def render_cell_field(obj, field)
  template = template_for_column(obj.class, field, "cell_field")
  template.render(self,{obj:, field:})
end

#render_header_cell_field(search_instance, field) ⇒ ActiveSupport::SafeBuffer

Renderizza header della tabella della index

Parameters:

Returns:

  • (ActiveSupport::SafeBuffer)


47
48
49
50
# File 'app/helpers/utilities/search_helper.rb', line 47

def render_header_cell_field(search_instance, field)
  template = template_for_column(search_instance.model_klass, field, "header_field")
  template.render(self,{obj: search_instance.model_klass, field:, search_instance: search_instance})
end

#render_raw_field(obj, field) ⇒ Object

Restituisce il valore che vogliamo mostrare



54
55
56
57
58
59
60
61
# File 'app/helpers/utilities/search_helper.rb', line 54

def render_raw_field(obj, field)
  case field
  when :created_at, :updated_at
    l(obj.read_attribute(field), format: :long)
  else
    obj[field]
  end
end

#search_form_buttons(ransack_form) ⇒ ActiveSupport::SafeBuffer

Per aggiungere bottoni: ES:

def search_form_buttons(ransack_form, &block)
  super #<-  questo serve per costruire i bottoni definiti da super
  content_for(:search_form_buttons) do #<- questo serve per aggiungere al content_for un'altro bottone
    link_to "xls", admins_log_alarms_path(params: {q: params.permit(q:{})[:q]}, format: :xlsx), class: "btn btn-info", target: :_blank
  end
end

Parameters:

  • ransack_form (Ransack::Helpers::FormBuilder)

Returns:

  • (ActiveSupport::SafeBuffer)


19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/helpers/utilities/search_helper.rb', line 19

def search_form_buttons(ransack_form)

  search_translation = ransack_form.object.klass.human_attribute_name("search_buttons.search", default: I18n.translate(".search"))
  clear_translation = ransack_form.object.klass.human_attribute_name("search_buttons.clear_search", default: I18n.translate(".clear_search"))

  content_for(:search_form_buttons) do
    ransack_form.submit(search_translation, class: "btn btn-primary") +
      link_to(clear_translation,
              index_custom_polymorphic_path(ransack_form.object.klass),
              class: "btn btn-secondary")
  end
end

#search_form_for_params(ransack_instance) ⇒ Object

Possibile override dei parametri da passare a ransack nella form



65
66
67
# File 'app/helpers/utilities/search_helper.rb', line 65

def search_form_for_params(ransack_instance)
  [ransack_instance.ransack_query]
end