### v0.9.1 (in development)

#### Bug Fixes

- Clicking on the "Select all" checkbox and performing an action wasn't working properly (#129).
- A resource with a `{:array, _}` field type used to crash when rendering the form page (#130).
- Tidbit icons weren't shown properly.
- Schemas with `has_many` or `many_to_many` assocations crashed when trying to save if the schema doesn't have a default `changeset/2` function.

### v0.9.0 (2020-07-02)

#### Breaking change

- If you are defining your resources manually, you need to replace all `:schemas` keys with `:resources`.

#### Bug Fixes

- `map` and JSON fields weren't being properly recognized and saved/updated (regression from v0.8.x).
- Searching a schema which has a `:string` virtual field produced a crash.
- "Next" page link was active even when there was no records to display on the next page.
- belongs_to fields were almost invisible on small screens.
- Schemas without a public `changeset/2` function were crashing due to parameters not being cast properly.
- Searching a resource with a search term that contained a special SQL character (% or _) returned invalid results.
- Multi-word contexts weren't being formatted properly.

#### Enhancements

- Introducing extension modules to add custom html, css, and javascript.
- Custom form fields for specialized functionality.
- List actions now can have an intermediary step for more input from the user.
- Decimal values are displayed properly on the index page.
- Improved layout for mobile screens.
- First column on index page is the first field in your schema.
- Ability to override Kaffy's `insert`, `update`, and `delete` functions to customize how the function works.
- Moved scheduled tasks to their own modules and they have their own option in config.
- Improved alert message styles.
- Much improved pagination UI.
- Ability to customize the query Kaffy uses for the index and show pages.
- A more flexible and customizable way to define resource and admin modules.
- Added a `help_text` option to `form_fields` to display a helpful text next to the field.

#### Contributors for v0.9.0

- Areski Belaid (@areski)
- Axel Clark (@axelclark)
- Adi Purnama (@adipurnama)
- Nicolas Resnikow (@nresni)
- Abdullah Esmail (@aesmail)

### v0.8.1 (2020-06-05)

#### Bug Fixes

- The "Select all" checkbox didn't work properly (thanks @areski).
- Kaffy crashed when opening the page to select a record for the belogns_to association.

#### Enhancements

- UI improvements on the index page (thanks @areski).
- Replace MDI icons with FontAwesome.

### v0.8.0 (2020-06-03)

#### Breaking Changes

- removed `:permission` field option in favor of `:create` and `:update` options for more control and customization.

#### New Features

- ability to add custom links to the side menu.
- ability to add add custom pages.
- ability to order records per column in the index page.

#### Enhancements

- a placeholder value for :map textarea fields to indicate that JSON content is expected.
- enhanced "humanization" of field names in index page.
- improved checkbox form control UI (thanks @areski).
- new and improved design (thanks @areski).
- include checkboxes in index page to clearly indicate records are selectable.
- pagination, filtration, and searching are now bookmarkable with querystring parameters.
- `count` query result is now cached if the table has more than 100,000 records (thanks @areski).
- add option to hide the dashboard menu item.
- add option to change the root url to be something other than the dashboard.
- removed render warnings when running under phoenix 1.5.
- add a much improved date/time picker (thanks @areski).

### v0.7.1 (2020-05-23)

#### Bug Fixes

- kaffy was ignoring the default/custom changeset functions when creating/updating records.

#### Enhancements

- do not show the "Tasks" menu item if there are no tasks (thanks @areski).
- esthetic changes on the index page (thanks @areski).

### v0.7.0 (2020-05-22)

#### New Features

- introducing simple scheduled tasks.

#### Enhancements

- search across assocations.
- improve how autodetected schema names are formatted.
- clicking on the upper left title goes to the website's root "/" (used to go to the dashboard page, which already has a link in the menu).
- fix a few typos in README (thanks @areski).

### v0.6.2 (2020-05-20)

#### Bug Fixes

- multi-word CamelCase schemas weren't being saved properly.

#### Enhancements

- by default, do not include autogenerated fields resource form page.
- order autodetected contexts/schemas alphabetically.

### v0.6.1 (2020-05-19)

#### Bug Fixes

- sometimes the primary key field (id) is treated as an association.
- the popup for selecting a "belongs_to" record was not displaying any records.
- use `fn/0` instead of `fn/1` with `Ecto.Repo.transaction/2` to support ecto 2.x.

### v0.6.0 (2020-05-18)

#### Breaking Changes

- always include the `:kaffy_browser` pipeline to display templates correctly. Please check the minimum configurations - section in the README for more information on how to upgrade.

#### New Features

- support custom actions for a group of selected resources in index page.

#### Bug Fixes

- resource index page table was displayed incorrectly when using a custom pipeline.
- all side menu resources are shown by default including sections that are not currently active.
- side menu does not scroll when there are too many contexts/schemas.
- side menu items all popup at the same time when viewed on small screens.

#### Misc

- added a demo link to the hex package page.

### v0.5.1 (2020-05-17)

#### Enhancements

- add a rich text editor option for form fields (`type: :richtext`).

#### Bug Fixes

- dashboard widgets were displayed improperly on small screens.

### v0.5.0 (2020-05-16)

###### compatible with v0.4.x

#### New Features

- introducing custom widgets in the dashboard.

### v0.4.1 (2020-05-14)

#### New Features

- add custom field filters.

#### Bug Fixes

- sometimes if `index/1` is not defined in the admin module, the index page is empty.

### v0.4.0 (2020-05-13)

#### Breaking Changes

- pass `conn` struct to all callback functions.

#### New Features

- introducing custom actions for single resources.

#### Enhancements

- fix typo in the resource form (thanks @axelclark).

### v0.3.2 (2020-05-12)

#### Bug Fixes

- Kaffy didn't compile with elixir < 1.10 due to the use of `Kernel.is_struct`. It is currently tested with elixir 1.7+
- Sometimes new records couldn't be created if they have `:map` fields.

### v0.3.1 (2020-05-12)

#### Enhancements

- A better way to support foreign key fields with a huge amount of records to select from.
- Retrieve the actual name of the association field from the association struct.

### v0.3.0 (2020-05-11)

#### New Features

- Added ability to delete resources.
- Added resource callbacks when creating, updating, and deleting resources.

#### Bug Fixes

- Don't try to decode map fields when they are empty.

### v0.2.1 (2020-05-10)

### New Features

- Added support for embedded schemas.
- Added support for `:map` fields for json values.

#### Enhancements

- Use the json library configured for phoenix instead of hardcoding `Jason`.

#### Bug Fixes

- Don't crash when the schema has a `has_many` or `has_one` association.
- Don't crash when the schema has a map field or an embedded schema.

### v0.2.0 (2020-05-09)

#### Breaking Changes

- The `:otp_app` config is now required.

#### New Features

- Kaffy will now auto-detect your schemas and admin modules if they're not set explicitly. See the README file for more.

#### Enhancements

- Kaffy now supports phoenix 1.4 and higher.
- Removed some deprecation warnings when compiling kaffy
- Massively simplified configurations. The only required configs now are `otp_app`, `ecto_repo`, and `router`.

### v0.1.2 (2020-05-08)

#### Enhancements

- Much improved UI.
- Some code cleanups.

### v0.1.1 (2020-05-07)

#### Enhancements

- Removed the dependency on `:jason`.

#### Bug Fixes

- Changed `plug :fetch_live_flash` to `plug :fetch_flash` for the default pipeline.
