Releases: area17/twill
Twill 2.4.0
Twill 2.4.0 is a minor release addressing a security vulnerability on the CMS logout action which has been reported this morning by a community member, and also bringing a couple of cool new features and improvements from community contributions.
HOW TO UPDATE
Run composer update
in your project and then, run Twill's own update command: php artisan twill:update
. This will force update your published Twill assets. You can delete the old ones from your repository if you are versioning them. If you are using custom Vue components, you should rebuild Twill assets using php artisan twill:build
.
Added
- Add support for browsers using HasRelated behavior
580faa47
- Allow
dev_mode
to be set in.env
95874a1a
- Add custom subject to notifications
f137b213
Fixed
- 🚨 Fix logout security vulnerability
e84abd4f
- Update capsule provider booting and registration (fixing view:cache)
5a086a32
- Save wysiwyg sourcecode value into store on change
83d3eb62
8d9a3d21
c4911046
4aebb3e3
Improved
Twill 1.2.3
Twill 1.2.3 is backporting a fix introduced in 2.4.0, which is addressing a security vulnerability on the CMS logout action.
Fixed
- 🚨 Fix logout security vulnerability
c6612ca3
Twill 2.3.1
Fixed
- Media library upload regressions (hotfix) #959
Twill 2.3.0
Twill 2.3.0 is a minor release addressing previously introduced regressions, and also bringing a couple of cool new features and improvements from community contributions.
HOW TO UPDATE
Run composer update
in your project and then, run Twill's own update command: php artisan twill:update
. This will force update your published Twill assets. You can delete the old ones from your repository if you are versioning them. If you are using custom Vue components, you should rebuild Twill assets using php artisan twill:build
.
Added
- Configuration system for capsules #924
- Automated
belongsTo
browser field relationship #913 - Internal API documentation #929
- Connected fields array values support #935
- Capsules finder methods and helpers
d30f341d
- Ability to retrieve all image crops in a single call, as generated URLs or data arrays #928
- Ability to disable crops entirely on the
medias
field #9220a153c29
7dbfaef6
- Support for custom title key in related browsers #942
Fixed
- Custom create modal view regression #920
- Subdomain routing regression #908
- Media Library uploads regression when using Postgres #941
- Fix
Unresolvable dependency resolving
problem when installingblade-ui-kit/blade-icons
#952 - Ensures
app/Twill/Capsules
exists during installdeff0a87
- Fix minor typos in documentation
3dcf4fa2
Improved
- Docs: update form fields documentation #945
- Docs: add missing docs for $permalinkBase
1609765b
- Docs: add duplicate param to $indexOptions
d665967d
- Docs: add skipCreateModal option to controller docs
08fd0167
Chores
- Update rebase GitHub Actions version to support forks with branches of the same name
e08ee215
Twill 2.2.1
Thanks to our community members quickly updating to Twill 2.2.0, we've been able to squash a few bugs that were introduced in the last minor release.
Fixed
- Capsules without translations: move HasCapsules trait to the base model
8b730e81
- Laravel configuration caching: set the capsules list config as an array
2b5b07a5
Improved
Twill 2.2.0
Twill 2.2.0 is a minor release addressing compatibility and bugs, and also bringing a lot of amazing new features and improvements from community contributions.
HOW TO UPDATE
Run composer update
in your project and then, run Twill's own update command: php artisan twill:update
. This will force update your published Twill assets. You can delete the old ones from your repository if you are versioning them. If you are using custom Vue components, you should rebuild Twill assets using php artisan twill:build
.
Added
- Laravel 8 and PHP 8 support #740
- After long months of compatibility testing and stability testing in production, Twill is finally compatible with the latest versions of PHP and the Laravel framework.
- Twill Capsules #729
- Twill Capsules are modules encapsulated in a single folder. Like modules, they can be generated from the command line, but they can also be installed from a remote repository. We think this will enable new ways for the community and ourselves to share reusable and customizable Twill modules.
- Deep nested modules #775
- When using dot notation to nest modules, it was previously only possible to use a single children module. With those changes, it is now possible to go add deep as needed.
- Image and file replacement from the media library #660
- This new feature enables your users to replace an image or file globally from the media library, preserving all relationships with records, blocks and repeaters where the image or file has been attached.
- Nested repeaters support outside of blocks
ce75aff1
- Algolia search in docs
c1d85e48
- Glide cloud sources classes to allow Glide and S3 integration
11f0f502
- Allow renaming tag tables
3f34da73
- Allow passing email and password directly on the command line when creating a superadmin user
812331d1
- Add target attribute in Twill navigation entries to allow opening in new window
3418edcc
- Automate CMS permalink for nested modules
94742f29
- Add ability to store more data from the Google Maps API #721
dfaa5f8e
- Allow to use a different name than relationship when hydrating a repeater #717
9ead6d5c
- Support custom model identifier key in controller #780
fce6465d
- Add optional note into the Browser modal (via the Browser Field)
b4cb5b83
Fixed
- 2.1 regressions with blocks configuration #813
- Block name (configuration key) and component not matching issues
- Duplicate blocks and Twill blocks conflicts issues
- Show a better message when block is missing #712
3dd66067
- Add default icon and trigger (repeater) to Block
ae162ac3
- Logging deprecated use of block and repeater definitions in config
1beadaae
- Generate Vue Blocks only for 'compiled' and confirm overwriting if file exists
bc7dfa50
- Fix uploads with custom root path on S3
a92b6232
- Closes #553. The rationale for keeping the S3_ROOT in the uuid in database is to allow changing its value while keeping, for example, older uploads in the previous root (which might be connected to a different Imgix source). It would also be a breaking change to remove the root from the uuid in database. We might reconsider this for Twill 3.
- Fix S3-compatible storage compatibility (DO Spaces)
4c8cc698
- "Create and add another" fix for macOS Safari/FF #782
2d403516
- Nested listing: maxDepth now respected
9e9c7f8d
- Publication bug in module create modal #732
7afdca7f
- Broken variables for FR emails #734
2cc9984a
- Drop index error on mediables table #800
a29a0294
- Artisan make:module (deprecated) should prompt for input #725
a5b3ffc2
- Fix for checkboxes stored as string #694
27c9887c
736a0642
- Prevent the permalink preview from wrapping when over 52 characters long
33b5641d
- Don't create superuser while on no-interaction
efac9ff7
- Route name duplicating prefix and module
f446363b
- Don't render languages columns when only one is available
c46bdcda
- Fixed nested listing on undefined children
ef9a8dfb
Improved
- Documentation
- Vapor support
- We've had the opportunity to deploy Twill instances to Laravel Vapor and refactored the way Twill deals with its own assets urls internally in the process.
- Use vendor Twill manifest when public/ is missing
5ff29afe
- i18n
- Misc.
- Wysiwyg with Quill : set default styling for italic and underline in the editor
32bbfb4f
- Consider morphed models when getting the name of the class to obtain the repository
cad35392
- Easier to use starter route
0d9c0d09
- Make slug model namespace dynamic
308f2a92
3ba04e51
[7cbbc253
](https://github.co...
- Wysiwyg with Quill : set default styling for italic and underline in the editor
Twill 2.1.1
Thanks to our community members quickly updating to Twill 2.1.0, we've been able to squash a few regressions that were introduced in the last minor release.
Fixed
- Fix block editor group parameter update
121b0166
- Both
group
andgroups
can be used and receive a string or an array
- Both
- Fix #701: settings forms regression
053c4ea4
- Fix skipCreateModal option on submodules
2474ae56
- Fix #670: multi select field doesn't prevent user from picking duplicated option
33e54a43
- Remove legacy product requirement on required fields (#697) (#699)
89469159
- Fix regression introduced by #620 (#702)
52b66289
Twill 2.1.0
Twill 2.1.0 is a minor release addressing some critical bugs, as well as a bunch of new features and improvements.
HOW TO UPDATE
Run composer update
in your project and then, run Twill's own update command: php artisan twill:update
. This will force update your published Twill assets. You can delete the old ones from your repository. If you are using custom Vue components, you should rebuild Twill assets using php artisan twill:build
.
Added
- Self-contained blocks (#597)
1e95b0ac
9ae502a4
948985ef
66fa7c5e
c00759ee
- This change allows defining blocks without adding them to the
twill.block_editor
configuration - This is backwards compatible with blocks already defined in configuration
- Repeaters are now created in a dedicated folder:
views/admin/repeaters
by default, but your existing repeaters in theviews/admin/blocks
file will still work - Annotations are now supported in blocks and repeaters Blade files:
- Provide a title with
@twillPropTitle
or@twillBlockTitle
or@twillRepeaterTitle
- Provide an icon with
@twillPropIcon
or@twillBlockIcon
or@twillRepeaterIcon
- Provide a group with
@twillPropGroup
or@twillBlockGroup
or@twillRepeaterGroup
(defaults toapp
) - Provide a repeater trigger label with
@twillPropTrigger
or@twillRepeaterTrigger
- Provide a repeater max items with
@twillPropMax
or@twillRepeaterMax
- Define a block or repeater as compiled with
@twillPropCompiled
or@twillBlockCompiled
or@twillRepeaterCompiled
- Define a block or repeater component with
@twillPropComponent
or@twillBlockComponent
or@twillRepeaterComponent
- Example:
@twillBlockTitle('Body text') @twillBlockIcon('text') @formField('wysiwyg', [ 'name' => 'text', 'label' => 'Text', ])
- This change also provides new Artisan commands:
php artisan twill:make:block {name} {baseBlock} {icon}
, which generates a new block based on a provided blockphp artisan twill:list:blocks
, which lists blocks with a couple of options:-s|--shorter
for a shorter table,-b|--blocks
for blocks only,-r|--repeaters
for repeaters only,-a|--app
for app blocks/repeaters only,-c|--custom
for app blocks/repeaters overriding Twill blocks/repeaters only,-t|--twill
for Twill blocks/repeaters only
php artisan twill:list:icons
, which lists all icons availablephp artisan twill:make:module
, equivalent to the now deprecatedtwill:module
which will be removed in Twill 3.0.
- Provide a title with
- This change allows defining blocks without adding them to the
- Resolve npm modules from root app (#617)
360d82c1
- This change allows requiring node modules from the root project folder. Previously, custom Vue components could only use npm packages installed by Twill itself. With this change, any npm package from the main app can be required. We do this by adding the root
npm_modules
folder to webpack’s module resolver.
- This change allows requiring node modules from the root project folder. Previously, custom Vue components could only use npm packages installed by Twill itself. With this change, any npm package from the main app can be required. We do this by adding the root
- Add a new option to skip the add new modal to create records (#642)
1ec1f428
- This change allows users to create full records by landing directly on the form when adding new records
- It is enabled through the new
skipCreateModal
option of a module's controller$indexOptions
array.
- Implement a new behavior to allow saving repeaters into json columns (#654)
85f96306
a2fffa4f
- This trait is not intended to replace main repeaters but to give a quick and easy alternative for simple elements where creating a new table might be an overkill.
- Simply define an array with repeater names on your repository:
protected $jsonRepeaters = [ 'REPEATER_NAME_1', 'REPEATER_NAME_2', ... ]
- Add new options to medias and files form fields
c564ecc2
571cc1e9
- filesizeMax, on the files field, to prevent selecting a file which filesize is above provided value in mb
- widthMin, on the medias field, to prevent selecting an image which width is below provided value in px
- heightMin, on the medias field, to prevent selecting an image which height is below provided value in px
- Added new option to display filenames of images in the media library grid (#658)
2034b6e7
- Add confirmation modal option to checkbox and radio form fields (#687)
41261c18
b152cdd9
fe6ec3d0
- Allow user to filter by unused images or files in the media library (#688)
a52349a9
261941fc
- Add admin title tag suffix to config (#680)
3aefcdc3
- Support checkbox form field in settings
d62d303f
- Support date_picker and color form fields in settings (#576)
f66aaa68
- Allow 3 columns layout by setting up a middle columns (#638)
2b2e3e49
- Allow browsers to sync extra pivot attributes (#629)
f33b8825
- Provide env variable for configuring custom s3 hosts
5894ccce
- Add ability to provide a custom morphed repeaters name (#679)
3a118bc3
- Support required option on wysiwyg form field
e780bcfd
- Support disabled option on select form field
e780bcfd
- Allow format change in datepicker field (#628)
936057d8
- Allow datepicker format in publication dates (#636)
477bc288
- Allow a model class to be passed instead of the relation name (#640/#619)
8bf8e8f0
- Add new
buttonOnTop
option to medias, files and browser form fields (#598)964c99a0
cf8ead0d
- Provide optional parameters for changing label and including a note in tags form field
0d535710
Fixed
- Fix new listing actions behaviors
2d1b2eb5
- Destroy action was not removed when disabling forceDelete in indexOptions
- Duplicate action was showing in trash and was not removed when disabled in indexOptions (which is by default)
- Fix bulk destroy integration
- Fix validation errors display (#605)
fc5b16a9
- With the simplification of the exception handler in #561 the override of the invalidJson method was dropped by mistake. It is currently necessary as the frontend expects errors only in a validation exception response. In future improvements it would be better to keep the default Laravel response format and update the frontend to read one level deeper.
- Fix local disk and Glide base url request scheme resolution
15a2dbea
- This commit introduced an issue by using request() in config. When using php artisan config:cache that request is not coming externally with the appropriate headers.
- Fix draggable regression on datatable
a79e3d2e
- Fix scheme being added twice when APP_URL has the scheme (#651)
2e5784cc
- Fix Twill form utils aliases on Laravel 7
c0018e5c
- Fix connected fields component alias
4b61b78e
- Fix typo in translation [
c0c492c5
](https://github.com/area17/twill/commit/...
Twill 2.0.2
Update distributed assets
Twill 2.0.1
As we said in our 2.0 announcement, we want to release more often to avoid letting developers rely on development branches. So here's 2.0.1 already!
Fixed
- Fix Quill based WYSIWYG not rendering after switching locales (#572)
- Fix duplicate action on Laravel 7 (a30922b)