Skip to content

Releases: verbb/formie

1.3.5

21 Dec 22:35
Compare
Choose a tag to compare

Added

  • Added ability to provide htmlpurifier config JSON files for HTML fields.
  • Added ModifyPurifierConfigEvent.
  • Added Agile CRM integration.
  • Added Copper CRM integration.
  • Added Capsule CRM integration.
  • Added all global sets into variable-enabled fields.

Changed

  • Improve performance for very large forms and fields.

Fixed

  • Fixed an error when viewing a trashed submission, with custom fields selected in columns.
  • Fixed no captchas appearing in plugin settings.
  • Fixed potential error thrown, when trying to catch other errors during older updates.
  • Fixed Oauth-based integrations not allowing connection when 'allowAdminChanges' => false.
  • Fixed an error with the recipients field.
  • Fixed form permissions not always being run for new forms.
  • Fixed “Save as a new form” not working in some cases.
  • Fixed multi-page form submissions incorrectly validating fields when going back to a previous page.
  • Fixed some fields not displaying correctly in notification emails.
  • Fixed sent notifications not always showing the HTML body content.
  • Fixed form and email templates not resolving to single template files correctly.
  • Fixed an error when trying to delete a submission using GraphQL.

1.3.4

16 Dec 00:18
Compare
Choose a tag to compare

Added

  • Added formie.cp.submissions.edit template hook.
  • Added formie.cp.submissions.edit.content template hook.
  • Added formie.cp.submissions.edit.details |template hook.
  • Added formie.cp.sentNotifications.edit template hook.
  • Added formie.cp.sentNotifications.edit.content template hook.
  • Added formie.cp.sentNotifications.edit.details template hook.
  • Update Autopilot integration to include more default fields and fix list-subscribing.
  • Added ability to add soft line-breaks to email notifications and other rich-text enable fields.

Changed

  • Pages now have a unique ID, inherited from the form’s formId.

Fixed

  • Fixed rendering the same form multiple times on a page not working correctly.
  • Fixed “Unknown Integration” error message when trying to connect an integration with allowAdminChanges = false.
  • Fixed captcha settings resetting when saving plugin settings.
  • Fixed the siteRootUrl to trim the trailing slash if present. This is an issue on some systems (Servd) where URLs with a trailing slash are redirected.
  • Fixed field/notification edit modals not getting properly reset when hidden.
  • Fixed HTML field errors when the vendor folder didn’t have write permissions (such as Servd).

1.3.3

06 Dec 12:55
Compare
Choose a tag to compare

{warning} If you are overriding templates for field.html, you must update your template to include data-field-config="{{ field.getConfigJson(form) | json_encode | raw }}". This is the new and improved method for fields to define their config settings, picked up by JavaScript classes. Without making this change, field JS will not work. Refer to this commit change.

Added

  • Added defaultState for GraphQL queries for Agree fields. This replaces defaultValue.
  • Added defaultDate for GraphQL queries for Date fields. This replaces defaultValue.
  • Added “Current URL” to hidden field default value options.
  • Added data-field-config attribute to all fields that require JS.
  • Added getConfigJson() for all fields to define settings for JS modules.

Changed

  • Formie now requires Craft 3.5+.
  • Form queries via GraphQL are now no longer automatically included in the public schema.
  • Submission queries via GraphQL are now no longer automatically included in the public schema.
  • Submission mutations via GraphQL are now no longer automatically included in the public schema.
  • When (soft) deleting a form, any submissions will also be (soft) deleted. These are also restored if the form is restored.
  • Refactor JS behaviour for fields that require it. We now use a data-field-config attribute on the field to store JS module settings. This is then initialized once the JS has been lazy-loaded. This allows us to split configuration from initialization and may also help with custom JS.
  • Renamed Field::getFrontEndJsVariables() to Field::getFrontEndJsModules().
  • Improve handling of multi-page non-ajax forms, where some fields required JS. Formie now detects what JS needs to be used for the current page for a page-reload form, or the entire form for an ajax form.
  • Improve field JS to stop relying on IDs or classes to hook into field functionality. It now determines this through data-field-config attribute on the field wrapper element. This should allow for greater template flexibility.
  • Submissions now make use of the same JS/CSS code that the front-end does.

