Releases: AxeWP/wp-graphql-gravity-forms
v0.10.3 - WP Jamstack Deployments Support
This minor release adds support for WP Jamstack Deployments. We also fixed a bug where non-authenticated users could not access their own entry on the submitGfForm payload.
- feat: Add support for WP Jamstack Deployments.
- fix: Use
graphql_gf_can_view_entriesfilter to exposesubmitGfFormMutation.entryto non-authenticated users. (h/t @robmarshall and @IlirBajrami ) - fix: Change WPGatsby Trigger from deprecated
gform_after_duplicate_formaction togform_post_form_duplicated. - dev: add
$resume_tokenand$draft_entry argumentstographql_gf_can_view_draft_entries. - dev: add
$entry_idand$entry argumentstographql_gf_can_view_entries. - tests: use
databaseIdinstead of deprecatedformIdwhen testingFormQueriesTest - chore: Add new plugin logo and banner ✨
v0.10.2 - PHP 8 Support
This minor release adds official support for PHP v8.0. We also added Gravity Forms Settings to the schema.
- feat: Add support for PHP v8.0.
- feat: Add
gfSettingsto GraphQL schema. - dev: Restore
env.distto the repo, and add.devcontainerto.gitignore. - chore: Update composer deps.
v0.10.1 - Personal Data Settings
This minor release adds support for Gravity Forms Personal Data settings and the isActive field to FormConfirmation objects, and fixes a couple of bugs.
- feat: Add
personalDatasettings toGfFormand relevantFormFieldobjects. - feat: Add field
isActiveto theFormConfirmationobject (h/t @natac13). - fix: Prevent PHP notice caused by the
PostFormatTypeEnumenum on sites withoutpost-formatssupport (h/t @noshoesplease ). - fix: Ensure
timeValues.minutesreturns the 2-digit (mm) string. - tests: Fix tests incorrectly passing when a node index isn't explicitly set.
- dev: Update composer dependencies.
- docs: Fix missing/broken links and wording regarding custom mutation support.
v0.10.0.1 - Hotfix
This hotfix release fixes compatibility issues with gatsby-source-wordpress introduced in the previous release and WPGraphQL v1.6.11.
- fix: don't reregister duplicate generated
{type}FieldChoiceand{type}InputPropertyobject types. - dev: Field
typeon interfaceFormFieldwas changed fromFormFieldTypeEnum!toFormFieldTypeEnum, sincegatsby-source-wordpressdoesn't support non-nullable Enums (h/t @sarah-wfaa).
v0.9.2.1 - Hotfix
This hotfix release fixes an issue where EntryUser would throw an error if the WordPress user who submitted the entry no longer exists. The field now resolves to null instead.
- fix: resolve missing
EntryUserto[]instead of throwing UserError
v0.10.0 - Major Plugin & Schema Refactor
This major release is a refactor the entire plugin in preparation for v1.0. GraphQL fields and types have been renamed and reorganized, the codebase is following ecosystem best practices, WP Actions and Filters have been changed to make it easier than ever, and dozens of performance enhancements have been made under the hood.
We expect this release to be the last major breaking release before v1.0. While we can't make any promises, we don't expect to make any more breaking changes to the GraphQL schema beyond those necessary for bug fixes.
What's new
- 🚨 Breaking: Gravity Forms form fields are now autoregistered to the GraphQL schema using their registered GF field settings. That means all form fields (including custom fields) are implictly supported. For development purposes, certain core fields are hidden behind the
WPGRAPHQL_GF_EXPERIMENTAL_FIELDSPHP constant. Learn more.
Note: As a result of this change, the available fields on by theFormFieldinterface and on individual Form field objects have changed. - 🚨 Breaking: Complex Gravity Forms form fields now inherit the properties of their parent
$inputTypes. Form fields that can resolve to multiple types are now registed as GraphQL Interfaces (e.g.PostCategoryField), with their child types as GraphQL objects ( e.g.PostCategoryCheckboxField). - 🚨 Breaking: GraphQL objects and fields have been renamed to be self documenting and prevent naming conflicts. Many fields have also been grouped into new GraphQL objects to improve DX and harden against future breaking schema changes. This is equally true for mutation inputs and payloads.
- 🚨 Breaking: We've replaced the use of
gravityFormsin the schema with thegfshorthand for improved dx.gravityFormsFormsare nowgfForms,updateGravityFormsEntryis nowupdateGfEntry, etc. - 🚨 Breaking: Gravity Forms entries and draft entries now inherit the
gfEntryinterface, and use theGfSubmittedEntryandGfDraftEntryobject types. - 🚨 Breaking: We've renamed and audited the use of all WordPress filter hooks to ensure they're actually helpful. We're using them internally to support plugin extensions, and have provided several docs on how to use them.
- We've added support for WPGatsby Action Monitors.
Behind the scenes
- 🚨 Breaking: The entire PHP codebase has been refactored to follow WPGraphQL ecosystem best practices. The namespaces, folder structure, and many file names have changed.
- 🚨 Breaking: We've removed all previously deprecated code. This includes the DraftEntryUpdater mutations, numerous GraphQL fields, and several PHP classes and interfaces.
- 🚨 Breaking: We're now properly using GraphQL data loaders, models, and connection loaders, bringing with them significant performance boosts. As a result Global Ids are now prefixed with the data loader name, instead of the GraphQL object type.
- We've stopped unnecessarily double-sanitizing and validating input values that are sanitized/validated by Gravity Forms.
Misc
- feat: add connection from Entries to their generated
Postobject. - feat: FormField connections can now be filtered by the form
pageNumber. - feat!: change
dateCreatedanddateUpdatedto be in the site's timezone, and added thedateCreatedGmtanddateUpdatedGmtfor GMT time. - fix: correctly fallback to default upload directory wen using
GFUtils::handle_file_upload(). - fix: don't double sanitize/validate input values that are handled natively by GF.
- fix: prevent existing draft entry properties from being overwritten unnecessarily on update mutations.
- fix!: The default
orderby(formerlysort) direction for Forms is nowDESCto match expected behavior. - dev!: change arguments for
GFUtils::get_resume_url()to allow for empty sourceUrls. - chore: move functionality for GF Signature, Quiz, and Chained Selects to the
WPGraphQL/GF/Extensionsnamespace. - chore: Update Composer deps.
- chore: Update PHPStan to v1.x and lint.
- docs: Updated existing docs to reflect schema changes, and added
Recipesthat explain in detail how to extend the plugin. - tests: Refactored FormField tests to use GF field settings to derive the expected GraphQL response.
- tests: Add tests for
FileUpload,PostCategory,PostImage,PostTags, andSignaturefields, as well as forupdateGfEntryandupdateGfDraftEntrymutations.
Important Schema Changes:
Renamed
- Field
allowsPrepopulatewas renamed tocanPrepopulate. - Field
chainedSelectsHideInactivewas renamed toshouldHideInactiveChoices. - Field
copyValuesOptionFieldwas renamed tocopyValuesOptionFieldId. - Field
disableAutoformatwas renamed toisAutoformatted. - Field
disableMarginswas renamed tohasMargins. - Field
displayAltwas renamed tohasAlt. - Field
displayCaptionwas renamed tohasCaption. - Field
displayDescriptionwas renamed tohasDescription. - Field
displayProgressbarOnConfirmationwas renamed tohasProgressbarOnConfirmation. - Field
displayTitlewas renamed tohasTitle. - Field
emailConfirmEnabledwas renamed tohasEmailConfirmation. - Field
enableAttachmentswas renamed toshouldSendAttachments. - Field
enableAutocompletewas renamed tohasAutocomplete. - Field
enableCalculationwas renamed toisCalculation. - Field
enableChoiceValuewas renamed tohasChoiceValue. - Field
enableColumnswas renamed tohasColumns. - Field
enableCopyValuesOptionwas renamed toshouldCopyValuesOption. - Field
enableEnhancedUIwas renamed tohasEnhancedUI. - Field
enableOtherChoicewas renamed tohasOtherChoice. - Field
enablePasswordInputwas renamed toisPasswordInput. - Field
enablePricewas renamed tohasPrice. - Field
enableSelectAllwas renamed tohasSelectAll. - Field
FormPagination.pageswas renamed topageNames. - Field
gravityFormsEntrieswas renamed togfEntries. It now returns thegfEntryinterface. - Field
gravityFormsEntrywas removed in favor of thegfEntryInterface. - Field
isPasswas renamed toisPassingScore. - Field
multipleFileswas renamed tocanAcceptMultipleFiles. - Field
noDuplicateswas renamed toshouldAllowDuplicates. - Field
passwordStrengthEnabledwas renamed tohasPasswordStrengthIndicator. - Field
postFeaturedImagewas renamed toisFeaturedImage. - Field
useRichTextEditorwas renamed tohasRichTextEditor. - Fields
gravityFormsFormwas renamed togfForm. - Fields
gravityFormsFormswas renamed togfForms. - Mutation
deleteGravityFormsDraftEntryand its associatedInputandPayloadobjects were renamed todeleteGfDraftEntry. - Mutation
deleteGravityFormsEntryand its associatedInputandPayloadobjects were renamed todeleteGfEntryand their fields changed. - Mutation
submitGravityFormsDraftEntryand its associatedInputandPayloadobjects were renamed tosubmitGfDraftEntry. - Mutation
submitGravityFormsFormand its associatedInputandPayloadobjects were renamed tosubmitGfFormand their fields changed. - Mutation
updateGravityFormsDraftEntryand its associatedInputandPayloadobjects were renamed toupdateGfDraftEntry. - Mutation
updateGravityFormsEntryand its associatedInputandPayloadobjects were renamed toupdateGfEntry. - Object
AddressInputwas renamed toAddressFieldInput. - Object
AddressTypeEnumwas renamed toAddressFieldTypeEnum. - Object
Buttonwas renamed toFormButton. - Object
ButtonTypewas renamed toEnum. - Object
CalendarIconTypeEnumwas renamed toFormFieldCalendarIconTypeEnum. - Object
CalendarIconTypeEnumwas renamed toFormFieldCalendarIconTypeEnum. - Object
CaptchaThemeEnumwas renamed toCaptchaFieldThemeEnum. - Object
CaptchaTypeEnumwas renamed toCaptchaFieldTypeEnum. - Object
ChainedSelectInputwas renamed toChainedSelectFieldInput. - Object
ChainedSelectsAlignmentEnumwas renamed toChainedSelectFieldAlignmentEnum. - Object
CheckboxInputwas renamed toCheckboxFieldInput. - Object
ChoicePropertywas replaced with form-field specific{FieldType}FieldChoiceobjects. - Object
ConfirmationTypeEnumwas renamed toFormConfirmationTypeEnum. - Object
ConfirmationTypeEnumwas renamed toFormConfirmationTypeEnum. - Object
DateTypeEnumwas renamed toDateFieldTypeEnum. - Object
DescriptionPlacementPropertyEnumwas renamed toFormFieldDescriptionPlacementEnum. - Object
EmailInputwas renamed toEmailFieldInput. - Object
FieldFiltersOperatorInputEnumwas renamed toFieldFiltersOperatorEnum. - Object
FieldValuesInputwas renamed toFormFieldValuesInput. - Object
FormFieldsEnumwas renamed toFormFieldTypeEnum. - Object
GravityFormsFormand its associated connection object Types were renamed toGfForm. - Object
LabelPlacementPropertyEnumwas renamed toFormFieldLabelPlacementEnumandFormLabelPlacementEnum, depending on the context. - Object
LastPageButtonwas renamed toFormLastPageButton. - Object
MinPasswordStrengthEnumwas renamed toPasswordFieldMinStrengthEnum. - Object
NameInputwas renamed toNameFieldInput. - Object
NotificationToTypeEnumwas renamed toFormNotificationToTypeEnum. - Object
PageProgressStyleEnumwas renamed toFormPageProgressStyleEnum. - Object
PageProgressTypeEnumwas renamed toFormPageProgressTypeEnum. - Object
PostImageValuePropertywas renamed toImageFieldValue. - Object
QuizGradeswas renamed toFormQuizGrades. - Object
QuizGradingTypeEnumwas renamed toQuizFieldGradingTypeEnum. - Object
QuizSettingswas renamed toFormQuiz. - Object
RequiredIndicatorEnumwas renamed to `FormFieldRequ...
v0.9.2 - Bugfixes & Tests
This minor release addresses an issue where PostImageInput would be registered to the schema even if WPGraphQL Upload wasn't enabled, breaking gqty and Gatsby schema generation. We also fixed a few other bugs and some overlooked items in the docs, and added some more WPUnit tests.
- fix: add missing
allowsPrepopulateproperty toPostContentField. - fix:
Utils::maybe_decode_json()support for multidimensional arrays. - fix: Check for WPGraphQL Upload before registering
PostImageInputto the schema. - chore: define WPGraphQL types with
Intinstead ofIntegerfor code consistency. - docs: Add
TimeFieldto list of formFields that take a value input. - docs: add expected object values for
FileUploadValues. - tests: add WPUnit tests for
ListField,MultiSelectField,NameField,TimeField,PostContentField,PostTitleField,PostExcerptField,GFUtils::get_forms(),Utils::maybe_decode_json(), andWPGraphQLGravityForms::instances() - tests: remove tests for
{fieldType}FieldValueedges, since they're deprecated anyway.
Note As part of the road to v1.0, the next release will contain numerous breaking changes to the codebase AND schema, including the removal of deprecated code (such as FieldValue edges). Please prepare accordingly.
v0.9.1 - Gravity Forms Quiz Support
This minor release adds support for Gravity Forms Quiz fields.
- feat: Add support for GF Quiz fields.
- fix: Fixed the type descriptions for
NoDuplicatesPropertyandRadioChoiceProperty. - dev: Use
GF_Field::get_input_type()when choosing how to handle input values. This will allow for better support of composite type fields in the future. - docs: Update language regarding
UpdateDraftEntryFieldValue's upcoming deprecation. - docs: Fix link to Deleting Entries doc.
- tests: Add WPUnit tests for
EmailField.
v0.9.0 - Conditional Logic Support on Confirmations
This minor release adds the conditionalLogic GraphQL field to gravityFormsForm.confirmations. We also squashed a few bugs and implemented some more WPUnit tests.
Note: This release technically contains breaking changes for developers making use of DataManipulator class methods in their own code.
- feat: add
conditionalLogicGraphQL field togravityFormsForm.confirmations. - fix: consistently apply Gravity Forms filters and WPGraphQL error checking to
GFUtils::get_forms(). - dev!: makes
DataManipulatormethods static. If you are using any DataManipulator methods in your custom code, please update accordingly. - tests: Refactor formField tests to extend
FormFieldTestCase. - tests: add WPUnit tests for
HtmlField,PageField,PhoneField,SectionField,SelectField,RadioField, andWebsiteField. - chore: update Composer deps.
v0.8.2 - Bugfix
This minor release fixes hasNextPage and hasPreviousPage checks on Entry connections.
- fix: use
entryIdsin cursor forhasNextPageandhavePreviousPagechecks in the Entries resolver. - tests: add tests for
has{Next|Previous}Pageon Form and Entry Connections. - tests: add tests for
HiddenField, andNumberField. - dev: update Composer dependencies.