Sha256: b6905ac2efed0fea81f57468e979a03f742edaf3dfd2d98770735dd49f3a5809

Contents?: true

Size: 1.2 KB

Versions: 4

Compression:

Stored size: 1.2 KB

Contents

class AdminRelationshipSelectInput < SimpleForm::Inputs::CollectionSelectInput
  def input
    super
    input_html_options[:class] << ' carnival-select'
    if input_html_options[:data][:depends_on].nil?
      collection = @builder.object.class.name.constantize.reflect_on_association(attribute_name.to_sym).klass.name.constantize.list_for_select
    else
      depends_on =  @builder.object.class.name.constantize.reflect_on_association(input_html_options[:data][:depends_on]).foreign_key
      depends_on_value = @builder.object.send(depends_on.to_s)
      if depends_on_value.present?
        collection = @builder.object.class.name.constantize.reflect_on_association(attribute_name.to_sym).klass.name.constantize.list_for_select(add_empty_option: true, query: ["#{depends_on} = ?", depends_on_value])
      else
        collection = []
      end
    end

    @builder.collection_select(
      "#{@builder.object.class.name.constantize.reflections[attribute_name.to_sym].foreign_key}",
      collection,
      :first, :last,
      {prompt: I18n.t("#{@builder.object.class.to_s.gsub(/^.*::/, '').downcase}.lista_#{attribute_name}.selecione", default: I18n.t("messages.select"))},
      input_html_options
    )
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
carnival-0.1.3 app/inputs/admin_relationship_select_input.rb
carnival-0.1.2 app/inputs/admin_relationship_select_input.rb
carnival-0.1.1 app/inputs/admin_relationship_select_input.rb
carnival-0.1.0 app/inputs/admin_relationship_select_input.rb