Releases: verbb/formie
Releases · verbb/formie
2.1.24
Added
- Added
processSubmit
JS API function to allow submission processing to continue if preventing submission via theonBeforeFormieSubmit
JS event.
Fixed
- Fixed errors when attaching some files to support requests.
- Fixed Date fields with a default value, or min/max date not having their values normalized correctly.
- Fixed an error when viewing Forms in the control panel for a specific template, and improve Form element index performance.
- Fixed an error when refreshing tokens via JS, for a non-top-level webroot site.
- Fixed an error when populating Element fields when also limiting field values.
3.0.0
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 nowsubField
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
tofieldInputWrapper
for Theme Config and.fui-input-container
class to.fui-input-wrapper
for fields. - Date fields now no longer use Flatpickr as a date-picker by default.
- Changed the value returned for Address fields when queried via GraphQL.
- Change Field’s
name
tolabel
for GraphQL queries. - Change Page’s
name
tolabel
for GraphQL queries.
Added
- Added new user interface for sub-field (Address, Date, and Name).
- Added the ability to re-order sub-fields.
- Added the ability to edit the full settings of sub-field fields.
- Added ability to send email notifications or trigger integrations when unmarking a submission as spam.
- 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 the ability to override “All Form Fields”, “All Non Empty Fields” and “All Visible Fields” variables with Email Notification templates.
- Added “Calendar (Simple)” and “Calendar (Advanced)” to Date field display types, replacing “Use Date Picker”.
- Added CSS Layers support for front-end CSS.
- Fields moved in and out of Group fields now have their content moved as well.
- Fields can now be moved to and from Group/Repeater fields.
- Added “Required Field Indicator” for forms, to either show an asterisk for required fields (default) or show optional for non-required fields.
- 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 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
handle
to Email Notifications that can be accessed directly, instead of by their ID. - Added
isFinalPage
in JSON response for Ajax-based forms. - Added “All Submissions Behaviour” plugin setting.
- Added the ability to store custom data (
customSettings
) on a Notification, to store extra data against a Notification. - Added the ability to modify Notification tabs and field settings (schema) via
Notifications::EVENT_MODIFY_NOTIFICATION_SCHEMA
. - 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
$context
property with arbitrary data that's stored before processing, and accessible in the queue job. - Allow
craft.formie.renderJs
to set JS attributes for scripts. - Added
data-fui-alert-error
anddata-fui-alert-success
attributes on front-end alerts. - Added
data-field-label
attribute to labels/legends for fields. - Added
data-validation
to fields, to denote what validators to use for the field. - Added
initRow
to Repeater field JS events. - Added client-side validation for min/max word/character limit for text fields.
- Added the current rowId for the
data-repeater-row
attribute for Repeater fields. - Added
onFormieLoaded
JS event. - Added double-clicking a page in the form builder now opens the pages editor.
- Added “Recipients” to the Email Notifications index table.
- Added Table node to rich text editor settings (used for numerous form, field and notification settings).
- Added the ability for Recipients fields to pre-populate the field via their option label.
- Added
verbb\formie\fields\subfields
classes to better handle sub-field inner fields. - Added
NestedField::EVENT_MODIFY_NESTED_FIELD_LAYOUT
to modify the field layout of Nested or Sub-Fields. - 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. - Added
Field::getValueForVariable()
to allow fields to handle logic for variables. - Added
Field::getValueForCondition()
for handling serialization for condition evaluation. - Added
Field::getValueForEmailPreview()
for fields to define their own preview for email notifications. - Added
Field::fieldKey
to represent the handles of a field and any parent field. e.g.group.text
orrepeater.text
. - Added
Field:: lowerClassName()
. - Added
Field::isDisabled
. - Added
Field::enabled
to allow you to disable a field. - Added
Submission::hasStatusChanged()
andSubmission::hasSpamChanged()
.
Changed
- Now requires PHP
8.2.0+
. - Now requires Craft
5.0.0+
. - Updated Vue, Vite, Formkit and all JS dependencies to their latest versions.
- Updated Feed Me integration support for Feed Me 6+.
- Updated Freeform migration to support Freeform 5+.
- Submission content no longer have their own content tables. Content is now in a single
content
column, in yourformie_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 nowFormie::info()
.Integration::log()
is nowIntegration::info()
.- Updated form builder modals and implement better modal accessibility.
- Switched Stripe payments to use “Payment Web Element”, adding the ability to use non-credit card payments like Apple Pay, AfterPay, etc
- Revamped front-end validation and removed
bouncer.js
. - Submissions now send any email notifications that have status conditions when a completed submission is saved.
- Field errors now only show their first error when validation fails.
- Re-organise validator rules and add client-side match field validator.
data-field-handle
for fields now includes the full dot-notation “fieldKey” of the field, including any parent. Soname.firstName
,group.text
orrepeater.new1.text
.- Captchas for GraphQL mutations now don’t require a mandatory variables parameter to be named the same as their input type.
- Querying fields and rows via GraphQL now default to only returned enabled fields.
- Front-end form JavaScript now waits until the form has entered the viewable area on the page to be initialized.
- The
onFormieInit
now fires on every initialization of a form, when it’s visible on the page. - 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).
- Sub-fields now extend from the
verbb\formie\base\SingleNestedField
and inherit many behaviours from Group fields. - Phone fields are no longer
verbb\formie\base\SubField
fields. - Sub-field fields now store their field config in their own row in the
formie_fields
database table, under their own layout (page, row, field). - Update GraphQL interfaces for all fields to explicitly define fields to query. Previously these were automatically done via Reflection.
- 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. - Submissions element index now show incomplete and spam submissions alongside completed submissions.
- Changed form
Title
references to formName
. - Changed
fieldErrors
andfieldError
elements fromul
andli
respectively todiv
. - 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 thehubspotutk
tracking cookie is sent. nextPageIndex
in JSON response for Ajax-based forms now returnsnull
when submitting on the final page to matchnextPageId
.- Update Date field’s
availableDaysOfWeek
to return an array of strings as opposed to a JSON-encoded array for GraphQL. - Email Notification field templates now no longer output a paragraph tag and the field label.
- Recipients fields values are now included in Email Notification content.
- Updated the
intl-tel-input
package for Phone field validation and handling. - Date fields now show the required state on the outer label for Calendar and Date Picker display types.
- Name field values now return the full name including prefix and middle name (if provided).
- Address Country and Name Prefix fields now use their respective label values for string representations of their value.
- Adjusted dropzone size for form builder...
1.6.45
Fixed
- Fixed an issue where redirect URLs for forms may contain invalid content.
3.0.0-beta.20
Fixed
- Fixed Feed Me integration support.
- Fixed incorrect permission check for non-admin users accessing forms.
- Fixed an error with submitting forms for some captchas, when the form is initially hidden.
3.0.0-beta.19
Added
- Added
Address 1
andAddress 2
to field mapping for Klaviyo integration. - Added
useEmailTemplateForFieldVariables
plugin setting to enforce field variables to use their email template. This is opt-in behaviour until Formie 3. - Added the ability to override “All Form Fields”, “All Non Empty Fields” and “All Visible Fields” variables with Email Notification templates.
- Added
isFinalPage
in JSON response for Ajax-based forms.
Changed
- Updated SharpSpring integration to not require the Form URL, and improve instructions.
- Updated English translations.
- Date fields now return date settings (
defaultValue
,defaultDate
,minDate
,maxDate
) asY-m-dTH:i:s
formatted strings without timezone information (as none is stored). nextPageIndex
in JSON response for Ajax-based forms now returnsnull
when submitting on the final page to matchnextPageId
.- Updated Freeform migration to support Freeform 5+.
- Update Date field’s
availableDaysOfWeek
to return an array of strings as opposed to a JSON-encoded array for GraphQL. - Email Notification field templates now no longer output a paragraph tag and the field label.
Fixed
- Fixed form element index behaviour for users with only “View Forms” permissions.
- Fixed an error for Date fields and the Default Date, and Min/Max Date settings being inconsistent.
- Fixed location values for Klaviyo integration.
- Fixed Klaviyo Email Marketing integration not working correctly.
- Fixed Payment field billing detail settings not working correctly.
- Fixed Date fields and the “Available Days” setting not working correctly.
- Fixed Repeater field content not being normalized correctly.
- Fixed behaviour of field variable tags in Email Notifications, where referencing a single field produced different output compared to when used in consolidated variables (e.g. “All Form Fields”).
- Fixed Group fields in Email Notifications when referencing a single field within a group as a variable tag.
- Fixed Formie Twig functions assuming
field
andform
variables are Formie fields and forms.
2.1.23
Added
- Added
Address 1
andAddress 2
to field mapping for Klaviyo integration. - Added
useEmailTemplateForFieldVariables
plugin setting to enforce field variables to use their email template. This is opt-in behaviour until Formie 3.
Changed
- Updated SharpSpring integration to not require the Form URL, and improve instructions.
- Updated English translations.
- Date fields now return date settings (
defaultValue
,defaultDate
,minDate
,maxDate
) asY-m-dTH:i:s
formatted strings without timezone information (as none is stored).
Fixed
- Fixed form element index behaviour for users with only “View Forms” permissions.
- Fixed an error for Date fields and the Default Date, and Min/Max Date settings being inconsistent.
- Fixed location values for Klaviyo integration.
- Fixed Klaviyo Email Marketing integration not working correctly.
3.0.0-beta.18
Fixed
- Fix Salesforce integration and Case objects by excluding the
IsClosedOnCreate
field. - Fix missing
countryEnabled
countryDefaultValue
andcountryAllowed
properties for Phone fields for GraphQL.
2.1.22
Changed
- Address and Multi-Name fields now strip out invalid content in email notifications.
Fixed
- Fix Salesforce integration and Case objects by excluding the
IsClosedOnCreate
field.
3.0.0-beta.17
Added
- Added structure sorting options to Entries fields.
- Added
allIntegrations
property toEVENT_MODIFY_FORM_INTEGRATIONS
event. - Added
form
property toEVENT_MODIFY_FORM_INTEGRATIONS
event. - Added
setNoCacheHeaders()
to theformie/forms/refresh-tokens
action endpoint to prevent caching. - Added
Integrations::EVENT_MODIFY_FORM_INTEGRATION
event. - Added
Field:: lowerClassName()
. - Added structure sorting options to Entries fields.
Changed
- Allow sending email notifications for incomplete submissions from the control panel.
status
is now a reserved field handle.- Updated form builder preview for Summary field.
- Updated the
intl-tel-input
package for Phone field validation and handling. - Cleanup unused content population code.
Fixed
- Fixed an error with Date fields and their default value timezone.
- Fixed an XSS vulnerability for sub-fields and sent email notifications.
- Fixed
EVENT_MODIFY_FORM_INTEGRATION
not firing in some instances. - Fixed Phone field allowing invalid phone numbers and country codes.
- Fixed an error with single Name fields used in Summary fields.
- Fixed session call for
refresh-tokens
. - Fixed Opayo payments and custom email values.
- Fixed some fields not using
getValueAsString()
to render content for email notifications. - Fixed single-value fields not being able to be ordered in the submissions index in the control panel.
- Fixed lack of server-side validation for min/max Number fields.
- Fixed not being able to order submissions in the control panel via custom fields.
- Fixed an error when uploading files in a File Upload field when editing a submission within the control panel.
- Fixed email notification permissions.
- Fixed an error populating existing Repeater field content for submissions.
- Fixed an error when validating a Phone field.
- Fixed nested/sub fields not populating values correctly.
- Fixed an error when importing a form when replacing an existing form.
- Fixed an error when importing a form and updating an existing form.
- Fixed an error when using Password fields, and their incorrect value.
- Fixed form conditions.
- Fixed conditional status-based email notifications not working correctly.
- Fixed an alignment issue for new forms, introduced in Craft 5.2.
- Fixed an error when rendering Opayo payment fields.
- Fixed an error when rendering PayPal and PayWay payment fields.
- Fixed status “off” state appearance to align with Craft 5 changes.
- Fixed lack of client-side validation for min/max Number fields.
- Fixed lack of server-side validation for min/max Number fields.
2.1.21
Added
- Added structure sorting options to Entries fields.
- Added
allIntegrations
property toEVENT_MODIFY_FORM_INTEGRATIONS
event. - Added
form
property toEVENT_MODIFY_FORM_INTEGRATIONS
event. - Added
setNoCacheHeaders()
to theformie/forms/refresh-tokens
action endpoint to prevent caching. - Added
Integrations::EVENT_MODIFY_FORM_INTEGRATION
event.
Changed
- Allow sending email notifications for incomplete submissions from the control panel.
status
is now a reserved field handle.- Updated form builder preview for Summary field.
Fixed
- Fixed an error with Date fields and their default value timezone.
- Fixed an XSS vulnerability for sub-fields and sent email notifications.
- Fixed
EVENT_MODIFY_FORM_INTEGRATION
not firing in some instances. - Fixed Phone field allowing invalid phone numbers and country codes.
- Fixed an error with single Name fields used in Summary fields.
- Fixed session call for
refresh-tokens
. - Fixed Opayo payments and custom email values.
- Fixed some fields not using
getValueAsString()
to render content for email notifications. - Fixed single-value fields not being able to be ordered in the submissions index in the control panel.
- Fixed lack of server-side validation for min/max Number fields.