<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>frontends/default/views/_add_existing_form.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_create_form.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_create_form_on_list.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_export_csv.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_field_search.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form_association.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form_association_footer.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form_attribute.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form_hidden_attribute.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_form_messages.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_horizontal_subform.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_horizontal_subform_header.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_horizontal_subform_record.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_actions.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_calculations.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_column_headings.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_header.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_inline_adapter.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_pagination_links.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_record.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_record_actions.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_list_record_columns.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_live_search.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_messages.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_nested.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_nested_subform.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_print_list.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_revision.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_revision_columns.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_search.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_show.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_show_columns.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_show_customize.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_show_export_tool.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_update_actions.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_update_form.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_vertical_subform.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/_vertical_subform_record.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/add_existing.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/add_existing_form.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/create.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/delete.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/destroy.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/edit_associated.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/field_search.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/form_messages.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/form_messages_on_create.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/form_messages_on_update.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/list.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/on_create.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/on_update.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/refresh_list.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/refresh_record.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/render_field.js.rjs</filename>
    </added>
    <added>
      <filename>frontends/default/views/revision.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/search.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/show.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/show_customize.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/show_export_tool.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/update.html.erb</filename>
    </added>
    <added>
      <filename>frontends/default/views/update_column.js.rjs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,7 +2,7 @@
 ## Initialize the environment
 ##
 unless Rails::VERSION::MAJOR == 2 &amp;&amp; Rails::VERSION::MINOR &gt;= 3
-  raise &quot;This version of ActiveScaffold requires Rails 2.2 or higher.  Please use an earlier version.&quot;
+  raise &quot;This version of ActiveScaffold requires Rails 2.3 or higher.  Please use an earlier version.&quot;
 end
 
 require File.dirname(__FILE__) + '/environment'</diff>
      <filename>init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -64,6 +64,7 @@ module ActiveScaffold
       @active_scaffold_config = ActiveScaffold::Config::Core.new(model_id)
       self.active_scaffold_config.configure &amp;block if block_given?
       self.active_scaffold_config._load_action_columns
+      self.links_for_associations
 
       # defines the attribute read methods on the model, so record.send() doesn't find protected/private methods instead
       klass = self.active_scaffold_config.model
@@ -100,6 +101,34 @@ module ActiveScaffold
       end
     end
 
+    # Create the automatic column links. Note that this has to happen when configuration is *done*, because otherwise the Nested module could be disabled. Actually, it could still be disabled later, couldn't it?
+    def links_for_associations
+      return unless active_scaffold_config.actions.include? :list and active_scaffold_config.actions.include? :nested
+      active_scaffold_config.list.columns.each do |column|
+        next unless column.link.nil? and column.autolink
+        if column.plural_association?
+          # note: we can't create nested scaffolds on :through associations because there's no reverse association.
+          column.set_link('nested', :parameters =&gt; {:associations =&gt; column.name.to_sym}) #unless column.through_association?
+        elsif column.polymorphic_association?
+          # note: we can't create inline forms on singular polymorphic associations
+          column.clear_link
+        else
+          model = column.association.klass
+          begin
+            controller = active_scaffold_controller_for(model)
+          rescue ActiveScaffold::ControllerNotFound
+            next
+          end
+
+          actions = controller.active_scaffold_config.actions
+          column.actions_for_association_links.delete :new unless actions.include? :create
+          column.actions_for_association_links.delete :edit unless actions.include? :update
+          column.actions_for_association_links.delete :show unless actions.include? :show
+          column.set_link(:none, :controller =&gt; controller.controller_path, :crud_type =&gt; nil)
+        end
+      end
+    end
+
     def active_scaffold_paths
       @active_scaffold_paths ||= ActionView::PathSet.new(@active_scaffold_overrides + @active_scaffold_frontends) unless @active_scaffold_overrides.nil? || @active_scaffold_frontends.nil?
     end</diff>
      <filename>lib/active_scaffold.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,18 @@ module ActiveScaffold::Actions
       end
     end
 
+    def render_field
+      @record = active_scaffold_config.model.new
+      column = active_scaffold_config.columns[params[:column]]
+      value = if column.association
+        params[:value].blank? ? nil : column.association.klass.find(params[:value])
+      else
+        params[:value]
+      end
+      @record.send &quot;#{column.name}=&quot;, value
+      @update_column = active_scaffold_config.columns[column.options[:update_column]]
+    end
+
     protected
 
     def authorized_for?(*args)
@@ -74,8 +86,16 @@ module ActiveScaffold::Actions
     # Override this method on your controller to define conditions to be used when querying a recordset (e.g. for List). The return of this method should be any format compatible with the :conditions clause of ActiveRecord::Base's find.
     def conditions_for_collection
     end
+  
+    # Override this method on your controller to define joins to be used when querying a recordset (e.g. for List).  The return of this method should be any format compatible with the :joins clause of ActiveRecord::Base's find.
     def joins_for_collection
     end
+  
+    # Override this method on your controller to provide custom finder options to the find() call. The return of this method should be a hash.
+    def custom_finder_options
+      {}
+    end
+  
 
     # Builds search conditions by search params for column names. This allows urls like &quot;contacts/list?company_id=5&quot;.
     def conditions_from_params
@@ -91,4 +111,4 @@ module ActiveScaffold::Actions
       conditions
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>lib/active_scaffold/actions/core.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,14 +14,15 @@ module ActiveScaffold::Actions
       respond_to do |type|
         type.html do
           if successful?
-            render(:action =&gt; 'create', :layout =&gt; true)
+            render(:action =&gt; 'create')
           else
             return_to_main
           end
         end
         type.js do
-          render(:partial =&gt; 'create_form.rhtml', :layout =&gt; false)
+          render(:partial =&gt; 'create_form')
         end
+        new_respond_to type if self.respond_to? :new_respond_to
       end
     end
 
