Releases: nowo-tech/SelectAllChoiceBundle
Releases · nowo-tech/SelectAllChoiceBundle
Release v1.4.5
Release 1.4.5
Changelog
Changed
- Repository tooling:
.cursorignore, Cursor rules for bundle development, GitHub workflows (pr-lint, stale issues), Dependabot tweaks, and Copilot instructions for contributors. - Dependencies: Refreshed
composer.lock(bundle root and Symfony 7/8 demos) and npm/pnpm lockfiles; demodocker-composeadds DNS-related options to improve reliability on Docker/WSL. - Public script: Rebuilt
select-all-choice.jsafter the dependency and build pipeline updates.
Release v1.4.4
Release 1.4.4
Changelog
Fixed
- Twig extension compatibility:
NowoSelectAllChoiceTwigExtensionis now a proper Twig extension (AbstractExtension+getFunctions()), preventingTwig\Environment::addExtension()type errors in consumer apps. - Rector stability for this bundle: disabled automatic conversion from
getFunctions()to#[AsTwigFunction]in bundle Rector config so release QA does not re-introduce the compatibility issue.
Added
- Twig extension unit test coverage: verifies that
getFunctions()exposesnowo_select_all_choice_asset_pathand keepsassetPath()behavior validated.
Release v1.4.3
Release 1.4.3
Changelog
Changed
- Select-all initialization logs: the frontend now reports how many
data-select-allcontainers are fully configured (wrapper attributes + choices target) during startup, with improved visibility in debug workflows. - Stimulus integration in demos: Symfony demo
app.tsand controller wiring were adjusted so script-load and container-count logs are emitted consistently in demo environments. - Tests and compatibility metadata: updated TypeScript tests around logger/select-all behavior and refreshed demo lock/reference files for broader Symfony compatibility.
Release v1.4.2
Release 1.4.2
Changelog
Changed
- Frontend logger:
SelectAllChoiceBundlelogger now supports a real debug toggle (setDebug(true)enables debug/info/warn/error) matching the controller/lib expectations. - Assets & QA:
make assets-testnow reports global TS coverage percentage and fails on thresholds; added translation YAML validation target and coverage extraction script. - Docs: release tooling and usage notes were clarified (see
USAGE.md,docs/RELEASE.md, anddocs/UPGRADING.md).
Release v1.4.1
Release 1.4.1
Changelog
Added
- USAGE.md: Section “Overriding templates and translations” with subsections for overriding translations (domain, locale, example) and overriding templates (bundle template files and form theme blocks).
Fixed
- Twig extension:
NowoSelectAllChoiceTwigExtensionno longer uses the#[AsTwigFunction]attribute; the Twig function is registered viagetFunctions()to avoid the conflict “cannot extend AbstractExtension and use AsTwigFunction, choose one or the other” on some Twig/Symfony versions. - Dist package: The
demo/folder is no longer included when the bundle is installed via Composer. Added.gitattributeswithexport-ignorefor/demoand/.cursorsogit archive(used by GitHub/Packagist for dist) excludes them. Thecomposer.jsonarchive.excludeis not applied to git-archive–based dists.
Release v1.4.0
Release 1.4.0
Changelog
Added
- DEMO-FRANKENPHP.md: Documentation for running demos with FrankenPHP in development (no worker, template changes visible on refresh) and production (worker mode, cache enabled). Includes Web Profiler, Debug bundle and Nowo Twig Inspector; states that the
demo/folder is not shipped when the bundle is installed (excluded via Composer archive). Reusable for other bundles. - Demo development setup: FrankenPHP without worker mode so each request uses a fresh PHP process; Twig cache disabled in
config/packages/dev/twig.yaml;docker/php-dev.iniwithopcache.revalidate_freq=0mounted in Compose; Caddyfile and php-dev.ini mounted as volumes; no-cache HTTP headers; Symfony cache cleared on container startup in dev. Template and config changes are visible on browser refresh. - Documentation: CONFIGURATION.md and INSTALLATION.md now warn that the bundle form theme must be defined only in
nowo_select_all_choice.form_themeand must not be added totwig.form_themesto avoid incorrect rendering (e.g. missing labels with Bootstrap).
Changed
- Demos: Rely only on
form_themein bundle config; removed manual@NowoSelectAllChoice/Form/select_all_choice_theme*.html.twigfromtwig.form_themesso the prepended theme (fromform_theme) is not overridden. README and demo READMEs referencemake cache-clearand template refresh behaviour. - RELEASE.md: Pre-release checklist and tag examples updated for current release.
- Documentation: README “Additional documentation” now links to overriding translations and overriding bundle template files.
Fixed
- Demos: Expanded choice fields (e.g. Roles, Categories) now show option labels (Admin, User, Guest, etc.) by using the bundle’s Bootstrap 5 theme via
form_themeinstead of the generic form_div theme that was overriding it. - PHPStan:
callable.nonCallableinChoiceTypeSelectAllExtensionTest: addedself::assertNotNull($listener)before invoking the captured PRE_SUBMIT listener intestBuildFormListenerFiltersNullFromSubmittedDataandtestBuildFormListenerLeavesNonArrayDataUnchanged.
Release v1.1.0
Release 1.1.0
Changelog
Added
form_themeconfig option to match your app's form layout (e.g.bootstrap_5_layout.html.twig). The bundle automatically prepends its form theme to Twig viaPrependExtensionInterface; you no longer need to add it totwig.form_themesmanually.- Dedicated form theme templates for all 11 standard Symfony form layouts:
form_div_layout,form_table_layout, Bootstrap 5/4/3 (and horizontal), Foundation 5/6, Tailwind 2. Setform_themein bundle config to the same value you use intwig.form_themes. - Shared partial
_select_all_choice_wrapper.html.twigfor theme markup; all theme templates include it to avoid duplication. - Translations for 60 languages (domain
NowoSelectAllChoiceBundle, keyform.select_all): en, es, ar, bg, bn, ca, cs, da, de, el, et, fa, fi, fr, he, hi, hr, hu, hy, id, is, it, ja, ka, km, ko, lt, lv, mk, ms, mt, ne, nl, no, pl, pt, pt_BR, ro, ru, sk, sl, sq, sr, sv, sw, ta, te, th, tr, uk, ur, vi, zh_CN, zh_TW, af, am, az, eu, gl, cy. - Makefile: targets
rector,rector-dry,phpstan,update,validate;release-checknow includes rector-dry and phpstan; bundle-specific assets targets (assets-test,assets-dev,assets-watch,assets-clean); simplified Demos help (usemake -C demoormake -C demo/symfonyX).
Changed
- Form theme registration is now automatic based on
form_themeconfig; manual addition totwig.form_themesis optional (e.g. to control order). - Theme templates refactored to use the shared wrapper partial.
- Documentation (CONFIGURATION.md and related) in English; README Documentation section order aligned with bundle standards.
- Demo Makefile uses standard target names (
up-X,down-X, etc.).
Fixed
- PHPStan:
FormInterface<mixed>generic onbuildView(),getContainerExtension()return type,Extension::load()configs typearray<int, array<string, mixed>>.
Release v1.0.1
Release 1.0.1
Changelog
Fixed
- Demo Docker images: pnpm installation with
SHELL=shand fallback symlink from.tools/pnpm-exeso pnpm is available in PATH.
Changed
- Root
make buildnow rebuilds the bundle’s docker-compose image (no longer the demo images). - Demo Makefiles invoke pnpm via
/usr/local/bin/pnpm. - Release and docs: README badge URLs, RELEASE.md tag examples.
Release v1.0.0
Release 1.0.0
Changelog
Added
- Initial release: Form type extension, Twig form theme and Stimulus controller for "Select all" on
ChoiceTypewithmultiple=true(expanded and collapsed). - Opt-in via
select_all => true; configurable label, position and CSS; translations (EN, ES) in domainNowoSelectAllChoiceBundle. - Frontend-driven toggle: backend passes config via data attributes; Stimulus controller creates and manages the checkbox in the DOM.
- TypeScript and Vite for bundle assets; consuming app’s Vite build compiles the bundle (no Encore/Importmap).
- Configurable CSS for Bootstrap, Tailwind or custom:
default_wrapper_css_class,default_label_css_classand per-fieldselect_all_wrapper_css_class,select_all_label_css_class(see CONFIGURATION and THEMING). - THEMING.md: how to override the form theme (custom HTML) and use Bootstrap/Tailwind/custom classes.
- Demos (Symfony 7 and 8): locale in the URL (
/en,/es), navbar language dropdown, visible EN|ES switch, Web Profiler (dev), and a "Categories" field with Tailwind-style classes; documentation for language switching and styles in demo READMEs.