Fixed

  • Fixed errors when garbage collection is called for sent notifications.
  • Fixed when deleting a form, the submissions for that form weren't also deleted.
  • Fixed an error when trying to view a submission on a deleted form.
  • Fixed some GraphQL attributes not being cast to the correct type.
  • Fixed some GraphQL errors for some fields.
  • Fixed an error when trying to permanently delete a form.
  • Fixed an error with date field using a default value.
  • Fixed console error for multi-page non-ajax forms containing a phone field.
  • Fixed repeater and group fields not initializing their inner fields’ JS.
  • Fixed JS module code for fields being loaded multiple times when initially loading the page.
  • Fixed an error for address providers when used in a Repeater field.
  • Fixed address providers not checking if their provider JS is loaded correctly, in some instances.
  • Fixed multi-line rich text fields loading Font Awesome multiple times.
  • Fixed checkbox/radio fields not validation correctly inside a Repeater field.
  • Fixed warnings/errors for JS fields, where their inputs might not exist on a page.
  • Fixed Algolia Places not working correctly.
  • Fixed issue where multiple ajax-based forms on a single page would have validation triggered across all forms.
  • Fixed incorrect error being shown when custom server-side errors for fields are defined.
  • Fixed an error when an email notification's sender email wasn't properly filtered.
  • Fixed incorrect output in email notifications when using date fields.

1.3.2

28 Nov 05:17
Compare
Choose a tag to compare

Added

  • Added support for using the submission ID, Title and Status in notification conditions.

Fixed

  • Fixed notification conditions not saving correctly when a field with options (dropdown, etc) was selected.
  • Fixed “Submission Message” and “Error Message Position” form message parsing HTML incorrectly in some cases.
  • Fixed agree field description parsing HTML incorrectly in some cases.
  • Fix an error when editing stencils.
  • Fix minor error handling for GQL mutations.

1.3.1

26 Nov 01:06
Compare
Choose a tag to compare

Added

  • Allow field type classes to provide their own GQL attribute mappings for attributes.

Fixed

  • Fixed Ajax submissions not resolving to the correct current site when using sub-directories for sites, causing translation issues.
  • Fixed agree field description not translating correctly.
  • Fixed error when querying allowedKinds as an attribute on a file upload field with GQL.
  • Fixed lack of server-side email validation for email fields.

1.3.0

25 Nov 03:42
Compare
Choose a tag to compare

Added

  • Added Sent Notifications section, providing information on sent email notifications. Each Sent Notification contains delivery information and the ability to preview what was sent.
  • Added resend Sent Notifications, allowing you to either resend the notification to their original recipients or nominated new ones.
  • Added bulk resend Sent Notifications, either to their original recipients or nominated new ones.
  • Added support for default field values to contain variable tags for autofilling user info.
  • Added pre-populate setting to fields, allowing you to specify a query string param to pre-populate the field with a value.
  • Added conditions to notifications. Build complex conditional rules on when to send (or not send) email notifications.
  • Added better support for countries in Phone fields, now with a nicer UI for the front-end.
  • Added country flags and international/national validation to Phone fields.
  • Added new MultiSelect Vue component, for use in custom field schema settings.
  • Added ability to control whether form submissions are stored permanently or not.
  • Added settings for form submission data retention for hours, days, weeks, months and years.
  • Added indicator when editing a submission when it's associated with a user.
  • Added submission->getUser().
  • Added support for when deleted a user, any submissions associated to them can be transferred to another user, or deleted.
  • Added when deleting a user, a summary of their submissions (if any) is shown in the prompt.
  • Added support for when restoring a deleted user, we restore any associated submissions.
  • Added settings for form submission data retention for uploaded files.
  • Added maxSentNotificationsAge plugin setting to control sent notification pruning.
  • Added formie/gc/delete-orphaned-fields console command.
  • Added formie/gc/prune-syncs console command.
  • Added formie/gc/prune-incomplete-submissions console command.
  • Added formie/gc/prune-data-retention-submissions console command.
  • Added formie/gc/prune-content-tables console command.
  • Added variable tags to form “Submission Message” rich text field setting, allowing for the use of submission variables in the submission success message.
  • Added ability to use submission attributes and fields in redirect URLs for Ajax forms.

Changed

  • Refactored Phone fields to no longer use a separate dropdown for country code.
  • When deleting a user, any form submissions related to that user will be deleted, or transferred to a user of your choice. This only applies if you use the "Collect User" setting for your forms.
  • Lock fakerphp/faker at 1.9.1 due to PHP compatibility. Hopefully also fix some composer issues when updating with ./craft update all.

Fixed

  • Fixed critical errors when a fields' setting was removed before migration can take place (looking at you descriptionHtml attribute).
  • Fixed registerFormieValidation JS event not working correctly.
  • Fixed a potential error in craft.formie.getParsedValue().
  • Fixed error with Postgres and viewing the forms index.
  • Fixed error with Postgres and viewing the submissions index.
  • Fixed agree field description not outputting line breaks.
  • Fixed “Submission Message” and “Error Message Position” form messages not outputting line breaks.
  • Fixed form messages not being translated correctly when the form is set as Ajax submit.
  • Fixed submit message not showing correctly when set to show at the bottom of the form and the form is hidden on success.
  • Fixed error with sending test email notifications in some instances.

