Skip to content

Releases: verbb/formie

2.1.24

11 Aug 00:23
Compare
Choose a tag to compare

Added

  • Added processSubmit JS API function to allow submission processing to continue if preventing submission via the onBeforeFormieSubmit 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

06 Aug 02:36
Compare
Choose a tag to compare

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.
  • 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 to label for GraphQL queries.
  • Change Page’s name to label 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') 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.
  • Allow craft.formie.renderJs to set JS attributes for scripts.
  • Added data-fui-alert-error and data-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 or repeater.text.
  • Added Field:: lowerClassName().
  • Added Field::isDisabled.
  • Added Field::enabled to allow you to disable a field.
  • Added Submission::hasStatusChanged() and Submission::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 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().
  • 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. So name.firstName, group.text or repeater.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 form Name.
  • Changed fieldErrors and fieldError elements from ul and li respectively to div.
  • 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.
  • nextPageIndex in JSON response for Ajax-based forms now returns null when submitting on the final page to match nextPageId.
  • 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...
Read more

1.6.45

01 Aug 00:55
Compare
Choose a tag to compare

Fixed

  • Fixed an issue where redirect URLs for forms may contain invalid content.

3.0.0-beta.20

30 Jul 23:06
Compare
Choose a tag to compare
3.0.0-beta.20 Pre-release
Pre-release

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

29 Jul 01:14
Compare
Choose a tag to compare
3.0.0-beta.19 Pre-release
Pre-release

Added

  • Added Address 1 and Address 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) as Y-m-dTH:i:s formatted strings without timezone information (as none is stored).
  • nextPageIndex in JSON response for Ajax-based forms now returns null when submitting on the final page to match nextPageId.
  • 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 and form variables are Formie fields and forms.

2.1.23

29 Jul 00:55
Compare
Choose a tag to compare

Added

  • Added Address 1 and Address 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) as Y-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

21 Jul 10:39
Compare
Choose a tag to compare
3.0.0-beta.18 Pre-release
Pre-release

Fixed

  • Fix Salesforce integration and Case objects by excluding the IsClosedOnCreate field.
  • Fix missing countryEnabled countryDefaultValue and countryAllowed properties for Phone fields for GraphQL.

2.1.22

21 Jul 10:31
Compare
Choose a tag to compare

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

16 Jul 22:40
Compare
Choose a tag to compare
3.0.0-beta.17 Pre-release
Pre-release

Added

  • Added structure sorting options to Entries fields.
  • Added allIntegrations property to EVENT_MODIFY_FORM_INTEGRATIONS event.
  • Added form property to EVENT_MODIFY_FORM_INTEGRATIONS event.
  • Added setNoCacheHeaders() to the formie/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

16 Jul 06:42
Compare
Choose a tag to compare

Added

  • Added structure sorting options to Entries fields.
  • Added allIntegrations property to EVENT_MODIFY_FORM_INTEGRATIONS event.
  • Added form property to EVENT_MODIFY_FORM_INTEGRATIONS event.
  • Added setNoCacheHeaders() to the formie/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.