= 1.2RC1

== FEATURES

- Added view helpers (active_scaffold_javascripts, active_scaffold_stylesheets, active_scaffold_ie_stylesheets) to help with asset cacheing (Alexander Semyonov)
- Works with Rails 2.1 (2.0 / 1.2.x will continue to be supported by version 1.1)

== FIXES

- Javascript compatibility with FF3 / Safari 3.1 (Mike Dalessio)
  see http://groups.google.com/group/activescaffold/browse_thread/thread/d37afa3f2ac687f2/b34ebf62d767bee3
- Avoid ruby deprecation warning in config/list.rb (Dustin Sallings)
- Fixes bug where template overrides are ignored when placed in Engines plugins (Mike Dalessio)
- Fixed in_place_editor to work with latest control.js
- Fixed infinite recursion bug when creating a new record with a new association
- Subform action name conflict fix
- Helpful warning message if record_select is not on a column with an association

= 1.1.1

== FIXES

* rendering for rails 1.2.x

= 1.1.0

== FEATURES

* `render :super' now accepts a :locals option
* parameter-based conditions now support arrays of values (e.g. users?name[]=bob&name[]=fred becomes "name IN ('bob', 'fred')")

== FIXES

* `render :super' now works from active_scaffold_overrides without endlessly looping
* `render :super' no longer assumes that the *immediate* caller was the override template file
* `render :super' works better with windows file names (e.g. c:/...)
* reload_if_empty() javascript now uses GET
* inplace_edit now uses POST instead of GET
* adding time and date fields to ignore list for determining whether subform row is empty. previously only datetime was ignored.
* closed a potential internet explorer security issue in dhtml_history.js library

= 1.1.0 RC1

== FEATURES

=== LIST
* row class: new helper method (list_row_class) gets called for each record in the list and returns a CSS class.
* automatically link to the :show action of singular associations. this is similar to the nested scaffolds for plural associations.
* column.list_ui: good for when you want to render multiple columns the same way.
* * built-in list interface options:
* * * for inplace edits - checkbox
* Support :joins_for_collection in column_calculation
* inplace_edit option on list columns. currently works for text boxes and booleans

=== CREATE/UPDATE
* file uploads - largely taken care of by file_column bridge.
* * automatically detects if FileColumn is installed.  If so, uses it, and sets the form_ui for file columns to be file upload fields
* * sets multipart? on config.create and config.update if file_columns are used on the target model
* * Posts through iframe to give ajax-style file uploads
* * Image columns are recognized and previewed as such
* * Ability to delete a file
* form_ui
* * form interface options are now supported through helper method named active_scaffold_input_#{form_ui}. if you want a different form interface than activescaffold normally provides, you may configure the form_ui for that column to use one of these methods. you can easily define your own, too.
* * built-in form interface options:
* * * for associations - singular_association, plural_association, select, record_select
* * * others - select, checkbox, country, password, textarea, usa_state, virtual, boolean
* * subforms respect form_ui settings. but if form_ui is empty, it will be set to :select to disable subform nesting.
* boolean columns: when the database column allows nil, we now add a third option to the dropdown so you don't *have* to pick true or false.
* new :params option for a column lets you specify additional parameters to accept when the given column is on the form. this is for when a column needs to submit multiple values to work.
* improved support for associations in parameters. for simply selecting/deselecting associations, activescaffold will now recognize `:user => 5' or `:users => [1, 2, 5]'.
* Supply a unique id from active_scaffold_input_options for form fields.
* added after_update_save controller override method

