diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index 5fb312120a..5a128f1824 100644 --- a/.rubocop_manual_todo.yml +++ b/.rubocop_manual_todo.yml @@ -389,6 +389,7 @@ Metrics/AbcSize: - app/helpers/order_cycles_helper.rb - app/helpers/spree/admin/navigation_helper.rb - app/helpers/spree/admin/base_helper.rb + - app/helpers/spree/admin/zones_helper.rb - app/helpers/spree/orders_helper.rb - app/jobs/subscription_placement_job.rb - app/mailers/producer_mailer.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 99dba94b16..bc0d0d90c4 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -332,6 +332,7 @@ Rails/OutputSafety: - 'app/controllers/spree/admin/reports_controller.rb' - 'app/helpers/angular_form_helper.rb' - 'app/helpers/spree/admin/base_helper.rb' + - 'app/helpers/spree/admin/zones_helper.rb' - 'app/helpers/spree/reports_helper.rb' - 'app/helpers/spree/admin/navigation_helper.rb' - 'app/serializers/api/product_serializer.rb' diff --git a/app/helpers/spree/admin/base_helper.rb b/app/helpers/spree/admin/base_helper.rb index 56412c1611..6ffdc3dc2b 100644 --- a/app/helpers/spree/admin/base_helper.rb +++ b/app/helpers/spree/admin/base_helper.rb @@ -25,41 +25,6 @@ module Spree end end - # This method demonstrates the use of the :child_index option to render a - # form partial for, for instance, client side addition of new nested - # records. - # - # This specific example creates a link which uses javascript to add a new - # form partial to the DOM. - # - # <%= form_for @project do |project_form| %> - #
- # <%= project_form.fields_for :tasks do |task_form| %> - # <%= render partial: 'task', locals: { f: task_form } %> - # <% end %> - #
- # <% end %> - def generate_html(form_builder, method, options = {}) - options[:object] ||= form_builder.object.class.reflect_on_association(method).klass.new - options[:partial] ||= method.to_s.singularize - options[:form_builder_local] ||= :f - - form_builder.fields_for(method, options[:object], child_index: 'NEW_RECORD') do |f| - render(partial: options[:partial], locals: { options[:form_builder_local] => f }) - end - end - - def generate_template(form_builder, method, options = {}) - escape_javascript generate_html(form_builder, method, options) - end - - def remove_nested(fields) - out = '' - out << fields.hidden_field(:_destroy) unless fields.object.new_record? - out << (link_to icon('icon-remove'), "#", class: 'remove') - out.html_safe - end - def preference_field_tag(name, value, options) case options[:type] when :integer diff --git a/app/helpers/spree/admin/zones_helper.rb b/app/helpers/spree/admin/zones_helper.rb new file mode 100644 index 0000000000..fa8044e953 --- /dev/null +++ b/app/helpers/spree/admin/zones_helper.rb @@ -0,0 +1,36 @@ +module Spree + module Admin + module ZonesHelper + # This method creates a link which uses javascript to add a new + # form partial to the DOM. + # + # <%= form_for @project do |project_form| %> + #
+ # <%= project_form.fields_for :tasks do |task_form| %> + # <%= render partial: 'task', locals: { f: task_form } %> + # <% end %> + #
+ # <% end %> + def generate_html(form_builder, method, options = {}) + options[:object] ||= form_builder.object.class.reflect_on_association(method).klass.new + options[:partial] ||= method.to_s.singularize + options[:form_builder_local] ||= :f + + form_builder.fields_for(method, options[:object], child_index: 'NEW_RECORD') do |f| + render(partial: options[:partial], locals: { options[:form_builder_local] => f }) + end + end + + def generate_template(form_builder, method, options = {}) + escape_javascript generate_html(form_builder, method, options) + end + + def remove_nested(fields) + out = '' + out << fields.hidden_field(:_destroy) unless fields.object.new_record? + out << (link_to icon('icon-remove'), "#", class: 'remove') + out.html_safe + end + end + end +end