@@ -34,9 +35,9 @@ module ActiveScaffold::Actions
           if params[:iframe]=='true' # was this an iframe post ?
             responds_to_parent do
               if successful?
-                render :action =&gt; 'on_create', :layout =&gt; false
+                render :action =&gt; 'on_create.js'
               else
-                render :action =&gt; 'form_messages.rjs', :layout =&gt; false
+                render :action =&gt; 'form_messages_on_create.js'
               end
             end
           else
@@ -54,17 +55,18 @@ module ActiveScaffold::Actions
                 do_list
                 render(:action =&gt; 'list')
               else
-                render(:action =&gt; 'create_form')
+                render(:action =&gt; 'create')
               end
             end
           end
         end
         type.js do
-          render :action =&gt; 'on_create', :layout =&gt; false
+          render :action =&gt; 'on_create'
         end
         type.xml { render :xml =&gt; response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        create_respond_to type if self.respond_to? :create_respond_to
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/create.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,10 +21,11 @@ module ActiveScaffold::Actions
           flash[:info] = as_(:deleted_model, :model =&gt; @record.to_label)
           return_to_main
         end
-        type.js { render(:action =&gt; 'destroy.rjs', :layout =&gt; false) }
+        type.js { render(:action =&gt; 'destroy') }
         type.xml { render :xml =&gt; successful? ? &quot;&quot; : response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; successful? ? &quot;&quot; : response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; successful? ? &quot;&quot; : response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        destroy_respond_to type if self.respond_to? :destroy_respond_to
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/delete.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,9 +19,10 @@ module ActiveScaffold::Actions
       respond_to do |type|
         type.js do
           do_list
-          render(:partial =&gt; 'list', :layout =&gt; false)
+          render(:partial =&gt; 'list')
         end
         type.html { return_to_main }
+        update_table_respond_to type if self.respond_to? :update_table_respond_to
       end
     end
 
@@ -32,15 +33,19 @@ module ActiveScaffold::Actions
 
     def list
       do_list
+      if active_scaffold_config.list.always_show_create
+        do_new
+      end
       respond_to do |type|
         type.html {
           reset_active_scaffold_session unless params[:wizard_controller]
-          render :action =&gt; 'list', :layout =&gt; true
+          render :action =&gt; 'list'
         }
         type.js { render :action =&gt; 'list', :layout =&gt; false }
         type.xml { render :xml =&gt; response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        list_respond_to type if self.respond_to? :list_respond_to
       end
     end
 
@@ -48,22 +53,12 @@ module ActiveScaffold::Actions
 
     # The actual algorithm to prepare for the list view
     def do_list
-      if active_scaffold_config.list.always_show_create
-        if params[:record]
-          do_create
-          if successful?
-            do_new
-          end
-        else
-          do_new
-        end
-      end
       includes_for_list_columns = active_scaffold_config.list.columns.collect{ |c| c.includes }.flatten.uniq.compact
       self.active_scaffold_joins.concat includes_for_list_columns
 
       options = { :sorting =&gt; active_scaffold_config.list.user.sorting,
                   :count_includes =&gt; active_scaffold_config.list.user.count_includes }
-      paginate = (params[:format].nil?) ? (accepts? :html, :js) : [:html, :js].include?(params[:format])
+      paginate = (params[:format].nil?) ? (accepts? :html, :js) : ['html', 'js'].include?(params[:format])
       if paginate
         options.merge!({
           :per_page =&gt; active_scaffold_config.list.user.per_page,</diff>
      <filename>lib/active_scaffold/actions/list.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,8 @@ module ActiveScaffold::Actions
             return_to_main
           end
         end
-        type.js { render(:partial =&gt; &quot;live_search&quot;, :layout =&gt; false) }
+        type.js { render(:partial =&gt; &quot;live_search&quot;) }
+        show_search_respond_to type if self.respond_to? :show_search_respond_to
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/live_search.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,9 +4,10 @@ module ActiveScaffold::Actions
 
     def self.included(base)
       super
+      base.module_eval do
+        include ActiveScaffold::Actions::Nested::ChildMethods if active_scaffold_config.model.reflect_on_all_associations.any? {|a| a.macro == :has_and_belongs_to_many}
+      end
       base.before_filter :include_habtm_actions
-      # TODO: it's a bit wasteful to run this routine every page load.
-      base.before_filter :links_for_associations
       base.helper_method :nested_habtm?
     end
 
@@ -15,7 +16,8 @@ module ActiveScaffold::Actions
 
       respond_to do |type|
         type.html { render :partial =&gt; 'nested', :layout =&gt; true }
-        type.js { render :partial =&gt; 'nested', :layout =&gt; false }
+        type.js { render :partial =&gt; 'nested' }
+        nested_respond_to type if self.respond_to? :nested_respond_to
       end
     end
 
@@ -27,57 +29,21 @@ module ActiveScaffold::Actions
       @record = find_if_allowed(params[:id], :read)
     end
 
-    # Create the automatic column links. Note that this has to happen when configuration is *done*, because otherwise the Nested module could be disabled. Actually, it could still be disabled later, couldn't it?
-    # TODO: This should really be a post-config routine, instead of a before_filter.
-    def links_for_associations
-      active_scaffold_config.list.columns.each do |column|
-        # if column.link == false we won't create a link. that's how a dev can suppress the auto links.
-        if column.association and column.link.nil?
-          if column.plural_association?
-            # note: we can't create nested scaffolds on :through associations because there's no reverse association.
-            column.set_link('nested', :parameters =&gt; {:associations =&gt; column.name.to_sym}) #unless column.through_association?
-          elsif not column.polymorphic_association?
-            model = column.association.klass
-            begin
-              controller = self.class.active_scaffold_controller_for(model)
-            rescue ActiveScaffold::ControllerNotFound
-              next
-            end
-
-            actions = controller.active_scaffold_config.actions
-            action = nil
-            if actions.include? :update and column.actions_for_association_links.include? :edit and model.authorized_for? :action =&gt; :update
-              action = 'edit'
-            elsif actions.include? :show and column.actions_for_association_links.include? :show and model.authorized_for? :action =&gt; :read
-              action = 'show'
-            end
-            column.set_link(action, :controller =&gt; controller.controller_path, :parameters =&gt; {:parent_controller =&gt; params[:controller]}) if action
-          end
-        end
-      end
-    end
-
     def include_habtm_actions
       if nested_habtm?
         # Production mode is ok with adding a link everytime the scaffold is nested - we ar not ok with that.
         active_scaffold_config.action_links.add('new_existing', :label =&gt; 'Add Existing', :type =&gt; :table, :security_method =&gt; :add_existing_authorized?) unless active_scaffold_config.action_links['new_existing']
         if active_scaffold_config.nested.shallow_delete
-          active_scaffold_config.action_links.add('destroy_existing', :label =&gt; 'Remove', :type =&gt; :record, :confirm =&gt; 'Are you sure?', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_existing_authorized?) unless active_scaffold_config.action_links['destroy_existing']
+          active_scaffold_config.action_links.add('destroy_existing', :label =&gt; 'Remove', :type =&gt; :record, :confirm =&gt; 'are_you_sure', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_existing_authorized?) unless active_scaffold_config.action_links['destroy_existing']
           active_scaffold_config.action_links.delete(&quot;destroy&quot;) if active_scaffold_config.action_links['destroy']
         end
-        
-        self.class.module_eval do
-          include ActiveScaffold::Actions::Nested::ChildMethods
-          # we need specifically to tell action_controller to add these public methods as action_methods
-          ActiveScaffold::Actions::Nested::ChildMethods.public_instance_methods.each{|m| self.action_methods.add m }
-        end unless self.class.included_modules.include?(ActiveScaffold::Actions::Nested::ChildMethods)
       else
         # Production mode is caching this link into a non nested scaffold
         active_scaffold_config.action_links.delete('new_existing') if active_scaffold_config.action_links['new_existing']
         
         if active_scaffold_config.nested.shallow_delete
           active_scaffold_config.action_links.delete(&quot;destroy_existing&quot;) if active_scaffold_config.action_links['destroy_existing']
-          active_scaffold_config.action_links.add('destroy', :label =&gt; 'Delete', :type =&gt; :record, :confirm =&gt; 'Are you sure?', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_existing_authorized?) unless active_scaffold_config.action_links['destroy']
+          active_scaffold_config.action_links.add('destroy', :label =&gt; 'Delete', :type =&gt; :record, :confirm =&gt; 'are_you_sure', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_authorized?) unless active_scaffold_config.action_links['destroy']
         end
         
       end
@@ -98,12 +64,12 @@ module ActiveScaffold::Actions
     end
 
     def nested_association
-      return active_scaffold_constraints.keys.to_s.to_sym if nested? and active_scaffold_constraints.keys.length &gt; 0
+      return active_scaffold_constraints.keys.to_s.to_sym if nested?
       nil
     end
 
     def nested_parent_id
-      return active_scaffold_constraints.values.to_s if nested? and active_scaffold_constraints.values.length &gt; 0
+      return active_scaffold_constraints.values.to_s if nested?
       nil
     end
 
@@ -127,14 +93,15 @@ module ActiveScaffold::Actions::Nested
       respond_to do |type|
         type.html do
           if successful?
-            render(:action =&gt; 'add_existing_form', :layout =&gt; true)
+            render(:action =&gt; 'add_existing_form')
           else
             return_to_main
           end
         end
         type.js do
-          render(:partial =&gt; 'add_existing_form', :layout =&gt; false)
+          render(:partial =&gt; 'add_existing_form')
         end
+        new_existing_respond_to type if self.respond_to? :new_existing_respond_to
       end
     end
 
@@ -147,19 +114,20 @@ module ActiveScaffold::Actions::Nested
             flash[:info] = as_(:created_model, :model =&gt; @record.to_label)
             return_to_main
           else
-            render(:action =&gt; 'add_existing_form', :layout =&gt; true)
+            render(:action =&gt; 'add_existing_form')
           end
         end
         type.js do
           if successful?
-            render :action =&gt; 'add_existing', :layout =&gt; false
+            render :action =&gt; 'add_existing'
           else
-            render :action =&gt; 'form_messages.rjs', :layout =&gt; false
+            render :action =&gt; 'form_messages'
           end
         end
         type.xml { render :xml =&gt; response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        add_existing_respond_to type if self.respond_to? :add_existing_respond_to
       end
     end
 
@@ -173,10 +141,11 @@ module ActiveScaffold::Actions::Nested
           flash[:info] = as_(:deleted_model, :model =&gt; @record.to_label)
           return_to_main
         end
-        type.js { render(:action =&gt; 'destroy.rjs', :layout =&gt; false) }
+        type.js { render(:action =&gt; 'destroy') }
         type.xml { render :xml =&gt; successful? ? &quot;&quot; : response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; successful? ? &quot;&quot; : response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; successful? ? &quot;&quot; : response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        destroy_existing_respond_to type if self.respond_to? :destroy_existing_respond_to
       end
     end
     </diff>
      <filename>lib/active_scaffold/actions/nested.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,8 @@ module ActiveScaffold::Actions
     def show_search
       respond_to do |type|
         type.html { render(:action =&gt; &quot;search&quot;) }
-        type.js { render(:partial =&gt; &quot;search&quot;, :layout =&gt; false) }
+        type.js { render(:partial =&gt; &quot;search&quot;) }
+        show_search_respond_to type if self.respond_to? :show_search_respond_to
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/search.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,11 +9,12 @@ module ActiveScaffold::Actions
 
       successful?
       respond_to do |type|
-        type.html { render :action =&gt; 'show', :layout =&gt; true }
-        type.js { render :partial =&gt; 'show', :layout =&gt; false }
+        type.html { render :action =&gt; 'show' }
+        type.js { render :partial =&gt; 'show' }
         type.xml { render :xml =&gt; response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        show_respond_to type if self.respond_to? :show_respond_to
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/show.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ module ActiveScaffold::Actions
       @scope = &quot;[#{@column.name}]&quot;
       @scope += (@record.new_record?) ? &quot;[#{(Time.now.to_f*1000).to_i.to_s}]&quot; : &quot;[#{@record.id}]&quot; if @column.plural_association?
 
-      render :action =&gt; 'edit_associated.rjs', :layout =&gt; false
+      render :action =&gt; 'edit_associated'
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/active_scaffold/actions/subform.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,14 +13,15 @@ module ActiveScaffold::Actions
       respond_to do |type|
         type.html do
           if successful?
-            render(:action =&gt; 'update', :layout =&gt; true)
+            render(:action =&gt; 'update')
           else
             return_to_main
           end
         end
         type.js do
-          render(:partial =&gt; 'update_form', :layout =&gt; false)
+          render(:partial =&gt; 'update_form')
         end
+        edit_respond_to type if self.respond_to? :edit_respond_to
       end
     end
 
@@ -32,9 +33,9 @@ module ActiveScaffold::Actions
           if params[:iframe]=='true' # was this an iframe post ?
             responds_to_parent do
               if successful?
-                render :action =&gt; 'on_update', :layout =&gt; false
+                render :action =&gt; 'on_update.js'
               else
-                render :action =&gt; 'form_messages.rjs', :layout =&gt; false
+                render :action =&gt; 'form_messages_on_update.js'
               end
             end
           else # just a regular post
@@ -46,23 +47,24 @@ module ActiveScaffold::Actions
                 return_to_main
               end
             else
-              render(:action =&gt; 'update', :layout =&gt; true)
+              render(:action =&gt; 'update')
             end
           end
         end
         type.js do
-          render :action =&gt; 'on_update', :layout =&gt; false
+          render :action =&gt; 'on_update'
         end
         type.xml { render :xml =&gt; response_object.to_xml, :content_type =&gt; Mime::XML, :status =&gt; response_status }
         type.json { render :text =&gt; response_object.to_json, :content_type =&gt; Mime::JSON, :status =&gt; response_status }
         type.yaml { render :text =&gt; response_object.to_yaml, :content_type =&gt; Mime::YAML, :status =&gt; response_status }
+        update_respond_to type if self.respond_to? :update_respond_to
       end
     end
 
     # for inline (inlist) editing
     def update_column
       do_update_column
-      render :action =&gt; 'update_column.rjs', :layout =&gt; false
+      render :action =&gt; 'update_column'
     end
 
     protected
@@ -76,7 +78,7 @@ module ActiveScaffold::Actions
     # A complex method to update a record. The complexity comes from the support for subforms, and saving associated records.
     # If you want to customize this algorithm, consider using the +before_update_save+ callback
     def do_update
-      @record = find_if_allowed(params[:id], :update)
+      do_edit
       begin
         active_scaffold_config.model.transaction do
           @record = update_record_from_params(@record, active_scaffold_config.update.columns, params[:record])
@@ -95,9 +97,11 @@ module ActiveScaffold::Actions
     end
 
     def do_update_column
-      @record = find_if_allowed(params[:id], :update)
+      do_edit
       if @record.authorized_for?(:action =&gt; :update, :column =&gt; params[:column])
-        @record.update_attributes(params[:column] =&gt; params[:value])
+        params[:value] ||= @record.column_for_attribute(params[:column]).default unless @record.column_for_attribute(params[:column]).null
+        @record.send(&quot;#{params[:column]}=&quot;, params[:value])
+        @record.save
       end
     end
 </diff>
      <filename>lib/active_scaffold/actions/update.rb</filename>
    </modified>
    <modified>
      <diff>@@ -124,7 +124,7 @@ module ActiveScaffold
       if parent_record.new_record?
         parent_record.class.reflect_on_all_associations.each do |a|
           next unless [:has_one, :has_many].include?(a.macro) and not a.options[:through]
-          next unless association_proxy = parent_record.instance_variable_get(&quot;@#{a.name}&quot;)
+          next unless association_proxy = parent_record.send(a.name)
 
           raise ActiveScaffold::ReverseAssociationRequired, &quot;In order to support :has_one and :has_many where the parent record is new and the child record(s) validate the presence of the parent, ActiveScaffold requires the reverse association (the belongs_to).&quot; unless a.reverse
 </diff>
      <filename>lib/active_scaffold/attribute_params.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+require 'active_scaffold/config/base'
 module ActiveScaffold::Config
   class Core &lt; Base
     # global level configuration
@@ -95,8 +96,10 @@ module ActiveScaffold::Config
 
     # a generally-applicable name for this ActiveScaffold ... will be used for generating page/section headers
     attr_writer :label
-    def label
-      @label || model.human_name
+    def label(options={})
+      options[:count] ||= model.count
+      options[:default] ||= model.name.pluralize if options[:count].to_i &gt; 1
+      as_(@label, options) || model.human_name(options)
     end
 
     ##
@@ -126,9 +129,6 @@ module ActiveScaffold::Config
 
       # inherit from the global set of action links
       @action_links = self.class.action_links.clone
-      
-      # the default label
-      @label = self.model_id.pluralize.titleize
     end
 
     # To be called after your finished configuration</diff>
      <filename>lib/active_scaffold/config/core.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,7 +30,7 @@ module ActiveScaffold::Config
     # ----------------------------
     # the label= method already exists in the Form base class
     def label
-      @label ? as_(@label) : as_(:create_model, :model =&gt; @core.label.singularize)
+      @label ? as_(@label) : as_(:create_model, :model =&gt; @core.label(:count =&gt; 1))
     end
 
     # whether the form stays open after a create or not</diff>
      <filename>lib/active_scaffold/config/create.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ module ActiveScaffold::Config
 
     # the ActionLink for this action
     cattr_accessor :link
-    @@link = ActiveScaffold::DataStructures::ActionLink.new('destroy', :label =&gt; :delete, :type =&gt; :record, :confirm =&gt; 'Are you sure?', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_authorized?)
+    @@link = ActiveScaffold::DataStructures::ActionLink.new('destroy', :label =&gt; :delete, :type =&gt; :record, :confirm =&gt; 'are_you_sure', :method =&gt; :delete, :position =&gt; false, :security_method =&gt; :delete_authorized?)
 
     # instance-level configuration
     # ----------------------------</diff>
      <filename>lib/active_scaffold/config/delete.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,15 +16,15 @@ module ActiveScaffold::Config
     # ----------------------------
     attr_accessor :shallow_delete
 
+    # Add a nested ActionLink
     def add_link(label, models, options = {})
-      options[:security_method] ||= :nested_authorized?
-      @core.action_links.add('nested', options.merge(:label =&gt; label, :type =&gt; :record, :position =&gt; :after, :parameters =&gt; {:associations =&gt; models.join(' ')}))
+      @core.action_links.add('nested', options.merge(:label =&gt; label, :type =&gt; :record, :security_method =&gt; :nested_authorized?, :position =&gt; :after, :parameters =&gt; {:associations =&gt; models.join(' ')}))
     end
 
     # the label for this Nested action. used for the header.
     attr_writer :label
     def label
-      @label ? as_(@label) : &quot;#{as_(:add_existing)} #{@core.label.singularize}&quot;
+      @label ? as_(@label) : as_(:add_existing_model, :model =&gt; @core.label)
     end
 
   end</diff>
      <filename>lib/active_scaffold/config/nested.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ module ActiveScaffold::Config
     # the label for this action. used for the header.
     attr_writer :label
     def label
-      @label ? as_(@label) : as_(:show_model, :model =&gt; @core.label.singularize)
+      @label ? as_(@label) : as_(:show_model, :model =&gt; @core.label(:count =&gt; 1))
     end
 
     # provides access to the list of columns specifically meant for this action to use</diff>
      <filename>lib/active_scaffold/config/show.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,14 +2,19 @@ module ActiveScaffold::Config
   class Subform &lt; Base
     def initialize(core_config)
       @core = core_config
+      @layout = self.class.layout
     end
 
     # global level configuration
     # --------------------------
+    cattr_accessor :layout
+    @@per_page = :horizontal
 
     # instance-level configuration
     # ----------------------------
 
+    attr_accessor :layout
+
     # provides access to the list of columns specifically meant for the Sub-Form to use
     def columns
       # we want to delay initializing to the @core.update.columns set for as long as possible. but we have to eventually clone, or else have a configuration &quot;leak&quot;</diff>
      <filename>lib/active_scaffold/config/subform.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,7 +22,7 @@ module ActiveScaffold::Config
 
     # the label= method already exists in the Form base class
     def label
-      @label ? as_(@label) : as_(:update_model, :model =&gt; @core.label.singularize)
+      @label ? as_(@label) : as_(:update_model, :model =&gt; @core.label(:count =&gt; 1))
     end
 
     attr_accessor :nested_links</diff>
      <filename>lib/active_scaffold/config/update.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,13 +22,13 @@ module ActiveScaffold::DataStructures
     # the display-name of the column. this will be used, for instance, as the column title in the table and as the field name in the form. If left alone it will utilize human_attribute_name which includes localization
     attr_writer :label
     def label
-      @label || active_record_class.human_attribute_name(name.to_s)
+      as_(@label) || active_record_class.human_attribute_name(name.to_s)
     end
 
     # a textual description of the column and its contents. this will be displayed with any associated form input widget, so you may want to consider adding a content example.
     attr_writer :description
     def description
-      @description.is_a?(Symbol) ? as_(@description, {:scope =&gt; [:activerecord, :attributes, active_record_class.to_s.underscore.to_sym]}) : @description if @description
+      @description.is_a?(Symbol) ? as_(@description, {:scope =&gt; [:activerecord, :attributes, active_record_class.to_s.underscore.to_sym]}) : as_(@description) if @description
     end
 
     # this will be /joined/ to the :name for the td's class attribute. useful if you want to style columns on different ActiveScaffolds the same way, but the columns have different names.
@@ -103,9 +103,13 @@ module ActiveScaffold::DataStructures
     # associate an action_link with this column
     attr_reader :link
 
+    # set an action_link to nested list or inline form in this column
+    attr_reader :autolink
+
     # this should not only delete any existing link but also prevent column links from being automatically added by later routines
     def clear_link
-      @link = false
+      @link = nil
+      @autolink = false
     end
 
     def set_link(action, options = {})
@@ -217,6 +221,7 @@ module ActiveScaffold::DataStructures
       self.name = name.to_sym
       @column = active_record_class.columns_hash[self.name.to_s]
       @association = active_record_class.reflect_on_association(self.name)
+      @autolink = !@association.nil?
       @active_record_class = active_record_class
       @table = active_record_class.table_name
       @weight = 0
@@ -226,8 +231,6 @@ module ActiveScaffold::DataStructures
       @actions_for_association_links = self.class.actions_for_association_links if @association
       
       # default all the configurable variables
-      # self.label = @column.human_name unless @column.nil? We are doing it in the accessor methods above
-      # self.label ||= self.name.to_s.titleize
       self.css_class = ''
       if active_record_class.respond_to? :reflect_on_validations_for
         column_names = [name]</diff>
      <filename>lib/active_scaffold/data_structures/column.rb</filename>
    </modified>
    <modified>
      <diff>@@ -71,6 +71,20 @@ module ActiveScaffold
         { :name =&gt; name, :id =&gt; id_control}.merge(options)
       end
 
+      def javascript_for_update_column(column, scope, options)
+        if column.options[:update_column]
+          url_params = {:action =&gt; 'render_field', :id =&gt; @record.id}
+          url_params[:controller] = controller.class.active_scaffold_controller_for(@record.class).controller_path if scope
+
+          parameters = &quot;column=#{column.name}&quot;
+          parameters &lt;&lt; &quot;&amp;eid=#{params[:eid]}&quot; if params[:eid]
+          parameters &lt;&lt; &quot;&amp;scope=#{scope}&quot; if scope
+          javascript_tag(&quot;$(#{options[:id].to_json}).observe('change', function(event) { new Ajax.Request(#{url_for(url_params).to_json}, {parameters: '#{parameters}&amp;value=' + this.value, method: 'get'}); });&quot;)
+        else
+          ''
+        end
+      end
+
       ##
       ## Form input methods
       ##
@@ -90,7 +104,7 @@ module ActiveScaffold
       def active_scaffold_input_plural_association(column, options)
         associated_options = @record.send(column.association.name).collect {|r| [r.to_label, r.id]}
         select_options = associated_options | options_for_association(column.association)
-        return 'no options' if select_options.empty?
+        return content_tag(:span, as_(:no_options), :id =&gt; options[:id]) if select_options.empty?
 
         html = &quot;&lt;ul class=\&quot;checkbox-list\&quot; id=\&quot;#{options[:id]}\&quot;&gt;&quot;
 
@@ -131,12 +145,8 @@ module ActiveScaffold
         end
         remote_controller = active_scaffold_controller_for(column.association.klass).controller_path
 
-        # if the opposite association is a :belongs_to, then only show records that have not been associated yet
-        params = {:parent_id =&gt; @record.id, :parent_model =&gt; @record.class}
-        
-        # if the opposite association is a :belongs_to, then only show records that have not been associated yet
-        # robd 2008-06-29: is this code doing the right thing? doesn't seem to check :belongs_to...
-        # in any case, could we encapsulate this code on column in a method like .singular_association?
+        # if the opposite association is a :belongs_to (in that case association in this class must be has_one or has_many)
+        # then only show records that have not been associated yet
         if [:has_one, :has_many].include?(column.association.macro)
           params.merge!({column.association.primary_key_name =&gt; ''})
         end
@@ -155,33 +165,19 @@ module ActiveScaffold
       def active_scaffold_input_checkbox(column, options)
         check_box(:record, column.name, options)
       end
-      # Moved this to country module
-      # def active_scaffold_input_country(column, options)
-      #   priority = [&quot;United States&quot;]
-      #   select_options = {:prompt =&gt; as_('- select -')}
-      #   select_options.merge!(options)
-      #   country_select(:record, column.name, column.options[:priority] || priority, select_options, column.options)
-      # end
 
       def active_scaffold_input_password(column, options)
-        password_field :record, column.name, active_scaffold_input_text_options(options)
+        options = active_scaffold_input_text_options(options)
+        password_field :record, column.name, options.merge(column.options)
       end
 
       def active_scaffold_input_textarea(column, options)
         text_area(:record, column.name, options.merge(:cols =&gt; column.options[:cols], :rows =&gt; column.options[:rows]))
       end
-      # Moved this to state module
-      # def active_scaffold_input_usa_state(column, options)
-      #   select_options = {:prompt =&gt; as_('- select -')}
-      #   select_options.merge!(options)
-      #   select_options.delete(:size)
-      #   options.delete(:prompt)
-      #   options.delete(:priority)
-      #   usa_state_select(:record, column.name, column.options[:priority], select_options, column.options.merge!(options))
-      # end
 
       def active_scaffold_input_virtual(column, options)
-        text_field :record, column.name, active_scaffold_input_text_options(options)
+        options = active_scaffold_input_text_options(options)
+        text_field :record, column.name, options.merge(column.options)
       end
 
       #
@@ -205,13 +201,13 @@ module ActiveScaffold
       ##
 
       # add functionality for overriding subform partials from association class path
-      def override_subform_partial?(column)
-        path, partial_name = partial_pieces(override_subform_partial(column))
+      def override_subform_partial?(column, subform_partial)
+        path, partial_name = partial_pieces(override_subform_partial(column, subform_partial))
         template_exists?(File.join(path, &quot;_#{partial_name}&quot;))
       end
 
-      def override_subform_partial(column)
-        File.join(active_scaffold_controller_for(column.association.klass).controller_path, &quot;subform&quot;) if column_renders_as(column) == :subform
+      def override_subform_partial(column, subform_partial)
+        File.join(active_scaffold_controller_for(column.association.klass).controller_path, subform_partial) if column_renders_as(column) == :subform
       end
 
       def override_form_field_partial?(column)
@@ -255,10 +251,11 @@ module ActiveScaffold
       end
 
       def subform_partial_for_column(column)
-        if override_subform_partial?(column)
-          override_subform_partial(column)
+        subform_partial = &quot;#{active_scaffold_config_for(column.association.klass).subform.layout}_subform&quot;
+        if override_subform_partial?(column, subform_partial)
+          override_subform_partial(column, subform_partial)
         else
-          &quot;horizontal_subform&quot;
+          subform_partial
         end
       end
 
@@ -307,7 +304,7 @@ module ActiveScaffold
           # record_select_field(
           #   &quot;#{options[:name]}&quot;,
           #   active_scaffold_config.model.new,
-          #   {:controller =&gt; remote_controller, :params =&gt; options[:url_options].merge(:parent_model =&gt; record_select_config.model)}.merge(active_scaffold_input_text_options))
+          #   {:controller =&gt; remote_controller, :params =&gt; options[:url_options].merge(:parent_model =&gt; record_select_config.model)}.merge(active_scaffold_input_text_options))        
         else
           # select_options = options_for_select(options_for_association(nested_association)) unless column.through_association?
           select_options ||= options_for_select(active_scaffold_config.model.find(:all).collect {|c| [h(c.to_label), c.id]})</diff>
      <filename>lib/active_scaffold/helpers/form_column_helpers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,9 @@
+# coding: utf-8
 module ActiveScaffold
   module Helpers
     # Helpers that assist with the rendering of a List Column
     module ListColumnHelpers
-      include ActionView::Helpers::JavaScriptMacrosHelper
+      include ActionView::Helpers::JavaScriptMacrosHelper      
       
       def get_column_value(record, column)
         begin
@@ -60,40 +61,58 @@ module ActiveScaffold
         make_available_method = &quot;#{column.name}_make_available?&quot;
         return active_scaffold_config.list.empty_field_text if record.respond_to?(make_available_method) and !record.send(make_available_method)
         if column.link
-          link = column.link.clone
-          if column.singular_association? and column_empty?(text) 
-            if column.options[:show_create_link_if_empty].blank?
-              return &quot;&lt;a class='disabled'&gt;#{text}&lt;/a&gt;&quot;
-            else
-              column_model = column.association.klass
-              controller_actions = active_scaffold_config_for(column_model).actions
-              if controller_actions.include?(:create) and column.actions_for_association_links.include? :new and column_model.authorized_for?(:action =&gt; :create)
-                link.action = 'new'
-                link.crud_type = :create
-                text = as_(:create_new)
-              end
-            end
-          end
-          return &quot;&lt;a class='disabled'&gt;#{text}&lt;/a&gt;&quot; unless record.authorized_for?(:action =&gt; column.link.crud_type)
-
+          link = column.link
+          associated = record.send(column.association.name) if column.association
           url_options = params_for(:action =&gt; nil, :id =&gt; record.id, :link =&gt; text)
-          if column.singular_association? and column.link.action != 'nested'
-            if associated = record.send(column.association.name)
-              url_options[:id] = associated.id
-            elsif link.action == 'new'
-              url_options.delete :id
+          url_options[:parent_controller] = params[:controller] if link.controller and link.controller.to_s != params[:controller]
+          url_options[:id] = associated.id if associated and link.controller and link.controller.to_s != params[:controller]
+
+          # setup automatic link
+          if column.autolink # link to nested scaffold or inline form
+            link = action_link_to_inline_form(column, associated) if link.crud_type.nil? # automatic link to inline form (singular association)
+            return text if link.crud_type.nil?
+            if link.crud_type == :create
+              url_options[:link] = as_(:create_new)
               url_options[:parent_id] = record.id
               url_options[:parent_column] = column.association.reverse
               url_options[:parent_model] = record.class.name # needed for polymorphic associations
+              url_options.delete :id
             end
           end
 
+          # check authorization
+          if column.association
+            authorized = (associated ? associated : column.association.klass).authorized_for?(:action =&gt; link.crud_type)
+            authorized = authorized and record.authorized_for?(:action =&gt; :update, :column =&gt; column.name) if link.crud_type == :create
+          else
+            authorized = record.authorized_for?(:action =&gt; link.crud_type)
+          end
+          return &quot;&lt;a class='disabled'&gt;#{text}&lt;/a&gt;&quot; unless authorized
+
           render_action_link(link, url_options)
         else
           text
         end
       end
 
+      # setup the action link to inline form
+      def action_link_to_inline_form(column, associated)
+        link = column.link.clone
+        if column_empty?(associated) # if association is empty, we only can link to create form
+          if column.actions_for_association_links.include?(:new)
+            link.action = 'new'
+            link.crud_type = :create
+          end
+        elsif column.actions_for_association_links.include?(:edit)
+          link.action = 'edit'
+          link.crud_type = :update
+        elsif column.actions_for_association_links.include?(:show)
+          link.action = 'show'
+          link.crud_type = :read
+        end
+        link
+      end
+
       # There are two basic ways to clean a column's value: h() and sanitize(). The latter is useful
       # when the column contains *valid* html data, and you want to just disable any scripting. People
       # can always use field overrides to clean data one way or the other, but having this override
@@ -156,6 +175,34 @@ module ActiveScaffold
         end
       end
 
+      # ==========
+      # = Inline Edit =
+      # ==========
+      def format_inplace_edit_column(record,column)
+        value = record.send(column.name)
+        if column.list_ui == :checkbox
+          active_scaffold_column_checkbox(column, record)
+        else
+          clean_column_value(format_value(value))
+        end
+      end
+      
+      def active_scaffold_inplace_edit(record, column)
+        formatted_column = format_inplace_edit_column(record,column)
+        id_options = {:id =&gt; record.id.to_s, :action =&gt; 'update_column', :name =&gt; column.name.to_s}
+        tag_options = {:tag =&gt; &quot;span&quot;, :id =&gt; element_cell_id(id_options), :class =&gt; &quot;in_place_editor_field&quot;}
+        in_place_editor_options = {:url =&gt; {:controller =&gt; params_for[:controller], :action =&gt; &quot;update_column&quot;, :column =&gt; column.name, :id =&gt; record.id.to_s},
+         :with =&gt; params[:eid] ? &quot;Form.serialize(form) + '&amp;eid=#{params[:eid]}'&quot; : nil,
+         :click_to_edit_text =&gt; as_(:click_to_edit),
+         :cancel_text =&gt; as_(:cancel),
+         :loading_text =&gt; as_(:loading),
+         :save_text =&gt; as_(:update),
+         :saving_text =&gt; as_(:saving),
+         :options =&gt; &quot;{method: 'post'}&quot;,
+         :script =&gt; true}.merge(column.options)
+        content_tag(:span, formatted_column, tag_options) + in_place_editor(tag_options[:id], in_place_editor_options)
+      end
+
       # =======
       # = AST =
       # =======</diff>
      <filename>lib/active_scaffold/helpers/list_column_helpers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ module ActiveScaffold
     module FormColumnHelpers
       def active_scaffold_input_calendar_date_select(column, options)
         options[:class] = &quot;#{options[:class]} text-input&quot;.strip
-        calendar_date_select(&quot;record&quot;, column.name, options)
+        calendar_date_select(&quot;record&quot;, column.name, options.merge(column.options))
       end      
     end
   end
@@ -36,10 +36,17 @@ module ActiveScaffold
   module Helpers
     module ViewHelpers
 
-      def active_scaffold_includes_with_calendar_date_select(frontend = :default)
-        active_scaffold_includes_without_calendar_date_select &lt;&lt; calendar_date_select_includes
+      # Provides stylesheets to include with +stylesheet_link_tag+
+      def active_scaffold_stylesheets_with_calendar_date_select(frontend = :default)
+        active_scaffold_stylesheets_without_calendar_date_select.to_a &lt;&lt; calendar_date_select_stylesheets
       end
-      alias_method_chain :active_scaffold_includes, :calendar_date_select
+      alias_method_chain :active_scaffold_stylesheets, :calendar_date_select
+
+      # Provides stylesheets to include with +stylesheet_link_tag+
+      def active_scaffold_javascripts_with_calendar_date_select(frontend = :default)
+        active_scaffold_javascripts_without_calendar_date_select.to_a &lt;&lt; calendar_date_select_javascripts
+      end
+      alias_method_chain :active_scaffold_javascripts, :calendar_date_select
       
     end
   end</diff>
      <filename>lib/bridges/calendar_date_select/lib/as_cds_bridge.rb</filename>
    </modified>
    <modified>
      <diff>@@ -75,9 +75,9 @@ module ActionView #:nodoc:
     # This is the template finder logic, keep it updated with however we find stuff in rails
     # currently this very similar to the logic in ActionBase::Base.render for options file
     # TODO: Work with rails core team to find a better way to check for this.
-    def template_exists?(template_name, template_format = nil)
+    def template_exists?(template_name)
       begin
-        self.view_paths.find_template(template_name, template_format)
+        self.view_paths.find_template(template_name, @template_format)
         return true
       rescue ActionView::MissingTemplate =&gt; e
         return false</diff>
      <filename>lib/extensions/action_view_rendering.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,10 +5,10 @@ module ActionView #:nodoc:
 
     def find_template_with_active_scaffold(original_template_path, format = nil, html_fallback = true)
       begin
-        find_template_without_active_scaffold(original_template_path, format)
+        find_template_without_active_scaffold(original_template_path, format, html_fallback)
       rescue MissingTemplate
         if active_scaffold_paths &amp;&amp; original_template_path.include?('/')
-          active_scaffold_paths.find_template_without_active_scaffold(original_template_path.split('/').last, format)
+          active_scaffold_paths.find_template_without_active_scaffold(original_template_path.split('/').last, format, html_fallback)
         else
           raise
         end</diff>
      <filename>lib/extensions/generic_view_paths.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ class LocalizationTest &lt; Test::Unit::TestCase
     ##
     ## test no language specified
     ##
-    assert_equal &quot;dutch&quot;, as_(&quot;dutch&quot;)
-    assert_equal &quot;Create 2&quot;, as_(&quot;Create %d&quot;, 2)
+    assert_equal &quot;dutch&quot;, as_(:dutch)
+    assert_equal &quot;Create Test&quot;, as_(:create, :model =&gt; 'Test')
   end
 end
\ No newline at end of file</diff>
      <filename>test/misc/lang_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>frontends/default/views/_add_existing_form.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_create_form.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_create_form_on_list.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_export_csv.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_field_search.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_association.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_association_footer.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_association_header.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_association_record.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_attribute.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_hidden_attribute.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_form_messages.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_horizontal_subform.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_actions.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_calculations.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_column_headings.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_header.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_inline_adapter.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_pagination_links.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_record.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_record_actions.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_list_record_columns.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_live_search.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_messages.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_nested.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_print_list.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_revision.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_revision_columns.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_search.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_show.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_show_columns.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_show_customize.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_show_export_tool.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_update_actions.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/_update_form.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/add_existing.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/add_existing_form.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/create.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/delete.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/destroy.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/edit_associated.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/field_search.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/form_messages.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/list.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/on_create.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/on_update.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/refresh_list.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/refresh_record.rjs</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/revision.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/search.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/show.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/show_customize.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/show_export_tool.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/update.rhtml</filename>
    </removed>
    <removed>
      <filename>frontends/default/views/update_column.rjs</filename>
    </removed>
    <removed>
      <filename>lib/extensions/hashes_in_url_for.rb</filename>
    </removed>
    <removed>
      <filename>lib/extensions/json_mime_type.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>263d2025b75d7835c3609a0d6355d6ce264734b8</id>
    </parent>
  </parents>
  <author>
    <name>Edwin Moss</name>
    <email>edwin.moss@gmail.com</email>
  </author>
  <url>http://github.com/edwinmoss/active_scaffold/commit/ee8223a79daa8d21501da0ff9b0a2c7093ababbd</url>
  <id>ee8223a79daa8d21501da0ff9b0a2c7093ababbd</id>
  <committed-date>2009-05-07T09:42:28-07:00</committed-date>
  <authored-date>2009-05-07T09:42:28-07:00</authored-date>
  <message>Merge to a9a46becf15cd519496c21e214bedf9a12bfdaa1.</message>
  <tree>543c57577fc568d75d6cd0666324d53f33ca5ecb</tree>
  <committer>
    <name>Edwin Moss</name>
    <email>edwin.moss@gmail.com</email>
  </committer>
</commit>