Removed

  • The following attributes on Phone fields have been removed: showCountryCode, validate, validateType, countryCollapsed, countryLabel, countryPlaceholder, countryPrePopulate, numberCollapsed, numberLabel, numberPlaceholder, numberDefaultValue, numberPrePopulate.

1.2.28

19 Nov 10:59
Compare
Choose a tag to compare

Added

  • Added per-form form permissions for users.
  • Added per-form submission permissions for users.

Changed

  • Change fzaninotto/faker to non-abandoned fakerphp/faker.
  • Increase stencil and form settings database column sizes, for large forms.

Fixed

  • Fixed error when submitting a form on a non-primary site, when it contained a group or repeater field.
  • Fixed Agree field’s description not translating correctly when using special characters.
  • Fixed HTML-based form settings not translating correctly when using special characters.
  • Fixed Mercury CRM not mapping email and mobile fields correctly.
  • Fixed email notifications incorrectly showing element queries, when trying to output an element field’s value.
  • Ensure rich text fields don’t convert underscores to italics, when using as part of field handles.
  • Fixed fatal error being thrown when viewing stencils, if a stencil had invalid data.

1.2.27

16 Nov 00:44
Compare
Choose a tag to compare

Added

  • Allow captchas to set a spamReason property, providing details on why a submission was marked as spam.
  • Added “Minimum Submit Time” to Javascript captcha.

Changed

  • Remove table-padding in plugin settings.

Fixed

  • Fixed potential error when processing Monday integrations.
  • Fixed front-end JS console error thrown for some fields (table, repeater) for multi-page non-ajax forms.
  • Fixed Table and Repeater fields sometimes throwing an incorrect error for min/max rows when not set.
  • Fixed checkbox and radio field instructions not working well when set to “Above Input” or “Below Input”.
  • Fixed date fields incorrectly converting to the system timezone.
  • Fixed potential issue with Name field being used in integrations.
  • Fixed spam reason not showing when editing a submission in the control panel.

1.2.26

10 Nov 02:37
Compare
Choose a tag to compare

Added

  • Added afterIncompleteSubmission event.

Changed

  • Allow incomplete submissions to be used in trigger integrations queue job

Fixed

  • Fixed error when saving a field in Postgres.
  • Fixed multiple recaptchas on the same page not working correctly.
  • Fixed Postgres error when deleting or restoring forms.
  • Fixed date fields storing time incorrectly when a submission is saved in the control panel.
  • Fixed date fields not showing the time field in the control panel when editing a submission.
  • Fixed table field dropdown column options not saving.

1.2.25

01 Nov 13:26
Compare
Choose a tag to compare

Added

  • Added getIsVisible() to all field classes.
  • Added craft.formie.getVisibleFields(row). For any given row, will return whether there are any visible fields.
  • Added submitActionMessagePosition to forms to control the position of success messages.
  • Added more base-field level attributes for GraphQL FieldInterface. No need to supply inline fragments for common attributes.
  • Added redirectUrl to JS variables, for consistency.
  • Added redirectUrl to form settings, allowing full override of the URL when redirecting on submission success.
  • Added “Badge” setting for ReCAPTCHA V3.
  • Added support for element fields in integrations mapping to string-like fields.
  • Added parseMappedFieldValue event for integrations, allowing modification of the form submission values from Formie to the integration provider.
  • Added remove row button for Table field's front-end templates.

Changed

  • Ensure row classes aren’t outputted when there are no visible fields for a given row.
  • Ensure eager-loaded fields have the correct content table set.
  • Minimum table field rows now create rows when initially loading the form.

Fixed

  • Fixed incorrect submission error logging.
  • Fixed Campaign integration and some custom fields (like checkboxes). Be sure to re-save your form's integration settings for this to take effect.
  • Fixed checkboxes field validation not working correctly.
  • Fixed GraphQL containerAttributes and inputAttributes properties.
  • Fixed phone number sub-field label position not working correctly.
  • Fixed address, date, name and phone sub-field labels not displaying correctly for left/right alignments.
  • Fixed onFormieSubmitError JS event not firing for server-side errors.
  • Fixed submissions not showing preview of element field content for submission index columns.
  • Fixed stencil notifications showing unsaved.
  • Fixed error when saving a new stencil.
  • Fixed error when saving a Table field in some cases.
  • Fixed some min/max row checks with Table fields.

Removed

  • Removed redirectEntry from JS variables.
  • Removed submitActionUrl from JS variables.