= 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 " Filters " 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 ' ' 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