πŸ’‘Changelog

A history of changes to Petal Pro

1.5.2 - 2023-4-20

New

  • Uses the petal_framework private package (deletes all the _petal_framework folders). This will allow for an easier upgrade process in the future, especially for components like the data table.

  • Data Table supports base_url_params. Keep custom query params when changing sort order.

  • Data Table is now self contained in the live view - code isn't scattered across the model and context.

  • Added mix recode for code linting and refactoring

  • Use <.flash_group> to show flash messages (Petal Framework 0.3.0)

Changes

  • Enabled Wallaby tests by default (mix test)

  • Updated Tailwind to 3.3

  • Updated Erlang to 25.3

  • Added rename_project lib to replace custom mix task

Breaking

  • Data table API has changed slightly. See our docs https://petal.build/components/data-table on how to use

Fixed

  • Data table going blank when changing page size

  • Navigation problems for the Data Table when setting the default_limit via a schema file

  • Fix Finch issue with email sending

1.5.1 - 2023-3-10

New

  • Develop Petal Pro in GitHub CodeSpaces!

  • Data Table column - can now filter by a select list

  • Data Table column - can now filter by a float

Changed

  • topbar.js version updated to 2.0

  • mix setup no longer fetches tailwind/esbuild if they already exist

  • Upgrade Petal Components to 1.0

  • Data Table is now a function component

Fixed

  • Github auth working again

1.5.0 - 2023-2-10

Changed

  • Upgraded Phoenix to 1.7

  • Routes use the new verified routes

  • Authentication pages converted to live views

  • Upgraded fully from Hericons v1 to v2

  • petal.gen.live now uses the Data Table component

  • Tesla now uses the more secure Finch over Hackney (https://github.com/petalframework/petal_pro/issues/66)

  • Confirmation page will redirect to org invitations if invitation exists (https://github.com/petalframework/petal_pro/issues/68)

  • Removed Petal Enhance (it was more complex than we thought)

Fixes

  • Redirect to /app/orgs if an invalid org slug is used (https://github.com/petalframework/petal_pro/issues/70)

  • When editing user via /admin/users - patch_back_to_index no longer crashes (https://github.com/petalframework/petal_pro/issues/61)

  • Always show Data Table filters (https://github.com/petalframework/petal_pro/issues/60)

v1.4.1

Added

  • Add Petal Enhance (recipes)

Fixes

  • Fix admin users modal. Clicking off the modal now works

  • Change avatar_url to text in DB for long URLs

  • Whitelist Google profile picture images in CSP

  • Fix Mailbluster unsubscribe route + documentation

v1.4.0

Added

  • Updated to LiveView 0.18 + Petal Components 0.18

  • Data table component

  • Local time component

  • Sobelow for security checking

  • Coveralls for code test coverage

  • test.yml Github action for code quality

  • Easily modifiable content security policy to help prevent XSS

  • Added a docker-compose.yaml that adds Postgres so you don't need to install it

Changed

  • Router significantly more streamlined

  • Some routes have been moved into their own files: AdminRoutes, AuthRoutes, DevRoutes, MailblusterRoutes

  • Users are forced to be confirmed to access /app routes (easily configurable)

  • Use Ecto enums for org roles

Fixes

  • Fix reset password failing when signed in

  • Clean up dashboard_live.ex - some old code unused was left in there

  • Improved SEO meta tags in _head.html.eex

  • Show a warning in the logs when no title/meta_desciprion is set on a public page

  • Added open-graph.png (to be replaced by dev)

  • Fix require_confirmed_user plug

  • Fix landing page GSAP not working

v1.3.0

Added

  • Two-factor authentication using time-based one time passwords (paired with something like Google Authenticator)

Changed

  • Decoupled DashboardLive from Orgs so you can get started quicker if you don't want orgs

  • Can pass a custom header class to the public layout

  • Sidebar and stacked layouts now support grouped menu items (see dev_layout_component.ex for an example)

  • Update Tailwind to 3.1

  • Split CSS into different files thanks to Tailwind 3.1

Fixed

  • Onboarding now remembers user_return_to

  • Fixed nav dropdown bug after modal toggle

  • Fixed gettext in live views

v1.2.0

Added

  • Login with Google & Github - easy to add more auth providers

  • Passwordless auth - register/sign in via a code sent to your email

  • Orgs - create an org, invite & manage members, and more

  • User lifecycle actions - run code after actions like register, sign_in, sign_out, password_reset, etc

  • New generator: mix petal.gen.html (same args as phx.gen.html)

  • New component: <.markdown content=""> & <.pretty_markdown content=""> (uses Tailwind Typography plugin)

  • Added License and Privacy pages (with some content from a template to get you started)

  • New layout: <.layout type="public">, for public marketing related pages like landing, about us, privacy, etc

Changed

  • Simpler config access (PetalPro.config(:app_name) instead of Application.get_env(:petal_pro, :app_name))

  • Refactor <.layout> to take less props

  • Refactor dark/light mode system. Much simpler now and no longer needs cookies

  • Put Petal Pro Components in their own folder for easier future upgrades (can duplicate if you want to modify them)

  • Sidebar and stacked layout have a new slot for the top right corner (if you want to add something like a notifications bell)

Fixed

  • Log metadata wasn't being cast

  • More user actions are logged

  • Fixed petal.live generator tests

  • Added tests for user settings live views

We've included Google & Github to get you started and make it super easy for you to enable login with any other OAuth provider you might want add to your app.

We've also included our very first Petal Pro component <.social_button> that produces beautiful social login buttons in two variants ("solid" and "outline").

Social button currently supports:

  • Google

  • Github

  • Facebook

  • Twitter

  • Apple

  • Linkedin

Users of your app can now register/sign in via a pin code sent to their email. It's simple to enable or disable at any time.

Just head over to your config.exs file and change paswordless_enabled to true

Organizations/Multi-tenancy

You can now optionally create an organization, invite & manage members, and more.

Last updated