Calculated Fields Form - Version 1.1.131

Version Description

  • Modifies the slider, checkbox, radio buttons, and dropdown controls.
  • Modifies the HubSpot integration (Platinum versions).
Download this release

Release Info

Developer codepeople
Plugin Icon 128x128 Calculated Fields Form
Version 1.1.131
Comparing to
See all releases

Code changes from version 1.1.130 to 1.1.131

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://cff.dwbooster.com
4
  Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
5
  Requires at least: 3.0.5
6
  Tested up to: 6.1
7
- Stable tag: 1.1.130
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -965,6 +965,11 @@ A: Please, follow the steps below:
965
 
966
  == Changelog ==
967
 
 
 
 
 
 
968
  = 1.1.130 =
969
 
970
  * Implements two new operations VALIDFORM and VALIDFIELD to validate the forms and fields from the equations and buttons.
@@ -1016,8 +1021,4 @@ A: Please, follow the steps below:
1016
  = 1.1.122 =
1017
 
1018
  * Loads the font files locally instead of Google Fonts.
1019
- * Fixes an issue with Phone fields.
1020
-
1021
- = 1.1.121 =
1022
-
1023
- * Improves the plugin security.
4
  Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
5
  Requires at least: 3.0.5
6
  Tested up to: 6.1
7
+ Stable tag: 1.1.131
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
965
 
966
  == Changelog ==
967
 
968
+ = 1.1.131 =
969
+
970
+ * Modifies the slider, checkbox, radio buttons, and dropdown controls.
971
+ * Modifies the HubSpot integration (Platinum versions).
972
+
973
  = 1.1.130 =
974
 
975
  * Implements two new operations VALIDFORM and VALIDFIELD to validate the forms and fields from the equations and buttons.
1021
  = 1.1.122 =
1022
 
1023
  * Loads the font files locally instead of Google Fonts.
1024
+ * Fixes an issue with Phone fields.
 
 
 
 
changelog.txt CHANGED
@@ -1,5 +1,10 @@
1
  == Changelog ==
2
 
 
 
 
 
 
3
  = 1.1.130 =
4
 
5
  * Implements two new operations VALIDFORM and VALIDFIELD to validate the forms and fields from the equations and buttons.
1
  == Changelog ==
2
 
3
+ = 1.1.131 =
4
+
5
+ * Modifies the slider, checkbox, radio buttons, and dropdown controls.
6
+ * Modifies the HubSpot integration (Platinum versions).
7
+
8
  = 1.1.130 =
9
 
10
  * Implements two new operations VALIDFORM and VALIDFIELD to validate the forms and fields from the equations and buttons.
cp_calculatedfieldsf_free.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Calculated Fields Form
4
  Plugin URI: https://cff.dwbooster.com
5
  Description: Create forms with field values calculated based in other form field values.
6
- Version: 1.1.130
7
  Text Domain: calculated-fields-form
8
  Author: CodePeople
9
  Author URI: https://cff.dwbooster.com
@@ -15,7 +15,7 @@ if ( ! defined( 'WP_DEBUG' ) || true != WP_DEBUG ) {
15
  }
16
 
17
  // Defining main constants
