From 07a537c133ee508ed3d17169c90b8165dfab1e32 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:33:27 +0300 Subject: [PATCH 1/7] Fix submit button auto order change --- classes/models/FrmForm.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index 1c19afa664..f477f8c9c8 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -516,7 +516,11 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel foreach ( $field_cols as $col => $default ) { $default = $default === '' ? $field->{$col} : $default; - $new_field[ $col ] = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; + if ( 'field_order' === $col && $field->type === 'submit' && '9999' === $values['field_options'][ $col . '_' . $field->id ] ) { + $new_field[ $col ] = $field->field_order; + } else { + $new_field[ $col ] = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; + } } // Don't save the template option. From 8f5154544d73fb2afbfc5a900012d53ab44f283c Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:41:38 +0300 Subject: [PATCH 2/7] Rearrange checks --- classes/models/FrmForm.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index f477f8c9c8..9584570177 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -516,7 +516,7 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel foreach ( $field_cols as $col => $default ) { $default = $default === '' ? $field->{$col} : $default; - if ( 'field_order' === $col && $field->type === 'submit' && '9999' === $values['field_options'][ $col . '_' . $field->id ] ) { + if ( '9999' === $values['field_options'][ $col . '_' . $field->id ] && $field->type === 'submit' && 'field_order' === $col ) { $new_field[ $col ] = $field->field_order; } else { $new_field[ $col ] = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; From f66139b79e07735bffd70961e5eb44cf7c3e3257 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:51:29 +0300 Subject: [PATCH 3/7] Improve fix --- classes/models/FrmForm.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index 9584570177..2d9cd92b0d 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -516,11 +516,8 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel foreach ( $field_cols as $col => $default ) { $default = $default === '' ? $field->{$col} : $default; - if ( '9999' === $values['field_options'][ $col . '_' . $field->id ] && $field->type === 'submit' && 'field_order' === $col ) { - $new_field[ $col ] = $field->field_order; - } else { - $new_field[ $col ] = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; - } + $new_value = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; + $new_field[ $col ] = ( '9999' === $new_value && $field->type === 'submit' && 'field_order' === $col ) ? $field->field_order : $new_value; } // Don't save the template option. From b588918517f2cd1c256e148ef2e9f3578d86373b Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:26:31 +0300 Subject: [PATCH 4/7] Create constant for default submit order and use it --- classes/controllers/FrmFormsController.php | 2 +- classes/helpers/FrmSubmitHelper.php | 7 +++++++ classes/models/FrmForm.php | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/classes/controllers/FrmFormsController.php b/classes/controllers/FrmFormsController.php index bdf4d0874e..f271a01a04 100644 --- a/classes/controllers/FrmFormsController.php +++ b/classes/controllers/FrmFormsController.php @@ -170,7 +170,7 @@ private static function create_submit_button_field( $form ) { array( 'type' => FrmSubmitHelper::FIELD_TYPE, 'name' => __( 'Submit', 'formidable' ), - 'field_order' => 9999, + 'field_order' => FrmSubmitHelper::DEFAULT_ORDER, 'form_id' => $form->id, 'field_options' => FrmFieldsHelper::get_default_field_options( FrmSubmitHelper::FIELD_TYPE ), 'description' => '', diff --git a/classes/helpers/FrmSubmitHelper.php b/classes/helpers/FrmSubmitHelper.php index 067c6d94ea..87c22fe181 100644 --- a/classes/helpers/FrmSubmitHelper.php +++ b/classes/helpers/FrmSubmitHelper.php @@ -22,6 +22,13 @@ class FrmSubmitHelper { */ const FIELD_TYPE = 'submit'; + /** + * Default order for submit field. + * + * @var int + */ + const DEFAULT_ORDER = 9999; + /** * Gets submit field object. * diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index 2d9cd92b0d..b5725b6881 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -517,7 +517,7 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel $default = $default === '' ? $field->{$col} : $default; $new_value = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; - $new_field[ $col ] = ( '9999' === $new_value && $field->type === 'submit' && 'field_order' === $col ) ? $field->field_order : $new_value; + $new_field[ $col ] = FrmSubmitHelper::DEFAULT_ORDER === intval( $new_value ) && $field->type === 'submit' && 'field_order' === $col ? $field->field_order : $new_value; } // Don't save the template option. From 4e275153001abf6e5b670d7e6567f7f9e3f2b560 Mon Sep 17 00:00:00 2001 From: Abdi Tolessa <41271840+AbdiTolesa@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:28:41 +0300 Subject: [PATCH 5/7] Fix PHPCS error --- classes/models/FrmForm.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index b5725b6881..ee2ae8e66f 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -516,7 +516,7 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel foreach ( $field_cols as $col => $default ) { $default = $default === '' ? $field->{$col} : $default; - $new_value = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; + $new_value = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; $new_field[ $col ] = FrmSubmitHelper::DEFAULT_ORDER === intval( $new_value ) && $field->type === 'submit' && 'field_order' === $col ? $field->field_order : $new_value; } From 3a8c9e6b666909e07ac5d6ebe6b2e560f29a652f Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Tue, 12 Nov 2024 16:25:36 -0400 Subject: [PATCH 6/7] Use proposed fix --- classes/models/FrmForm.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/classes/models/FrmForm.php b/classes/models/FrmForm.php index ee2ae8e66f..b119ed3f1b 100644 --- a/classes/models/FrmForm.php +++ b/classes/models/FrmForm.php @@ -514,10 +514,12 @@ private static function prepare_field_update_values( $field, $values, &$new_fiel 'name' => '', ); foreach ( $field_cols as $col => $default ) { - $default = $default === '' ? $field->{$col} : $default; + $default = $default === '' ? $field->{$col} : $default; + $new_field[ $col ] = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; + } - $new_value = isset( $values['field_options'][ $col . '_' . $field->id ] ) ? $values['field_options'][ $col . '_' . $field->id ] : $default; - $new_field[ $col ] = FrmSubmitHelper::DEFAULT_ORDER === intval( $new_value ) && $field->type === 'submit' && 'field_order' === $col ? $field->field_order : $new_value; + if ( $field->type === 'submit' && isset( $new_field['field_order'] ) && (int) $new_field['field_order'] === FrmSubmitHelper::DEFAULT_ORDER ) { + $new_field['field_order'] = $field->field_order; } // Don't save the template option. From 44eec518a5f5a22974b91fc08fc53b4aa60aeb40 Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Tue, 12 Nov 2024 16:27:09 -0400 Subject: [PATCH 7/7] Add additional change log entry --- changelog.txt | 1 + readme.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index fe94a4a9cf..f1c83d6bfe 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ = 6.16 = * New: The sanitizing for layout classes has been updated to allow `[` and `]` characters, enabling the use of basic shortcodes. * Fix: JavaScript validation would get skipped when a form included an invisible reCAPTCHA field. +* Fix: Submit buttons would appear out of place after saving a form. * Fix: Nothing would copy when trying to click the icon to copy a style class name. * Fix: A white element would appear at the bottom of the plugins page. * Fix: A Cannot read properties of undefined at removeFieldError error has been fixed. diff --git a/readme.txt b/readme.txt index 27f55c3663..025380af68 100644 --- a/readme.txt +++ b/readme.txt @@ -374,6 +374,7 @@ See all [Formidable Zapier Integrations](https://zapier.com/apps/formidable/inte = 6.16 = * New: The sanitizing for layout classes has been updated to allow `[` and `]` characters, enabling the use of basic shortcodes. * Fix: JavaScript validation would get skipped when a form included an invisible reCAPTCHA field. +* Fix: Submit buttons would appear out of place after saving a form. * Fix: Nothing would copy when trying to click the icon to copy a style class name. * Fix: A white element would appear at the bottom of the plugins page. * Fix: A Cannot read properties of undefined at removeFieldError error has been fixed.