All notable changes to twill
will be documented in this file.
- Fix dbal 4 conflict by @ifox in area17#2596
- Laravel 11 support by @ifox in area17#2473
- Add support for
medias
fields in JSON repeaters by @zeezo887 in area17#2554 - Add support for multiple JSON repeaters (of the same type) in one form by @zeezo887 in area17#2517
- Add support for nested module on the dashboard by @zeezo887 in area17#2547
- Add
connectedTo
for inline repeater and documentation aboutconnectedTo
by @Tofandel in area17#2565 - Add error reporting to block rendering by @AidasK in area17#2580
- Allow
buttonAsLink
option on inline repeaters by @danieldevine in area17#2522 - Allow singular capsules on navigation by @antonioribeiro in area17#2572
- Tags in media library are not refreshed while updating & browsing images by @zeezo887 in area17#2523
- Clicking cancel in the block editor deletes all the unsaved blocks by @zeezo887 in area17#2578
- Allow single deletion in form builder inline repeater by @zeezo887 in area17#2504
- Allow deleting media after records bulk destroy by @zeezo887 in area17#2519
- Allow case-insensitive search for translated models for postgres by @zeezo887 in area17#2528
- 404 error when restoring revision in nested modules by @zeezo887 in area17#2541
- Fix alt text stripping accents and single quotes by @Tofandel in area17#2514
- Changing twill user password in admin to use the laravel algo by @Tofandel in area17#2582
- Undefined variable $formBuilder error when extending form layout in custom pages by @zeezo887 in area17#2577
- Error with time-picker when
allowInput
is true by @zeezo887 in area17#2576 - Don't delete and recreate existing
mediables
andfileables
by @Tofandel in area17#2567 - Make
twillTrans
exportable so it can be used in config by @Tofandel in area17#2563 - Table builder
Browser
column overrides parent module field by @zeezo887 in area17#2506 - Disable heading extension if it's not in the Tiptap toolbar by @Tofandel in area17#2511
- Relation field of datatable does not allow sorting by @zeezo887 in area17#2526
- Default login redirect to admin url by @Tofandel in area17#2569
- Different datetime parsing for publish date on listing and edit screen by @zeezo887 in area17#2510
- Fix created at is null in slug table by @Tofandel in area17#2588
- Fix typo by @k-msalehi in area17#2564
- Change
admin.
route totwill.
by @LucaRed in area17#2585 - Prettify instructions and add the capsules>list array keys to improve DX by @antonioribeiro in area17#2527
- Update twill version during installation by @Mavv3006 in area17#2584
- Refactor form services to avoid repeating code by @Tofandel in area17#2553
- Bump express from 4.18.2 to 4.19.2 by @dependabot in area17#2560
- Bump webpack-dev-middleware from 5.3.3 to 5.3.4 by @dependabot in area17#2556
- Bump follow-redirects from 1.15.5 to 1.15.6 by @dependabot in area17#2545
- Fix datatable and buckets filters error caused by Axios breaking changes in 0.28.0 by @zeezo887 in area17#2520
- Allow dynamic title on
InlineRepeater
by @Tofandel in area17#2493 - Add command to update morph references in Twill tables by @joyceverheije in area17#2482
- Allow behaviors to load classes without being the main model of a capsule by @Tofandel in area17#2423
- Add missing step method on Twill 3 form builder input field by @zeezo887 in area17#2496
- Fix error when updating a model after having enabled a new language in the config by @Tofandel in area17#2487
- Fix Twill model extensibility by @Tofandel in area17#2498
- Fix shrinking block counter by @Tofandel in area17#2501
- Fix single module browser definition by @Tofandel in area17#2474
- Fix incorrect method argument order when registering Twill capsule translation by @emanueljacob in area17#2477
- Fix preview mode when trying to preview a revision that contains a block that itself uses a blockable relation by @emanueljacob in area17#2484
- Fix custom callback of Image column by @Tofandel in area17#2494
- Fix js error if you grab a block but don't move it anywhere by @Tofandel in area17#2488
- Fix
getModulePermalinkBase
by @Tofandel in area17#2471 - Fix
getBaseNamespace
by @Tofandel in area17#2420 - Fix relative path traversal in docs dev server command by @ouuan in area17#2469
- Fix Vue draggable deprecations by @Tofandel in area17#2491
- Remove duplicate extensions already included in the TipTap starterKit by @Tofandel in area17#2486
- Fix documentation issues reported in area17#1804
- Remove HTML 4 and srcset polyfills by @Tofandel in area17#2430
- Remove deprecated zh, ji, iw and in locales to integrate Weblate (see area17#2492)
- Bump axios from 0.27.2 to 0.28.0 by @dependabot in area17#2480
- PHP 8.3 support by @antonioribeiro in area17#2374
- Form builder connected fields support by @joyceverheije in area17#2323
- Glide image rendering service improvements for remote disks by @ifox in area17#2422
- Google Analytics 4 support in the dashboard by @lewiswharf in area17#2288
- Configurable preview breakpoints by @florrie-90 in area17#2299
- Automatically add
active
to$translatedAttributes
by @driftingly in area17#2401 - Block component classes support in the
BlockEditor
blocks
array by @joyceverheije in 8778ab7e - Add
excludeBlocks
option to theBlockEditor
fields by @pauldwight in area17#2409 - Add
readOnly
support to form builderInput
field by @zachgarwood in area17#2331 - Add
searchable
support to form builderSelect
field by @iedex in area17#2415 - Add
max
support to form builderInlineRepeater
field by @joyceverheije in 4a773869 - Add
direction
option toInput
andWysiwyg
fields by @13twelve in area17#2295 - Add alignment buttons to
TipTap
editor by @florrie-90 in area17#2305 - Add predefined class selection to
TipTap
link component by @zipavlin in area17#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 area17#2402 - Add
Link
column type to table builder by @agnonym in area17#2376 - Add
routePrefix
support to nested breadcrumbs by @yamaha252 in area17#2312 - Add DI support for Twill Block
getData
method by @Afting in area17#2292 - Allow
QuickFilter
extension by @joyceverheije in 9c15b017 - Configurable permissions and roles table names by @Keania-Eric in area17#2350
- Configurable user creation with default role when using OAuth SSO by @joyceverheije in 14f8dd29
- Customizable title column's label by @Phiosss in area17#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 area17#2314 and 1edbfbb1 - Store position and render selected values ordered on multi selects fields by @haringsrob in area17#2204
- Update migration stub and existing migrations to use anonymous class by @driftingly in area17#2406
- Fix
DatePicker
date selection by @ifox in 0e751723 - Fix Tiptap
Wysiwyg
click to focus area by @TimBlanchard in area17#2418 - Fix custom components registration by @joyceverheije in 7c233334
- Fix position value for blocks in non-default
BlockEditor
fields by @joyceverheije in area17#2381 - Fix incorrect order of nested items slug when item is more than 2 levels deep by @pauldwight in area17#2388
- Fix
parseInternalLinks
helper issues by @avinash403 in area17#2338 - Fix to reduce excessive number of queries when using Twill 3 settings by @bonroyage in area17#2369
- Fix legacy settings in Twill 3 by @joyceverheije in area17#2417
- Fix user list errors when deleting roles by @antonioribeiro in area17#2372
- Fix build error with custom icons by @emanueljacob in area17#2392
- Fix x-position of full height crops being reset at some ratios/screen sizes by @13twelve in area17#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 area17#2320
- Fix
getCapsuleForModel()
for when passing a Model object by @antonioribeiro in area17#2400 - Fix
keepAlive
on connected non localized fields by @joyceverheije in b1593c75 - Fix optional feature migrations publication by @Tofandel in area17#2384
- Fix related table name in migration down method by @droplister in area17#2290
- Fix scheduled filter label by @droplister in area17#2291
- Fix type of
$forceLocale
intranslatedInput()
by @pvdbroek in area17#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 area17#2413 - Allow dashboard modules to wrap onto the next line by @florrie-90 in area17#2298
- Always include locale in the
mediables
pivot by @bonroyage in area17#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 area17#2366 - Preserve default vselect value when undefined by @bwat-dev in area17#2311
- Prevent multi select options from being selected more than once by @florrie-90 in area17#2296
- Remove block actions in settings blocks by @ifox in 0bc5e754
- Support using a dot as
fieldsGroupsFormFieldNameSeparator
by @yamaha252 in area17#2277 - Turn move dropdowns off for settings blocks by @droplister in area17#2293
- Update migration helper for translations table by @sauron in area17#2327
- Updated namespace paths from
Admin
toTwill
on custom pages by @pauldwight in area17#2317 - Use custom model configuration in the relationship morph map by @redelschaap in area17#2408
- Use
pushOnce
builtin, remove custompushonce
directive by @mikerockett in area17#2301 - Use
twill.admin_route_name_prefix
configuration for all internal routes by @ifox and @raymondtri in area17#2286
- Add instructions on how to use the
browser
field with a custom pivot table by @poncianodiego and @ifox in area17#2385 - Changed example value to better reflect given example in fields group docs by @Viliasas in area17#2283
- Fix artisan command by @thecrazybob in area17#2365
- Fix typo in Building a frontend guide by @driftingly in area17#2396
- Fix typo in Content - Modules - TableBuilder by @agnonym in area17#2375
- Fix typo in create page module guide by @colegeissinger in area17#2367
- Fix wrong property name in nested modules docs by @Viliasas in area17#2282
- Updates to the docs for nested modules by @pauldwight in area17#2389
- Added Slovenian language to translations by @Neoglyph in area17#2373
- Update Dutch translations by @lindeVW in area17#2378
- Update German translations by @florianschrottenloher-iu in area17#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 area17#2243
- Rendering of side form if it only contains fieldsets by @agnonym in area17#2234
- Title prefix support in component blocks by @haringsrob in area17#2252
- Icon support in component blocks by @agnonym in area17#2238
- Columns support for checkboxes and radios in form builder by @bonroyage in area17#2232
Options::fromArray
argument order by @bonroyage in area17#2231- Update package generator stub by @ifox in 78cc5b5d
- Fix activity log typo by @DanielSpravtsev in area17#2264
- Fix two misspellings by @skoontastic in area17#2250
- Fix typo in create modal docs by @lostdesign in area17#2262
- Update upgrade guide by @undersound in area17#2251
- Additional explanation on migration for Input field type by @tttogo in area17#2247
- Closing bracket missing by @kerkness in area17#2245
withFieldSets()
expects Fieldsets object, not a direct array by @agnonym in area17#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 area17#2223
- Add mobile nav to all docs site pages by @13twelve in area17#2224
- Fix WYSIWYG maxlength docs by @tttogo in area17#2226
- Form Builder docs: provide more explicit directions on Fieldsets by @tttogo in area17#2227
- Fix docs space coherence for the options by @agnonym in area17#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