Sha256: 89b2b7af6b50da02ecc2c58e4eca030f383eb54f323ecc3100d5016a3e384625

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

:ruby
  type_collection = field.polymorphic_type_collection
  type_column = field.association[:foreign_type].to_s
  selected_type = field.bindings[:object].send(type_column)
  collection = field.associated_collection(selected_type)
  selected = field.bindings[:object].send(field.association[:name])
  column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, type_column)

= form.select type_column, type_collection, {:include_blank => true, :selected => selected_type}, :id => column_type_dom_id
= form.select field.method_name, collection, {:include_blank => true, :selected => selected.try(:id)}, :style => "margin-left:10px;"

= form.javascript_for(field) do
  :plain
    var urls = #{field.polymorphic_type_urls.to_json.html_safe };
    $("#{form.jquery_namespace(field)} ##{column_type_dom_id}").bind("change", function(e){
      if ("" == $(this).val()) {
        $("##{ form.dom_id(field) }").html('<option value=""></option>');
      } else {
        $.ajax({
          url: urls[$(this).val()],
          data: { compact: true, all: true },
          beforeSend: function(xhr) {
            xhr.setRequestHeader("Accept", "application/json");
          },
          success: function(data, status, xhr) {
            var html = '<option></option>';
            $(data).each(function(i, el) {
              html += '<option value="' + el.id + '">' + el.label + '</option>';
            });
            $("#{form.jquery_namespace(field)} ##{ form.dom_id(field) }").html(html);
          }
        });
      }
    });

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
obitum-rails_admin-0.0.5 app/views/rails_admin/main/_form_polymorphic_association.html.haml
drewda_rails_admin-0.0.1 app/views/rails_admin/main/_form_polymorphic_association.html.haml
obitum-rails_admin-0.0.4 app/views/rails_admin/main/_form_polymorphic_association.html.haml
obitum-rails_admin-0.0.3 app/views/rails_admin/main/_form_polymorphic_association.html.haml
obitum-rails_admin-0.0.2 app/views/rails_admin/main/_form_polymorphic_association.html.haml
obitum-rails_admin-0.0.1 app/views/rails_admin/main/_form_polymorphic_association.html.haml