Formidable Forms – Form Builder for WordPress - Version 3.03

Version Description

  • Fix: Custom css like #frm_field_196_container > label was being sanitized and preventing the > from working correctly
  • Fix: Allow to pass sanitization in checkbox and radio field options
  • Fix: A warning message in the form style builder was sometimes appearing multiple times and not closing
  • Move datepicker css and images to Pro form builder
Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 3.03
Comparing to
See all releases

Code changes from version 3.02.02 to 3.03

classes/controllers/FrmStylesController.php CHANGED
@@ -110,7 +110,6 @@ class FrmStylesController {
110
  public static function custom_stylesheet() {
111
  global $frm_vars;
112
  $stylesheet_urls = array();
113
- self::maybe_enqueue_jquery_css();
114
 
115
  if ( ! isset( $frm_vars['css_loaded'] ) || ! $frm_vars['css_loaded'] ) {
116
  //include css in head
@@ -157,13 +156,6 @@ class FrmStylesController {
157
  return $this_version;
158
  }
159
 
160
- private static function maybe_enqueue_jquery_css() {
161
- global $frm_vars;
162
- if ( isset( $frm_vars['datepicker_loaded'] ) && ! empty( $frm_vars['datepicker_loaded'] ) ) {
163
- FrmStylesHelper::enqueue_jquery_css();
164
- }
165
- }
166
-
167
  public static function add_tags_to_css( $tag, $handle ) {
168
  if ( ( 'formidable' == $handle || 'jquery-theme' == $handle ) && strpos( $tag, ' property=' ) === false ) {
169
  $frm_settings = FrmAppHelper::get_settings();
110
  public static function custom_stylesheet() {
111
  global $frm_vars;
112
  $stylesheet_urls = array();
 
113
 
114
  if ( ! isset( $frm_vars['css_loaded'] ) || ! $frm_vars['css_loaded'] ) {
115
  //include css in head
156
  return $this_version;
157
  }
158
 
 
 
 
 
 
 
 
159
  public static function add_tags_to_css( $tag, $handle ) {
160
  if ( ( 'formidable' == $handle || 'jquery-theme' == $handle ) && strpos( $tag, ' property=' ) === false ) {
161
  $frm_settings = FrmAppHelper::get_settings();
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '3.02.02';
15
 
16
  /**
17
  * @since 1.07.02
@@ -475,7 +475,11 @@ class FrmAppHelper {
475
  'h4' => $allow_class,
476
  'h5' => $allow_class,
477
  'h6' => $allow_class,
478
- 'i' => $allow_class,
 
 
 
 
479
  'img' => array(
480
  'alt' => array(),
481
  'class' => array(),
@@ -1645,6 +1649,7 @@ class FrmAppHelper {
1645
  'no_save_warning' => __( 'Warning: There is no way to retrieve unsaved entries.', 'formidable' ),
1646
  'private' => __( 'Private' ),
1647
  'jquery_ui_url' => self::jquery_ui_base_url(),
 
1648
  'no_licenses' => __( 'No new licenses were found', 'formidable' ),
1649
  'unmatched_parens' => __( 'This calculation has at least one unmatched ( ) { } [ ].', 'formidable' ),
1650
  'view_shortcodes' => __( 'This calculation may have shortcodes that work in Views but not forms.', 'formidable' ),
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '3.03';
15
 
16
  /**
17
  * @since 1.07.02
475
  'h4' => $allow_class,
476
  'h5' => $allow_class,
477
  'h6' => $allow_class,
478
+ 'i' => array(
479
+ 'class' => array(),
480
+ 'id' => array(),
481
+ 'icon' => array(),
482
+ ),
483
  'img' => array(
484
  'alt' => array(),
485
  'class' => array(),
1649
  'no_save_warning' => __( 'Warning: There is no way to retrieve unsaved entries.', 'formidable' ),
1650
  'private' => __( 'Private' ),
1651
  'jquery_ui_url' => self::jquery_ui_base_url(),
1652
+ 'pro_url' => is_callable( 'FrmProAppHelper::plugin_url' ) ? FrmProAppHelper::plugin_url() : '',
1653
  'no_licenses' => __( 'No new licenses were found', 'formidable' ),
1654
  'unmatched_parens' => __( 'This calculation has at least one unmatched ( ) { } [ ].', 'formidable' ),
1655
  'view_shortcodes' => __( 'This calculation may have shortcodes that work in Views but not forms.', 'formidable' ),
classes/helpers/FrmStylesHelper.php CHANGED
@@ -1,7 +1,13 @@
1
  <?php
2
  class FrmStylesHelper {
3
 
 
 
 
 
4
  public static function jquery_themes() {
 
 
5
  $themes = array(
6
  'ui-lightness' => 'UI Lightness',
7
  'ui-darkness' => 'UI Darkness',
@@ -33,7 +39,13 @@ class FrmStylesHelper {
33
  return $themes;
34
  }
35
 
 
 
 
 
36
  public static function jquery_css_url( $theme_css ) {
 
 
37
  if ( $theme_css == -1 ) {
38
  return;
39
  }
@@ -55,7 +67,13 @@ class FrmStylesHelper {
55
  return $css_file;
56
  }
57
 
 
 
 
 
58
  public static function enqueue_jquery_css() {
 
 
59
  $form = self::get_form_for_page();
60
  $theme_css = FrmStylesController::get_style_val( 'theme_css', $form );
61
  if ( $theme_css != -1 ) {
@@ -63,7 +81,13 @@ class FrmStylesHelper {
63
  }
64
  }
65
 
 
 
 
 
66
  public static function get_form_for_page() {
 
 
67
  global $frm_vars;
68
  $form_id = 'default';
69
  if ( ! empty( $frm_vars['forms_loaded'] ) ) {
1
  <?php
2
  class FrmStylesHelper {
3
 
4
+ /**
5
+ * @deprecated 3.02.03
6
+ * @codeCoverageIgnore
7
+ */
8
  public static function jquery_themes() {
9
+ _deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::jquery_themes' );
10
+
11
  $themes = array(
12
  'ui-lightness' => 'UI Lightness',
13
  'ui-darkness' => 'UI Darkness',
39
  return $themes;
40
  }
41
 
42
+ /**
43
+ * @deprecated 3.02.03
44
+ * @codeCoverageIgnore
45
+ */
46
  public static function jquery_css_url( $theme_css ) {
47
+ _deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::jquery_css_url' );
48
+
49
  if ( $theme_css == -1 ) {
50
  return;
51
  }
67
  return $css_file;
68
  }
69
 
70
+ /**
71
+ * @deprecated 3.02.03
72
+ * @codeCoverageIgnore
73
+ */
74
  public static function enqueue_jquery_css() {
75
+ _deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::enqueue_jquery_css' );
76
+
77
  $form = self::get_form_for_page();
78
  $theme_css = FrmStylesController::get_style_val( 'theme_css', $form );
79
  if ( $theme_css != -1 ) {
81
  }
82
  }
83
 
84
+ /**
85
+ * @deprecated 3.02.03
86
+ * @codeCoverageIgnore
87
+ */
88
  public static function get_form_for_page() {
89
+ _deprecated_function( __METHOD__, '3.02.03' );
90
+
91
  global $frm_vars;
92
  $form_id = 'default';
93
  if ( ! empty( $frm_vars['forms_loaded'] ) ) {
classes/models/FrmForm.php CHANGED
@@ -242,9 +242,7 @@ class FrmForm {
242
 
243
  foreach ( $update_options as $opt => $default ) {
244
  $field->field_options[ $opt ] = isset( $values['field_options'][ $opt . '_' . $field_id ] ) ? $values['field_options'][ $opt . '_' . $field_id ] : $default;
245
- if ( is_string( $field->field_options[ $opt ] ) ) {
246
- $field->field_options[ $opt ] = trim( FrmAppHelper::kses( $field->field_options[ $opt ], 'all' ) );
247
- }
248
  }
249
 
250
  $field->field_options = apply_filters( 'frm_update_field_options', $field->field_options, $field, $values );
@@ -266,6 +264,17 @@ class FrmForm {
266
  return $values;
267
  }
268
 
 
 
 
 
 
 
 
 
 
 
 
269
  /**
270
  * updating the settings page
271
  */
242
 
243
  foreach ( $update_options as $opt => $default ) {
244
  $field->field_options[ $opt ] = isset( $values['field_options'][ $opt . '_' . $field_id ] ) ? $values['field_options'][ $opt . '_' . $field_id ] : $default;
245
+ self::sanitize_field_opt( $opt, $field->field_options[ $opt ] );
 
 
246
  }
247
 
248
  $field->field_options = apply_filters( 'frm_update_field_options', $field->field_options, $field, $values );
264
  return $values;
265
  }
266
 
267
+ private static function sanitize_field_opt( $opt, &$value ) {
268
+ if ( is_string( $value ) ) {
269
+ if ( $opt === 'calc' ) {
270
+ $value = strip_tags( $value );
271
+ } else {
272
+ $value = FrmAppHelper::kses( $value, 'all' );
273
+ }
274
+ $value = trim( $value );
275
+ }
276
+ }
277
+
278
  /**
279
  * updating the settings page
280
  */
css/custom_theme.css.php CHANGED
@@ -3,7 +3,7 @@ if ( ! isset( $saving ) ) {
3
  header( 'Content-type: text/css' );
4
 
5
  if ( isset( $css ) && $css ) {
6
- echo FrmAppHelper::kses( $css, 'all' ); // WPCS: XSS ok.
7
  die();
8
  }
9
  }
@@ -999,4 +999,4 @@ if ( $frm_settings->old_css ) {
999
  readfile( dirname( __FILE__ ) . '/frm_old_grids.css' );
1000
  }
1001
 
1002
- echo FrmAppHelper::kses( $defaults['custom_css'], 'all' ); // WPCS: XSS ok.
3
  header( 'Content-type: text/css' );
4
 
5
  if ( isset( $css ) && $css ) {
6
+ echo strip_tags( $css, 'all' ); // WPCS: XSS ok.
7
  die();
8
  }
9
  }
999
  readfile( dirname( __FILE__ ) . '/frm_old_grids.css' );
1000
  }
1001
 
1002
+ echo strip_tags( $defaults['custom_css'] ); // WPCS: XSS ok.
css/frm_admin.css CHANGED
@@ -1504,7 +1504,6 @@ select.frm_cancelnew, input.frm_enternew{width:175px;}
1504
 
1505
  /* Styles tabs */
1506
  #general-style #frm_gen_font_box{padding-right:0;width:100%;}
1507
- #date-fields-style #frm_show_cal{width:90px;height:80px;margin-right:6px;}
1508
  #frm_styling_form #frm_delete_style{padding-right:10px;}
1509
  .frm_pro_form .frm_form_field.frm_lite_style,
1510
  .frm_pro_form .frm_lite_style{
@@ -2759,7 +2758,7 @@ iframe#dyncontent_ifr{min-height:150px;}
2759
  }
2760
 
2761
  .ui-datepicker-inline.ui-datepicker{
2762
- max-width:100%;
2763
  }
2764
 
2765
  .default-style-box.howto{
1504
 
1505
  /* Styles tabs */
1506
  #general-style #frm_gen_font_box{padding-right:0;width:100%;}
 
1507
  #frm_styling_form #frm_delete_style{padding-right:10px;}
1508
  .frm_pro_form .frm_form_field.frm_lite_style,
1509
  .frm_pro_form .frm_lite_style{
2758
  }
2759
 
2760
  .ui-datepicker-inline.ui-datepicker{
2761
+ max-width: 19em;
2762
  }
2763
 
2764
  .default-style-box.howto{
css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png DELETED
Binary file
css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png DELETED
Binary file
css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png DELETED
Binary file
css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png DELETED
Binary file
css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png DELETED
Binary file
css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png DELETED
Binary file
css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png DELETED
Binary file
css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png DELETED
Binary file
css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png DELETED
Binary file
css/ui-lightness/images/ui-icons_222222_256x240.png DELETED
Binary file
css/ui-lightness/images/ui-icons_228ef1_256x240.png DELETED
Binary file
css/ui-lightness/images/ui-icons_ef8c08_256x240.png DELETED
Binary file
css/ui-lightness/images/ui-icons_ffd27a_256x240.png DELETED
Binary file
css/ui-lightness/images/ui-icons_ffffff_256x240.png DELETED
Binary file
css/ui-lightness/jquery-ui.css DELETED
@@ -1,364 +0,0 @@
1
- /*
2
- * jQuery UI CSS Framework
3
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
- */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden { display: none; }
10
- .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
11
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
12
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
13
- .ui-helper-clearfix { display: inline-block; }
14
- /* required comment for clearfix to work in Opera \*/
15
- * html .ui-helper-clearfix { height:1%; }
16
- .ui-helper-clearfix { display:block; }
17
- /* end clearfix */
18
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
19
-
20
-
21
- /* Interaction Cues
22
- ----------------------------------*/
23
- .ui-state-disabled { cursor: default !important; }
24
-
25
-
26
- /* Icons
27
- ----------------------------------*/
28
-
29
- /* states and images */
30
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
31
-
32
-
33
- /* Misc visuals
34
- ----------------------------------*/
35
-
36
- /* Overlays */
37
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
38
-
39
-
40
-
41
- /*
42
- * jQuery UI CSS Framework
43
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
44
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
45
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
46
- */
47
-
48
-
49
- /* Component containers
50
- ----------------------------------*/
51
- .ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
52
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
53
- .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
54
- .ui-widget-content a { color: #333333; }
55
- .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
56
- .ui-widget-header a { color: #ffffff; }
57
-
58
- /* Interaction states
59
- ----------------------------------*/
60
- .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; outline: none; }
61
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; outline: none; }
62
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; outline: none; }
63
- .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; outline: none; }
64
- .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; outline: none; }
65
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; outline: none; text-decoration: none; }
66
-
67
- /* Interaction Cues
68
- ----------------------------------*/
69
- .ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
70
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
71
- .ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
72
- .ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; }
73
- .ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; }
74
- .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
75
- .ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
76
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
77
-
78
- /* Icons
79
- ----------------------------------*/
80
-
81
- /* states and images */
82
- .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
83
- .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
84
- .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
85
- .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
86
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
87
- .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
88
- .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
89
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
90
-
91
- /* positioning */
92
- .ui-icon-carat-1-n { background-position: 0 0; }
93
- .ui-icon-carat-1-ne { background-position: -16px 0; }
94
- .ui-icon-carat-1-e { background-position: -32px 0; }
95
- .ui-icon-carat-1-se { background-position: -48px 0; }
96
- .ui-icon-carat-1-s { background-position: -64px 0; }
97
- .ui-icon-carat-1-sw { background-position: -80px 0; }
98
- .ui-icon-carat-1-w { background-position: -96px 0; }
99
- .ui-icon-carat-1-nw { background-position: -112px 0; }
100
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
101
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
102
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
103
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
104
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
105
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
106
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
107
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
108
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
109
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
110
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
111
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
112
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
113
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
114
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
115
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
116
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
117
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
118
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
119
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
120
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
121
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
122
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
123
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
124
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
125
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
126
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
127
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
128
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
129
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
130
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
131
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
132
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
133
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
134
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
135
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
136
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
137
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
138
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
139
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
140
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
141
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
142
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
143
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
144
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
145
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
146
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
147
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
148
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
149
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
150
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
151
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
152
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
153
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
154
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
155
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
156
- .ui-icon-arrow-4 { background-position: 0 -80px; }
157
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
158
- .ui-icon-extlink { background-position: -32px -80px; }
159
- .ui-icon-newwin { background-position: -48px -80px; }
160
- .ui-icon-refresh { background-position: -64px -80px; }
161
- .ui-icon-shuffle { background-position: -80px -80px; }
162
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
163
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
164
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
165
- .ui-icon-folder-open { background-position: -16px -96px; }
166
- .ui-icon-document { background-position: -32px -96px; }
167
- .ui-icon-document-b { background-position: -48px -96px; }
168
- .ui-icon-note { background-position: -64px -96px; }
169
- .ui-icon-mail-closed { background-position: -80px -96px; }
170
- .ui-icon-mail-open { background-position: -96px -96px; }
171
- .ui-icon-suitcase { background-position: -112px -96px; }
172
- .ui-icon-comment { background-position: -128px -96px; }
173
- .ui-icon-person { background-position: -144px -96px; }
174
- .ui-icon-print { background-position: -160px -96px; }
175
- .ui-icon-trash { background-position: -176px -96px; }
176
- .ui-icon-locked { background-position: -192px -96px; }
177
- .ui-icon-unlocked { background-position: -208px -96px; }
178
- .ui-icon-bookmark { background-position: -224px -96px; }
179
- .ui-icon-tag { background-position: -240px -96px; }
180
- .ui-icon-home { background-position: 0 -112px; }
181
- .ui-icon-flag { background-position: -16px -112px; }
182
- .ui-icon-calendar { background-position: -32px -112px; }
183
- .ui-icon-cart { background-position: -48px -112px; }
184
- .ui-icon-pencil { background-position: -64px -112px; }
185
- .ui-icon-clock { background-position: -80px -112px; }
186
- .ui-icon-disk { background-position: -96px -112px; }
187
- .ui-icon-calculator { background-position: -112px -112px; }
188
- .ui-icon-zoomin { background-position: -128px -112px; }
189
- .ui-icon-zoomout { background-position: -144px -112px; }
190
- .ui-icon-search { background-position: -160px -112px; }
191
- .ui-icon-wrench { background-position: -176px -112px; }
192
- .ui-icon-gear { background-position: -192px -112px; }
193
- .ui-icon-heart { background-position: -208px -112px; }
194
- .ui-icon-star { background-position: -224px -112px; }
195
- .ui-icon-link { background-position: -240px -112px; }
196
- .ui-icon-cancel { background-position: 0 -128px; }
197
- .ui-icon-plus { background-position: -16px -128px; }
198
- .ui-icon-plusthick { background-position: -32px -128px; }
199
- .ui-icon-minus { background-position: -48px -128px; }
200
- .ui-icon-minusthick { background-position: -64px -128px; }
201
- .ui-icon-close { background-position: -80px -128px; }
202
- .ui-icon-closethick { background-position: -96px -128px; }
203
- .ui-icon-key { background-position: -112px -128px; }
204
- .ui-icon-lightbulb { background-position: -128px -128px; }
205
- .ui-icon-scissors { background-position: -144px -128px; }
206
- .ui-icon-clipboard { background-position: -160px -128px; }
207
- .ui-icon-copy { background-position: -176px -128px; }
208
- .ui-icon-contact { background-position: -192px -128px; }
209
- .ui-icon-image { background-position: -208px -128px; }
210
- .ui-icon-video { background-position: -224px -128px; }
211
- .ui-icon-script { background-position: -240px -128px; }
212
- .ui-icon-alert { background-position: 0 -144px; }
213
- .ui-icon-info { background-position: -16px -144px; }
214
- .ui-icon-notice { background-position: -32px -144px; }
215
- .ui-icon-help { background-position: -48px -144px; }
216
- .ui-icon-check { background-position: -64px -144px; }
217
- .ui-icon-bullet { background-position: -80px -144px; }
218
- .ui-icon-radio-off { background-position: -96px -144px; }
219
- .ui-icon-radio-on { background-position: -112px -144px; }
220
- .ui-icon-pin-w { background-position: -128px -144px; }
221
- .ui-icon-pin-s { background-position: -144px -144px; }
222
- .ui-icon-play { background-position: 0 -160px; }
223
- .ui-icon-pause { background-position: -16px -160px; }
224
- .ui-icon-seek-next { background-position: -32px -160px; }
225
- .ui-icon-seek-prev { background-position: -48px -160px; }
226
- .ui-icon-seek-end { background-position: -64px -160px; }
227
- .ui-icon-seek-first { background-position: -80px -160px; }
228
- .ui-icon-stop { background-position: -96px -160px; }
229
- .ui-icon-eject { background-position: -112px -160px; }
230
- .ui-icon-volume-off { background-position: -128px -160px; }
231
- .ui-icon-volume-on { background-position: -144px -160px; }
232
- .ui-icon-power { background-position: 0 -176px; }
233
- .ui-icon-signal-diag { background-position: -16px -176px; }
234
- .ui-icon-signal { background-position: -32px -176px; }
235
- .ui-icon-battery-0 { background-position: -48px -176px; }
236
- .ui-icon-battery-1 { background-position: -64px -176px; }
237
- .ui-icon-battery-2 { background-position: -80px -176px; }
238
- .ui-icon-battery-3 { background-position: -96px -176px; }
239
- .ui-icon-circle-plus { background-position: 0 -192px; }
240
- .ui-icon-circle-minus { background-position: -16px -192px; }
241
- .ui-icon-circle-close { background-position: -32px -192px; }
242
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
243
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
244
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
245
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
246
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
247
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
248
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
249
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
250
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
251
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
252
- .ui-icon-circle-check { background-position: -208px -192px; }
253
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
254
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
255
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
256
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
257
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
258
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
259
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
260
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
261
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
262
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
263
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
264
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
265
-
266
-
267
- /* Misc visuals
268
- ----------------------------------*/
269
-
270
- /* Corner radius */
271
- .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
272
- .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
273
- .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
274
- .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
275
- .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
276
- .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
277
- .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
278
- .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
279
- .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
280
-
281
- /* Overlays */
282
- .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
283
- .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; }/* Accordion
284
- ----------------------------------*/
285
- .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
286
- .ui-accordion .ui-accordion-li-fix { display: inline; }
287
- .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
288
- .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
289
- .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
290
- .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
291
- .ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
292
- ----------------------------------*/
293
- .ui-datepicker { width: 17em; padding: .2em .2em 0; }
294
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
295
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
296
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
297
- .ui-datepicker .ui-datepicker-prev { left:2px; }
298
- .ui-datepicker .ui-datepicker-next { right:2px; }
299
- .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
300
- .ui-datepicker .ui-datepicker-next-hover { right:1px; }
301
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
302
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
303
- .ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
304
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
305
- .ui-datepicker select.ui-datepicker-month,
306
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
307
- .ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
308
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
309
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
310
- .ui-datepicker td { border: 0; padding: 1px; }
311
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
312
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
313
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
314
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
315
-
316
- /* with multiple calendars */
317
- .ui-datepicker.ui-datepicker-multi { width:auto; }
318
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
319
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
320
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
321
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
322
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
323
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
324
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
325
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
326
- .ui-datepicker-row-break { clear:both; width:100%; }
327
-
328
- /* RTL support */
329
- .ui-datepicker-rtl { direction: rtl; }
330
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
331
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
332
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
333
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
334
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
335
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
336
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
337
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
338
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
339
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
340
-
341
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
342
- .ui-datepicker-cover {
343
- display: none; /*sorry for IE5*/
344
- display/**/: block; /*sorry for IE5*/
345
- position: absolute; /*must have*/
346
- z-index: -1; /*must have*/
347
- filter: mask(); /*must have*/
348
- top: -4px; /*must have*/
349
- left: -4px; /*must have*/
350
- width: 200px; /*must have*/
351
- height: 200px; /*must have*/
352
- }/* Dialog
353
- ----------------------------------*/
354
- .ui-dialog { position: relative; padding: .2em; width: 300px; }
355
- .ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
356
- .ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
357
- .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
358
- .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
359
- .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
360
- .ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
361
- .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
362
- .ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
363
- .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
364
- .ui-draggable .ui-dialog-titlebar { cursor: move; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
formidable.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 3.02.02
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 3.03
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
js/formidable_admin.js CHANGED
@@ -2546,7 +2546,7 @@ function frmAdminBuildJS(){
2546
  var paddingCount = paddingEntered.length;
2547
 
2548
  // If too many or too few padding entries, leave now
2549
- if ( paddingCount === 0 || paddingCount > 4 ) {
2550
  return;
2551
  }
2552
 
@@ -3288,9 +3288,10 @@ function frmAdminBuildJS(){
3288
  styleInit: function(){
3289
  collapseAllSections();
3290
 
3291
- document.getElementById("frm_field_height").addEventListener("blur", textSquishCheck);
3292
- document.getElementById("frm_field_font_size").addEventListener("blur", textSquishCheck);
3293
- document.getElementById("frm_field_pad").addEventListener("blur", textSquishCheck);
 
3294
  jQuery('input.hex').wpColorPicker({
3295
  width:200,
3296
  change: function( event, ui ) {
@@ -3351,30 +3352,6 @@ function frmAdminBuildJS(){
3351
  jQuery(this).closest('li').addClass('active');
3352
  });
3353
 
3354
- var $showCal = jQuery(document.getElementById('frm_show_cal'));
3355
- // change sample image on hover in FF
3356
- jQuery('select[name$="[theme_selector]"] option').each(function(){
3357
- var $thisOpt = jQuery(this);
3358
- $thisOpt.hover(function(){
3359
- var calId = $thisOpt.attr('id');
3360
- if(typeof calId === 'undefined'){
3361
- $showCal.attr('src', '');
3362
- }else{
3363
- $showCal.attr('src', '//jqueryui.com/resources/images/themeGallery/theme_'+ calId +'.png');
3364
- }
3365
- },'');
3366
- });
3367
-
3368
- // change sample image on change in other browsers
3369
- jQuery('select[name$="[theme_selector]"]').change(function(){
3370
- var calId = jQuery(this).children(':selected').attr('id');
3371
- if(typeof calId === 'undefined'){
3372
- $showCal.attr('src', '');
3373
- }else{
3374
- $showCal.attr('src', '//jqueryui.com/resources/images/themeGallery/theme_'+ calId +'.png');
3375
- }
3376
- });
3377
-
3378
  jQuery('.frm_reset_style').click(function(){
3379
  if(!confirm(frm_admin_js.confirm)){
3380
  return false;
@@ -3390,9 +3367,7 @@ function frmAdminBuildJS(){
3390
  for (var key in errObj){
3391
  jQuery('input[name$="['+key+']"], select[name$="['+key+']"]').val(errObj[key]);
3392
  }
3393
- jQuery('select[name$="[theme_selector]"]').val(errObj.theme_css).change();
3394
- jQuery('#frm_submit_style, #frm_auto_width').prop('checked', false); //checkboxes
3395
- jQuery('input.hex').validHex().applyFarbtastic();
3396
  jQuery(document.getElementById('frm_fieldset')).change();
3397
  }
3398
  });
@@ -3406,15 +3381,18 @@ function frmAdminBuildJS(){
3406
  var themeVal = jQuery(this).val();
3407
  var themeName = themeVal;
3408
  var css = themeVal;
3409
- if(themeVal !== -1){
3410
- css = frm_admin_js.jquery_ui_url +'/themes/'+themeVal+'/jquery-ui.css';
3411
- themeName = jQuery("select[name$='[theme_selector]'] option[value='"+themeVal+"']").text();
 
 
 
 
 
3412
  }
3413
- themeName = themeName.trim();
3414
 
3415
  updateUICSS(css);
3416
  document.getElementById('frm_theme_css').value = themeVal;
3417
- document.getElementById('frm_theme_name').value = themeName;
3418
  return false;
3419
  }).change();
3420
  },
2546
  var paddingCount = paddingEntered.length;
2547
 
2548
  // If too many or too few padding entries, leave now
2549
+ if ( paddingCount === 0 || paddingCount > 4 || height === '' ) {
2550
  return;
2551
  }
2552
 
3288
  styleInit: function(){
3289
  collapseAllSections();
3290
 
3291
+ document.getElementById('frm_field_height').addEventListener('change', textSquishCheck);
3292
+ document.getElementById('frm_field_font_size').addEventListener('change', textSquishCheck);
3293
+ document.getElementById('frm_field_pad').addEventListener('change', textSquishCheck);
3294
+
3295
  jQuery('input.hex').wpColorPicker({
3296
  width:200,
3297
  change: function( event, ui ) {
3352
  jQuery(this).closest('li').addClass('active');
3353
  });
3354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3355
  jQuery('.frm_reset_style').click(function(){
3356
  if(!confirm(frm_admin_js.confirm)){
3357
  return false;
3367
  for (var key in errObj){
3368
  jQuery('input[name$="['+key+']"], select[name$="['+key+']"]').val(errObj[key]);
3369
  }
3370
+ jQuery('#frm_submit_style, #frm_auto_width').prop('checked', false);
 
 
3371
  jQuery(document.getElementById('frm_fieldset')).change();
3372
  }
3373
  });
3381
  var themeVal = jQuery(this).val();
3382
  var themeName = themeVal;
3383
  var css = themeVal;
3384
+ if ( themeVal !== -1 ) {
3385
+ if ( themeVal === 'ui-lightness' && frm_admin_js.pro_url !== '' ) {
3386
+ css = frm_admin_js.pro_url +'/css/ui-lightness/jquery-ui.css';
3387
+ jQuery('.frm_date_color').show();
3388
+ } else {
3389
+ css = frm_admin_js.jquery_ui_url +'/themes/'+themeVal+'/jquery-ui.css';
3390
+ jQuery('.frm_date_color').hide();
3391
+ }
3392
  }
 
3393
 
3394
  updateUICSS(css);
3395
  document.getElementById('frm_theme_css').value = themeVal;
 
3396
  return false;
3397
  }).change();
3398
  },
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: contact form, form builder, custom form, forms, form, form maker, form cre
4
  Requires at least: 4.4
5
  Tested up to: 4.9.5
6
  Requires PHP: 5.3
7
- Stable tag: 3.02.02
8
 
9
  The best WordPress forms plugin for custom forms. Go beyond contact forms with a drag & drop form builder, HTML control & form style generator
10
 
@@ -160,6 +160,12 @@ The field and form names and descriptions are all changed with in-place edit. Ju
160
  [See more FAQs](https://formidableforms.com/formidable-faqs/ "Formidable Form FAQs")
161
 
162
  == Changelog ==
 
 
 
 
 
 
163
  = 3.02.02 =
164
  * Update PO file for translation
165
 
4
  Requires at least: 4.4
5
  Tested up to: 4.9.5
6
  Requires PHP: 5.3
7
+ Stable tag: 3.03
8
 
9
  The best WordPress forms plugin for custom forms. Go beyond contact forms with a drag & drop form builder, HTML control & form style generator
10
 
160
  [See more FAQs](https://formidableforms.com/formidable-faqs/ "Formidable Form FAQs")
161
 
162
  == Changelog ==
163
+ = 3.03 =
164
+ * Fix: Custom css like #frm_field_196_container > label was being sanitized and preventing the > from working correctly
165
+ * Fix: Allow <i icon="something"> to pass sanitization in checkbox and radio field options
166
+ * Fix: A warning message in the form style builder was sometimes appearing multiple times and not closing
167
+ * Move datepicker css and images to Pro form builder
168
+
169
  = 3.02.02 =
170
  * Update PO file for translation
171