Sha256: 2296ed241cf5d5d738b2a6f8a5ba1c379d48e60964622e2484cee6244c4d691c

Contents?: true

Size: 1.18 KB

Versions: 5

Compression:

Stored size: 1.18 KB

Contents

module ActiveAdmin
  module Views
    module Pages

      class Form < Base

        def title
          assigns[:page_title] || I18n.t("active_admin.#{params[:action]}_model",
                                         model: active_admin_config.resource_label)
        end

        def form_presenter
          active_admin_config.get_page_presenter(:form) || default_form_config
        end

        def main_content
          options = default_form_options.merge form_presenter.options

          if options[:partial]
            render options[:partial]
          else
            active_admin_form_for resource, options do |f|
              instance_exec f, &form_presenter.block
            end
          end
        end

        private

        def default_form_options
          {
            url: default_form_path,
            as: active_admin_config.resource_name.singular
          }
        end

        def default_form_path
          resource.persisted? ? resource_path(resource) : collection_path
        end

        def default_form_config
          ActiveAdmin::PagePresenter.new do |f|
            f.inputs
            f.actions
          end
        end
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
active_administration-0.0.3 lib/active_admin/views/pages/form.rb
activeadministration-0.0.2 lib/active_admin/views/pages/form.rb
active_administration-0.0.2 lib/active_admin/views/pages/form.rb
activeadministration-0.0.1 lib/active_admin/views/pages/form.rb
active_administration-0.0.1 lib/active_admin/views/pages/form.rb