github verbb/formie 3.0.0-beta.1

latest releases: 3.0.0-beta.16, 2.1.20, 1.6.44...
pre-release4 months ago

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 subfield is now subField for 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 fieldInputContainer to fieldInputWrapper for Theme Config and .fui-input-container class to .fui-input-wrapper for fields.

Added

  • You can now get submission field values via dot-notation for nested values. e.g. submission.getFieldValue('group.text') or submission.getFieldValue('repeater.1.text')
  • You can now query submission field values via dot-notation for nested values. e.g. submission.field('group.text').one() or submission.field('repeater.1.text').one()
  • Integrations can now populate a $context property with arbitrary data that's stored before processing, and accessible in the queue job.
  • Added Field::fieldKey to represent the handles of a field and any parent field. e.g. group.text or repeater.text.
  • Allow craft.formie.renderJs to 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-error and data-fui-alert-success attributes 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 initRow to Repeater field JS events.
  • Added the current rowId for the data-repeater-row attribute 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 handle to 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\CosmeticField class.
  • Added verbb\formie\base\ElementField class.
  • Added verbb\formie\base\MultiNestedField class.
  • Added verbb\formie\base\OptionsField class.
  • Added verbb\formie\base\SingleNestedField class.
  • Added verbb\formie\base\SubField class.

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 content column, in your formie_submissions database 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 now Formie::info().
  • Integration::log() is now Integration::info().
  • Integration field mapping now uses field:fieldHandle syntax for fields.
  • Integration field mapping now uses dot-notation (field:group.text) syntax for nested fields.
  • Conditions (fields, pages, notifications) now uses field:fieldHandle syntax 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 Title references to form Name.
  • 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 hubspotutk cookie 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 the hubspotutk tracking 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\NestedFieldTrait class.
  • Removed verbb\formie\elements\NestedFieldRow class.
  • Removed verbb\formie\elements\dbNestedFieldRowQuery class.
  • Removed verbb\formie\events\FieldPageEvent class.
  • Removed verbb\formie\events\FieldRowEvent class.
  • Removed verbb\formie\events\ModifyEmailFieldUniqueQueryEvent class.
  • Removed verbb\formie\events\OauthTokenEvent class.
  • Removed verbb\formie\events\SyncedFieldEvent class.
  • Removed verbb\formie\events\TokenEvent class.
  • Removed verbb\formie\models\Sync class.
  • Removed verbb\formie\models\SyncField class.
  • Removed verbb\formie\models\Token class.
  • Removed verbb\formie\records\NestedFieldRow class.
  • Removed verbb\formie\records\PageSettings class.
  • Removed verbb\formie\records\Row class.
  • Removed verbb\formie\records\Sync class.
  • Removed verbb\formie\records\SyncField class.
  • Removed verbb\formie\records\Token class.
  • Removed verbb\formie\services\NestedFields class.
  • Removed verbb\formie\services\Syncs class.
  • Removed verbb\formie\services\Tokens class.
  • Removed formie/gc/delete-orphaned-fields console command.
  • Removed formie/gc/prune-syncs console command.
  • Removed formie/gc/prune-content-tables console command.
  • Removed formie/gc/prune-content-table-fields console command.
  • Removed Formie::$plugin->getNestedFields().
  • Removed Formie::$plugin->getSyncs().
  • Removed Formie::$plugin->getTokens().
  • Removed Categories:categoriesQuery variable for Category element field templates.
  • Removed Categories:entriesQuery variable for Entry element field templates.
  • Removed Categories:productsQuery variable for Product element field templates.
  • Removed Categories:usersQuery variable for User element field templates.
  • Removed Categories:variantsQuery variable for Variant element field templates.

Deprecated

  • Submission::getCustomFields() method has been deprecated. Use Submission::getFields() instead.
  • Field::name attribute has been deprecated. Use Field::label instead.
  • Field::inputHtml() method has been deprecated. Use Field::cpInputHtml() instead.

Don't miss a new formie release

NewReleases is sending notifications on new releases.