Sha256: e4242dfef0d3f0a00c7cc9fb2d553770d774e2737ff1e9b39054379255ad12c8

Contents?: true

Size: 1.52 KB

Versions: 18

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true
module ActiveAdmin
  module Views
    module Pages

      class Form < Base

        def title
          if form_presenter[:title]
            helpers.render_or_call_method_or_proc_on(resource, form_presenter[:title])
          else
            assigns[:page_title] || ActiveAdmin::Localizers.resource(active_admin_config).t("#{normalized_action}_model")
          end
        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, &form_presenter.block
          end
        end

        private

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

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

        def default_form_config
          ActiveAdmin::PagePresenter.new do |f|
            f.semantic_errors # show errors on :base by default
            f.inputs
            f.actions
          end
        end

        def normalized_action
          case params[:action]
          when "create"
            "new"
          when "update"
            "edit"
          else
            params[:action]
          end
        end
      end

    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
activeadmin-3.3.0 lib/active_admin/views/pages/form.rb
activeadmin-3.2.5 lib/active_admin/views/pages/form.rb
activeadmin-3.2.4 lib/active_admin/views/pages/form.rb
activeadmin-3.2.3 lib/active_admin/views/pages/form.rb
activeadmin-3.2.2 lib/active_admin/views/pages/form.rb
activeadmin-3.2.1 lib/active_admin/views/pages/form.rb
activeadmin-3.2.0 lib/active_admin/views/pages/form.rb
activeadmin-3.1.0 lib/active_admin/views/pages/form.rb
activeadmin-3.0.0 lib/active_admin/views/pages/form.rb
activeadmin-2.14.0 lib/active_admin/views/pages/form.rb
activeadmin-2.13.1 lib/active_admin/views/pages/form.rb
activeadmin-2.13.0 lib/active_admin/views/pages/form.rb
activeadmin-2.12.0 lib/active_admin/views/pages/form.rb
activeadmin-2.11.2 lib/active_admin/views/pages/form.rb
activeadmin-2.11.1 lib/active_admin/views/pages/form.rb
activeadmin-2.11.0 lib/active_admin/views/pages/form.rb
activeadmin-2.10.1 lib/active_admin/views/pages/form.rb
activeadmin-2.10.0 lib/active_admin/views/pages/form.rb