activescaffold/active_scaffold

View on GitHub
CHANGELOG.rdoc

Summary

Maintainability
Test Coverage
- Escape _ and % when using search with LIKE
- Fix ID in nested scaffolds when parent record has string primary key, with invalid chars for HTML ID
- Fix search with recordselect multiple
- Support loading jquery-ui externally, without jquery-ui-rails gem and ask AS to load JS/CSS for addons based on jquery-ui
- Support usage with importmap

= 3.7.2
- Fix routes

= 3.7.1
- Nullable boolean columns default to use :boolean form_ui instead of :checkbox
- Display the value set in options[:include_blank] for boolean columns when value is nil, to match the label in the form
- Support :select_multiple in search_ui, and :draggable in form_ui and search_ui, as shorthands
- Support assigning options next to the UI type in form_ui, list_ui, show_ui, search_ui, so they are used instead of common options
- Support :refresh_link option in :select form_ui for non-association columns
- Support using a hash in :refresh_link option instead of true, with html
- Support select with multiple attribute for plural associations using :select form_ui, instead of checkboxes, using {html_options: {multiple: true}}, or :select_multiple
- Support attributes= in column, to set multiple settings with a hash
- Fix update_columns in type column of polymorphic association, when foreign key has value, it will look for old id with new type and may fail
- Support changing between subform and form_ui with update_columns
- Deprecate automatic :select form_ui for associations in subforms, set :select in the controller config to remove deprecation warning, or enable new behaviour of nested subforms with ActiveScaffold.nested_subforms = true
- Some fixes for human conditions with some search UI
- Add more string comparators in field search
- Support date and datetime searches with operators using html5 inputs, as was supported when using date picker. The different bridges, date_picker and calendar_date_select, will just replace the input fields.
- Support disabling default usage of jquery UI date picker, in case of sortable is wanted, so jquery-ui-rails is loaded, but wants to use HTML5 date input.
- Support multiple id in constraints for polymorphic association, and don't register constrained field if value is an array.
- Support subqueries in field_search, with new syntax for search_sql, so search in polymorphic associations is possible.
- Better support for active model attributes
- Load files on boot using initializer blocks and use hooks to patch rails classes, run hook :active_scaffold_routing when routing is loaded so other plugins can extend routes

= 3.7.0
- Drop support for rails < 5.2 and ruby < 2.5
- Support adding settings for chosen and tinyMCE in initializer (ActiveScaffold.js_config) or JavaScript code (ActiveScaffold.config, needed for callbacks)
- Support ruby 3.0 and 3.1
- Check action link security method in process_action_link_action with no id
- Add thumbnail_variant setting to ActiveStorage bridge
- Support Postgres citext column type
- Fix date picker bridge for ruby >= 2.7
- Fix keeping_errors for rails >= 6.1
- Fix usage of field_error_proc on record_select bridge for rails 7
- Support TinyMCE 6
- Add hide_form_column_if to columns
- Re-enable form which is sent to iframe when response is received, e.g. if form is downloading a file
- Use hash order for bitfields value instead of bit order, so options can be re-ordered as `2**1 => opt1, 2**0 => opt0, 2**2 => opt2`
- Remove delayed_setup, as it didn't work since rails 5.2
- Support Turbo
- Fix detecting when form submit to iframe has ended, for downloads too (using cookie)
- Fix list deleted records on nested listings using JSON column or serializer in PaperTrail versions table
- Support procs in description of columns, passing record, column, and scope to the proc
- Fix displaying errors in forms in rails 7.1
- Support for mongoid 7
- Support update_columns in field_search, so cascading behaviour is available to field search as in create or update forms
- Support floating footer in field_search, create and update, so footer may float to keep it visible when form is too long to fit
- Support hide/show link in form columns with option :collapsible
- Improve support for three-state boolean (nullable boolean columns), allowing to change the label for NULL
- Improve support for nullable boolean columns in field search, allowing to search for NULL

= 3.6.20
- Fix numeric search on field search for rails >= 5.0

= 3.6.19
- Improve create action in has_many through singular association, supporting more cases

= 3.6.18
- Add references only for column.search_joins which are in column.includes, and do search_joins for the rest, search_joins default to includes, so won't change behaviour on most cases, but allows to preload some associations without joining in the query
- Don't define default search_joins, as it may return includes, so search_joins will default to includes unless is defined, and the previous change won't change the behaviour if user doesn't define search_joins
- Fix update_columns on through association

= 3.6.17
- Don't add includes or left joins for constrained columns, as they are ignored on sorting clause
- Fix deprecation on cache counts with rails 5, and fix the queries for rails >= 5.1
- Fix new for tableless models on rails 5.0

= 3.6.16
- Fix query on paper_trail action
- Fix one? on tableless relation
- Fix exists? on tableless relation
- Fix getting conditions from association in the tableless relation

