diff --git a/app/assets/javascripts/administrate/application.js b/app/assets/javascripts/administrate/application.js index 1742ae435c9da0a48000c42ccba38ec24d16bdc8..aa8a55d18bdb58d659c573479f739e29df27044e 100644 --- a/app/assets/javascripts/administrate/application.js +++ b/app/assets/javascripts/administrate/application.js @@ -1,5 +1,4 @@ //= require jquery -//= require jquery_ujs //= require selectize //= require moment //= require datetime_picker diff --git a/app/assets/javascripts/administrate/components/associative.js b/app/assets/javascripts/administrate/components/associative.js index 1470aec037e165ae8ac4a319e1d9f5cc24afebb4..11789927c5b5c29e876828ba16afee82f4c3e137 100644 --- a/app/assets/javascripts/administrate/components/associative.js +++ b/app/assets/javascripts/administrate/components/associative.js @@ -1,5 +1,7 @@ $(function() { + $('.field-unit--select select').selectize({}); $('.field-unit--belongs-to select').selectize({}); $(".field-unit--has-many select").selectize({}); $('.field-unit--polymorphic select').selectize({}); + $('.field-unit--audience-field select').selectize({}); }); diff --git a/app/views/fields/has_many/_show.html.erb b/app/views/fields/has_many/_show.html.erb index 7427bcbb7302957881c32ffd7d9ba32202f773ca..8824eedc0590bca83840740ca1267a91f1aa2d1a 100644 --- a/app/views/fields/has_many/_show.html.erb +++ b/app/views/fields/has_many/_show.html.erb @@ -22,7 +22,7 @@ from the associated resource class's dashboard. <% order = field.order_from_params(params.fetch(field.name, {})) %> <% page_number = params.fetch(field.name, {}).fetch(:page, nil) %> <%= render( - "collection", + field.collection_partial(namespace), collection_presenter: field.associated_collection(order), collection_field_name: field.name, page: page, diff --git a/lib/administrate/field/has_many.rb b/lib/administrate/field/has_many.rb index b223ba807fc928cda625247bc9706128360df768..888507faf8be6b226967207d38bd80ac675c1004 100644 --- a/lib/administrate/field/has_many.rb +++ b/lib/administrate/field/has_many.rb @@ -35,6 +35,21 @@ module Administrate end end + def collection_partial(namespace) + partial = 'collection' + prefix = options[:class_name].try(:underscore).try(:pluralize) || name + view_paths = ActionView::PathSet.new(["app/views/#{namespace}"]) + lookup_context = ActionView::LookupContext.new(view_paths) + + resouce_template_exists = lookup_context.exists?(partial, [namespace, prefix], true) + return [namespace, prefix, partial].join('/') if resouce_template_exists + + application_template_exists = lookup_context.exists?(partial, [namespace, '/'], true) + return [namespace, partial].join('/') if application_template_exists + + ['administrate', 'application', partial].join('/') + end + def selected_options return if data.empty? diff --git a/spec/example_app/app/assets/javascripts/application.js b/spec/example_app/app/assets/javascripts/application.js index 3e5bd21447fd8390f90a8d756409a3a2c9db2aeb..003b12b4c06915cda7dc863cb0f195519cd69076 100644 --- a/spec/example_app/app/assets/javascripts/application.js +++ b/spec/example_app/app/assets/javascripts/application.js @@ -11,5 +11,4 @@ // about supported directives. // //= require jquery -//= require jquery_ujs //= require_tree .