Module: BaseEditingHelper

Instance Method Summary collapse

Methods included from Utilities::IconHelper

#icon

Methods included from Utilities::FormHelper

#editing_form_print_field, #form_print_field

Methods included from Utilities::EnumHelper

#enum_collection, #enum_translation

Methods included from Utilities::TemplateHelper

#find_template_with_fallbacks

Methods included from Utilities::SearchHelper

#render_cell_field, #render_header_cell_field, #render_raw_field, #search_form_buttons, #search_form_for_params

Methods included from Utilities::PageHelper

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

Instance Method Details

#translate_with_controller_scoped(key, **options) ⇒ Object

Estrapola la traduzione, andando ad includere la path del controller nella ricerca della chiave Viene tenuto conto anche del namespace del controller assieme ai suoi namespace ES: In un caso in cui abbiamo un controller di questo tipo: Customer::PostsController < PostsController la ricerca della chiave .destroy partendo dal partial app/views/base_editing/_search_result_buttons.html.erb sarà così composta:

it.customer/posts.index.base_editing.search_result_buttons.destroy => nil
it.customer/posts.base_editing.search_result_buttons.destroy => nil
it.posts.index.base_editing.search_result_buttons.destroy => nil
it.posts.base_editing.search_result_buttons.destroy => nil
it.base_editing.index.base_editing.search_result_buttons.destroy => nil
it.base_editing.base_editing.search_result_buttons.destroy => nil
it.restricted_area.index.base_editing.search_result_buttons.destroy => nil
it.restricted_area.base_editing.search_result_buttons.destroy => nil
it.authentication.index.base_editing.search_result_buttons.destroy => nil
it.authentication.base_editing.search_result_buttons.destroy => nil
it.base_editing.search_result_buttons.destroy => nil


28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/helpers/base_editing_helper.rb', line 28

def translate_with_controller_scoped(key, **options)
  if key&.start_with?(".")
    inner_key = scope_key_by_partial(key)
    defaults = []
    paths = controller.class.ancestors.select { |c| c < ApplicationController }.collect(&:controller_path).uniq
    paths.each do |path|
      defaults << [:"#{path}.#{action_name}.#{inner_key}", :"#{path}.#{inner_key}"]
    end
    defaults << inner_key.to_sym
    defaults << options[:default] if options.key?(:default)
    key = nil
    options[:default] = defaults.flatten
  end

  # dobbiamo eliminare possibili duplicati nello scope delle chiavi
  t(key, **options)
end