= 3.6.15
- Prevent firing 2 change events on jquery datetime pickers
- Fix setting data options on columns for date and datetime pickers

= 3.6.14
- Fix setting data on html_options when threadsafe is enabled
- Fill nested association on render field, as done in new action

= 3.6.13
- Fix link caching on action when threadsafe is enabled

= 3.6.12
- Fix getting proxy for action link when iterating over action links and threadsafe is enabled, so link can be changed

= 3.6.11.1
- Fix required attribute broken on previous version when no validation was found

= 3.6.11
- Fix inplace edit cloning with jquery >= 1.9, when more than one child is cloned
- Support inplace edit cloning for :radio form_ui
- Add records parameter to cache_columns_count and related methods (count_query_for_column, mongoid_count_for_column)
- Fix required attribute when validator uses :on option, so on: :update only set required on update form, and :create only set required on create form

= 3.6.10
- Don't add numerical constraints based on conditional validation
- Fix typo in cache key for numerical constraints
- Fix duplicated params in search form, e.g. embedded constraints

= 3.6.9
- Support depend on .rb or .json locale files for date picker bridge
- Fix search with dates entered with timezone in datepicker

= 3.6.8
- Add depend_on available translations in app to data picker bridge JS
- Fix live search with rails-ujs
- Replace delayedObserver with $.debounce

= 3.6.7
- Upgrade jquery ui timepicker addon to 1.6.3

= 3.6.6
- Fix format string for timezone in jquery timepicker

= 3.6.5
- Support timezone in jquery timepicker

= 3.6.4.1
- Actually fix country_select bridge for latest gem version

= 3.6.4
- Fix country_select bridge for latest gem version

= 3.6.3
- Fix search on nested or embedded lists with rails_ujs
- Fix inplace edit when collection action link opens a view with table and th

= 3.6.2
- Fix count query when association's primary key is string
- Fix unauthorized_columns and constraint_columns with threadsafe enabled
- Fix changing list.sorting and column.sort_by per request when threadsafe is enabled

= 3.6.1
- Display group cols vertically when subform layout is vertical
- Fix html attributes for input datetime on field search, when jquery ui is not used
- Fix constraint columns for nested list on through associations
- Support rails 6.1

= 3.6.0
- Fix i18n at ruby 3.0.0
- Add list helper for bitfield column, so it display labels of selected checkboxes in list
- Support rails 6.0

= 3.6.0.rc2
- Fix subform crud in subform subgroup when controller is embedded
- Fix sorting for mongoid models, broken in 3.6.0.rc1
- Improve add_new option, allow to change subform columns (with helper override calling super and add columns to locals argument)
- Support add_new option for record_select or radio form_ui
- Support add_new option for polymorphic associations (add_new may be array with class names to allow add new, or true to allow add new for any model)
- Support description for columns displayed as subform
- Don't mess with history if current page is not using activescaffold when is loaded
- Fix changing sort_by per request when threadsafe is enabled

= 3.6.0.rc1
- Cleanup: deprecate ActiveScaffold.set_defaults for ActiveScaffold.defaults, rename some setters
- Fix adding new action links on request with threadsafety enabled
- Fix iterating in config.columns with threadsafety enabled
- Fix changing pagination enabled/disabled with threadsafety enabled
- Allow create action in has_many through singular association
- Display no options in radio form_ui when no option is available, so column can be refreshed with update_columns
- Add as_main_div_data to override data attributes on main div
- Add loading indicator to embedded scaffolds, display error if fails
- Fix race condition in threadsafe mode with delayed setup
- Add ActiveScaffold::Config::Core.after_config_callbacks, so custom methods or procs can be added to be called after active_scaffold config block (used by bitfields bridge)
- Display loading indicator at bottom on auto pagination
- List rendering speed up
- Remove font family from CSS, it was preventing from changing it easily in body
- Fix search for mongoid models with threadsafety enabled
- Keep nested params after calling render_field for column in subform
- Fix nested for controllers without list action (for example, for nested create on singular assocations)
- Fix delayed setup issues with threads
- Fix render_field under nested list for polymorphic association
- Add foreign_type column to constrained columns in nested list for polymorphic association
- Add return_to to action links on nested list for singular associations, so forms would return to list
- Case insensitive search with PostGIS adapter
- Use clear_storage with around_action and ensure, so empty hash is removed from session storage when exception is raised too
- Delete search from session when search is reset
- Add cache_column_counts method to get counts with one query for associations which are not preloaded, query per column is overridable with count_query_for_column
- ActiveStorage support with bridge
- Add list_row_attributes helper so more HTML attributes can be added to tr.record in list, overriding the helper
- Support column!=value param for not equal condition (column!= means column is not null)
- Don't force to use join for column's includes when sorting by method
- Add support for range conditions in url params for numeric (integer, decimal, float, bigint) columns too
- Support include_blank option in :radio form_ui
- Add add_new option for :select form_ui in singular associations, in column.options, it adds link to toggle between select and subform
- Fix subform crud in subform subgroup, when form is on nested scaffold, when record on first subform is persisted
- Add association_join_text setting to column, so it can be changed for one column only
- Use Arel.sql with sorting.clause before passing to reorder method

