All notable changes to twill
will be documented in this file.
- Allow media and file library disk configuration using an environement variable by @antonioribeiro in #2676
- Fix #2671: 3.4.0 regression on related browsers previews by @Tofandel in #2672
- Fix #2674: 3.4.0 regression on relation column using a one-to-one relationship by @Tofandel in #2675
- Add
searchQuery
method to controller for finer control over the search by @Tofandel in #2614 - Add
clearable
method to select form field by @zeezo887 in #2581
- Rethink the way the error handler works by @Tofandel in #2612
- Improve related save by @Tofandel in #2599
- Limits Access Key exposition to S3 storage by @luislavena in #2611
- Don't load relation for each column and allow dot notation in field name for index table by @Tofandel in #2603
- Filter - Select: expand to the longest option by @mrdoinel in #2627
- Preview: Update default width value for the mobile preview (to a more realistic value) by @mrdoinel in #2624
- Fix trim function to get corresponding input by @DCrepper in #2609
- Fix published scope by @Tofandel in #2606
- Fix sync of medias and files with multiple fields by @Tofandel in #2628
- Fix positioning of the close button in media library tags by @mrdoinel in #2626
- Fix search functionality for buckets by @zeezo887 in #2661
- Fix #2650: Added parentheses to fix the order of evaluation between t… by @HarryThe3rd in #2651
- Fix deleted users causes error 500 by @Tofandel in #2643
- Fix wrong crops for Blocks in
twill:refresh-crops
by @ptrckvzn in #2642 - Fix server error in the dashboard when a nested module has a deleted parent by @Tofandel in #2633
- Fix slugs are not created when saving models outside of Twill or when duplicating by @Tofandel in #2618
- Fix repeaters are registered without a populated item by @Tofandel in #2605
- Fix block previews don't update when browser items are added or changed by @zeezo887 in #2535
- Fix weird behaviour of slugs table active column by @zeezo887 in #2531
- Fix blocks take crop settings from parent model if name is the same by @zeezo887 in #2542
- Use strict check for is null, as it otherwise causes empty arrays to not have any field by @Tofandel in #2604
- Rename moduleName variable in permissionModules loop by @zeezo887 in #2635
- Ensure catch-all routes do not take precedence by @ifox in #2669
- Update one-to-many docs to use correct Artisan command by @daisonth in #2615
- Fix basic page builder guide block file reference by @amiraezz in #2630
- Update both Portuguese from Brazil and Portugal by @antonioribeiro in #2602
- Improved i18n: added missing translation key (#2616) and improved German translations by @C2H6-383 in #2634
- Upgrade GitHub Actions artefact upload to v4 by @ifox
- Bump webpack from 5.91.0 to 5.95.0 by @dependabot in #2665
- Bump body-parser and express by @dependabot in #2659
- Bump cookie and express by @dependabot in #2664
- Laravel 11 support by @ifox in #2473
- Add support for
medias
fields in JSON repeaters by @zeezo887 in #2554 - Add support for multiple JSON repeaters (of the same type) in one form by @zeezo887 in #2517
- Add support for nested module on the dashboard by @zeezo887 in #2547
- Add
connectedTo
for inline repeater and documentation aboutconnectedTo
by @Tofandel in #2565 - Add error reporting to block rendering by @AidasK in #2580
- Allow
buttonAsLink
option on inline repeaters by @danieldevine in #2522 - Allow singular capsules on navigation by @antonioribeiro in #2572
- Tags in media library are not refreshed while updating & browsing images by @zeezo887 in #2523
- Clicking cancel in the block editor deletes all the unsaved blocks by @zeezo887 in #2578
- Allow single deletion in form builder inline repeater by @zeezo887 in #2504
- Allow deleting media after records bulk destroy by @zeezo887 in #2519
- Allow case-insensitive search for translated models for postgres by @zeezo887 in #2528
- 404 error when restoring revision in nested modules by @zeezo887 in #2541
- Fix alt text stripping accents and single quotes by @Tofandel in #2514
- Changing twill user password in admin to use the laravel algo by @Tofandel in #2582
- Undefined variable $formBuilder error when extending form layout in custom pages by @zeezo887 in #2577
- Error with time-picker when
allowInput
is true by @zeezo887 in #2576 - Don't delete and recreate existing
mediables
andfileables
by @Tofandel in #2567 - Make
twillTrans
exportable so it can be used in config by @Tofandel in #2563 - Table builder
Browser
column overrides parent module field by @zeezo887 in #2506 - Disable heading extension if it's not in the Tiptap toolbar by @Tofandel in #2511
- Relation field of datatable does not allow sorting by @zeezo887 in #2526
- Default login redirect to admin url by @Tofandel in #2569
- Different datetime parsing for publish date on listing and edit screen by @zeezo887 in #2510
- Fix created at is null in slug table by @Tofandel in #2588
- Fix typo by @k-msalehi in #2564
- Change
admin.
route totwill.
by @LucaRed in #2585 - Prettify instructions and add the capsules>list array keys to improve DX by @antonioribeiro in #2527
- Update twill version during installation by @Mavv3006 in #2584
- Refactor form services to avoid repeating code by @Tofandel in #2553
- Bump express from 4.18.2 to 4.19.2 by @dependabot in #2560
- Bump webpack-dev-middleware from 5.3.3 to 5.3.4 by @dependabot in #2556
- Bump follow-redirects from 1.15.5 to 1.15.6 by @dependabot in #2545
- Fix datatable and buckets filters error caused by Axios breaking changes in 0.28.0 by @zeezo887 in #2520
- Allow dynamic title on
InlineRepeater
by @Tofandel in #2493 - Add command to update morph references in Twill tables by @joyceverheije in #2482
- Allow behaviors to load classes without being the main model of a capsule by @Tofandel in #2423
- Add missing step method on Twill 3 form builder input field by @zeezo887 in #2496
- Fix error when updating a model after having enabled a new language in the config by @Tofandel in #2487
- Fix Twill model extensibility by @Tofandel in #2498
- Fix shrinking block counter by @Tofandel in #2501
- Fix single module browser definition by @Tofandel in #2474
- Fix incorrect method argument order when registering Twill capsule translation by @emanueljacob in #2477
- Fix preview mode when trying to preview a revision that contains a block that itself uses a blockable relation by @emanueljacob in #2484
- Fix custom callback of Image column by @Tofandel in #2494
- Fix js error if you grab a block but don't move it anywhere by @Tofandel in #2488
- Fix
getModulePermalinkBase
by @Tofandel in #2471 - Fix
getBaseNamespace
by @Tofandel in #2420 - Fix relative path traversal in docs dev server command by @ouuan in #2469
- Fix Vue draggable deprecations by @Tofandel in #2491
- Remove duplicate extensions already included in the TipTap starterKit by @Tofandel in #2486
- Fix documentation issues reported in #1804
- Remove HTML 4 and srcset polyfills by @Tofandel in #2430
- Remove deprecated zh, ji, iw and in locales to integrate Weblate (see #2492)
- Bump axios from 0.27.2 to 0.28.0 by @dependabot in #2480
- PHP 8.3 support by @antonioribeiro in #2374
- Form builder connected fields support by @joyceverheije in #2323
- Glide image rendering service improvements for remote disks by @ifox in #2422
- Google Analytics 4 support in the dashboard by @lewiswharf in #2288
- Configurable preview breakpoints by @florrie-90 in #2299
- Automatically add
active
to$translatedAttributes
by @driftingly in #2401 - Block component classes support in the
BlockEditor
blocks
array by @joyceverheije in 8778ab7e - Add
excludeBlocks
option to theBlockEditor
fields by @pauldwight in #2409 - Add
readOnly
support to form builderInput
field by @zachgarwood in #2331 - Add
searchable
support to form builderSelect
field by @iedex in #2415 - Add
max
support to form builderInlineRepeater
field by @joyceverheije in 4a773869 - Add
direction
option toInput
andWysiwyg
fields by @13twelve in #2295 - Add alignment buttons to
TipTap
editor by @florrie-90 in #2305 - Add predefined class selection to
TipTap
link component by @zipavlin in #2336 - Add support for
titleInBrowser
andadminEditUrl
accessors inbrowsers
by @joyceverheije in 02ac019e, ab8635fe and 160e9165 - Add
--factory
and--seeder
totwill:make:module
by @driftingly in #2402 - Add
Link
column type to table builder by @agnonym in #2376 - Add
routePrefix
support to nested breadcrumbs by @yamaha252 in #2312 - Add DI support for Twill Block
getData
method by @Afting in #2292 - Allow
QuickFilter
extension by @joyceverheije in 9c15b017 - Configurable permissions and roles table names by @Keania-Eric in #2350
- Configurable user creation with default role when using OAuth SSO by @joyceverheije in 14f8dd29
- Customizable title column's label by @Phiosss in #2318
- Current request only tertiary nav links support by @joyceverheije in d1c06992
- Multiple
nested
table columns support in the table builder by @yamaha252 and @joyceverheije in #2314 and 1edbfbb1 - Store position and render selected values ordered on multi selects fields by @haringsrob in #2204
- Update migration stub and existing migrations to use anonymous class by @driftingly in #2406
- Fix
DatePicker
date selection by @ifox in 0e751723 - Fix Tiptap
Wysiwyg
click to focus area by @TimBlanchard in #2418 - Fix custom components registration by @joyceverheije in 7c233334
- Fix position value for blocks in non-default
BlockEditor
fields by @joyceverheije in #2381 - Fix incorrect order of nested items slug when item is more than 2 levels deep by @pauldwight in #2388
- Fix
parseInternalLinks
helper issues by @avinash403 in #2338 - Fix to reduce excessive number of queries when using Twill 3 settings by @bonroyage in #2369
- Fix legacy settings in Twill 3 by @joyceverheije in #2417
- Fix user list errors when deleting roles by @antonioribeiro in #2372
- Fix build error with custom icons by @emanueljacob in #2392
- Fix x-position of full height crops being reset at some ratios/screen sizes by @13twelve in #2297
- Fix fields/blocks/repeaters spacings by @ifox in 1a93fe47
- Fix active navigation check when a child module uses the same name as another module by @joyceverheije in f22eb35a
- Fix create button alignment in listings by @ifox in 006f478f
- Fix duplication when translated media fields are enabled by @petertsoisstuff in #2320
- Fix
getCapsuleForModel()
for when passing a Model object by @antonioribeiro in #2400 - Fix
keepAlive
on connected non localized fields by @joyceverheije in b1593c75 - Fix optional feature migrations publication by @Tofandel in #2384
- Fix related table name in migration down method by @droplister in #2290
- Fix scheduled filter label by @droplister in #2291
- Fix type of
$forceLocale
intranslatedInput()
by @pvdbroek in #2315 - Fix user role filter when using the standard permissions setup by @ifox in 6e893232
- Fix vselect component to align with design by @ifox in 435c6a92
- Fix error when running
php artisan migrate:reset
by @NuktukDev in #2413 - Allow dashboard modules to wrap onto the next line by @florrie-90 in #2298
- Always include locale in the
mediables
pivot by @bonroyage in #2368 - Avoid unused data and hooks when using the default role level by @joyceverheije in 5d4060b5
- Check user permission when displaying activity log items by @joyceverheije in 3526dca5
- Don't load
DuskServiceProvider
if Dusk doesn't exist by @Tofandel in #2366 - Preserve default vselect value when undefined by @bwat-dev in #2311
- Prevent multi select options from being selected more than once by @florrie-90 in #2296
- Remove block actions in settings blocks by @ifox in 0bc5e754
- Support using a dot as
fieldsGroupsFormFieldNameSeparator
by @yamaha252 in #2277 - Turn move dropdowns off for settings blocks by @droplister in #2293
- Update migration helper for translations table by @sauron in #2327
- Updated namespace paths from
Admin
toTwill
on custom pages by @pauldwight in #2317 - Use custom model configuration in the relationship morph map by @redelschaap in #2408
- Use
pushOnce
builtin, remove custompushonce
directive by @mikerockett in #2301 - Use
twill.admin_route_name_prefix
configuration for all internal routes by @ifox and @raymondtri in #2286
- Add instructions on how to use the
browser
field with a custom pivot table by @poncianodiego and @ifox in #2385 - Changed example value to better reflect given example in fields group docs by @Viliasas in #2283
- Fix artisan command by @thecrazybob in #2365
- Fix typo in Building a frontend guide by @driftingly in #2396
- Fix typo in Content - Modules - TableBuilder by @agnonym in #2375
- Fix typo in create page module guide by @colegeissinger in #2367
- Fix wrong property name in nested modules docs by @Viliasas in #2282
- Updates to the docs for nested modules by @pauldwight in #2389
- Added Slovenian language to translations by @Neoglyph in #2373
- Update Dutch translations by @lindeVW in #2378
- Update German translations by @florianschrottenloher-iu in #2411
- Add all locales with translations to the user locale selector by @ifox in 6e893232
- Configure all locales with translations for date rendering and datepicker configuration by @ifox in eb21fa9f
- Rendering of nested components blocks by @haringsrob in #2243
- Rendering of side form if it only contains fieldsets by @agnonym in #2234
- Title prefix support in component blocks by @haringsrob in #2252
- Icon support in component blocks by @agnonym in #2238
- Columns support for checkboxes and radios in form builder by @bonroyage in #2232
Options::fromArray
argument order by @bonroyage in #2231- Update package generator stub by @ifox in 78cc5b5d
- Fix activity log typo by @DanielSpravtsev in #2264
- Fix two misspellings by @skoontastic in #2250
- Fix typo in create modal docs by @lostdesign in #2262
- Update upgrade guide by @undersound in #2251
- Additional explanation on migration for Input field type by @tttogo in #2247
- Closing bracket missing by @kerkness in #2245
withFieldSets()
expects Fieldsets object, not a direct array by @agnonym in #2233- Fix 'tiwll' typo in docs by @ifox in https://github.com/area17/twill/commit/715bc6f60fe0f1f6ab2a65fb67c838c3582d7794
- Fix 'Larvel' typo in docs by @ifox in https://github.com/area17/twill/commit/8db541d716135e5a8586c50ae3b240c589fa9b05
- Fix module make commands signatures addressing PHPStan error in https://github.com/area17/twill/commit/94733f1f63f3a4f7542a3af93183664b83eea839
- Fix Blade components resolution (causing an issue with Laravel Jetstream) by @haringsrob in #2223
- Add mobile nav to all docs site pages by @13twelve in #2224
- Fix WYSIWYG maxlength docs by @tttogo in #2226
- Form Builder docs: provide more explicit directions on Fieldsets by @tttogo in #2227
- Fix docs space coherence for the options by @agnonym in #2228
This is the final, stable release for Twill 3!
- Prefix tables with
twill_
by @aksiome - Set tiptap as default WYSIWYG type when using blade components
- Laravel 10 support by @haringsrob
- Add
fromArray
tooptions
by @aksiome - Float min, max and step props for numeric input by @iedex
- Add
source_path_prefix
to Glide ServerFactory by @matteovg7 - Allow using 0 as min or max for numeric input by @iedex
- Fix phpdocs by @joyceverheije
- #2044|#1818: Improve repeater cloning. by @haringsrob
- Resolve repeater duplication issue. by @haringsrob
- Prevent erroring when permissions is not able to find disabled capsules by @antonioribeiro
- #2177: Fix renderForBlocks for columns. by @haringsrob
- Fix stretched image in browser field by @joyceverheije
- Fix duplicate action redirect route for nested parent-child modules by @agnonym
- Fix duplicate block duplicate with children by @agnonym
- Fix source edit not updateing the editor (Tiptap) by @iedex
- Fixing mistypes in ru localization by @Quarasique
- Twill 3.0 docs updates
- Enable resend email only when user is published by @joyceverheije
- #2154: Use scope. by @haringsrob
- 2179: Avoid recreating related items. by @haringsrob
- Update Environment Requirements
- Require kalnoy/nestedset as a non-dev dependency
- Update node version in CI
- Add database table names change to upgrade guide
This is the fourth release candidate for Twill 3!
- Block crops can now be defined from block components
#2115
twill:update
will now ask to run migrations#2107
Select::make()->options()
now takes a closure as well#2143
- Fixes various issues related to blocks
#2124
- Allows fieldset only forms
#2117
- GetFullUrl for link browser now replace language as well
#2142
- Fixes return types of forms so they work properly in ide's
#2140
- Fixes a bug which would render the wrong form if block name would overlap with internal
names
#2135
- Fixes an issue which caused table actions to no longer work
#2129
This is the third (and should be last) release candidate for Twill 3!
- Twill now uses Tiptap wysiwyg editor by default. If you wish to use quill you will need to update fields to use that specifically.
#2080
- Twill now uses Tiptap by default, Tiptap has been upgrade to version 2 and now has a link button that also supports browsers.
#2080
- The default config for the editor has been exanded to all features it supports
- The new settings are now translatable
#2094
- SkipCreateModal now supports the table builder correctly
#2087
- Adds the ability to show user activity on the dashboard
#2063
- Fixed settings accessor when used with nested blocks or repeaters.
- Fixed a check so that the media library button gets disabled correctly.
- Fixes browser endpoints no longer crash when no edit url could be build.
- Various fixes for block components.
- Vue/node has been upgrade to use all of the latest versions
#2070
This is the second release candidate for Twill 3!
- From builder now supports inline fieldsets
#2007
- Blocks can now be defined as a blade component
php twill:make:componentBlock blockName
#2007
- Fixed an issue where media tags would not save
#2051
- Fixed an issue where conditional fields would not unset
#2043
- Vselect now properly handles floats
#2048
- Repeaters now properly collapse/expand
#2037
- Various docs updated
#2052
The first release candidate for Twill 3!
- Form builder now supports fieldsets, side forms, columns and more
#1963
- Blocks can now be cloned from within the editor
#1912
- Developer experience: Added a feature that can auto-login on development environments
#1904
- A new slug implementation to have more consisten slug creation
#1897
- Various styling fixes
- Improved defaults such as svg support
- Improved documentation styling and generator
- Many issues have been resolved in since beta2.
This is a stabilization release to prepare a first stable release.
- New documentation system
- New guide
- Improved defaults for new projects
- Added .gitattributes to reduce package size
- No new features were introduced in this release
- Restored edit link on user profiles
#1891
- Fixed console error on forms with permissions
#1890
- Fixed backwards compatibility for navigation link access
#1886
- The upgrade path is now about complete. Check UPGRADE.MD for full instructions.
- You can now validate array contains in multiselects #1854
- Added breadcrumbs using ->setBreadcrumbs on controllers.
- Added a new command that allows to only flush the twill manifest file #1862
- Translated media and slideshows can now be disabled #1847
- Fixed an issue where block fields would not fallback in translations #1852
- Small improvement to avoid additional queries in blocks #1853
- Fixed an issue where the menu would overlay the media browser
- Fixed form builder support for singletons
- The preview function is now more open and allows interaction #1861
- Small improvements to the french translations #1851
- New duplicate feature. Duplicating content from the ui now is limited to basic content, browsers, blocks, files and media. This no longer depends on revisions being available and can be hooked into to duplicate other relations.
- The table builder now has a method ->linkToEdit() to link a cell to the modal or edit form.
- Many small regressions are fixed.
- Fixes an issue where custom icons would not compile correctly.
- Added new setting implementation DOCS PR
- Role enum can now be swapped without changing composer.json DOCS PR
- Submit options are now configurable using the getSubmitOptions
#1719
- Using enableDraftRevisions you can now have drafts on top of published versions
#1725
- When having many blocks, the list is now srollable
#1464
- Improved support for custom icons
#1732
- Fixes a js error that occurred when cloning repeaters
#1734
- Resolved an issue where slug models could not be found if directories were nested
#1738
- Fixed slugs in nested modules to not rely on random sort anymore
#1743
- Fixed an issue where the activities dashboard could show less entries
#1764
- Fixed an issue that could cause undefined errors when using subdomain routing
#1779
- Optimized a query in HasRelated
#1789
- Fixed thumbnail backwards compatability for the form builder.
- Fixed custom components in build process.
#1809
- Fixed an issue that would not render images in the block preview.
#1797
- Permission management PR
- Table builder PR
- docs
- Table columns now have an OOP approach
- Table filters now have an OOP approach
- docs
- Form builder and blade-x components instead of directives for form
views PR
- docs
- Old directives will continue to work, but are internally converted into components. We highly suggest to change to components as they might be deprecated in 4.x.
- docs
- [BREAKING] DateTimes are now fully timezone aware, if you previously added workarounds there should be removable. On the front-end dates will always be displayed in the browsers/systems timezone, but storage is in UTC.
- Controller options now have their own methods to change defaults pr
- There is a whole new documentation section on
repeaters docs with new features:
- Repeaters can have a browse function to select existing items
- Repeaters can have a relation with pivot data
- Blocks can be nested to infinity (but do not do that :)) pr
- Allow options in selects to be disabled PR
- Input masking using alpinejs PR
- Min/max/step attributes for number input fields PR
- You can now use twillTrans for block/repeater titles PR
- Administrators can now reset 2fa for other users PR
- Installable examples PR
- Revisions can now be limited PR
- Morphable browser fields PR
artisan twill:module:make
now automatically creates entries in config/navigation and routes files.- When generating modules or blocks, preview/site files can now be automatically generated.
- BigInt is now always used PR
- [BREAKING] Better defaults PR
- Config file names are aligned with their config key name PR
- [BREAKING] Namespaces have been renamed from Admin to Twill PR
- see UPGRADE GUIDE
- Fixed an issue if traits were in a bad order PR
- Many more...
- Greatly improved test coverage.
- Reintroduced the release command. Local building workflows should not be impacted by this.
For older changes in Twill 2.x please consult the 2.x changelog