Module: Infold::AppViewIndexDecorator
- Defined in:
- app/decorators/infold/app_view_index_decorator.rb
Instance Method Summary collapse
- #code_includes_associations ⇒ Object
- #code_search_path(ns_snake) ⇒ Object
- #code_search_permit_params ⇒ Object
- #code_set_conditions ⇒ Object
- #index_path(ns_snake) ⇒ Object
Instance Method Details
#code_includes_associations ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/decorators/infold/app_view_index_decorator.rb', line 8 def code_includes_associations includes = search_result_columns.select{ |r| r.display? && r.model_column&.is_foreign_key? }.map do |r| belongs_name = r.model_column.model_association.belongs_name ":#{belongs_name}" end show_associations = app.app_view_show&.show_associations if show_associations.present? includes += show_associations.select(&:display?).map do |r| ":#{r.model_association.has_name}" end end includes.present? ? ".includes(#{includes.uniq.sort_by{ |a| a.start_with?(':') ? 0 : 1 }.join(', ')})" : nil end |
#code_search_path(ns_snake) ⇒ Object
22 23 24 |
# File 'app/decorators/infold/app_view_index_decorator.rb', line 22 def code_search_path(ns_snake) "#{ns_snake}_#{model.name_pluralize}_path" end |
#code_search_permit_params ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/decorators/infold/app_view_index_decorator.rb', line 30 def code_search_permit_params modal_search_conditions = app.app_view_modal&.modal_only_search_conditions attrs = search_conditions.select{ |sc| !sc.sign_any? }&.map do |sc| ":#{sc.scope_name}" end.to_a attrs += modal_search_conditions&.select{ |sc| !sc.sign_any? }&.map do |mc| ":#{mc.scope_name}" end.to_a attrs += %w(:sort_field :sort_kind) attrs += search_conditions.select{ |sc| sc.sign_any? }&.map do |sc| "#{sc.scope_name}: []" end.to_a attrs += modal_search_conditions&.select{ |sc| sc.sign_any? }&.map do |mc| "#{mc.scope_name}: []" end.to_a attrs = attrs.flatten.join(",\n ") <<"METHOD" params[:search]&.permit( #{attrs} ) METHOD end |
#code_set_conditions ⇒ Object
3 4 5 6 |
# File 'app/decorators/infold/app_view_index_decorator.rb', line 3 def code_set_conditions conditions = search_conditions.sort_by(&:seq).map(&:scope_name).join(",\n :") "set_condition :#{conditions}" end |
#index_path(ns_snake) ⇒ Object
26 27 28 |
# File 'app/decorators/infold/app_view_index_decorator.rb', line 26 def index_path(ns_snake) "#{ns_snake}_#{model.name_pluralize}_path" end |