=== EMBEDDING
* `render :active_scaffold' now accepts a :conditions option, which is a weaker but more flexible variation of :constraints
* active_scaffold_includes now accepts a frontend name. this is necessary so you can include the proper assets even if active_scaffold isn't configured on the current controller (it's embedded).
* polymorphic constraints are now supported, assuming params[:parent_model].to_s is the proper content for the polymorphic _type field.
* Beefing up the constraint system so it can handle has_one/belongs_to. Specifically, it can now disassociate a previous relationship before setting a new one. For example, Bear has_one Den. If creating a new Den, constrained to a certain Bear, the constraints system will now disassociate any previous Den from the Bear before associating the new one.

=== NESTING
* :through associations may now be nested
* nested#shallow_delete

=== SEARCH
* fieldsearch module handles booleans better - provides third option so you don't *have* to search on a boolean column
* In field search lock_version is the only magic column. May want to search by :id or date fields.

=== GENERAL
* use #human_name for the column label when possible.
* merge_conditions now supports hash conditions (and should forever support every conditions style that ActiveRecord supports)
* action links may now remove an action link with #clear_link
* action links have a new :controller option, so you don't have to sneak it into :params anymore
* dhtml history may now be disabled
* authorized_for? in ActiveRecordPermissions now calls respond_to? only as much as needed
* removing an assert_valid_keys? call in active_record_permissions#authorized_for?. it just wasn't worth the CPU time.
* render :super is now extension-agnostic. ex: `render :super` in list.html.erb will properly find list.rhtml as the "parent" template.
* Auto-bridge loading mechanism.  Bridges integrated into core.
* inherited_view_paths: ability to specify other folders to look for if missing view occurs

== FIXES

=== LIST
* the calculation row now updates on edit/create/destroy.
* list now returns to page 1 if the current page has no records.
* list will now try to reload the scaffold on a previous page if you delete the last entry on the current page.
* if there were no end-of-line record actions, then any column actions would not use ajax. this was because the loading indicator was missing, which messed up the action link javascript.
* theme == :default no longer attempts to use Rico.Corner
* column_empty? now treats any values equal to list.empty_field_text as empty, too.
* better :method handling for action links.
* the '&nbsp;' fix for ie6 was failing for value types that weren't nil and didn't respond to empty?
* if someone sets singular columns to link to the 'nested' action, the link will now render with the appropriate id parameter.
* do not propagate params[:search] through action links that link to other controllers. closes issue #447.
* reworked rendering of pagination links for IE

=== CREATE/UPDATE
* constraints are now applied to a record during the #new action, in case any custom form rendering depends on the constrained column
* the default options_for_association_conditions now returns nil for :through associations
* will not update a record attribute if the value hasn't changed. this is a workaround for an activerecord bug with has_one associations.
* attributes_hash_is_empty? didn't handle multi-parameter attribute names like 'created_at(5i)', which resulted in extra records being created from subforms.
* Hide hidden column header labels  - like lock_version - in sub-forms.
* configuring url_for to not escape ampersands for the add_new_url in association footers (the 'create another' button's url)
* attribute_params.rb#attributes_hash_is_empty now checks defaults by converting them to strings to match the parameter values.

=== NESTING
* no longer trying to nest a polymorphic association (there's no consistent model to list)
* fixed :conditions generation for nested/embedded scaffolds - was causing a bind variable mismatch.

=== SEARCH
* search/livesearch should no longer choke on virtual columns
* the search/live_search forms will now ignore params[:search] when generating the submit url

=== GENERAL
* no longer blow up on data strings with unintentional % characters. as_() was sprintf'ing too frequently.
* link_to no longer blows up on controller symbols
* activescaffold no longer loses information on columns - `config.columns.add', `config.columns = [...]', and `config.columns.exclude' all now affect the *inheritability* of a column by the other modules (list, create, update, etc.), but all columns remain in config.columns. this also makes _id columns behave better.
* dhtml history no longer saves null:null:null history bookmark.
* if there aren't any columns to search on, then activescaffold no longer creates an empty WHERE clause
* render :update was failing in some cases because activescaffold wasn't expecting blocks to the render call.
* quoting the scaffold id for report_500_response()
* adding :update_column => :post to the RESTful routing. closes issue #448.

== MISC

* reorganized the helpers and extensions
* ui_type is now only an alias for form_ui
* improvements to exception messages
* when initializing in production mode, activescaffold now recovers gracefully if it can't copy asset files
* RESTful routing is now accomplished in a way that'll let other add-ons extend the meaning of :active_scaffold => true.
* fixes for edge rails compatibility
* small improvements for localization accessibility
* minor string renaming (will affect localization tables, though)
* closed a few XSS holes