= 3.6.0.pre
- Added threadsafety as tech preview, enabled with ActiveScaffold.threadsafe! in initializer.
- Added active_scaffold_config.build_action_columns method to easily create action columns for custom form actions.
- Replaced each(options) with each_column(options) in ActionColumns
- Replaced collect_visible(options, &proc) with visible_columns(options).map(&proc) in ActionColumns
- Replaced names with visible_columns_names in ActionColumns
- Replaced names_without_auth_check with to_a in ActionColumns
- Support rails 5.2, drop support for 4.0 and 4.1
- Require ruby 2.3.1, drop support for 2.0, 2.1 and 2.2.
- Fix has_one/belongs_to nested for polymorphic associations, leave rails to build conditions from {assoc_name: record} hash
- Cast blank into nil for null string columns in conditions_from_params
- Support multipart with iframe in process_action_link_action default response
- Fix hidding and showing columns based on permissions with update_columns on subforms
- Fix subform crud in subform subgroup, when form is on nested scaffold
- Fix JS when rails-ujs is used instead of jquery_ujs (rails >= 5.1)
- Display flash messages only inside create form, when conf.list.always_show_create is enabled, instead of displaying twice (in form and above list).
- Fix default autocomplete value for password form_ui, new-password has to be used because off is ignored by browsers in password fields now

