From 873937db47397f64d4e730a64b4e167c3e18b4fc Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Thu, 22 Nov 2012 11:44:32 +1100 Subject: [PATCH] angular_collection_select --- app/helpers/angular_form_builder.rb | 9 +++++++-- app/helpers/angular_form_helper.rb | 9 +++++++++ app/views/admin/enterprise_fees/index.html.haml | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/helpers/angular_form_builder.rb b/app/helpers/angular_form_builder.rb index 1ace68b0f1..ef783f9b17 100644 --- a/app/helpers/angular_form_builder.rb +++ b/app/helpers/angular_form_builder.rb @@ -20,7 +20,12 @@ class AngularFormBuilder < ActionView::Helpers::FormBuilder @template.text_field_tag name, value, :id => id end - def angular_select(method, choices, angular_field, options = {}, html_options = {}) - @template.select_tag method, @template.angular_options_for_select(choices, angular_field) + def angular_select(method, choices, angular_field, options = {}) + @template.select_tag method, @template.angular_options_for_select(choices, angular_field), options end + + def angular_collection_select(method, collection, value_method, text_method, angular_field, options = {}) + @template.select_tag method, @template.angular_options_from_collection_for_select(collection, value_method, text_method, angular_field), options + end + end diff --git a/app/helpers/angular_form_helper.rb b/app/helpers/angular_form_helper.rb index 02c086f8eb..9116d403fa 100644 --- a/app/helpers/angular_form_helper.rb +++ b/app/helpers/angular_form_helper.rb @@ -9,8 +9,17 @@ module AngularFormHelper %() end.join("\n").html_safe end + + def angular_options_from_collection_for_select(collection, value_method, text_method, angular_field) + options = collection.map do |element| + [element.send(text_method), element.send(value_method)] + end + + angular_options_for_select(options, angular_field) + end end + class ActionView::Helpers::InstanceTag include AngularFormHelper end diff --git a/app/views/admin/enterprise_fees/index.html.haml b/app/views/admin/enterprise_fees/index.html.haml index 9817c039c5..b5cfe12668 100644 --- a/app/views/admin/enterprise_fees/index.html.haml +++ b/app/views/admin/enterprise_fees/index.html.haml @@ -20,10 +20,10 @@ / -- Finished product = enterprise_fee_set_form.angular_fields_for :collection do |f| %tr{'ng-repeat' => 'enterprise_fee in enterprise_fees'} - %td=# f.collection_select :enterprise_id, Enterprise.all, :id, :name, :include_blank => true + %td= f.angular_collection_select :enterprise_id, Enterprise.all, :id, :name, 'enterprise_fee.enterprise_id', :include_blank => true %td= f.angular_select :fee_type, enterprise_fee_type_options, 'enterprise_fee.fee_type' %td= f.angular_text_field :name - %td=# f.collection_select :calculator_type, @calculators, :name, :description, {}, {:class => 'calculator_type'} + %td= f.angular_collection_select :calculator_type, @calculators, :name, :description, 'enterprise_fee.calculator_type', {:class => 'calculator_type'} / -- Manual HTML / form_tag %tr{'ng-repeat' => 'enterprise_fee in enterprise_fees'}