Sha256: 917f615c6aa23aa1328a321e0623272de32424fc3105e1bcac71b94f82b05035

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module PagesCore
  module Admin
    class FormBuilder < PagesCore::FormBuilder
      include DynamicImage::Helper
      include PagesCore::Admin::LocalizedFormBuilder

      def rich_text_area(attr, options = {})
        @template.rich_text_area_tag(
          "#{object_name}[#{attr}]",
          object.send(attr),
          localized_form_field_options(attr).merge(options)
        )
      end

      def image_uploader(attr, options = {})
        @template.image_uploader_tag(
          "#{object_name}[#{foreign_key(attr)}]",
          object.send(attr),
          options
        )
      end

      def labelled_rich_text_area(attribute, label_text = nil, options = {})
        labelled_field(attribute, label_text, options) do |opts|
          rich_text_area(attribute, opts)
        end
      end

      def labelled_image_uploader(attribute, label_text = nil, options = {})
        labelled_field(attribute, label_text, options) do |opts|
          image_uploader(attribute, opts)
        end
      end

      private

      def foreign_key(attr)
        object.class.reflections[attr.to_s].options[:foreign_key] ||
          :"#{attr}_id"
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pages_core-3.15.5 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.15.4 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.15.3 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.15.2 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.15.1 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.14.0 app/helpers/pages_core/admin/form_builder.rb
pages_core-3.13.0 app/helpers/pages_core/admin/form_builder.rb