class ActiveAdmin::Views::ActiveAdminForm
def actions(*args, &block)
def actions(*args, &block) block_given? ? insert_tag(SemanticActionsProxy, form_builder, *args, &block) : actions(*args) { commit_action_with_cancel_link } end
def add_create_another_checkbox
def add_create_another_checkbox if %w(new create).include?(helpers.action_name) && active_admin_config && active_admin_config.create_another current_arbre_element.add_child(create_another_checkbox) end end
def build(resource, options = {}, &block)
def build(resource, options = {}, &block) @resource = resource options = options.deep_dup options[:builder] ||= ActiveAdmin::FormBuilder form_string = helpers.semantic_form_for(resource, options) do |f| @form_builder = f end @opening_tag, @closing_tag = split_string_on(form_string, "</form>") instance_eval(&block) if block_given? # Rails sets multipart automatically if a file field is present, # but the form tag has already been rendered before the block eval. if multipart? && @opening_tag !~ /multipart/ @opening_tag.sub!(/<form/, '<form enctype="multipart/form-data"') end end
def commit_action_with_cancel_link
def commit_action_with_cancel_link add_create_another_checkbox action(:submit) cancel_link end
def create_another_checkbox
def create_another_checkbox create_another = params[:create_another] label = @resource.class.model_name.human Arbre::Context.new do li class: "create_another" do input( checked: create_another, id: "create_another", name: "create_another", type: "checkbox" ) label(I18n.t("active_admin.create_another", model: label), for: "create_another") end end end
def form_buffers
def form_buffers raise "'form_buffers' has been removed from ActiveAdmin::FormBuilder, please read https://github.com/activeadmin/activeadmin/blob/master/docs/5-forms.md for details." end
def has_many(*args, &block)
def has_many(*args, &block) insert_tag(HasManyProxy, form_builder, *args, &block) end
def input(*args)
def input(*args) proxy_call_to_form :input, *args end
def inputs(*args, &block)
def inputs(*args, &block) if block_given? form_builder.template.assigns[:has_many_block] = true end if block_given? && block.arity == 0 wrapped_block = proc do wrap_it = form_builder.already_in_an_inputs_block ? true : false form_builder.already_in_an_inputs_block = true content = form_builder.template.capture do block.call end form_builder.already_in_an_inputs_block = wrap_it content end insert_tag(SemanticInputsProxy, form_builder, *args, &wrapped_block) else # Set except option to prevent sensitive fields from being shown in forms by default. opts = args.extract_options! opts[:except] ||= [] ActiveAdmin.application.filter_attributes.each { |e| opts[:except] << e } args << opts proxy_call_to_form(:inputs, *args, &block) end end
def multipart?
def multipart? form_builder && form_builder.multipart? end
def object
def object form_builder.object end