Module: Administrate::ApplicationHelper
- Defined in:
- app/helpers/administrate/application_helper.rb
Constant Summary collapse
- PLURAL_MANY_COUNT =
2.1
Instance Method Summary collapse
- #application_title ⇒ Object
- #clear_search_params ⇒ Object
- #dashboard_from_resource(resource_name) ⇒ Object
- #display_resource_name(resource_name) ⇒ Object
- #has_presence_validator?(resource_class, field_name) ⇒ Boolean
- #render_field(field, locals = {}) ⇒ Object
- #required_field?(field) ⇒ Boolean
- #requireness(field) ⇒ Object
- #resource_index_route(resource_name) ⇒ Object
- #sanitized_order_params(page, current_field_name) ⇒ Object
- #sort_order(order) ⇒ Object
- #validators_on(resource_class, field_name) ⇒ Object
Instance Method Details
#application_title ⇒ Object
5 6 7 8 9 10 11 |
# File 'app/helpers/administrate/application_helper.rb', line 5 def application_title if Rails::VERSION::MAJOR <= 5 Rails.application.class.parent_name.titlecase else Rails.application.class.module_parent_name.titlecase end end |
#clear_search_params ⇒ Object
71 72 73 74 75 |
# File 'app/helpers/administrate/application_helper.rb', line 71 def clear_search_params params.except(:search, :page).permit( :per_page, resource_name => %i[order direction] ) end |
#dashboard_from_resource(resource_name) ⇒ Object
37 38 39 |
# File 'app/helpers/administrate/application_helper.rb', line 37 def dashboard_from_resource(resource_name) "#{resource_name.to_s.singularize}_dashboard".classify.constantize end |
#display_resource_name(resource_name) ⇒ Object
41 42 43 44 45 46 |
# File 'app/helpers/administrate/application_helper.rb', line 41 def display_resource_name(resource_name) dashboard_from_resource(resource_name).resource_name( count: PLURAL_MANY_COUNT, default: default_resource_name(resource_name), ) end |
#has_presence_validator?(resource_class, field_name) ⇒ Boolean
26 27 28 29 |
# File 'app/helpers/administrate/application_helper.rb', line 26 def has_presence_validator?(resource_class, field_name) validators_on(resource_class, field_name). any? { |v| v.class == ActiveRecord::Validations::PresenceValidator } end |
#render_field(field, locals = {}) ⇒ Object
13 14 15 16 |
# File 'app/helpers/administrate/application_helper.rb', line 13 def render_field(field, locals = {}) locals[:field] = field render locals: locals, partial: field.to_partial_path end |
#required_field?(field) ⇒ Boolean
22 23 24 |
# File 'app/helpers/administrate/application_helper.rb', line 22 def required_field?(field) has_presence_validator?(field.resource.class, field.attribute) end |
#requireness(field) ⇒ Object
18 19 20 |
# File 'app/helpers/administrate/application_helper.rb', line 18 def requireness(field) required_field?(field) ? "required" : "optional" end |
#resource_index_route(resource_name) ⇒ Object
56 57 58 59 60 61 |
# File 'app/helpers/administrate/application_helper.rb', line 56 def resource_index_route(resource_name) url_for( action: "index", controller: "/#{namespace}/#{resource_name}", ) end |
#sanitized_order_params(page, current_field_name) ⇒ Object
63 64 65 66 67 68 69 |
# File 'app/helpers/administrate/application_helper.rb', line 63 def sanitized_order_params(page, current_field_name) collection_names = page.item_includes + [current_field_name] association_params = collection_names.map do |assoc_name| { assoc_name => %i[order direction page per_page] } end params.permit(:search, :id, :page, :per_page, association_params) end |
#sort_order(order) ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/helpers/administrate/application_helper.rb', line 48 def sort_order(order) case order when "asc" then "ascending" when "desc" then "descending" else "none" end end |
#validators_on(resource_class, field_name) ⇒ Object
31 32 33 34 35 |
# File 'app/helpers/administrate/application_helper.rb', line 31 def validators_on(resource_class, field_name) return [] unless resource_class.respond_to?(:validators_on) resource_class.validators_on(field_name) end |