module CmAdmin::ViewHelpers::FormHelper

Constants

REJECTABLE

Public Instance Methods

form_with_all_fields(resource, method) click to toggle source
# File lib/cm_admin/view_helpers/form_helper.rb, line 23
def form_with_all_fields(resource, method)
  columns = resource.class.columns.dup
  table_name = resource.class.table_name
  columns.reject! { |i| REJECTABLE.include?(i.name) }
  url = CmAdmin::Engine.mount_path + "/#{table_name}/#{resource.id}"
  set_form_for_fields(resource, columns, url, method)
end
form_with_mentioned_fields(resource, available_fields, method) click to toggle source
# File lib/cm_admin/view_helpers/form_helper.rb, line 31
def form_with_mentioned_fields(resource, available_fields, method)
  columns = resource.class.columns.select { |i| available_fields.include?(i.name.to_sym) }
  table_name = resource.class.table_name
  columns.reject! { |i| REJECTABLE.include?(i.name) }
  url = CmAdmin::Engine.mount_path + "/#{table_name}/#{resource.id}"
  set_form_for_fields(resource, columns, url, method)
end
generate_form(resource, cm_model) click to toggle source
# File lib/cm_admin/view_helpers/form_helper.rb, line 8
def generate_form(resource, cm_model)
  if resource.new_record?
    action = :new
    method = :post
  else
    action = :edit
    method = :patch
  end
  if cm_model.available_fields[action].empty?
    return form_with_all_fields(resource, method)
  else
    return form_with_mentioned_fields(resource, cm_model.available_fields[:edit], method)
  end
end
set_form_for_fields(resource, columns, url, method) click to toggle source
# File lib/cm_admin/view_helpers/form_helper.rb, line 39
def set_form_for_fields(resource, columns, url, method)
  form_for(resource, url: url, method: method) do |f|
    columns.each do |field|
      concat f.label field.name, class: 'field-label'
      concat tag.br
      concat input_field_for_column(f, field)
      concat tag.p resource.errors[field.name].first if resource.errors[field.name].present?
      concat tag.br
      concat tag.br
    end
    concat tag.br
    concat f.submit 'Save', class: 'cta-btn mt-3'
  end
end