All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix regression introduced in v0.10.1 which made Kaffy ignore all admin modules.
- Fix a crash when Kaffy mistakenly treats erlang modules as Elixir modules (PR #300)
- belongs_to fields didn't respect the
:readonly
option (PR #297).
- Fix regression when trying to save a resource with an array field.
- Support searching fields with
id
,integer
anddecimal
types.
- Fix a crash when deleting resources from the resource page through the "Delete" button.
- Crash when updating records.
- Removes elixir and phoenix deprecation warnings PR#288
- Minimum phoenix version is now 1.6. This means that the minimum Elixir version is now 1.12 (see support policy).
- Fix changeset errors PR#262
- Preload resources before trying to convert resource to existing atom. PR#266
- Include
many_to_many
fields infields_to_be_removed/1
. - Fix array fields not being saved properly.
- Fix
:readonly
and:editable
options for datetime fields. - Default to
nil
forbelongs_to
fields. - Fix issue with datetime fields sometimes being updated unexpectedly.
- Minimum Elixir version is now 1.11.4.
- Add
phoenix_view
package to deps. - Let specify the full 'path' for FontAwesome fonts PR#186
- Lazy load default kaffy field value PR#255
- Update phoenix html to address deprecated form_for PR#260
- Use left_join when building search query PR#273
- Remove the "- Kaffy" suffix from page titles.
- Support hiding menu entries PR#248
- Add support for composite primary keys PR#270
- Index page description PR#274
- Footer can be specified in config PR#275
- Provide more flexibility for customizing the
admin_logo
andadmin_logo_mini
options. - Add the ability to "bulk delete" resources from the index page.
- Hide save and delete buttons on the show page based on available actions.
- Add
Kaffy.Utils.auto_detect_resources/0
which returns the list of auto-detected resources (Kaffy's attempt at discovering the list of schema/admin modules).
- Add missing "custom-select" classes to some
select
tags. - Ensure that extension modules are loaded.
- Save enum fields with their cast values.
- The
:readonly
option was ignored when defining:choices
for a specific field inform_fields
(#225) - Fix generating forms for embeds and enums (#234)
- Added the option to disable creating new records (#188)
- A new
:bottom
option to display menu items at the bottom of the side menu (#237) - A smarter inflector covering more plural cases (#233)
- Better documentation generation for ExDocs (#214)
- Allow list actions to have select inputs (#238)
- Display records from schemas which contain fields with names "context" and "resource".
- 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
ormany_to_many
associations crashed when trying to save if the schema doesn't have a defaultchangeset/2
function. - Support phoenix 1.6
- If you are defining your resources manually, you need to replace all
:schemas
keys with:resources
.
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.
- 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
, anddelete
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 toform_fields
to display a helpful text next to the field.
- Areski Belaid (@areski)
- Axel Clark (@axelclark)
- Adi Purnama (@adipurnama)
- Nicolas Resnikow (@nresni)
- Abdullah Esmail (@aesmail)
- 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.
- UI improvements on the index page (thanks @areski).
- Replace MDI icons with FontAwesome.
- removed
:permission
field option in favor of:create
and:update
options for more control and customization.
- 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.
- 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).
- kaffy was ignoring the default/custom changeset functions when creating/updating records.
- do not show the "Tasks" menu item if there are no tasks (thanks @areski).
- esthetic changes on the index page (thanks @areski).
- introducing simple scheduled tasks.
- search across associations.
- 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).
- multi-word CamelCase schemas weren't being saved properly.
- by default, do not include autogenerated fields resource form page.
- order autodetected contexts/schemas alphabetically.
- 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 offn/1
withEcto.Repo.transaction/2
to support ecto 2.x.
- 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.
- support custom actions for a group of selected resources in index page.
- 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.
- added a demo link to the hex package page.
- add a rich text editor option for form fields (
type: :richtext
).
- dashboard widgets were displayed improperly on small screens.
- introducing custom widgets in the dashboard.
- add custom field filters.
- sometimes if
index/1
is not defined in the admin module, the index page is empty.
- pass
conn
struct to all callback functions.
- introducing custom actions for single resources.
- fix typo in the resource form (thanks @axelclark).
- 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.
- 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.
- Added ability to delete resources.
- Added resource callbacks when creating, updating, and deleting resources.
- Don't try to decode map fields when they are empty.
- Added support for embedded schemas.
- Added support for
:map
fields for json values.
- Use the json library configured for phoenix instead of hardcoding
Jason
.
- Don't crash when the schema has a
has_many
orhas_one
association. - Don't crash when the schema has a map field or an embedded schema.
- The
:otp_app
config is now required.
- Kaffy will now auto-detect your schemas and admin modules if they're not set explicitly. See the README file for more.
- 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
, androuter
.
- Much improved UI.
- Some code cleanups.
- Removed the dependency on
:jason
.
- Changed
plug :fetch_live_flash
toplug :fetch_flash
for the default pipeline.