= 3.5.5
- Fix creating new records, when using cancan and allowing access based on id (fixes #617)

= 3.5.4
- Fix chosen form_ui for plural associations
- Eager load with includes in association options query, if includes has a hash with own association key, see #612

= 3.5.3
- Fix :text fields for rails >= 5.1
- Send empty array in collection associations with select form_ui (checkbox or draggable list) when no option is available

= 3.5.2
- Load chosen on turbolinks:load event
- Fix association.blank? when associated_limit=0 and includes=nil

= 3.5.1
- Fix set false options for date picker
- Fix :hidden form_ui for singular associations
- Fix sorting by columns not included in list for SQL Server

= 3.5.0
- add basic support for Mongoid
- add support for associations between Mongoid and ActiveRecord with ActiveMongoid
- use concerns for routes, deprecate as_routes method
- add install generator
- rails 5.0 support and turbolinks 5.0 support, without jquery.turbolinks
- rename active_scaffold generator as active_scaffold:resource
- rename active_scaffold_controller generator as active_scaffold:controller
- remove deprecations from 3.4.x (active_scaffold_includes and using @record in helpers)
- check create authorized for create on list (config.list.always_show_create)
- allow to disable inplace_edit for column when update form is enabled
- add support for aggregated lists to field_search (config.field_search.group_options)
- add support for range conditions in url params for date and datetime columns
- add :color form_ui with "No color" checkbox to disable if column may be null
- add inline_links config to show action, display member links in show action loaded in page
- add :telephone list_ui displaying formatted phone number with tel: link
- add global config option to display reason for disabled action, authorized methods must return string with reason, and string is interpreted as not authorized
- add config.column shortcut to set defaults for column settings with ActiveScaffold.set_defaults
- stop saving embedded scaffolds info into session, so no more CookieOverflow errors caused by loading many embedded scaffolds
- add add_association_columns method to config.columns, so columns from has_one or belongs_to association can be added as delegated columns (for list, show, field_search and update_column only)
- support has_many through singular associations (belongs_to or has_one) in forms
- remove onsubmit tag in forms and move tinymce related JS to assets
- use html5 history api when listing is refreshed
- use date, datetime-local and time html5 inputs for date, datetime and time columns without form_ui
- add month and week form_ui using html5 inputs
- avoid browser mixes html and xhr cache for listing requests, using vary header
- improve in_subform? check for subforms, so only reverse association is hidden (needed when subform class has multiple associations to main form's class)
- fix select of existing record for nested subform
- fix apply constraints to parent (fix update columns on subform on embedded scaffold)
- fix for override form field and subform partials on AS controllers which are parent class for AS controllers, so they are shared by children classes
- fix translation for ActiveRecord enums
- fix do_refresh_list on actions with GET route, it used :id and :action from request for sorting and pagination links
- fix enabling draggable lists and sliders on new subform records
- fix updating column and changing from :hidden form_ui to different one
- fix searching with :multi_chosen search_ui
- fix human conditions for :chosen and :multi_chosen search_ui
- fix display of association in list when association_limit is nil
- fix conversion of i18n date and datetime value, some abbr day and month may be equal in some languages
- fix hidden form_ui for collection associations (has_many, habtm)
- Drop rails 3.2.x and ruby 1.9 support

= 3.4.43
- Fix human conditions for date and datetime columns, not using date picker

= 3.4.42
- fix do_refresh_list on actions with GET route, it used :id and :action from request for sorting and pagination links
- Fix for using jquery-ui-rails 6.0
- Fix for protected and private authorized methods

= 3.4.41.1
- Fix issue with id_helpers and active_scaffold_sortable, caused by last security fix

= 3.4.41
- Fix XSS via eid param

= 3.4.40
- allow to exclude bitfield column
- replace some uses of $ with jQuery

= 3.4.39
- fix removing delete link with config.delete.link = false, broken on 3.4.38
- fix position of nested action groups
- fix human conditions with rails 4.2 and json session
- fix search conditions for decimal columns on rails 4.2

= 3.4.38
- ensure add_existing and delete_existing are removed when list is not nested
- add :percentage list_ui, use jquery ui slider, set slider options on column.options[:slider], :value_method (default to column name), :min_method and :max_method to get value, min and max options from record
- fix default required for column with :checkbox form_ui and inclusion validator on rails 3.2
- fix search on habtm column on postgresql
- fix for format_number_value with nil
- add includes for sorting columns only if columns is not displayed, add to includes for postgresql, to outer_joins for others

= 3.4.37
- return valid css class for subgroups, e.g. when name with dot is used for translation scopes
- check permissions for add existing and delete existing, use nested parent record authorized for update nested association column
- TinyMCE bridge integrate better with the tinymce-rails (thanks to @subfusc)
- Remove own country_select helpers and convert into bridge for country_select gem (now it will save country code instead of country name, migrate data or restore old behaviour setting columns[:col].options[:format] = :old)

= 3.4.36
- Fix tableless for rails >= 4.1 for associations with table
- use number_with_precision for non-integer numbers with i18n_number format, so strip_insignificant_zeros and precision can be used

= 3.4.35
- Fix JS error on update columns when request fails and form is loaded on page
- Not raise exception when trying to scroll to missing element
- Fix error on rails 3.2 caused by a workaround to fix eager load HABTM with scope on rails 4.2

= 3.4.34
- Fix past, future and range on field search with rails 4, local time was used instead of UTC
- Ignore search params when params[:id] is set
- Eager load HABTM with scope using left join
- Add active_scaffold/indicator.gif to precompile so rails 4.2 precompiles it
- Add support for ActiveRecord::Enum so :select form_ui is used by default
- Fix nested link on self-association belongs_to for rails >= 4.1
- Fix update_column for boolean columns with default true on rails 4.2
- Fix columns lost on tableless models on rails 4.2

= 3.4.33
- Fix _base_form when used with actions, so :multipart and :persistent can set to false instead of getting them from action config
- Copy update.columns from create.columns, if not defined
- Ensure ajax:complete is called to enable form after render_form_field request, even if element is removed

= 3.4.32
- Add ActiveScaffold.reload_embedded JS method, to reload an embedded scaffold
- Fix nested on composite primary key associations
- Fix render :super on partials rendered with :collection (like _list_record)
- Fix required on paperclip, carrierwave and dragonfly bridges, when file is already saved

= 3.4.31
- fix multiple support for :select form_ui with non-association columns
- remove yaml response support, not used in rails usually and no support for respond_to :yaml
- clean code to generate API responses (json/xml)
- really fix compatibility with composite primary keys gem
- fix country select on rails 3.2
- ensure prefixes have active_scaffold_overrides when delayed_setup is used

= 3.4.30
- move jquery-ui images to app/assets for rails 4.2 compatibility
- clean css so no need to reverse links on nested
- fix responds_to_parent with redirect

= 3.4.29
- fix for search_ui :multi_select on non-association column and non integer options
- ensure id for radio button is valid
- check foregin_type present, not only nil, on polymorphic associations

= 3.4.28
- don't stop on first associated record with error
- compatibility fix for composite primary keys gem
- fix double columns output on json and xml formats
- fix for search_ui :multi_select on non-association column

= 3.4.27
- support use_html option in columns for inplace_edit
- don't add errors added on update_record_from_params to flash[:warning], they are on errors array, keep errors from update_record_from_params when running valid?

= 3.4.26
- fix padding for dynamic action_group inside action_group
- fix using gem with symlink in BUNDLE_PATH option of config/bundle file

= 3.4.25
- call focus_first_element after highlight and trigger element_created
- fix restoring focus to element which triggers update column

= 3.4.24
- allow to set :controller in active_scaffold_record_select_autocomplete parameter or active_scaffold_input_text_options
- fix keeping focus after update_columns when focus was changed to a field which is going to be updated
- no autofocus first input if is inside .no-autofocus tag
- use active_scaffold_enum_options on select search_ui
- add submit_text option for field_search and search partials

= 3.4.23
- fix chosen on new subform rows
- add show_ui to column
- add :vertical and :horizontal show_ui for associations

= 3.4.22
- fix has_one/many tableless model through association
- fix check default value for checkboxes, so if record in subform, with checkbox, is left as default, is not saved, but setting checkbox would save record
- singular associations on subform are not always created, so you can leave default values on fields and skip creation, in other case some validations could fail and force to create singular associations
- fix counter cache on polymorphic for rails 4.2.1
- fix set cursor at end when focusing first element of form

= 3.4.21.1
- Fix field_search when contains is used on rails 4.2

= 3.4.21
- Fix excluding a bridge
- Allow to call helpers from dynamic_parameters proc
- Fix warn when form is changed on create/update loaded on page (without AJAX)
- Fix XSS vulnerability when using to_label with as_ (#425)
- Set cursor at end when focus first element
- Set focus on form.search after search with refresh_with_header

= 3.4.20
- Update tinymce bridge for tinyMCE 4.x
- Ignore :format in conditions_from_params
- column with :radio form_ui works like :select form_ui in list and show
- Fix default opt_value in search_range when comparator options is overrided
- translate include_blank in select search_ui
- Add column.css_class to li tag on field search
- Allow to set having in custom_finder_options

= 3.4.19
- Fix rails bug on set_inverse_instance for has_one :through associations which has_many inverse association
- Fix warn when form is changed

= 3.4.18.1
- Fix do_destroy for mark action

= 3.4.18
- Fix paper_trail bridge on development
- Allow to set :data hash in :html_options for action links
- unscope(:order) in calculate_query (for rails >= 4)
- clean code and follow ruby style guide
- deny_access (rescue method for ActiveScaffold::RecordNotAllowed, ActiveScaffold::ActionNotAllowed) render with status :forbidden (403) instead of 401
- allow to load nested scaffold with nested through associations, even with inplace edit enabled
- disable create on nested through associations
- Allow to config live_search delay with ActiveScaffold.js_config
- Warn when form is changed (ignores search forms), this featured must be enabled with ActiveScaffold.js_config[:warn_changes], message can be set on <meta name="unload-message" content="..."> tag or ActiveScaffold.js_config[:unload_message]

= 3.4.17
- Fix deprecation warning "Extra .css in SCSS file is unnecessary"
- Improve support for namespaced models on namespaced controllers with different namespace

= 3.4.16
- add scoped_query to list methods, so it can be used for calculations, like each_record_in_scope is used to iterate over every filtered record
- fix field_search_ignore? and search_ignore?
- fix reset on search forms loaded with session search

= 3.4.14
- fix filter order in AS controllers which inherit from AS controllers
- clean code

= 3.4.13
- fix parent_prefixes deprecation on rails 4.2
- set parent record on add existing
- add record_select_params_for_add_existing to allow to set params on record select browse url, so add existing records are filtered
- fix search with date and boolean columns on rails 4.2
- fix cache association for has many through
- move handle_user_settings and check_input_device filters to Actions::Core so filters are not added to ActionController::Base, see cb2fabd
- allow to use search and field_search without AJAX
- allow to remove reset button in search and field_search

= 3.4.12
- Workaround for counter_cache bug on polymorphic associations on rails4
- Improve use of CRUD actions without list action

= 3.4.11
- Fix refresh-link on main form (not subform)
- Workaround for counter_cache bug on rails4 (https://github.com/rails/rails/pull/14849)
- Support create form on nested scaffolds on through association, if through reflection association is included in create form
- Remove ruby 1.8 support
- Fix :index member route (list one item), broken on 3.4.9

= 3.4.10
- singular associations on subform are always created, in other case it's not possible to enable a checkbox without filling text fields.
- process_action_link_action checks security for crud_type and action now
- fix record for add_existing_form, so it can be used on options_for_association_conditions
- :type option for action_link not needed anymore if added with action_links.member.add, it was redundant

= 3.4.9
- update parent data when changing a column in subform of edit form, so parent has data from form as it works in new form
- use :only and :except options from resource line on as_routes and as_association_routes, so activescaffold actions can be selected
- focus first element of subform record added
- changes on destroy:
  - destroy.js.erb uses main_path_to_return to get url to reload if page empty
  - delete_record_row can be called without url
- messages_id and form_selector on create, update and destroy JS views can be overrided when calling render :super
- element_row_id on list_record partial can be overrided when calling render :super with :row_id local

= 3.4.8
- set parent data when adding new record on subform of a create form on a embedded or nested list
- trigger ajax:* events on ajax call to render_field

= 3.4.7
- sorting by primary key added by default only for postgres, on mysql it will avoid using index to sort (you can see using filesort on explain), slowdown sorting
- fix set_parent on rails 3.2 with attr_accessible
- fix saving changes on render_field when blank row is changed and request render_field action

= 3.4.6
- Add paper_trail bridge (requires 3.0.5 version for nested support). It adds:
    - a collection link to deleted action which display deleted_records
    - a member link to PaperTrail::VersionsController which display changes for current record. PaperTrail::VersionsController must be added, not included with ActiveScaffold.
- Focus first element on persistent create forms when form is reloaded
- Fix linking to non-namespaced controller from namespaced controller

= 3.4.5
- Fix default sorting on ruby 1.8
- Fix add existing button, broken on 3.4.4
- add active_scaffold_checkbox_option so rendering li of checkbox_list can be overrided
- Fix set_parent for render field on main form columns

= 3.4.4
- Fix set_parent for render field on blank records added by default on subforms
- Enable sorting on selected draggable list, so it can be used on config_list
- Remove unfinished nested_auto_open feature, it was working only if render_component is used, which is not recommended way
- Allow to set sorting on multiple columns with a hash, ruby 1.9 hashes keep order so an array of hashes is not needed anymore, although it still works.
- Fix overriding default sorting (with config.list.user.sorting.set) without changing config.list.sorting

= 3.4.3
- default search columns doesn't include association columns (broken on 3.4.2), it slowing down search with no point (searching by association's primary key)
- More unobtrusive html views, activescaffold html views doesn't use javascript anymore so JS files can be loaded at page bottom

= 3.4.2
- fix tableless on latest rails4 versions
- respond with 406 for html request on js only actions
- fix JS issue on IE8
- support jquery-ui-rails 5
- update_columns fixes on subforms refreshing
- fix dynamic links menu in group links
- fix id_condition (/:id/index) for models with different primary key
- fix parent_controller param when rendering subforms on render_field
- fix session usage on rails >= 4.1
- fix marked records on rails >= 4.1
- add display_dynamic_action_group helper to help building js and html to display a dynamic action group
- display error when has_one association with :select form_ui fails to set, save continued but change was lost
- fix each_record_in_scope for rails 4 (fixes mark all records)
- trigger as:element_created for created record

= 3.4.1
- fix search value when both field_search and search are enabled and a search with field_search is active
- fix cancan permissions check on subform
- fix has_one/belongs_to nested with :primary_key option
- fix display of virtual number columns
- fix display of serialized columns on list
- improve tests

= 3.4.0.1
- Fix record_select on field_search

= 3.4.0
- Support rails4
- Quote selected columns
- More unobtrusive html views
- Move () in visibility toggle links inside so they can be overrided
- More helpers to support overriding
- Extend datepicker to load settings from data attributes before onReady event is fired
- Add weight to action links
- Add placeholder in search form
- load existing record on render_field when id is present
- Add helper to override subform label
- embedded? checks that it is displayed embedded, add loading_embedded? to check first loading of embedded
- Fix previous page link with search and sort options when they are not stored in session
- Fix updating column in main form when subform has column with same name
- Fix sort_by :method without conditions
- Add conditional_get_support and calculate_etag options to send etag and check it with stale? rails method, avoiding rendering views and loading all page items when page is cached
- Remove row action (method exists but not as action), index with id is enough
- Use to_param in action links
- Allow to pass an array value in conditions_from_params, not only single value for columns
- Display count items when pagination is disabled
- Check security in column groups in forms
- Add refresh_link option to :select form_ui
- Sort association options in select :form_ui using column.sort_by :sql
- Support :radio form_ui in association columns
- Improve XML/JSON/YAML: return primary key, associations and virtual columns (a method must exist in model)
- Add support for :label_method option for association columns so another method can be used instead of to_label
- Support update_columns in plural associations
- Support nil conditions in conditions_from_params: when column param is empty and is not a text column, nil condition will be used
- Support autopagination, first page is loaded in first request, then all pages are loaded and displayed by ajax automatically
- Support toggle collection action links, for links with reload list to filter, so active link is marked
- Support search and field_search at same time
- Support for overriding how download url is get for dragonfly attachment
- Trigger as:element_removed when ActiveScaffold.remove is called
- use preload instead of includes to preload associations without left join when not used for searching or sorting
- Allows for contents such as "<i class='fa fa-filter'></i> Filters <i class='fa fa-caret-down'></i>" to be placed in the locale yml.
- Add form_ui to html classes of li in forms
- Allow to set different :controller for record_select_autocomplete (when no association in column using record_select)
- Add :optional to create.persistent

= 3.3.3
- Allow to override select options in active_scaffold_search_select
- Load effects from jQuery UI when using jquery-rails 3 gem
- Fix searching on nested scaffolds (broken on 3.3.2)
- Fix searching when includes is set to nil
- Send parent_controller for render_field requests on subforms for persisted records, as new records were already sending it
- Avoid loading some JS when jquery-ui is not available
- Load CSS from jquery ui rails gem

= 3.3.2
- Fix subforms inside subforms
- Fix draggable for jquery-rails 3 gem
- Support to change attributes in list column headings with column_heading_attributes helper
- Keep url for embedded in data-refresh attr of active-scaffold-component div
- Remove duplicated results when searching with outer_joins in plural associations

= 3.3.1
- Set adapter colspan (nested lists and forms) using javascript, fixed issue when active_scaffold_config_list is used
- Fix bug saving default values when get method is overrided on model to return default value
- Fix close action_link without adapter
- Fix update calculations after destroy a row
- Fix count and calculate searching with count_includes
- Fix action_after_create
- Cache associations options (for :select form_ui on associations), it can be disabled with config.cache_association_options = false
- Clean some code so we can stop changing @record in partials and using @record in helpers
- Support jquery-rails 3 gem and jquery-ui-rails gem
- Clean some invalid HTML
- Add store_user_settings option to enable storing sort, page and search params into session (enabled by default for backwards compatibility)
- Fix each_record_in_scope when conditions_for_collection needs some includes
- Add method to override label in search fields (field_search)
- Add method to override attributes for column headings on list
- Support security_method and ignore_method in column's link
- render :super should work for every render call (with partial and locals or with only one hash)

= 3.3.0
- Unify field overrides and list_ui method signatures
- Improve performance removing some partials and adding some caching for helper overrides and UIs, and caching url generation for lists (caching url is optional)
- Drop support for rails 3.1
- Add HTML5 form fields
- Add :chosen form_ui, and :chosen and :multi_chosen search_ui
- Fix nested with has_one associations, and belongs_to associations with :list action
- Support optgroup in :select and :chosen form_ui
- Support render_form_field with multiple rows (rows with associated-record class)
- Support for updating columns, row or table after updating a column with inplace_edit
- Keep order for records in plural subforms, so new records are saved in same order as form order
- Support add_subgroup in horizontal subforms
- Improve support in helpers for using :select form_ui with polymorphic associations (needs to use a select to choose the class)
- Allow to create in nested has_many :through associations, when source association is a belongs_to
- Fix calculations using field_search with has_many includes
- Add support to ActiveScaffold.create_record_row to insert after or before of an element
- Add support for dynamic action group
- Improve parsing of datetimes
- Add support for lists filtered by id (one-item lists)
- Fix update_columns with sending whole big forms
- Improve update_columns on subforms
- Support to override ActiveScaffold.remove so effects can be added on page elements deletion
- Add support for conversion methods in controller, so form_uis can define how to convert params to values
- Avoid sorting by contraint columns
- Cosmetic fixes and improvements
- Fix multipart persistent update form
- Support jquery 1.9 (jquery-rails 2.2.0 gem)
- Reduce usage of session
- Allow to include header on list refreshing
- Add search_joins to columns, so it's possible to do left joins without loading associations only for searching
- Fix set focus for inplace edit clone and ajax
- Allow to override label for list column headings with a new helper method column_heading_label
- Keep focus on last field when render_field is called
- Add empty create and update methods to tableless
- Allow multiple subform levels

= 3.2.20
- Some fixes for ruby 1.9
- Some fixes for rails 3.1
- Fix detection of empty for has_and_belongs_to_many on subforms

= 3.2.19
- Avoid crashing when between is chosen and from or to is not filled

= 3.2.18
- Fix add existing record with record_select
- Disable link for polymorphic associations in 3.2.x, it doesn't work

= 3.2.17
- fix constraints for columns with multiple columns in search_sql
- remove unauthorized collection links
- copy parameters and html_options on cloning action link
- fix missing argument in datepicker conditions
- check authorization in model for plural associations nested links
- Allow to set action_group in nested.add_link
- fix current page when is inside outer window
- Support record select with polymorphic associations
- Fix column count in inline adapter for forms and views
- Add support for class prefix on human condition helpers

= 3.2.16
- Fix use of column.css_class in form when is a proc, it wasn't skipped when form was a columns group
- Fix constraints and colspan in self-referential associations
- Fix rendering parent row after creating or updating in a nested form (singular associations)
- Translate include_blank and prompt in form_ui :select
- Fix mark for nested scaffolds
- Fix STI creation
- Fix null search for numeric columns
- Fix recordselect inplace_edit with plural associations in ruby 1.9

= 3.2.15
- Prepare to unify field overrides and list_ui method signatures
- Add :optional to update.persistent
- Add missing triggering of as:element_updated in new subform rows
- Fix conditions for :select in field_search
- Fix datetime field search
- Fix authorization checking in member action links

= 3.2.14
- Fix default sorting, it was broken in 3.2.13

= 3.2.13
- Fix destroy action, was broken in 3.2.12
- Remove default :method sorting for associations, it wasn't useful and can be slow
- Rescue from ActiveScaffold::ActionNotAllowed and ActiveScaffold::RecordNotAllowed with 401 response, it can be overrided with deny_access method in ApplicationController.
- Allow to set arrays in search_sql so one column can search in multiple db columns, resulting sql chunks will be OR'ed
- Hide text input on searching for null or not null
- Add some classes to forms to improve CSS customization
- Fix nested links for STI controllers with common configuration in a base controller
- Fix adding routes twice in active_scaffold generator
- Restore old behavior for action_link's security_method, ignore_method already hides the link
- Add data-cancel-refresh to action links, so nested scaffold's behaviour can be applied to other action links and when adapter is closed row will be refreshed.
- fix support for tableless models in rails >= 3.2.5

= 3.2.12
- improve support for tableless models, add support for count
- fix div id for nested scaffolds
- add config.timestamped_messages and config.highlight_messages
- Improve performance using class to check authorization for plural associations which are not loaded, and avoiding to load associations if it's not needed
- Fix using a scope in main form, it wasn't working for associations (for create multiple from active_scaffold_batch)
- Fix searches with no results, it was loading first page without conditions
- Allow to change highlight options with ActiveScaffold.js_config
- allow to override column count calculation for colspan
- Remove conditions_from_params from nested links
- Fix nested forms for singular associations
- enable to get constraints in helpers, so can be used in options_for_association_conditions, for example
- Allow to edit has_one :through association in nested forms
- Fix cancan bridge broken in a previous release
- Fix mark action

= 3.2.11
- improve support for tableless models and active_scaffold_batch
- fix count includes which were broken in 3.2.9
- remove duplicated conditions in nested scaffolds, added by conditions_from_params

= 3.2.10
- fix nested scaffolds with update action disabled
- initial work for tableless support (index with limited options)
- fix scrolling on closing nested scaffolds
- fix calculations which were broken in 3.2.9

= 3.2.9
- remove duplicated conditions with constraints
- fix constraints for polymorphic associations

= 3.2.8
- add deprecation for update_column, update_columns should be used instead
- fix constraints with hide_nested_column disabled in list and embedded scaffolds which are nested too
- fix setting a hash as includes, cannot be concat in finder
- add option to scroll on close only if element is not visible in viewport (default now)
- fix create and edit singular associations without render_component
- messages go across all table
- display readonly associations in forms, it was ready to display them but it was skipping them
- Some fixes for inplace editors (cloning form overrides, ajax and radiobuttons). Add handlers for empty columns
- add wrap_tag to list so cells content can be wrapped in a tag for better styling
- fix date picker parsing for datetime fields when jquery is used
- add as:element_updated js event when replace or replace_html is called
- rescue database exceptions so you get error messages for it insted of error 500, for example in case you forgot to check uniqueness for a unique index
- add class attribute for displayed unauthorized columns in forms, so they get same styling

= 3.2.7
- restore missing update.persistent feature
- fix create.persistent
- add new record in first scaffold, not in all nested scaffolds
- fix deleting all in habtm with select_ui

= 3.2.6
- fix ordering with DISTINCT call
- allow to override some human condition strings in i18n, and translate select values for non-association columns

= 3.2.5
- add outer window for pagination links
- workaround rails 3.2.3 bug in TimeWithZone#to_time
- fix date picker format for datetime fields
- fix bitfields bridge when some actions are not used
- use core config label when is set and STI is not used

= 3.2.4
- don't break on custom SQL sorting (e.g. sorting with functions)
- fix cancel inplace edit with jquery
- fix nested scaffolds inside nested and embedded scaffolds
- fix collapsed subgroups
- fix inplace edit for checkboxes columns with true as default value
- fix calendar date select bridge

= 3.0.6 .. 3.2.3
- many changes

= 3.0.5

- switch from explicit requires to autoloading
- get nested action links up and running

= 3.0.4

- Fix a typo that made 3.0.3 unusable.

= 3.0.3

- Fixing 'require' ordering
- Code for nested and subgrouped action links
- bugfixes for better html generation

= 3.0.2

- Two bug fixes and a deprecation silencing.

= 3.0.1

- Fixing the requiring of files.

= 3.0.0

- Packaging up vhochstein's fork for Rails 3.0 as a gem.

= 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