From 2f294712f3db0d165a98a3a69e27183254cdd188 Mon Sep 17 00:00:00 2001 From: Sasha Ivanenko <46720998+girafffee@users.noreply.github.com> Date: Thu, 30 May 2024 11:15:08 +0300 Subject: [PATCH] FIX: honeypot protection breaks the form on frontend Crocoblock/issues-tracker#9507 --- README.md | 4 ++++ .../assets/build/frontend/field.asset.php | 2 +- .../text-field/assets/build/frontend/field.js | 2 +- .../assets/src/frontend/field/TextFieldData.js | 18 ++++++++++-------- readme.txt | 6 +++++- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cf5e7b578..39f046cca 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ Advanced form builder plugin for Gutenberg. Create forms from the ground up, cus # ChangeLog +## 3.3.4.1 +* FIX: Advanced Validation with Server-Side callback does not work on frontend +* FIX: Honeypot protection breaks the form on frontend + ## 3.3.4 * ADD: Eye-icon for password field * ADD: Gap controls for Checkbox / Radio fields (props [@stijnvanouplines](https://github.com/stijnvanouplines)) diff --git a/modules/blocks-v2/text-field/assets/build/frontend/field.asset.php b/modules/blocks-v2/text-field/assets/build/frontend/field.asset.php index e9c76feb3..f410c2453 100644 --- a/modules/blocks-v2/text-field/assets/build/frontend/field.asset.php +++ b/modules/blocks-v2/text-field/assets/build/frontend/field.asset.php @@ -1 +1 @@ - array(), 'version' => '6d381aba3d76144f0544'); + array(), 'version' => 'fdcba2bd90226fb98b82'); diff --git a/modules/blocks-v2/text-field/assets/build/frontend/field.js b/modules/blocks-v2/text-field/assets/build/frontend/field.js index 77850fb65..17f27e725 100644 --- a/modules/blocks-v2/text-field/assets/build/frontend/field.js +++ b/modules/blocks-v2/text-field/assets/build/frontend/field.js @@ -1 +1 @@ -(()=>{"use strict";const{InputData:t}=JetFormBuilderAbstract;function e(){t.call(this),this.isSupported=function(t){return!0},this.addListeners=function(){t.prototype.addListeners.call(this);const[e]=this.nodes,i=this.getWrapperNode().querySelector(".jfb-eye-icon");i&&(i.addEventListener("click",(function(){i.classList.toggle("seen");let t="true"===this.getAttribute("aria-pressed");this.setAttribute("aria-pressed",!t),e.type=i.classList.contains("seen")?"password":"text"})),i.addEventListener("keydown",(function(t){" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),this.click())})),i.addEventListener("keyup",(function(t){" "===t.key&&t.preventDefault()})))}}e.prototype=Object.create(t.prototype);const i=e,{BaseSignal:n}=JetFormBuilderAbstract;function s(){n.call(this),this.isSupported=function(t,e){return!0},this.runSignal=function(){this.input.calcValue=Number.isNaN(Number(this.input.calcValue))?this.input.calcValue:parseFloat(this.input.calcValue);const[t]=this.input.nodes;t.value!==this.input.value.current&&(t.value=this.input.value.current,this.triggerJQuery(t))}}s.prototype=Object.create(n.prototype);const r=s,{addFilter:u}=JetPlugins.hooks;u("jet.fb.inputs","jet-form-builder/text-field",(function(t){return t.push(i),t}),999),u("jet.fb.signals","jet-form-builder/text-field",(function(t){return t.push(r),t}),999)})(); \ No newline at end of file +(()=>{"use strict";const{InputData:t}=JetFormBuilderAbstract;function e(){t.call(this),this.isSupported=function(t){return!0},this.addListeners=function(){t.prototype.addListeners.call(this);const[e]=this.nodes,i=this.getWrapperNode()?.querySelector?.(".jfb-eye-icon");i&&(i.addEventListener("click",(function(){i.classList.toggle("seen");let t="true"===this.getAttribute("aria-pressed");this.setAttribute("aria-pressed",!t),e.type=i.classList.contains("seen")?"password":"text"})),i.addEventListener("keydown",(function(t){" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),this.click())})),i.addEventListener("keyup",(function(t){" "===t.key&&t.preventDefault()})))}}e.prototype=Object.create(t.prototype);const i=e,{BaseSignal:n}=JetFormBuilderAbstract;function s(){n.call(this),this.isSupported=function(t,e){return!0},this.runSignal=function(){this.input.calcValue=Number.isNaN(Number(this.input.calcValue))?this.input.calcValue:parseFloat(this.input.calcValue);const[t]=this.input.nodes;t.value!==this.input.value.current&&(t.value=this.input.value.current,this.triggerJQuery(t))}}s.prototype=Object.create(n.prototype);const r=s,{addFilter:u}=JetPlugins.hooks;u("jet.fb.inputs","jet-form-builder/text-field",(function(t){return t.push(i),t}),999),u("jet.fb.signals","jet-form-builder/text-field",(function(t){return t.push(r),t}),999)})(); \ No newline at end of file diff --git a/modules/blocks-v2/text-field/assets/src/frontend/field/TextFieldData.js b/modules/blocks-v2/text-field/assets/src/frontend/field/TextFieldData.js index 1494f982a..78f94a8b1 100644 --- a/modules/blocks-v2/text-field/assets/src/frontend/field/TextFieldData.js +++ b/modules/blocks-v2/text-field/assets/src/frontend/field/TextFieldData.js @@ -1,7 +1,6 @@ const { - InputData, -} = JetFormBuilderAbstract; - + InputData, + } = JetFormBuilderAbstract; function TextFieldData() { InputData.call( this ); @@ -15,8 +14,9 @@ function TextFieldData() { const [ node ] = this.nodes; - const wrapper = this.getWrapperNode(); - const button = wrapper.querySelector( '.jfb-eye-icon' ); + const button = this.getWrapperNode()?.querySelector?.( + '.jfb-eye-icon', + ); // show eye icon is disabled if ( !button ) { @@ -24,11 +24,13 @@ function TextFieldData() { } button.addEventListener( 'click', function () { - button.classList.toggle( 'seen' ); + button.classList.toggle( 'seen' ); let isPressed = this.getAttribute( 'aria-pressed' ) === 'true'; this.setAttribute( 'aria-pressed', !isPressed ); - node.type = button.classList.contains( 'seen' ) ? 'password' : 'text'; + node.type = button.classList.contains( 'seen' ) + ? 'password' + : 'text'; } ); button.addEventListener( 'keydown', function ( event ) { @@ -43,7 +45,7 @@ function TextFieldData() { event.preventDefault(); } } ); - } + }; } TextFieldData.prototype = Object.create( InputData.prototype ); diff --git a/readme.txt b/readme.txt index 483c1ffbb..ea527155d 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: blocks, forms, form builder, contact form, gutenberg, gutenberg forms, mul Requires at least: 6.0 Tested up to: 6.5.3 Requires PHP: 7.0 -Stable tag: 3.3.4 +Stable tag: 3.3.4.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -272,6 +272,10 @@ Once you set the