18
- define( 'CP_CALCULATEDFIELDSF_VERSION', '1.1.130' );
19
  define( 'CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
20
  define( 'CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
21
  define( 'CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
3
  Plugin Name: Calculated Fields Form
4
  Plugin URI: https://cff.dwbooster.com
5
  Description: Create forms with field values calculated based in other form field values.
6
+ Version: 1.1.131
7
  Text Domain: calculated-fields-form
8
  Author: CodePeople
9
  Author URI: https://cff.dwbooster.com
15
  }
16
 
17
  // Defining main constants
18
+ define( 'CP_CALCULATEDFIELDSF_VERSION', '1.1.131' );
19
  define( 'CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
20
  define( 'CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
21
  define( 'CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
js/fbuilder-pro-public.jquery.js CHANGED
@@ -1,4 +1,4 @@
1
- $.fbuilder['version'] = '1.1.130';
2
  $.fbuilder['controls'] = $.fbuilder['controls'] || {};
3
  $.fbuilder['forms'] = $.fbuilder['forms'] || {};
4
 
1
+ $.fbuilder['version'] = '1.1.131';
2
  $.fbuilder['controls'] = $.fbuilder['controls'] || {};
3
  $.fbuilder['forms'] = $.fbuilder['forms'] || {};
4
 
js/fields-public/02_fbuilder.fslider.js CHANGED
@@ -29,26 +29,26 @@
29
  var el = $('#'+this.name+'_slider'),
30
  step = el.slider('option', 'step'),
31
  min = Math.max(el.slider('option', 'min'), step),
32
- max = el.slider('option', 'max'),
33
 
34
- minv = Math.log(Math.max(min, 0.1)),
35
  maxv = Math.log(max),
36
  scale = (maxv - minv) / (max - min);
37
 
38
- return ROUND( ROUND( Math.exp( minv + scale * ( v - min ) ) / step ) * step, step ) * 1;
39
  },
40
  _inverse : function(v)
41
  {
42
  var el = $('#'+this.name+'_slider'),
43
- min = el.slider('option', 'min'),
44
- max = el.slider('option', 'max'),
45
  step = el.slider('option', 'step'),
 
 
46
 
47
  minv = Math.log(Math.max(min, 0.1)),
48
  maxv = Math.log(max),
49
  scale = (maxv - minv) / (max - min);
50
 
51
- return ROUND( ROUND( ( ( Math.log( v ) - minv ) / scale + min ) / step ) * step, step ) * 1;
52
  },
53
  _setThousandsSeparator : function(v)
54
  {
29
  var el = $('#'+this.name+'_slider'),
30
  step = el.slider('option', 'step'),
31
  min = Math.max(el.slider('option', 'min'), step),
32
+ max = FLOOR(el.slider('option', 'max')/step)*step,
33
 
34
+ minv = Math.log(Math.max(min, 0.01)),
35
  maxv = Math.log(max),
36
  scale = (maxv - minv) / (max - min);
37
 
38
+ return ROUND(Math.exp( minv + scale * ( v - min ) ), step);
39
  },
40
  _inverse : function(v)
41
  {
42
  var el = $('#'+this.name+'_slider'),
 
 
43
  step = el.slider('option', 'step'),
44
+ min = Math.max(el.slider('option', 'min'), step),
45
+ max = FLOOR(el.slider('option', 'max')/step)*step,
46
 
47
  minv = Math.log(Math.max(min, 0.1)),
48
  maxv = Math.log(max),
49
  scale = (maxv - minv) / (max - min);
50
 
51
+ return ROUND( ( ( Math.log( v ) - minv ) / scale + min ), step );
52
  },
53
  _setThousandsSeparator : function(v)
54
  {
js/fields-public/06_fbuilder.fcheck.js CHANGED
@@ -32,12 +32,12 @@
32
 
33
  classDep = (this.choicesDep[i].length) ? 'depItem': '';
34
 
35
- str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'"><input aria-label="'+cff_esc_attr(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+cff_esc_attr(this.choicesVal[i])+'" vt="'+cff_esc_attr((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choiceSelected[i])?"checked":"")+'/> '+
36
  (this.onoff ? '<span class="cff-switch"></span>': '') +
37
  '<span>'+
38
  cff_html_decode(this.choices[i])+'</span></label></div>';
39
  }
40
- return '<div class="fields '+cff_esc_attr(this.csslayout)+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
41
  },
42
  enable_disable:function()
43
  {
@@ -172,16 +172,12 @@
172
  }
173
  var html = me.show(),
174
  e = $('.'+me.name),
175
- c = e.attr('class'),
176
  i = e.find('.ignore').length,
177
  ipb = e.find('.ignorepb').length;
178
- e.replaceWith(html);
179
- e = $('.'+me.name);
180
- e.attr('class', c);
181
  if(i) e.find('input').addClass('ignore');
182
  if(ipb) e.find('input').addClass('ignorepb');
183
- if(i || ipb) e.hide();
184
- if(!$.isArray(bk)) bk = [bk];
185
  for(var j in bk)
186
  {
187
  try{ bk[j] = JSON.parse(bk[j]); }catch(err){}
32
 
33
  classDep = (this.choicesDep[i].length) ? 'depItem': '';
34
 
35
+ str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'" '+(!this.tooltipIcon && this.userhelpTooltip && this.userhelp && this.userhelp.length ? 'uh="'+cff_esc_attr(this.userhelp)+'"' : '')+'><input aria-label="'+cff_esc_attr(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+cff_esc_attr(this.choicesVal[i])+'" vt="'+cff_esc_attr((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choiceSelected[i])?"checked":"")+'/> '+
36
  (this.onoff ? '<span class="cff-switch"></span>': '') +
37
  '<span>'+
38
  cff_html_decode(this.choices[i])+'</span></label></div>';
39
  }
40
+ return '<div class="fields '+cff_esc_attr(this.csslayout)+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div>'+(!this.userhelpTooltip ? '<span class="uh">'+this.userhelp+'</span>' : '')+'</div><div class="clearer"></div></div>';
41
  },
42
  enable_disable:function()
43
  {
172
  }
173
  var html = me.show(),
174
  e = $('.'+me.name),
 
175
  i = e.find('.ignore').length,
176
  ipb = e.find('.ignorepb').length;
177
+ e.find('.dfield').replaceWith($(html).find('.dfield'));
 
 
178
  if(i) e.find('input').addClass('ignore');
179
  if(ipb) e.find('input').addClass('ignorepb');
180
+ if(!$.isArray(bk)) bk = [bk];
 
181
  for(var j in bk)
182
  {
183
  try{ bk[j] = JSON.parse(bk[j]); }catch(err){}
js/fields-public/07_fbuilder.fradio.js CHANGED
@@ -41,12 +41,12 @@
41
 
42
  for (var i=0;i<l;i++)
43
  {
44
- str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'"><input aria-label="'+cff_esc_attr(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+cff_esc_attr(this.choicesVal[i])+'" vt="'+cff_esc_attr((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+
45
  (this.onoff ? '<span class="cff-switch"></span>': '') +
46
  '<span>'+cff_html_decode(this.choices[i])+'</span></label></div>';
47
  }
48
 
49
- return '<div class="fields '+cff_esc_attr(this.csslayout)+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
50
  },
51
  after_show: function()
52
  {
@@ -162,16 +162,12 @@
162
  }
163
  var html = this.show(),
164
  e = $('.'+this.name),
165
- c = e.attr('class'),
166
  i = e.find('.ignore').length,
167
  ipb = e.find('.ignorepb').length;
168
- e.replaceWith(html);
169
- e = $('.'+this.name);
170
- e.attr('class', c);
171
  if(i) e.find('input').addClass('ignore');
172
  if(ipb) e.find('input').addClass('ignorepb');
173
- if(i || ipb) e.hide();
174
- try{ bk = JSON.parse(bk); }catch(err){}
175
  this.setVal(bk, this.choicesVal.indexOf(bk) > -1);
176
  }
177
  },
41
 
42
  for (var i=0;i<l;i++)
43
  {
44
+ str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'" '+(!this.tooltipIcon && this.userhelpTooltip && this.userhelp && this.userhelp.length ? 'uh="'+cff_esc_attr(this.userhelp)+'"' : '')+'><input aria-label="'+cff_esc_attr(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+cff_esc_attr(this.choicesVal[i])+'" vt="'+cff_esc_attr((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> '+
45
  (this.onoff ? '<span class="cff-switch"></span>': '') +
46
  '<span>'+cff_html_decode(this.choices[i])+'</span></label></div>';
47
  }
48
 
49
+ return '<div class="fields '+cff_esc_attr(this.csslayout)+(this.onoff ? ' cff-switch-container' : '')+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div>'+(!this.userhelpTooltip ? '<span class="uh">'+this.userhelp+'</span>' : '')+'</div><div class="clearer"></div></div>';
50
  },
51
  after_show: function()
52
  {
162
  }
163
  var html = this.show(),
164
  e = $('.'+this.name),
 
165
  i = e.find('.ignore').length,
166
  ipb = e.find('.ignorepb').length;
167
+ e.find('.dfield').replaceWith($(html).find('.dfield'));
 
 
168
  if(i) e.find('input').addClass('ignore');
169
  if(ipb) e.find('input').addClass('ignorepb');
170
+ try{ bk = JSON.parse(bk); }catch(err){}
 
171
  this.setVal(bk, this.choicesVal.indexOf(bk) > -1);
172
  }
173
  },
js/fields-public/08_fbuilder.fdropdown.js CHANGED
@@ -198,17 +198,9 @@
198
  }
199
  if('optgroup' in choices && $.isArray(choices.optgroup)) me.optgroup = choices.optgroup;
200
  var html = me.show(),
201
- e = $('.'+me.name),
202
- c = e.attr('class'),
203
- i = e.find('.ignore').length,
204
- ipb = e.find('.ignorepb').length;
205
- e.replaceWith(html);
206
- e = $('.'+me.name);
207
- e.attr('class', c);
208
- if(i) e.find('select').addClass('ignore');
209
- if(ipb) e.find('select').addClass('ignorepb');
210
- if(i || ipb) e.hide();
211
- if(!$.isArray(bk)) bk = [bk];
212
  for(var j in bk)
213
  {
214
  try{ bk[j] = JSON.parse(bk[j]); }catch(err){}
198
  }
199
  if('optgroup' in choices && $.isArray(choices.optgroup)) me.optgroup = choices.optgroup;
200
  var html = me.show(),
201
+ e = $('.'+me.name);
202
+ e.find('select').html($(html).find('select').html());
203
+ if(!$.isArray(bk)) bk = [bk];
 
 
 
 
 
 
 
 
204
  for(var j in bk)
205
  {
206
  try{ bk[j] = JSON.parse(bk[j]); }catch(err){}