Release v0.3.16
Release 0.3.16
Changelog
Added
- Config:
dashboard.permission_key_choices— optional list of permission keys (strings) for the menu item form. When set, the permission key field becomes a select with autocomplete instead of a plain text input; keys can be translated viaform.menu_item_type.permission_key.choice.{key}(e.g.path__forpath:/). - Dashboard item form: Route name selector and (when configured) permission key selector use Symfony UX Autocomplete form theme for searchable dropdowns. Item form templates include
@SymfonyUXAutocomplete/autocomplete_form_theme.html.twig. - Dashboard: "Add child" passes parent ID in the form action URL so the new item is correctly associated; "Add child" button is disabled for items of type section or divider (only link-type items can have children). Translation
dashboard.add_child_disabled. - Permission checkers: Bundle services
AllowAllMenuPermissionCheckerandPermissionKeyAwareMenuPermissionCheckerare explicitly tagged withnowo_dashboard_menu.permission_checkerso they always appear in the dashboard menu form dropdown. Demos tagDemoMenuPermissionCheckerinservices.yaml. - MenuItem: Property
itemTypeis now nullable (database column nullable). Getter returns defaultlinkwhen null; setter accepts?string. - Demo Symfony 7: TypeScript migration aligned with Symfony 8 demo:
ts-assets-template/(app.ts, bootstrap.ts, controllers in .ts), singlevite.config.ts(entryapp.ts),make ts-assetscopies toassets/and removes old .js. README and Makefile documentsudo chown -R $(whoami) assets && make ts-assetswhenassets/is root-owned. - Docs: USAGE clarifies that template overrides are never blocked and that using the autocomplete form theme does not lock overrides; CONFIGURATION documents
permission_key_choices.
Changed
- MenuItemBasicType: Translated label fields (
label_{locale}) are added inbuildForm()whenavailableLocalesis set, so they render correctly with multiple locales (fix for demos).MenuConfigTypepermission checker field useschoice_translation_domainfor bundle translation keys. - Demo Symfony 7: Removed
vite.config.js; build uses onlyvite.config.ts. Controllers inassets/controllers/are TypeScript (hello_controller.ts, csrf_protection_controller.ts).
Full Changelog: v0.3.15...v0.3.16