Sha256: 2c0ef020247819c6389fb54129a8036eede815ee0992487c3b15f646d2ac6f96

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

class PgFormBuilder < SimpleForm::FormBuilder
  include PgAssociable::FormBuilderMethods
  include PgEngine::ErrorHelper

  def mensajes_de_error
    base_errors = object.errors[:base]
    base_message = (base_errors.map(&:to_s).join('<br>') if base_errors.present?)
    title = error_notification(message: mensaje, class: 'text-danger mb-2') if mensaje
    base_tag = error_notification(message: base_message, class: 'alert alert-danger') if base_message
    (title || '') + (base_tag || '')
  end

  def mensaje
    scope = error_message_for(object, associations:)
    return if scope.blank?

    I18n.t("simple_form.error_notification.#{scope}")
  end

  def associations
    object.class.reflect_on_all_associations
          .select { |a| a.instance_of? ActiveRecord::Reflection::HasManyReflection }
          .map(&:name)
  end

  map_type :date, to: PgEngine::FechaInput
  # map_type :datetime, to: PgEngine::FechaInput

  def submit_button(*args, &)
    options = args.extract_options!.dup
    options[:class] = ['btn-primary', options[:class]].compact
    args << options
    send(:submit, *args, &)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pg_rails-7.0.8.pre.alpha.10 pg_engine/app/lib/pg_form_builder.rb
pg_rails-7.0.8.pre.alpha.9 pg_engine/app/lib/pg_form_builder.rb