3.0.0-beta.1
Pre-release
Pre-release
·
2218 commits
to craft-5
since this release
Breaking Changes
- Repeater and Group fields values now no longer use elements, just plain arrays. This brings several performance improvements and simplification to these fields.
- OAuth-based integrations now use the Auth Module to handle authentication under the hood.
- References to
subfieldis nowsubFieldfor various classes. - Element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants) now use their public URL in email notifications.
- Options fields (Checkboxes, Dropdown, Radio) now use their option labels in email notifications.
- Changed
fieldInputContainertofieldInputWrapperfor Theme Config and.fui-input-containerclass to.fui-input-wrapperfor fields.
Added
- You can now get submission field values via dot-notation for nested values. e.g.
submission.getFieldValue('group.text')orsubmission.getFieldValue('repeater.1.text') - You can now query submission field values via dot-notation for nested values. e.g.
submission.field('group.text').one()orsubmission.field('repeater.1.text').one() - Integrations can now populate a
$contextproperty with arbitrary data that's stored before processing, and accessible in the queue job. - Added
Field::fieldKeyto represent the handles of a field and any parent field. e.g.group.textorrepeater.text. - Allow
craft.formie.renderJsto set JS attributes for scripts. - Added “Required Field Indicator” for forms, to either show an asterisk for required fields (default) or show optional for non-required fields.
- Added
data-fui-alert-erroranddata-fui-alert-successattributes on front-end alerts. - Added the
form.setPageSettings()function to override page settings in your Twig templates. - Added support for Group and Repeater fields to be added as an existing field, or a synced field in the form builder.
- Added support for Repeater fields to use conditions (within their own row of fields).
- Added
initRowto Repeater field JS events. - Added the current rowId for the
data-repeater-rowattribute for Repeater fields. - Added support for all CRM integrations to only fetch data objects for ones that are enabled in the form builder integration settings.
- Added keyboard navigation to variable picker dropdown.
- Added the ability to type
{in variable picker components to autocomplete variables. - Added double-clicking a page in the form builder now opens the pages editor.
- Added “Recipients” to the Email Notifications index table.
- Added
handleto Email Notifications that can be accessed directly, instead of by their ID. - Added Table node to rich text editor settings (used for numerous form, field and notification settings).
- Added the ability to set the control panel or public URL for element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants).
- Added the ability to set the label or value for options fields (Checkboxes, Dropdown, Radio).
- Added
verbb\formie\base\CosmeticFieldclass. - Added
verbb\formie\base\ElementFieldclass. - Added
verbb\formie\base\MultiNestedFieldclass. - Added
verbb\formie\base\OptionsFieldclass. - Added
verbb\formie\base\SingleNestedFieldclass. - Added
verbb\formie\base\SubFieldclass.
Changed
- Now requires PHP
8.2.0+. - Now requires Craft
5.0.0-beta.1+. - Updated Vue, Vite, Formkit and all JS dependencies to their latest versions.
- Submission content no longer have their own content tables. Content is now in a single
contentcolumn, in yourformie_submissionsdatabase table. - Submissions now have Create/Save/Delete user permissions.
- Submissions now have separate view and manage user permissions.
- Sent Notifications now have “All” or per-form user permissions for View/Resend/Delete.
Formie::log()is nowFormie::info().Integration::log()is nowIntegration::info().- Integration field mapping now uses
field:fieldHandlesyntax for fields. - Integration field mapping now uses dot-notation (
field:group.text) syntax for nested fields. - Conditions (fields, pages, notifications) now uses
field:fieldHandlesyntax for fields. - Conditions (fields, pages, notifications) now uses dot-notation (
field:group.text) syntax for nested fields. - Updated form builder modals and implement better modal accessibility.
- Submissions element index now show incomplete and spam submissions alongside completed submissions.
- Changed form
Titlereferences to formName. - Front-end form JavaScript now waits until the form has entered the viewable area on the page to be initialized.
- Captchas now smartly load whenever they have entered the viewable area on the page. This greatly improves page-load performance when the form is initially hidden (in a modal for example).
- HubSpot CRM integration now automatically saves the
hubspotutkcookie at the time of submission, to be sent with API requests. This means you now no longer need to map a form field to ensure thehubspotutktracking cookie is sent.
Fixed
- Fixed multiple Tippy.js instances in the form builder when field settings contained multiple “info” elements.
- Fixed alerts on front-end not respecting theme config.
- Fixed Commerce fields initializing when Commerce wasn’t installed or classes exist.
- Fixed text-limit character check for emojis on the front-end.
- Fixed lack of validation for Date fields and their Default Value when setting to a specific date.
Removed
- Removed
verbb\formie\base\NestedFieldTraitclass. - Removed
verbb\formie\elements\NestedFieldRowclass. - Removed
verbb\formie\elements\dbNestedFieldRowQueryclass. - Removed
verbb\formie\events\FieldPageEventclass. - Removed
verbb\formie\events\FieldRowEventclass. - Removed
verbb\formie\events\ModifyEmailFieldUniqueQueryEventclass. - Removed
verbb\formie\events\OauthTokenEventclass. - Removed
verbb\formie\events\SyncedFieldEventclass. - Removed
verbb\formie\events\TokenEventclass. - Removed
verbb\formie\models\Syncclass. - Removed
verbb\formie\models\SyncFieldclass. - Removed
verbb\formie\models\Tokenclass. - Removed
verbb\formie\records\NestedFieldRowclass. - Removed
verbb\formie\records\PageSettingsclass. - Removed
verbb\formie\records\Rowclass. - Removed
verbb\formie\records\Syncclass. - Removed
verbb\formie\records\SyncFieldclass. - Removed
verbb\formie\records\Tokenclass. - Removed
verbb\formie\services\NestedFieldsclass. - Removed
verbb\formie\services\Syncsclass. - Removed
verbb\formie\services\Tokensclass. - Removed
formie/gc/delete-orphaned-fieldsconsole command. - Removed
formie/gc/prune-syncsconsole command. - Removed
formie/gc/prune-content-tablesconsole command. - Removed
formie/gc/prune-content-table-fieldsconsole command. - Removed
Formie::$plugin->getNestedFields(). - Removed
Formie::$plugin->getSyncs(). - Removed
Formie::$plugin->getTokens(). - Removed
Categories:categoriesQueryvariable for Category element field templates. - Removed
Categories:entriesQueryvariable for Entry element field templates. - Removed
Categories:productsQueryvariable for Product element field templates. - Removed
Categories:usersQueryvariable for User element field templates. - Removed
Categories:variantsQueryvariable for Variant element field templates.
Deprecated
Submission::getCustomFields()method has been deprecated. UseSubmission::getFields()instead.Field::nameattribute has been deprecated. UseField::labelinstead.Field::inputHtml()method has been deprecated. UseField::cpInputHtml()instead.