Module: StandardView::ApplicationHelper
- Defined in:
- app/helpers/standard_view/application_helper.rb
Instance Method Summary collapse
- #action ⇒ Object
- #actionable_name ⇒ Object
- #active_for(**options) ⇒ Object
- #attribute_value_for(material, attribute_name) ⇒ Object
- #current_page ⇒ Object
- #icon_definition_for_reference(reference) ⇒ Object
- #icon_for(reference, spin: false) ⇒ Object
- #icon_tag(name = nil, style = nil, spin: false) ⇒ Object
- #link_to_destroy_with_confirmation_for_record(record, extra_classes: "") ⇒ Object
- #link_to_related(material, attribute_name) ⇒ Object
- #on_page?(check_parameters: false, **options) ⇒ Boolean
- #record_from_parent_route ⇒ Object
Instance Method Details
#action ⇒ Object
5 6 7 |
# File 'app/helpers/standard_view/application_helper.rb', line 5 def action ActiveSupport::StringInquirer.new action_name end |
#actionable_name ⇒ Object
9 10 11 12 13 14 |
# File 'app/helpers/standard_view/application_helper.rb', line 9 def actionable_name return "new" if action_name == "create" return "edit" if action_name == "update" action_name end |
#active_for(**options) ⇒ Object
16 17 18 |
# File 'app/helpers/standard_view/application_helper.rb', line 16 def active_for(**) "active" if on_page?() end |
#attribute_value_for(material, attribute_name) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/helpers/standard_view/application_helper.rb', line 56 def attribute_value_for(material, attribute_name) formatted_method_name = "#{attribute_name}_formatted" return material.public_send(formatted_method_name) if material.respond_to?(formatted_method_name) return material.public_send(attribute_name) if material.class.try(:primary_key) == attribute_name return (material, attribute_name) if material.relationship_attributes.include?(attribute_name) i18n_method_name = "#{attribute_name}_i18n" return material.public_send(i18n_method_name) if material.respond_to?(i18n_method_name) material.human_attribute_value(attribute_name) end |
#current_page ⇒ Object
40 41 42 |
# File 'app/helpers/standard_view/application_helper.rb', line 40 def current_page params[:page].try(:to_i) end |
#icon_definition_for_reference(reference) ⇒ Object
32 33 34 35 36 37 38 |
# File 'app/helpers/standard_view/application_helper.rb', line 32 def icon_definition_for_reference(reference) definition = reference.to_h if reference.respond_to?(:to_h) definition ||= I18n.t("icons.#{reference}", default: nil) || reference if reference.present? definition ||= {} definition = { name: definition } if definition.present? && !definition.respond_to?(:fetch) definition end |
#icon_for(reference, spin: false) ⇒ Object
26 27 28 29 30 |
# File 'app/helpers/standard_view/application_helper.rb', line 26 def icon_for(reference, spin: false) reference = reference.icon if reference.respond_to?(:icon) definition = icon_definition_for_reference(reference) icon_tag(definition[:name], definition[:style], spin: spin) end |
#icon_tag(name = nil, style = nil, spin: false) ⇒ Object
44 45 46 |
# File 'app/helpers/standard_view/application_helper.rb', line 44 def icon_tag(name = nil, style = nil, spin: false) content_tag(:i, "", class: "fa#{style || "s"} fa-#{name || "question"} #{"fa-spin" if spin}") end |
#link_to_destroy_with_confirmation_for_record(record, extra_classes: "") ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/helpers/standard_view/application_helper.rb', line 48 def link_to_destroy_with_confirmation_for_record(record, extra_classes: "") link_to t("common.destroy"), record, class: "btn btn-danger #{extra_classes}", method: :delete, data: { confirm: t("common.confirm_destroy") } end |
#link_to_related(material, attribute_name) ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'app/helpers/standard_view/application_helper.rb', line 69 def (material, attribute_name) = attribute_name.chomp("_id") = material.public_send() return if .blank? = Material::Base.for() link_to .reference_title, end |
#on_page?(check_parameters: false, **options) ⇒ Boolean
20 21 22 23 24 |
# File 'app/helpers/standard_view/application_helper.rb', line 20 def on_page?(check_parameters: false, **) current_page?(, check_parameters: check_parameters) rescue ActionController::UrlGenerationError false end |
#record_from_parent_route ⇒ Object
78 79 80 81 82 83 84 85 86 |
# File 'app/helpers/standard_view/application_helper.rb', line 78 def record_from_parent_route path_parent_name, path_parent_id = request.path.split("/#{controller_name}")&.first&.split("/").try(:[],1,2) return if path_parent_name.blank? || path_parent_id.blank? parent_name = path_parent_name.singularize parent_param_key = "#{parent_name}_id" parent_id = params[parent_param_key] parent_name.camelize.constantize.find(parent_id) if parent_id.present? && parent_id.to_s == path_parent_id end |