Skip to content

Releases: area17/twill

Twill 2.4.0

15 Jun 22:33
8066ad1
Compare
Choose a tag to compare

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

Improved

Twill 1.2.3

15 Jun 22:33
82ac708
Compare
Choose a tag to compare

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

04 Jun 23:15
Compare
Choose a tag to compare

Fixed

  • Media library upload regressions (hotfix) #959

Twill 2.3.0

03 Jun 02:17
Compare
Choose a tag to compare

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 #922 0a153c29 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 installing blade-ui-kit/blade-icons #952
  • Ensures app/Twill/Capsules exists during install deff0a87
  • 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

17 May 23:04
Compare
Choose a tag to compare

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

  • Update documentation to reflect Laravel 8 support c01c426d
  • Fix wording and add proper method description e1293551

Twill 2.2.0

13 May 22:24
Compare
Choose a tag to compare

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
    • Updated block editor documentation 9df76dd4
    • Documentation for custom vue component da6557f2
    • Documentation with some examples for the MultiBrowser feature 66c12808 36cb3f48
    • Added some missing optional $cropName and $media params for various image methods #762 8188f864
  • 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
    • Add czech translations 71c976dd
    • Add Turkish localization support for flatpickr and vue-timeago packages d725a7d4
    • fixed a typo in the German language 29eb3a9c
    • Make parts of settings & dashboard translatable 843c1da2
    • Russian language update f87d99f2
    • Add some missing Polish language strings 30fe3593
  • 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...
Read more

Twill 2.1.1

20 Jul 14:00
Compare
Choose a tag to compare

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 and groups can be used and receive a string or an array
  • 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

15 Jul 20:05
Compare
Choose a tag to compare

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 the views/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 to app)
      • 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 block
        • php 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 available
        • php artisan twill:make:module, equivalent to the now deprecated twill:module which will be removed in Twill 3.0.
  • 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.
  • 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/...
Read more

Twill 2.0.2

15 Jul 20:05
Compare
Choose a tag to compare
Update distributed assets

Twill 2.0.1

10 Mar 13:33
Compare
Choose a tag to compare

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)

Improved