From d6d9b4bdbce75821662b5c40c9232ee1c96bfb74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl-Ian?= Date: Thu, 11 Aug 2022 15:50:58 -0400 Subject: [PATCH] Allow managed models to be ActiveModels (as suggested in nathanvda/cocoon#499) --- lib/cocooned/helpers.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/cocooned/helpers.rb b/lib/cocooned/helpers.rb index 5c6bb6c..687106f 100644 --- a/lib/cocooned/helpers.rb +++ b/lib/cocooned/helpers.rb @@ -167,12 +167,14 @@ def cocooned_remove_item_link(name, form = nil, html_options = {}, &block) association = form.object.class.to_s.tableize return cocooned_remove_item_link(cocooned_default_label(:remove, association), form, html_options) if name.nil? + destroy = form.object.respond_to?(:marked_for_destruction?) && form.object.marked_for_destruction? + link_options = html_options.dup link_options[:class] = [html_options[:class], Cocooned::HELPER_CLASSES[:remove]].flatten.compact - link_options[:class] << (form.object.new_record? ? 'dynamic' : 'existing') - link_options[:class] << 'destroyed' if form.object.marked_for_destruction? + link_options[:class] << (form.object.respond_to?(:new_record?) && form.object.new_record? ? :dynamic : :existing) + link_options[:class] << :destroyed if destroy.present? - form.hidden_field(:_destroy, value: form.object._destroy) << link_to(name, '#', link_options) + form.hidden_field(:_destroy, value: destroy) << link_to(name, '#', link_options) end # Output an action link to move an item up.