= Changelog

This page describes the changes that have been made to *scoped_search* over its history.

Please add an entry to the "Unreleased changes" section in your pull requests.

=== Unreleased changes

*Nothing yet*

=== Version 4.1.4

- Bugfix related to LIKE queries on virtual fields (#178)
- Add an "onClear" option to scopedSearch (#176)

=== Version 4.1.3

- Bugfix related to default fields for sets when using ext_method (#174)
- Improved error reporting for exceptions raised in ext_method (#173)
- Bugfix related to validtions of values used with :in operator (#171)

=== Version 4.1.2

- Bugfix related to using polymorphic relations introduced in 4.1.1 (#170)

=== Version 4.1.1

- Bugfix related to quoting when building autocomplete queries for date fields (#167)
- Bugfix related to using polymorphic relations (#168)

=== Version 4.1.0

- Add support for ActiveRecord and ActionView 5.1
- Add support for Ruby 2.4
- Support calling `search_for` on an STI subclass, returning only records of the
  subclass type. (#112)
- Inherited search definitions: when defining search fields on both STI parents
  and subclasses, the subclass can now be searched on all fields, including
  those inherited from the parent. Only works for STI classes. (#135)
- Add 'tomorrow' and 'from now' keywords for searching future dates (#162)

=== Version 4.0.0

- Drop support for Ruby 1.9
- Drop support for ActiveRecord 3, 4.0, and 4.1
- `scoped_search` registration deprecates `:in` in favor of `:relation`, and
  `:alias` in favor of `aliases: [..]` to avoid clash with Ruby reserved words.
- `sort` helper: any HTML options must now be given as a keyword argument,
  instead of the third argument, i.e. `html_options: {..}`
- `sort` helper now takes hash of `url_options`, defaulting to an unfiltered
  `params`. Call `params.permit(..)` and pass in the result to safely generate
  URLs and prevent non-sanitized errors under Rails 5.
- Auto completion: remove autocomplete_* JavaScript helpers in favor of jQuery
  method provided via asset pipeline. Call `$(..).scopedSearch` on autocomplete
  text boxes to activate.
- Auto completion: escape quotes in listed values (#138)
- Add :validator option to definitions to validate user's search inputs
- Fix incorrect association conditions being used on through relations
- Use `#distinct` on Rails 4+
- Test Rails 5.0.x releases, test latest AR adapters

=== Version 3.3.0

- Support for ActiveRecord 5.0

=== Version 3.2.0

- In MySQL, case sensitivity is now determined by the collation of the column, and
  is no longer enforced in the SQL query. This allows MySQL to use indices for
  queries.
- Fix auto-completer for numeric fields.

=== Version 3.1.0

- Add support for ActiveRecord 4.2.
- Bump AtiveRecord requirement to 3.2.

===  Version 3.0.1

- Security fix in parsing dates.

=== Version 3.0.0

- Add support for ActiveRecord 4.1
- Drop support for Ruby 1.8
- Drop support for ActiveRecord 2.
- No longer require jQuery UI automatically; you have to do this yourself now.
- Auto completion: deprecate javascript helpers in favor of asset pipeline.
- Remove some deprecated 1.x APIs.
- Upgraded to RSpec 3.
- Extract Oracle query builder enhancements to plugin gem: https://github.com/wvanbergen/scoped_search-oracle_enhanced
- Extract H2 query builder enhancements to plugin gem: https://github.com/wvanbergen/scoped_search-h2

=== Version 2.7.1

- Fix order SQL generation issue on PostgreSQL for the autocompleter.

=== Version 2.7.0

- Allow setting a default sort order
- Fix a sorting bug for field names starting with `desc`.
- SQL generation fixes.
- Improve test coverage

=== Version 2.6.5

- Allow disabling certain fields for autocompletion.

=== Version 2.6.4

- jQuery 1.9 support for automplete helpers.

=== Version 2.6.3

- Bugfixes in querying plymorphic has many through relations.

=== Version 2.6.2

- Add support for querying plymorphic has many through relations.

=== Version 2.6.1

- Fix a SQL generation bug.

=== Version 2.6.0

- Improve logic for querying one to many relations.
- Add a Railtie for better Rails integration.
- Project infrastructure changes: remove infinity test, update LICENSE

=== Version 2.5.1

- Fixes to asset pipeline for auto completer UI helpers.
- Use bundler for gem release management

=== Version 2.5.0

- Add support for ActiveRecord 4.0
- Add support for Ruby 2.0
- Fix encoding bug

=== Version 2.4.1

- Add asset pipeline support for autocompleter UI helpers
- Fix query parser bug.

=== Version 2.4.0

- Raise an appropriate exception when referring to a database field that does not exists.
- Drop support for GROUP BY; just use DISTINCT for these use cases
- Add support for PostgreSQL full text search.
- Many bugfixes.
- Improved specs.
- Add Travis CI testing for all supported databases.

=== Version 2.3.7

- Add support for IN and NOT IN queries.
- Bug fix in SQL generation.

=== Version 2.3.6

- Minor bugfixes in auto completer.

=== Version 2.3.5

- Small bugfixes in auto completer.

=== Version 2.3.4

- Small bugfixes.

=== Version 2.3.3

- Add filtering and limiting support to autocompleter.
- Documentation updates

=== Version 2.3.2

<i>Retracted</i>

=== Version 2.3.1

- Raise exception when trying to run an invalid query.
- Several bug fixes in SQL generation
- Several other minor bugfixes.

=== Version 2.3.0

- Added support for querying key-value relations.
- Improved querying of relations.
- Add support for syntax and value autocompletion of queries.
- Add Rails UI helpers for autocompletion
- Localized handling of dates
- Fixed some Ruby 1.9 compatibility issues
- Test coverage enhancements
- Improved project infrastructure with infinity test and bundler.

=== Version 2.2.1

- Fix a parsing bug that would cause exceptions to be raised on certain queries.
- Upgrade to RSpec 2
- Fixed some Ruby 1.9 compatibility issues

=== Version 2.2.0

- Improved gem release management rake tasks.

=== Version 2.1.1

- Better handling of <tt>NULL</tt> values when evaluating queries.
- Improved support for ActiveRecord 3.0.
- Added an incomplete Oracle adapter.

=== Version 2.1.0

- Support for multiple search profiles.
- Documentation improvements.

=== Version 2.0.1

- Improved project infrastructure and documentation

=== Version 2.0

- Complete rewrite, to support a more complex query language. It now supports operators, logical constructs including parentheses, NULL checks, searching in a single field only.
- More fine-grained control over in what fields should be searched by using a new definition syntax. (The old syntax is still available for backwards compatibility.
- Migrated testsuite from Test::Unit to RSpec.

=== Version 1.2

- Ruby 1.9 compatibility

=== Version 1.1

- Support for integer fields
- RCov integrated in testuite

=== Version 1.0

- RDoc documentation
- Improved testsuite

=== Version 0.7

- Use the <tt>ILIKE</tt> operator in PostgreSQL for case insensitive search.
- Tests can be run on different DBMSs.

=== Version 0.6

- Search in associated models as well using <tt>ActiveRecord</tt> associations.

=== Version 0.3

- Detection of column types so they can be handled properly
- Date based queries supported on date and time fields

=== Version 0.2

- <tt>OR</tt> keyword supported in query language

=== Version 0.1.0

- Initial version