Formidable Forms – Form Builder for WordPress - Version 5.0.04

Version Description

  • New: Custom HTML for errors is now also applied when validating with JavaScript.
  • New: Added a button to quickly save and reload after activating a new plugin from the settings page.
  • New: Added several new filters required to support the new new Formidable surveys add on.
Download this release

Release Info

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

Code changes from version 5.0.03 to 5.0.04

Files changed (37) hide show
  1. classes/controllers/FrmAddonsController.php +24 -4
  2. classes/controllers/FrmAppController.php +9 -3
  3. classes/controllers/FrmEntriesController.php +23 -2
  4. classes/controllers/FrmFieldsController.php +92 -0
  5. classes/controllers/FrmFormsController.php +48 -5
  6. classes/controllers/FrmHooksController.php +3 -1
  7. classes/helpers/FrmAppHelper.php +199 -2
  8. classes/helpers/FrmFieldsHelper.php +256 -33
  9. classes/helpers/FrmTipsHelper.php +0 -7
  10. classes/models/FrmEntry.php +22 -4
  11. classes/models/FrmEntryValidate.php +10 -1
  12. classes/models/FrmEntryValues.php +37 -0
  13. classes/models/FrmField.php +10 -0
  14. classes/models/FrmInbox.php +42 -2
  15. classes/models/fields/FrmFieldType.php +1 -2
  16. classes/views/frm-entries/form.php +10 -1
  17. classes/views/frm-fields/back-end/bulk-options-overlay.php +12 -3
  18. classes/views/frm-fields/back-end/radio-display-format.php +20 -0
  19. classes/views/frm-fields/back-end/radio-images.php +10 -7
  20. classes/views/frm-fields/back-end/settings.php +12 -2
  21. classes/views/frm-fields/front-end/checkbox-field.php +11 -1
  22. classes/views/frm-fields/front-end/radio-field.php +11 -1
  23. classes/views/frm-forms/settings-advanced.php +14 -1
  24. classes/views/frm-forms/settings-buttons.php +2 -2
  25. classes/views/inbox/banner.php +15 -0
  26. classes/views/shared/admin-header.php +1 -0
  27. classes/views/shared/images-dropdown.php +44 -0
  28. classes/views/shared/upgrade_overlay.php +1 -1
  29. css/font_icons.css +1 -1
  30. css/frm_admin.css +91 -1
  31. formidable.php +1 -1
  32. images/icons.svg +5 -0
  33. js/formidable.js +21 -3
  34. js/formidable.min.js +36 -35
  35. js/formidable_admin.js +201 -29
  36. languages/formidable.pot +563 -501
  37. readme.txt +9 -9
classes/controllers/FrmAddonsController.php CHANGED
@@ -964,11 +964,32 @@ class FrmAddonsController {
964
  $plugin = FrmAppHelper::get_param( 'plugin', '', 'post', 'sanitize_text_field' );
965
  self::maybe_activate_addon( $plugin );
966
 
967
- // Send back a response.
968
- echo json_encode( __( 'Your plugin has been activated. Please reload the page to see more options.', 'formidable' ) );
969
  wp_die();
970
  }
971
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
972
  /**
973
  * @since 3.04.02
974
  * @param string $installed The plugin folder name with file name
@@ -1163,8 +1184,7 @@ class FrmAddonsController {
1163
 
1164
  self::download_and_activate();
1165
 
1166
- // Send back a response.
1167
- echo json_encode( __( 'Your plugin has been installed. Please reload the page to see more options.', 'formidable' ) );
1168
  wp_die();
1169
  }
1170
 
964
  $plugin = FrmAppHelper::get_param( 'plugin', '', 'post', 'sanitize_text_field' );
965
  self::maybe_activate_addon( $plugin );
966
 
967
+ echo json_encode( self::get_addon_activation_response() );
 
968
  wp_die();
969
  }
970
 
971
+ /**
972
+ * @return array|string
973
+ */
974
+ private static function get_addon_activation_response() {
975
+ if ( self::activating_from_settings_page() ) {
976
+ $response = array(
977
+ 'message' => __( 'Your plugin has been activated. Would you like to save and reload the page now?', 'formidable' ),
978
+ 'saveAndReload' => 'settings',
979
+ );
980
+ } else {
981
+ $response = __( 'Your plugin has been activated. Please reload the page to see more options.', 'formidable' );
982
+ }
983
+ return $response;
984
+ }
985
+
986
+ /**
987
+ * @return bool
988
+ */
989
+ private static function activating_from_settings_page() {
990
+ return false !== strpos( FrmAppHelper::get_server_value( 'HTTP_REFERER' ), 'frm_action=settings' );
991
+ }
992
+
993
  /**
994
  * @since 3.04.02
995
  * @param string $installed The plugin folder name with file name
1184
 
1185
  self::download_and_activate();
1186
 
1187
+ echo json_encode( self::get_addon_activation_response() );
 
1188
  wp_die();
1189
  }
1190
 
classes/controllers/FrmAppController.php CHANGED
@@ -422,9 +422,15 @@ class FrmAppController {
422
  self::admin_js();
423
  }
424
 
425
- if ( FrmAppHelper::is_admin_page( 'formidable' ) && in_array( FrmAppHelper::get_param( 'frm_action' ), array( 'add_new', 'list_templates' ), true ) ) {
426
- wp_safe_redirect( admin_url( 'admin.php?page=formidable&triggerNewFormModal=1' ) );
427
- exit;
 
 
 
 
 
 
428
  }
429
  }
430
 
422
  self::admin_js();
423
  }
424
 
425
+ if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
426
+ $action = FrmAppHelper::get_param( 'frm_action' );
427
+
428
+ if ( in_array( $action, array( 'add_new', 'list_templates' ), true ) ) {
429
+ wp_safe_redirect( admin_url( 'admin.php?page=formidable&triggerNewFormModal=1' ) );
430
+ exit;
431
+ }
432
+
433
+ FrmInbox::maybe_disable_screen_options();
434
  }
435
  }
436
 
classes/controllers/FrmEntriesController.php CHANGED
@@ -110,6 +110,16 @@ class FrmEntriesController {
110
  private static function get_columns_for_form( $form_id, &$columns ) {
111
  $form_cols = FrmField::get_all_for_form( $form_id, '', 'include' );
112
 
 
 
 
 
 
 
 
 
 
 
113
  foreach ( $form_cols as $form_col ) {
114
  if ( FrmField::is_no_save_field( $form_col->type ) ) {
115
  continue;
@@ -276,8 +286,7 @@ class FrmEntriesController {
276
  );
277
 
278
  foreach ( $fields as $field ) {
279
- if ( $field->type != 'checkbox' && ( ! isset( $field->field_options['post_field'] ) || $field->field_options['post_field'] == '' ) ) {
280
- // Can't sort on checkboxes because they are stored serialized, or post fields
281
  $columns[ $form_id . '_' . $field->field_key ] = 'meta_' . $field->id;
282
  }
283
  }
@@ -285,6 +294,18 @@ class FrmEntriesController {
285
  return $columns;
286
  }
287
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  public static function hidden_columns( $result ) {
289
  $form_id = FrmForm::get_current_form_id();
290
 
110
  private static function get_columns_for_form( $form_id, &$columns ) {
111
  $form_cols = FrmField::get_all_for_form( $form_id, '', 'include' );
112
 
113
+ /**
114
+ * Allows changing fields in the Entries list table heading.
115
+ *
116
+ * @since 5.0.04
117
+ *
118
+ * @param array $fields Array of fields.
119
+ * @param array $args The arguments. Contains `form_id`.
120
+ */
121
+ $form_cols = apply_filters( 'frm_fields_in_entries_list_table', $form_cols, compact( 'form_id' ) );
122
+
123
  foreach ( $form_cols as $form_col ) {
124
  if ( FrmField::is_no_save_field( $form_col->type ) ) {
125
  continue;
286
  );
287
 
288
  foreach ( $fields as $field ) {
289
+ if ( self::field_supports_sorting( $field ) ) {
 
290
  $columns[ $form_id . '_' . $field->field_key ] = 'meta_' . $field->id;
291
  }
292
  }
294
  return $columns;
295
  }
296
 
297
+ /**
298
+ * Can't sort on checkboxes because they are sorted serialized.
299
+ * Some post content can be sorted but not everything.
300
+ *
301
+ * @param stdClass $field
302
+ * @return bool
303
+ */
304
+ private static function field_supports_sorting( $field ) {
305
+ $is_sortable = 'checkbox' !== $field->type && empty( $field->field_options['post_field'] );
306
+ return apply_filters( 'frm_field_column_is_sortable', $is_sortable, $field );
307
+ }
308
+
309
  public static function hidden_columns( $result ) {
310
  $form_id = FrmForm::get_current_form_id();
311
 
classes/controllers/FrmFieldsController.php CHANGED
@@ -127,6 +127,23 @@ class FrmFieldsController {
127
  $values = apply_filters( 'frm_prepare_single_field_for_duplication', $values );
128
 
129
  $field_id = FrmField::create( $values );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  if ( $field_id ) {
131
  self::load_single_field( $field_id, $values );
132
  }
@@ -695,6 +712,81 @@ class FrmFieldsController {
695
  $invalid_message = FrmFieldsHelper::get_error_msg( $field, 'invalid' );
696
  $add_html['data-invmsg'] = 'data-invmsg="' . esc_attr( $invalid_message ) . '"';
697
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
698
  }
699
 
700
  /**
127
  $values = apply_filters( 'frm_prepare_single_field_for_duplication', $values );
128
 
129
  $field_id = FrmField::create( $values );
130
+
131
+ /**
132
+ * Fires after duplicating a field.
133
+ *
134
+ * @since 5.0.04
135
+ *
136
+ * @param array $args {
137
+ * The arguments.
138
+ *
139
+ * @type int $field_id New field ID.
140
+ * @type array $values Values before inserting.
141
+ * @type object $copy_field Copy field data.
142
+ * @type int $form_id Form ID.
143
+ * }
144
+ */
145
+ do_action( 'frm_after_duplicate_field', compact( 'field_id', 'values', 'copy_field', 'form_id' ) );
146
+
147
  if ( $field_id ) {
148
  self::load_single_field( $field_id, $values );
149
  }
712
  $invalid_message = FrmFieldsHelper::get_error_msg( $field, 'invalid' );
713
  $add_html['data-invmsg'] = 'data-invmsg="' . esc_attr( $invalid_message ) . '"';
714
  }
715
+
716
+ if ( ! empty( $add_html['data-reqmsg'] ) || ! empty( $add_html['data-invmsg'] ) ) {
717
+ self::maybe_add_error_html_for_js_validation( $field, $add_html );
718
+ }
719
+ }
720
+
721
+ /**
722
+ * @since 5.0.03
723
+ *
724
+ * @param array $field
725
+ * @param array $add_html
726
+ */
727
+ private static function maybe_add_error_html_for_js_validation( $field, array &$add_html ) {
728
+ $form = self::get_form_for_js_validation( $field );
729
+ if ( false === $form ) {
730
+ return;
731
+ }
732
+
733
+ $error_body = self::pull_custom_error_body_from_custom_html( $form, $field );
734
+ if ( false !== $error_body ) {
735
+ $error_body = urlencode( $error_body );
736
+ $add_html['data-error-html'] = 'data-error-html="' . esc_attr( $error_body ) . '"';
737
+ }
738
+ }
739
+
740
+ /**
741
+ * @since 5.0.03
742
+ *
743
+ * @param array $field
744
+ * @return stdClass|false false if there is no form object found with JS validation active.
745
+ */
746
+ private static function get_form_for_js_validation( $field ) {
747
+ global $frm_vars;
748
+ if ( ! empty( $frm_vars['js_validate_forms'] ) ) {
749
+ if ( isset( $frm_vars['js_validate_forms'][ $field['form_id'] ] ) ) {
750
+ return $frm_vars['js_validate_forms'][ $field['form_id'] ];
751
+ }
752
+ if ( ! empty( $field['parent_form_id'] ) && isset( $frm_vars['js_validate_forms'][ $field['parent_form_id'] ] ) ) {
753
+ return $frm_vars['js_validate_forms'][ $field['parent_form_id'] ];
754
+ }
755
+ }
756
+ return false;
757
+ }
758
+
759
+ /**
760
+ * @param stdClass $form
761
+ * @param array $field
762
+ * @param array $errors
763
+ * @return string|false
764
+ */
765
+ public static function pull_custom_error_body_from_custom_html( $form, $field, $errors = array() ) {
766
+ if ( empty( $field['custom_html'] ) ) {
767
+ return false;
768
+ }
769
+
770
+ $custom_html = $field['custom_html'];
771
+ $custom_html = apply_filters( 'frm_before_replace_shortcodes', $custom_html, $field, $errors, $form );
772
+
773
+ $start = strpos( $custom_html, '[if error]' );
774
+ if ( false === $start ) {
775
+ return false;
776
+ }
777
+
778
+ $end = strpos( $custom_html, '[/if error]' );
779
+ if ( false === $end || $end < $start ) {
780
+ return false;
781
+ }
782
+
783
+ $error_body = substr( $custom_html, $start + 10, $end - $start - 10 );
784
+ if ( '<div class="frm_error" id="frm_error_field_[key]">[error]</div>' === $error_body ) {
785
+ // no custom HTML if the default is detected, so do nothing special.
786
+ return false;
787
+ }
788
+
789
+ return $error_body;
790
  }
791
 
792
  /**
classes/controllers/FrmFormsController.php CHANGED
@@ -975,9 +975,18 @@ class FrmFormsController {
975
 
976
  unset( $reset_fields );
977
 
978
- $args = array( 'parent_form_id' => $form->id );
979
- $values = FrmAppHelper::setup_edit_vars( $form, 'forms', '', true, array(), $args );
980
- $values['fields'] = $fields;
 
 
 
 
 
 
 
 
 
981
 
982
  $edit_message = __( 'Form was successfully updated.', 'formidable' );
983
  if ( $form->is_template && $message == $edit_message ) {
@@ -1018,6 +1027,16 @@ class FrmFormsController {
1018
  $fields = FrmField::get_all_for_form( $id );
1019
  $values = FrmAppHelper::setup_edit_vars( $form, 'forms', $fields, true );
1020
 
 
 
 
 
 
 
 
 
 
 
1021
  self::clean_submit_html( $values );
1022
 
1023
  $sections = self::get_settings_tabs( $values );
@@ -1183,7 +1202,17 @@ class FrmFormsController {
1183
  }
1184
 
1185
  public static function mb_tags_box( $form_id, $class = '' ) {
1186
- $fields = FrmField::get_all_for_form( $form_id, '', 'include' );
 
 
 
 
 
 
 
 
 
 
1187
  $linked_forms = array();
1188
  $col = 'one';
1189
  $settings_tab = FrmAppHelper::is_admin_page( 'formidable' ) ? true : false;
@@ -1325,9 +1354,23 @@ class FrmFormsController {
1325
  echo esc_attr( sanitize_text_field( $form->options['form_class'] ) );
1326
  }
1327
 
1328
- if ( isset( $form->options['js_validate'] ) && $form->options['js_validate'] ) {
1329
  echo ' frm_js_validate ';
 
 
 
 
 
 
 
 
 
 
 
 
 
1330
  }
 
1331
  }
1332
 
1333
  public static function get_email_html() {
975
 
976
  unset( $reset_fields );
977
 
978
+ $args = array( 'parent_form_id' => $form->id );
979
+ $values = FrmAppHelper::setup_edit_vars( $form, 'forms', '', true, array(), $args );
980
+
981
+ /**
982
+ * Allows modifying the list of fields in the form builder.
983
+ *
984
+ * @since 5.0.04
985
+ *
986
+ * @param object[] $fields Array of fields.
987
+ * @param array $args The arguments. Contains `form`.
988
+ */
989
+ $values['fields'] = apply_filters( 'frm_fields_in_form_builder', $fields, compact( 'form' ) );
990
 
991
  $edit_message = __( 'Form was successfully updated.', 'formidable' );
992
  if ( $form->is_template && $message == $edit_message ) {
1027
  $fields = FrmField::get_all_for_form( $id );
1028
  $values = FrmAppHelper::setup_edit_vars( $form, 'forms', $fields, true );
1029
 
1030
+ /**
1031
+ * Allows changing fields in the form settings.
1032
+ *
1033
+ * @since 5.0.04
1034
+ *
1035
+ * @param array $fields Array of fields.
1036
+ * @param array $args The arguments. Contains `form`.
1037
+ */
1038
+ $values['fields'] = apply_filters( 'frm_fields_in_settings', $values['fields'], compact( 'form' ) );
1039
+
1040
  self::clean_submit_html( $values );
1041
 
1042
  $sections = self::get_settings_tabs( $values );
1202
  }
1203
 
1204
  public static function mb_tags_box( $form_id, $class = '' ) {
1205
+ $fields = FrmField::get_all_for_form( $form_id, '', 'include' );
1206
+
1207
+ /**
1208
+ * Allows modifying the list of fields in the tags box.
1209
+ *
1210
+ * @since 5.0.04
1211
+ *
1212
+ * @param array $fields The list of fields.
1213
+ * @param array $args The arguments. Contains `form_id`.
1214
+ */
1215
+ $fields = apply_filters( 'frm_fields_in_tags_box', $fields, compact( 'form_id' ) );
1216
  $linked_forms = array();
1217
  $col = 'one';
1218
  $settings_tab = FrmAppHelper::is_admin_page( 'formidable' ) ? true : false;
1354
  echo esc_attr( sanitize_text_field( $form->options['form_class'] ) );
1355
  }
1356
 
1357
+ if ( ! empty( $form->options['js_validate'] ) ) {
1358
  echo ' frm_js_validate ';
1359
+ self::add_js_validate_form_to_global_vars( $form );
1360
+ }
1361
+ }
1362
+
1363
+ /**
1364
+ * @since 5.0.03
1365
+ *
1366
+ * @param stdClass $form
1367
+ */
1368
+ public static function add_js_validate_form_to_global_vars( $form ) {
1369
+ global $frm_vars;
1370
+ if ( ! isset( $frm_vars['js_validate_forms'] ) ) {
1371
+ $frm_vars['js_validate_forms'] = array();
1372
  }
1373
+ $frm_vars['js_validate_forms'][ $form->id ] = $form;
1374
  }
1375
 
1376
  public static function get_email_html() {
classes/controllers/FrmHooksController.php CHANGED
@@ -35,7 +35,9 @@ class FrmHooksController {
35
  // Instansiate Controllers.
36
  foreach ( $controllers as $c ) {
37
  foreach ( $hooks as $hook ) {
38
- call_user_func( array( $c, $hook ) );
 
 
39
  unset( $hook );
40
  }
41
  unset( $c );
35
  // Instansiate Controllers.
36
  foreach ( $controllers as $c ) {
37
  foreach ( $hooks as $hook ) {
38
+ if ( is_callable( array( $c, $hook ) ) ) {
39
+ call_user_func( array( $c, $hook ) );
40
+ }
41
  unset( $hook );
42
  }
43
  unset( $c );
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '5.0.03';
15
 
16
  /**
17
  * @since 1.07.02
@@ -2710,7 +2710,7 @@ class FrmAppHelper {
2710
  'ta' => __( 'Tamil', 'formidable' ),
2711
  'th' => __( 'Thai', 'formidable' ),
2712
  'tr' => __( 'Turkish', 'formidable' ),
2713
- 'uk' => __( 'Ukranian', 'formidable' ),
2714
  'vi' => __( 'Vietnamese', 'formidable' ),
2715
  );
2716
 
@@ -2745,6 +2745,203 @@ class FrmAppHelper {
2745
  return 'frmfont frm_logo_icon';
2746
  }
2747
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2748
  /**
2749
  * @since 4.07
2750
  * @deprecated 4.09.01
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '5.0.04';
15
 
16
  /**
17
  * @since 1.07.02
2710
  'ta' => __( 'Tamil', 'formidable' ),
2711
  'th' => __( 'Thai', 'formidable' ),
2712
  'tr' => __( 'Turkish', 'formidable' ),
2713
+ 'uk' => __( 'Ukrainian', 'formidable' ),
2714
  'vi' => __( 'Vietnamese', 'formidable' ),
2715
  );
2716
 
2745
  return 'frmfont frm_logo_icon';
2746
  }
2747
 
2748
+ /**
2749
+ * Shows the images dropdown.
2750
+ *
2751
+ * @since 5.0.04
2752
+ *
2753
+ * @param array $args {
2754
+ * Arguments.
2755
+ *
2756
+ * @type string $selected Selected value.
2757
+ * @type array[] $options Array of options with keys are option values and values are array.
2758
+ * The option array contains `text`, `svg` and `custom_atts`.
2759
+ * @type string $classes Custom CSS classes for the wrapper element.
2760
+ * @type array $input_attrs Attributes of value input.
2761
+ * }
2762
+ */
2763
+ public static function images_dropdown( $args ) {
2764
+ $args = self::fill_default_images_dropdown_args( $args );
2765
+
2766
+ $input_attrs_str = self::get_images_dropdown_input_attrs( $args );
2767
+ ob_start();
2768
+ include self::plugin_path() . '/classes/views/shared/images-dropdown.php';
2769
+ $output = ob_get_clean();
2770
+
2771
+ /**
2772
+ * Allows modifying the output of FrmAppHelper::images_dropdown() method.
2773
+ *
2774
+ * @since 5.0.04
2775
+ *
2776
+ * @param string $output The output.
2777
+ * @param array $args Passed arguments.
2778
+ */
2779
+ echo apply_filters( 'frm_images_dropdown_output', $output, $args ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2780
+ }
2781
+
2782
+ /**
2783
+ * Fills the default images_dropdown() arguments.
2784
+ *
2785
+ * @since 5.0.04
2786
+ *
2787
+ * @param array $args The arguments.
2788
+ * @return array
2789
+ */
2790
+ private static function fill_default_images_dropdown_args( $args ) {
2791
+ $defaults = array(
2792
+ 'selected' => '',
2793
+ 'options' => array(),
2794
+ 'classes' => '',
2795
+ 'input_attrs' => array(),
2796
+ );
2797
+ $new_args = wp_parse_args( $args, $defaults );
2798
+
2799
+ $new_args['options'] = (array) $new_args['options'];
2800
+ $new_args['input_attrs'] = (array) $new_args['input_attrs'];
2801
+
2802
+ // Set the number of columns.
2803
+ $new_args['col_class'] = ceil( 12 / count( $new_args['options'] ) );
2804
+ if ( $new_args['col_class'] > 6 ) {
2805
+ $new_args['col_class'] = ceil( $new_args['col_class'] / 2 );
2806
+ }
2807
+
2808
+ /**
2809
+ * Allows modifying the arguments of images_dropdown() method.
2810
+ *
2811
+ * @since 5.0.04
2812
+ *
2813
+ * @param array $new_args Arguments after filling the defaults.
2814
+ * @param array $args Arguments passed to the method, before filling the defaults.
2815
+ */
2816
+ return apply_filters( 'frm_images_dropdown_args', $new_args, $args );
2817
+ }
2818
+
2819
+ /**
2820
+ * Gets HTML attributes of the input in images_dropdown() method.
2821
+ *
2822
+ * @since 5.0.04
2823
+ *
2824
+ * @param array $args The arguments.
2825
+ * @return string
2826
+ */
2827
+ private static function get_images_dropdown_input_attrs( $args ) {
2828
+ $input_attrs = $args['input_attrs'];
2829
+ $input_attrs['type'] = 'radio';
2830
+ $input_attrs['name'] = $args['name'];
2831
+
2832
+ $input_attrs_str = '';
2833
+ foreach ( $input_attrs as $key => $input_attr ) {
2834
+ $input_attrs_str .= ' ' . sprintf( '%s="%s"', esc_attr( $key ), esc_attr( $input_attr ) );
2835
+ }
2836
+
2837
+ /**
2838
+ * Allows modifying the HTML attributes of the input in images_dropdown() method.
2839
+ *
2840
+ * @since 5.0.04
2841
+ *
2842
+ * @param string $input_attrs_str HTML attributes string.
2843
+ * @param array $args The arguments of images_dropdown() method.
2844
+ */
2845
+ return apply_filters( 'frm_images_dropdown_input_attrs', $input_attrs_str, $args );
2846
+ }
2847
+
2848
+ /**
2849
+ * Gets the image of each option in images_dropdown() method.
2850
+ *
2851
+ * @since 5.0.04
2852
+ *
2853
+ * @param array $option Option data.
2854
+ * @param array $args The arguments of images_dropdown() method.
2855
+ * @return string
2856
+ */
2857
+ private static function get_images_dropdown_option_image( $option, $args ) {
2858
+ $image = self::icon_by_class(
2859
+ 'frmfont ' . $option['svg'],
2860
+ array(
2861
+ 'echo' => false,
2862
+ )
2863
+ );
2864
+
2865
+ $args['option'] = $option;
2866
+
2867
+ /**
2868
+ * Allows modifying the image of each option in images_dropdown() method.
2869
+ *
2870
+ * @since 5.0.04
2871
+ *
2872
+ * @param string $image The image HTML.
2873
+ * @param array $args The arguments of images_dropdown() method, with `option` array is added.
2874
+ */
2875
+ return apply_filters( 'frm_images_dropdown_option_image', $image, $args );
2876
+ }
2877
+
2878
+ /**
2879
+ * Gets the HTML classes of each option in images_dropdown() method.
2880
+ *
2881
+ * @since 5.0.04
2882
+ *
2883
+ * @param array $option Option data.
2884
+ * @param array $args The arguments of images_dropdown() method.
2885
+ * @return string
2886
+ */
2887
+ private static function get_images_dropdown_option_classes( $option, $args ) {
2888
+ $classes = '';
2889
+
2890
+ if ( ! empty( $option['custom_attrs']['class'] ) ) {
2891
+ $classes .= ' ' . $option['custom_attrs']['class'];
2892
+ }
2893
+
2894
+ $args['option'] = $option;
2895
+
2896
+ /**
2897
+ * Allows modifying the CSS classes of each option in images_dropdown() method.
2898
+ *
2899
+ * @since 5.0.04
2900
+ *
2901
+ * @param string $classes CSS classes.
2902
+ * @param array $args The arguments of images_dropdown() method, with `option` array is added.
2903
+ */
2904
+ return apply_filters( 'frm_images_dropdown_option_classes', $classes, $args );
2905
+ }
2906
+
2907
+ /**
2908
+ * Gets the custom HTML attributes of each option in images_dropdown() method.
2909
+ *
2910
+ * @since 5.0.04
2911
+ *
2912
+ * @param array $option Option data.
2913
+ * @param array $args The arguments of images_dropdown() method.
2914
+ * @return string
2915
+ */
2916
+ private static function get_images_dropdown_option_html_attrs( $option, $args ) {
2917
+ $html_attrs = '';
2918
+ if ( ! empty( $option['custom_attrs'] ) && is_array( $option['custom_attrs'] ) ) {
2919
+ $html_attrs_arr = array();
2920
+
2921
+ foreach ( $option['custom_attrs'] as $key => $value ) {
2922
+ if ( in_array( $key, array( 'type', 'class', 'data-value' ) ) ) {
2923
+ continue;
2924
+ }
2925
+
2926
+ $html_attrs_arr[] = sprintf( '%s="%s"', esc_attr( $key ), esc_attr( $value ) );
2927
+ }
2928
+
2929
+ $html_attrs = implode( ' ', $html_attrs_arr );
2930
+ }
2931
+
2932
+ $args['option'] = $option;
2933
+
2934
+ /**
2935
+ * Allows modifying the custom HTML attributes of each option in images_dropdown() method.
2936
+ *
2937
+ * @since 5.0.04
2938
+ *
2939
+ * @param string $html_attrs The HTML attributes string.
2940
+ * @param array $args The arguments of images_dropdown() method, with `option` array is added.
2941
+ */
2942
+ return apply_filters( 'frm_images_dropdown_option_html_attrs', $html_attrs, $args );
2943
+ }
2944
+
2945
  /**
2946
  * @since 4.07
2947
  * @deprecated 4.09.01
classes/helpers/FrmFieldsHelper.php CHANGED
@@ -571,25 +571,35 @@ class FrmFieldsHelper {
571
  }
572
 
573
  $m = false;
574
- if ( $cond == '==' ) {
575
  $m = $observed_value == $hide_opt;
576
- } elseif ( $cond == '!=' ) {
577
  $m = $observed_value != $hide_opt;
578
- } elseif ( $cond == '>' ) {
579
  $m = $observed_value > $hide_opt;
580
- } elseif ( $cond == '>=' ) {
581
  $m = $observed_value >= $hide_opt;
582
- } elseif ( $cond == '<' ) {
583
  $m = $observed_value < $hide_opt;
584
- } elseif ( $cond == '<=' ) {
585
  $m = $observed_value <= $hide_opt;
586
- } elseif ( $cond == 'LIKE' || $cond == 'not LIKE' ) {
587
  $m = stripos( $observed_value, $hide_opt );
588
- if ( $cond == 'not LIKE' ) {
589
  $m = ( $m === false ) ? true : false;
590
  } else {
591
  $m = ( $m === false ) ? false : true;
592
  }
 
 
 
 
 
 
 
 
 
 
593
  }
594
 
595
  return $m;
@@ -613,22 +623,22 @@ class FrmFieldsHelper {
613
 
614
  public static function array_value_condition( $observed_value, $cond, $hide_opt ) {
615
  $m = false;
616
- if ( $cond == '==' ) {
617
  if ( is_array( $hide_opt ) ) {
618
  $m = array_intersect( $hide_opt, $observed_value );
619
  $m = empty( $m ) ? false : true;
620
  } else {
621
  $m = in_array( $hide_opt, $observed_value );
622
  }
623
- } elseif ( $cond == '!=' ) {
624
  $m = ! in_array( $hide_opt, $observed_value );
625
- } elseif ( $cond == '>' ) {
626
  $min = min( $observed_value );
627
  $m = $min > $hide_opt;
628
- } elseif ( $cond == '<' ) {
629
  $max = max( $observed_value );
630
  $m = $max < $hide_opt;
631
- } elseif ( $cond == 'LIKE' || $cond == 'not LIKE' ) {
632
  foreach ( $observed_value as $ob ) {
633
  $m = strpos( $ob, $hide_opt );
634
  if ( $m !== false ) {
@@ -637,9 +647,25 @@ class FrmFieldsHelper {
637
  }
638
  }
639
 
640
- if ( $cond == 'not LIKE' ) {
641
  $m = ( $m === false ) ? true : false;
642
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  }
644
 
645
  return $m;
@@ -982,7 +1008,7 @@ class FrmFieldsHelper {
982
  $field_types[ $type ] = $field_selection[ $type ];
983
  }
984
 
985
- $field_types = apply_filters( 'frm_switch_field_types', $field_types, compact( 'type' ) );
986
 
987
  return $field_types;
988
  }
@@ -1307,7 +1333,7 @@ class FrmFieldsHelper {
1307
  */
1308
  public static function bulk_options_overlay() {
1309
  $prepop = array();
1310
- self::get_bulk_prefilled_opts( $prepop );
1311
 
1312
  include( FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/bulk-options-overlay.php' );
1313
  }
@@ -1629,20 +1655,45 @@ class FrmFieldsHelper {
1629
  return apply_filters( 'frm_countries', $countries );
1630
  }
1631
 
1632
- public static function get_bulk_prefilled_opts( array &$prepop ) {
1633
- $prepop[ __( 'Countries', 'formidable' ) ] = self::get_countries();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1634
 
 
1635
  $states = self::get_us_states();
1636
  $state_abv = array_keys( $states );
1637
  sort( $state_abv );
 
 
 
 
1638
  $prepop[ __( 'U.S. State Abbreviations', 'formidable' ) ] = $state_abv;
1639
 
 
1640
  $states = array_values( $states );
1641
  sort( $states );
 
 
 
 
1642
  $prepop[ __( 'U.S. States', 'formidable' ) ] = $states;
1643
  unset( $state_abv, $states );
1644
 
1645
- $prepop[ __( 'Age', 'formidable' ) ] = array(
 
1646
  __( 'Under 18', 'formidable' ),
1647
  __( '18-24', 'formidable' ),
1648
  __( '25-34', 'formidable' ),
@@ -1652,33 +1703,71 @@ class FrmFieldsHelper {
1652
  __( '65 or Above', 'formidable' ),
1653
  __( 'Prefer Not to Answer', 'formidable' ),
1654
  );
 
 
 
1655
 
1656
- $prepop[ __( 'Satisfaction', 'formidable' ) ] = array(
1657
- __( 'Very Satisfied', 'formidable' ),
1658
- __( 'Satisfied', 'formidable' ),
1659
- __( 'Neutral', 'formidable' ),
1660
- __( 'Unsatisfied', 'formidable' ),
1661
  __( 'Very Unsatisfied', 'formidable' ),
 
 
 
 
1662
  __( 'N/A', 'formidable' ),
1663
  );
 
 
 
1664
 
1665
- $prepop[ __( 'Importance', 'formidable' ) ] = array(
1666
- __( 'Very Important', 'formidable' ),
1667
- __( 'Important', 'formidable' ),
1668
- __( 'Neutral', 'formidable' ),
1669
- __( 'Somewhat Important', 'formidable' ),
1670
  __( 'Not at all Important', 'formidable' ),
 
 
 
 
1671
  __( 'N/A', 'formidable' ),
1672
  );
 
 
 
1673
 
1674
- $prepop[ __( 'Agreement', 'formidable' ) ] = array(
1675
- __( 'Strongly Agree', 'formidable' ),
 
 
 
 
 
1676
  __( 'Agree', 'formidable' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
1677
  __( 'Neutral', 'formidable' ),
1678
- __( 'Disagree', 'formidable' ),
1679
- __( 'Strongly Disagree', 'formidable' ),
1680
  __( 'N/A', 'formidable' ),
1681
  );
 
 
 
 
 
1682
 
1683
  $prepop = apply_filters( 'frm_bulk_field_choices', $prepop );
1684
  }
@@ -1771,6 +1860,140 @@ class FrmFieldsHelper {
1771
  <?php
1772
  }
1773
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1774
  /**
1775
  * @deprecated 4.0
1776
  */
571
  }
572
 
573
  $m = false;
574
+ if ( $cond === '==' ) {
575
  $m = $observed_value == $hide_opt;
576
+ } elseif ( $cond === '!=' ) {
577
  $m = $observed_value != $hide_opt;
578
+ } elseif ( $cond === '>' ) {
579
  $m = $observed_value > $hide_opt;
580
+ } elseif ( $cond === '>=' ) {
581
  $m = $observed_value >= $hide_opt;
582
+ } elseif ( $cond === '<' ) {
583
  $m = $observed_value < $hide_opt;
584
+ } elseif ( $cond === '<=' ) {
585
  $m = $observed_value <= $hide_opt;
586
+ } elseif ( $cond === 'LIKE' || $cond === 'not LIKE' ) {
587
  $m = stripos( $observed_value, $hide_opt );
588
+ if ( $cond === 'not LIKE' ) {
589
  $m = ( $m === false ) ? true : false;
590
  } else {
591
  $m = ( $m === false ) ? false : true;
592
  }
593
+ } elseif ( $cond === '%LIKE' ) {
594
+ // ends with
595
+ $length = strlen( $hide_opt );
596
+ $substr = substr( $observed_value, strlen( $observed_value ) - $length );
597
+ $m = 0 === strcasecmp( $substr, $hide_opt );
598
+ } elseif ( 'LIKE%' === $cond ) {
599
+ // starts with
600
+ $length = strlen( $hide_opt );
601
+ $substr = substr( $observed_value, 0, $length );
602
+ $m = 0 === strcasecmp( $substr, $hide_opt );
603
  }
604
 
605
  return $m;
623
 
624
  public static function array_value_condition( $observed_value, $cond, $hide_opt ) {
625
  $m = false;
626
+ if ( $cond === '==' ) {
627
  if ( is_array( $hide_opt ) ) {
628
  $m = array_intersect( $hide_opt, $observed_value );
629
  $m = empty( $m ) ? false : true;
630
  } else {
631
  $m = in_array( $hide_opt, $observed_value );
632
  }
633
+ } elseif ( $cond === '!=' ) {
634
  $m = ! in_array( $hide_opt, $observed_value );
635
+ } elseif ( $cond === '>' ) {
636
  $min = min( $observed_value );
637
  $m = $min > $hide_opt;
638
+ } elseif ( $cond === '<' ) {
639
  $max = max( $observed_value );
640
  $m = $max < $hide_opt;
641
+ } elseif ( $cond === 'LIKE' || $cond === 'not LIKE' ) {
642
  foreach ( $observed_value as $ob ) {
643
  $m = strpos( $ob, $hide_opt );
644
  if ( $m !== false ) {
647
  }
648
  }
649
 
650
+ if ( $cond === 'not LIKE' ) {
651
  $m = ( $m === false ) ? true : false;
652
  }
653
+ } elseif ( $cond === '%LIKE' ) {
654
+ // ends with
655
+ foreach ( $observed_value as $ob ) {
656
+ if ( $hide_opt === substr( $ob, strlen( $ob ) - strlen( $hide_opt ) ) ) {
657
+ $m = true;
658
+ break;
659
+ }
660
+ }
661
+ } elseif ( $cond === 'LIKE%' ) {
662
+ // starts with
663
+ foreach ( $observed_value as $ob ) {
664
+ if ( $hide_opt === substr( $ob, 0, strlen( $hide_opt ) ) ) {
665
+ $m = true;
666
+ break;
667
+ }
668
+ }
669
  }
670
 
671
  return $m;
1008
  $field_types[ $type ] = $field_selection[ $type ];
1009
  }
1010
 
1011
+ $field_types = apply_filters( 'frm_switch_field_types', $field_types, compact( 'type', 'field_selection' ) );
1012
 
1013
  return $field_types;
1014
  }
1333
  */
1334
  public static function bulk_options_overlay() {
1335
  $prepop = array();
1336
+ self::get_bulk_prefilled_opts( $prepop, true );
1337
 
1338
  include( FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/bulk-options-overlay.php' );
1339
  }
1655
  return apply_filters( 'frm_countries', $countries );
1656
  }
1657
 
1658
+ /**
1659
+ * Gets bulk prefilled options.
1660
+ *
1661
+ * @since 5.0.04 Add `$include_class` param.
1662
+ *
1663
+ * @param array $prepop Bulk options.
1664
+ * @param array $include_class Include the class in the bulk options.
1665
+ */
1666
+ public static function get_bulk_prefilled_opts( array &$prepop, $include_class = false ) {
1667
+ // Countries.
1668
+ $countries = self::get_countries();
1669
+ if ( $include_class ) {
1670
+ $countries['class'] = 'frm-countries-opts';
1671
+ }
1672
+
1673
+ $prepop[ __( 'Countries', 'formidable' ) ] = $countries;
1674
 
1675
+ // State abv.
1676
  $states = self::get_us_states();
1677
  $state_abv = array_keys( $states );
1678
  sort( $state_abv );
1679
+ if ( $include_class ) {
1680
+ $state_abv['class'] = 'frm-state-abv-opts';
1681
+ }
1682
+
1683
  $prepop[ __( 'U.S. State Abbreviations', 'formidable' ) ] = $state_abv;
1684
 
1685
+ // States.
1686
  $states = array_values( $states );
1687
  sort( $states );
1688
+ if ( $include_class ) {
1689
+ $states['class'] = 'frm-states-opts';
1690
+ }
1691
+
1692
  $prepop[ __( 'U.S. States', 'formidable' ) ] = $states;
1693
  unset( $state_abv, $states );
1694
 
1695
+ // Age.
1696
+ $ages = array(
1697
  __( 'Under 18', 'formidable' ),
1698
  __( '18-24', 'formidable' ),
1699
  __( '25-34', 'formidable' ),
1703
  __( '65 or Above', 'formidable' ),
1704
  __( 'Prefer Not to Answer', 'formidable' ),
1705
  );
1706
+ if ( $include_class ) {
1707
+ $ages['class'] = 'frm-age-opts';
1708
+ }
1709
 
1710
+ $prepop[ __( 'Age', 'formidable' ) ] = $ages;
1711
+
1712
+ // Satisfaction.
1713
+ $satisfaction = array(
 
1714
  __( 'Very Unsatisfied', 'formidable' ),
1715
+ __( 'Unsatisfied', 'formidable' ),
1716
+ __( 'Neutral', 'formidable' ),
1717
+ __( 'Satisfied', 'formidable' ),
1718
+ __( 'Very Satisfied', 'formidable' ),
1719
  __( 'N/A', 'formidable' ),
1720
  );
1721
+ if ( $include_class ) {
1722
+ $satisfaction['class'] = 'frm-satisfaction-opts';
1723
+ }
1724
 
1725
+ $prepop[ __( 'Satisfaction', 'formidable' ) ] = $satisfaction;
1726
+
1727
+ // Importance.
1728
+ $importance = array(
 
1729
  __( 'Not at all Important', 'formidable' ),
1730
+ __( 'Somewhat Important', 'formidable' ),
1731
+ __( 'Neutral', 'formidable' ),
1732
+ __( 'Important', 'formidable' ),
1733
+ __( 'Very Important', 'formidable' ),
1734
  __( 'N/A', 'formidable' ),
1735
  );
1736
+ if ( $include_class ) {
1737
+ $importance['class'] = 'frm-importance-opts';
1738
+ }
1739
 
1740
+ $prepop[ __( 'Importance', 'formidable' ) ] = $importance;
1741
+
1742
+ // Agreement.
1743
+ $agreement = array(
1744
+ __( 'Strongly Disagree', 'formidable' ),
1745
+ __( 'Disagree', 'formidable' ),
1746
+ __( 'Neutral', 'formidable' ),
1747
  __( 'Agree', 'formidable' ),
1748
+ __( 'Strongly Agree', 'formidable' ),
1749
+ __( 'N/A', 'formidable' ),
1750
+ );
1751
+ if ( $include_class ) {
1752
+ $agreement['class'] = 'frm-agreement-opts';
1753
+ }
1754
+
1755
+ $prepop[ __( 'Agreement', 'formidable' ) ] = $agreement;
1756
+
1757
+ // Likely.
1758
+ $likely = array(
1759
+ __( 'Extremely Unlikely', 'formidable' ),
1760
+ __( 'Unlikely', 'formidable' ),
1761
  __( 'Neutral', 'formidable' ),
1762
+ __( 'Likely', 'formidable' ),
1763
+ __( 'Extremely Likely', 'formidable' ),
1764
  __( 'N/A', 'formidable' ),
1765
  );
1766
+ if ( $include_class ) {
1767
+ $likely['class'] = 'frm-likely-opts';
1768
+ }
1769
+
1770
+ $prepop[ __( 'Likely', 'formidable' ) ] = $likely;
1771
 
1772
  $prepop = apply_filters( 'frm_bulk_field_choices', $prepop );
1773
  }
1860
  <?php
1861
  }
1862
 
1863
+ /**
1864
+ * Shows Display format option.
1865
+ *
1866
+ * @since 5.0.04
1867
+ *
1868
+ * @param array $field Field data.
1869
+ */
1870
+ public static function show_radio_display_format( $field ) {
1871
+ $options = array(
1872
+ '0' => array(
1873
+ 'text' => __( 'Simple', 'formidable' ),
1874
+ 'svg' => 'frm_simple_radio',
1875
+ ),
1876
+ '1' => array(
1877
+ 'text' => __( 'Images', 'formidable' ),
1878
+ 'svg' => 'frm_image_as_option',
1879
+ 'addon' => 'pro',
1880
+ 'upgrade' => __( 'Image Options', 'formidable' ),
1881
+ 'message' => __( 'Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more.', 'formidable' ) . '<img src="' . esc_url( FrmAppHelper::plugin_url() ) . '/images/image-options.png" />',
1882
+ 'content' => 'image-options',
1883
+ ),
1884
+ 'buttons' => array(
1885
+ 'text' => __( 'Buttons', 'formidable' ),
1886
+ 'svg' => 'frm_button_as_option',
1887
+ 'addon' => 'surveys',
1888
+ 'upgrade' => __( 'Button Options', 'formidable' ),
1889
+ 'message' => __( 'Show buttons for radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more.', 'formidable' ),
1890
+ 'content' => 'button-options',
1891
+ ),
1892
+ );
1893
+
1894
+ /**
1895
+ * Allows modifying the options of Display format setting of Radio field.
1896
+ *
1897
+ * @since 5.0.04
1898
+ *
1899
+ * @param array $options Options.
1900
+ */
1901
+ $options = apply_filters( 'frm_radio_display_format_options', $options );
1902
+
1903
+ $args = self::get_display_format_args( $field, $options );
1904
+
1905
+ include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/radio-display-format.php';
1906
+ }
1907
+
1908
+ /**
1909
+ * Gets display format arguments to pass to the images_dropdown() method.
1910
+ *
1911
+ * @since 5.0.04
1912
+ *
1913
+ * @param array $field Field data.
1914
+ * @param array $options Options array.
1915
+ * @return array
1916
+ */
1917
+ private static function get_display_format_args( $field, $options ) {
1918
+ $args = array(
1919
+ 'selected' => '0',
1920
+ 'options' => array(),
1921
+ 'name' => 'field_options[image_options_' . $field['id'] . ']',
1922
+ 'input_attrs' => array(
1923
+ 'class' => 'frm_toggle_image_options',
1924
+ ),
1925
+ );
1926
+
1927
+ self::fill_image_setting_options( $options, $args );
1928
+
1929
+ /**
1930
+ * Allows modifying the arguments of Display format setting of Radio field.
1931
+ *
1932
+ * @since 5.0.04
1933
+ *
1934
+ * @param array $args Arguments.
1935
+ * @param array $method_args The arguments from the method. Contains `field`, `options`.
1936
+ */
1937
+ return apply_filters( 'frm_radio_display_format_args', $args, compact( 'field', 'options' ) );
1938
+ }
1939
+
1940
+ /**
1941
+ * @since 5.0.04
1942
+ */
1943
+ private static function fill_image_setting_options( $options, &$args ) {
1944
+ foreach ( $options as $key => $option ) {
1945
+ $args['options'][ $key ] = $option;
1946
+
1947
+ if ( ! empty( $option['addon'] ) ) {
1948
+ $args['options'][ $key ]['custom_attrs'] = self::fill_image_setting_addon_link( $option );
1949
+ }
1950
+
1951
+ unset( $args['options'][ $key ]['addon'] );
1952
+ $fill = array( 'upgrade', 'message', 'content' );
1953
+ foreach ( $fill as $f ) {
1954
+ unset( $args['options'][ $key ][ $f ], $f );
1955
+ }
1956
+ }
1957
+ }
1958
+
1959
+ /**
1960
+ * @since 5.0.04
1961
+ *
1962
+ * @return array
1963
+ */
1964
+ private static function fill_image_setting_addon_link( $option ) {
1965
+ $custom_attrs = array(
1966
+ 'class' => 'frm_noallow frm_show_upgrade',
1967
+ 'data-medium' => 'builder',
1968
+ );
1969
+
1970
+ // translators: Add-on name.
1971
+ $custom_attrs['data-upgrade'] = sprintf( __( 'Formidable %s', 'formidable' ), ucwords( $option['addon'] ) );
1972
+
1973
+ $fill = array( 'upgrade', 'message', 'content' );
1974
+ foreach ( $fill as $f ) {
1975
+ if ( isset( $option[ $f ] ) ) {
1976
+ $custom_attrs[ 'data-' . $f ] = $option[ $f ];
1977
+ }
1978
+ }
1979
+
1980
+ if ( 'pro' === $option['addon'] ) {
1981
+ return $custom_attrs;
1982
+ }
1983
+
1984
+ $upgrading = FrmAddonsController::install_link( $option['addon'] );
1985
+ if ( isset( $upgrading['url'] ) ) {
1986
+ $install_data = wp_json_encode( $upgrading );
1987
+ } else {
1988
+ $install_data = '';
1989
+ }
1990
+
1991
+ $custom_attrs['data-oneclick'] = $install_data;
1992
+ $custom_attrs['data-requires'] = FrmFormsHelper::get_plan_required( $upgrading );
1993
+
1994
+ return $custom_attrs;
1995
+ }
1996
+
1997
  /**
1998
  * @deprecated 4.0
1999
  */
classes/helpers/FrmTipsHelper.php CHANGED
@@ -122,13 +122,6 @@ class FrmTipsHelper {
122
  'tip' => __( 'Have long forms?', 'formidable' ),
123
  'call' => __( 'Let users save drafts and return later!', 'formidable' ),
124
  ),
125
- array(
126
- 'link' => array(
127
- 'content' => 'ajax',
128
- ),
129
- 'tip' => __( 'Want to submit forms without reloading the page?', 'formidable' ),
130
- 'call' => __( 'Get ajax form submit.', 'formidable' ),
131
- ),
132
  array(
133
  'link' => array(
134
  'content' => 'form-scheduling',
122
  'tip' => __( 'Have long forms?', 'formidable' ),
123
  'call' => __( 'Let users save drafts and return later!', 'formidable' ),
124
  ),
 
 
 
 
 
 
 
125
  array(
126
  'link' => array(
127
  'content' => 'form-scheduling',
classes/models/FrmEntry.php CHANGED
@@ -461,10 +461,8 @@ class FrmEntry {
461
  }
462
 
463
  if ( preg_match( '/ meta_([0-9]+)/', $order_by, $order_matches ) ) {
464
- // sort by a requested field
465
- $field_id = (int) $order_matches[1];
466
- $fields .= ', (SELECT meta_value FROM ' . $wpdb->prefix . 'frm_item_metas WHERE field_id = ' . $field_id . ' AND item_id = it.id) as meta_' . $field_id;
467
- unset( $order_matches, $field_id );
468
  }
469
 
470
  // prepare the query
@@ -527,6 +525,26 @@ class FrmEntry {
527
  return $entries;
528
  }
529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
530
  // Pagination Methods
531
  /**
532
  * @param int|array|string If int, use the form id.
461
  }
462
 
463
  if ( preg_match( '/ meta_([0-9]+)/', $order_by, $order_matches ) ) {
464
+ $fields .= self::sort_by_field( $order_matches[1] );
465
+ unset( $order_matches );
 
 
466
  }
467
 
468
  // prepare the query
525
  return $entries;
526
  }
527
 
528
+ /**
529
+ * @param int $field_id
530
+ * @return string
531
+ */
532
+ private static function sort_by_field( $field_id ) {
533
+ global $wpdb;
534
+ $field_id = (int) $field_id;
535
+
536
+ $field_options = FrmDb::get_var( 'frm_fields', array( 'id' => $field_id ), 'field_options' );
537
+ FrmAppHelper::unserialize_or_decode( $field_options );
538
+
539
+ if ( empty( $field_options['post_field'] ) ) {
540
+ $sort = ', (SELECT meta_value FROM ' . $wpdb->prefix . 'frm_item_metas WHERE field_id = ' . $field_id . ' AND item_id = it.id) as meta_' . $field_id;
541
+ } else {
542
+ $sort = '';
543
+ }
544
+
545
+ return apply_filters( 'frm_handle_field_column_sort', $sort, $field_id, $field_options );
546
+ }
547
+
548
  // Pagination Methods
549
  /**
550
  * @param int|array|string If int, use the form id.
classes/models/FrmEntryValidate.php CHANGED
@@ -34,7 +34,16 @@ class FrmEntryValidate {
34
  self::spam_check( $exclude, $values, $errors );
35
  }
36
 
37
- $errors = apply_filters( 'frm_validate_entry', $errors, $values, compact( 'exclude' ) );
 
 
 
 
 
 
 
 
 
38
 
39
  return $errors;
40
  }
34
  self::spam_check( $exclude, $values, $errors );
35
  }
36
 
37
+ /**
38
+ * Allows modifying the validation errors after validating all fields.
39
+ *
40
+ * @since 5.0.04 Added `posted_fields` to the third param.
41
+ *
42
+ * @param array $errors Errors data.
43
+ * @param array $values Value data of the form.
44
+ * @param array $args Custom arguments. Contains `exclude` and `posted_fields`.
45
+ */
46
+ $errors = apply_filters( 'frm_validate_entry', $errors, $values, compact( 'exclude', 'posted_fields' ) );
47
 
48
  return $errors;
49
  }
classes/models/FrmEntryValues.php CHANGED
@@ -119,6 +119,16 @@ class FrmEntryValues {
119
  }
120
 
121
  $this->include_fields = $this->prepare_array_property( 'include_fields', $atts );
 
 
 
 
 
 
 
 
 
 
122
  }
123
 
124
  /**
@@ -130,6 +140,16 @@ class FrmEntryValues {
130
  */
131
  protected function init_exclude_fields( $atts ) {
132
  $this->exclude_fields = $this->prepare_array_property( 'exclude_fields', $atts );
 
 
 
 
 
 
 
 
 
 
133
  }
134
 
135
  /**
@@ -164,6 +184,23 @@ class FrmEntryValues {
164
  */
165
  protected function init_fields() {
166
  $this->fields = FrmField::get_all_for_form( $this->form_id, '', 'exclude', 'exclude' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  }
168
 
169
  /**
119
  }
120
 
121
  $this->include_fields = $this->prepare_array_property( 'include_fields', $atts );
122
+
123
+ /**
124
+ * Allows modifying the IDs of include_fields used in the entry values.
125
+ *
126
+ * @since 5.0.04
127
+ *
128
+ * @param array $field_ids The list of field IDs.
129
+ * @param array $atts The arguments. See {@see FrmEntriesController::show_entry_shortcode()}.
130
+ */
131
+ $this->include_fields = apply_filters( 'frm_entry_values_include_fields', $this->include_fields, $atts );
132
  }
133
 
134
  /**
140
  */
141
  protected function init_exclude_fields( $atts ) {
142
  $this->exclude_fields = $this->prepare_array_property( 'exclude_fields', $atts );
143
+
144
+ /**
145
+ * Allows modifying the IDs of exclude_fields used in the entry values.
146
+ *
147
+ * @since 5.0.04
148
+ *
149
+ * @param array $field_ids The list of field IDs.
150
+ * @param array $atts The arguments. See {@see FrmEntriesController::show_entry_shortcode()}.
151
+ */
152
+ $this->exclude_fields = apply_filters( 'frm_entry_values_exclude_fields', $this->exclude_fields, $atts );
153
  }
154
 
155
  /**
184
  */
185
  protected function init_fields() {
186
  $this->fields = FrmField::get_all_for_form( $this->form_id, '', 'exclude', 'exclude' );
187
+
188
+ /**
189
+ * Allows modifying the list of all field in the form that is used in the entry values.
190
+ *
191
+ * @since 5.0.04
192
+ *
193
+ * @param array $fields The list of fields.
194
+ * @param array $args The arguments. Contains `form_id`, `entry`.
195
+ */
196
+ $this->fields = apply_filters(
197
+ 'frm_entry_values_fields',
198
+ $this->fields,
199
+ array(
200
+ 'form_id' => $this->form_id,
201
+ 'entry' => $this->entry,
202
+ )
203
+ );
204
  }
205
 
206
  /**
classes/models/FrmField.php CHANGED
@@ -139,6 +139,16 @@ class FrmField {
139
  'name' => __( 'Embed Form', 'formidable' ),
140
  'icon' => 'frm_icon_font frm_file_text_icon',
141
  ),
 
 
 
 
 
 
 
 
 
 
142
  'password' => array(
143
  'name' => __( 'Password', 'formidable' ),
144
  'icon' => 'frm_icon_font frm_lock_open_icon',
139
  'name' => __( 'Embed Form', 'formidable' ),
140
  'icon' => 'frm_icon_font frm_file_text_icon',
141
  ),
142
+ 'likert' => array(
143
+ 'name' => __( 'Likert Scale', 'formidable' ),
144
+ 'icon' => 'frm_icon_font frm_likert_scale frm_show_upgrade',
145
+ 'addon' => 'surveys',
146
+ ),
147
+ 'nps' => array(
148
+ 'name' => __( 'NPS', 'formidable' ),
149
+ 'icon' => 'frm_icon_font frm_nps frm_show_upgrade',
150
+ 'addon' => 'surveys',
151
+ ),
152
  'password' => array(
153
  'name' => __( 'Password', 'formidable' ),
154
  'icon' => 'frm_icon_font frm_lock_open_icon',
classes/models/FrmInbox.php CHANGED
@@ -14,6 +14,11 @@ class FrmInbox extends FrmFormApi {
14
 
15
  private $messages = false;
16
 
 
 
 
 
 
17
  public function __construct( $for_parent = null ) {
18
  $this->set_cache_key();
19
  $this->set_messages();
@@ -160,13 +165,19 @@ class FrmInbox extends FrmFormApi {
160
 
161
  /**
162
  * Show different messages for different accounts.
 
 
 
163
  */
164
  private function is_for_user( $message ) {
165
  if ( ! isset( $message['who'] ) || $message['who'] === 'all' ) {
166
  return true;
167
  }
168
-
169
- return in_array( $this->get_user_type(), (array) $message['who'] );
 
 
 
170
  }
171
 
172
  private function get_user_type() {
@@ -282,4 +293,33 @@ class FrmInbox extends FrmFormApi {
282
  private function update_list() {
283
  update_option( $this->option, $this->messages, 'no' );
284
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  }
14
 
15
  private $messages = false;
16
 
17
+ /**
18
+ * @param array
19
+ */
20
+ private static $banner_messages;
21
+
22
  public function __construct( $for_parent = null ) {
23
  $this->set_cache_key();
24
  $this->set_messages();
165
 
166
  /**
167
  * Show different messages for different accounts.
168
+ *
169
+ * @param array $message
170
+ * @return bool
171
  */
172
  private function is_for_user( $message ) {
173
  if ( ! isset( $message['who'] ) || $message['who'] === 'all' ) {
174
  return true;
175
  }
176
+ $who = (array) $message['who'];
177
+ if ( in_array( 'all', $who, true ) || in_array( 'everyone', $who, true ) ) {
178
+ return true;
179
+ }
180
+ return in_array( $this->get_user_type(), $who, true );
181
  }
182
 
183
  private function get_user_type() {
293
  private function update_list() {
294
  update_option( $this->option, $this->messages, 'no' );
295
  }
296
+
297
+ public static function maybe_show_banner() {
298
+ if ( empty( self::$banner_messages ) ) {
299
+ return;
300
+ }
301
+ $message = end( self::$banner_messages );
302
+ require FrmAppHelper::plugin_path() . '/classes/views/inbox/banner.php';
303
+ }
304
+
305
+ public static function maybe_disable_screen_options() {
306
+ self::$banner_messages = self::get_banner_messages();
307
+ if ( self::$banner_messages ) {
308
+ // disable screen options tab when displaying banner messages because it gets in the way of the banner.
309
+ add_filter( 'screen_options_show_screen', '__return_false' );
310
+ }
311
+ }
312
+
313
+ /**
314
+ * @return array
315
+ */
316
+ private static function get_banner_messages() {
317
+ $inbox = new self();
318
+ return array_filter(
319
+ $inbox->get_messages( 'filter' ),
320
+ function( $message ) {
321
+ return ! empty( $message['banner'] );
322
+ }
323
+ );
324
+ }
325
  }
classes/models/fields/FrmFieldType.php CHANGED
@@ -700,9 +700,8 @@ DEFAULT_HTML;
700
  */
701
  public function prepare_field_html( $args ) {
702
  $args = $this->fill_display_field_values( $args );
703
-
704
  if ( $this->has_html ) {
705
- $args['html'] = $this->before_replace_html_shortcodes( $args, $this->field['custom_html'] );
706
  $args['errors'] = is_array( $args['errors'] ) ? $args['errors'] : array();
707
  $args['field_obj'] = $this;
708
 
700
  */
701
  public function prepare_field_html( $args ) {
702
  $args = $this->fill_display_field_values( $args );
 
703
  if ( $this->has_html ) {
704
+ $args['html'] = $this->before_replace_html_shortcodes( $args, FrmField::get_option( $this->field, 'custom_html' ) );
705
  $args['errors'] = is_array( $args['errors'] ) ? $args['errors'] : array();
706
  $args['field_obj'] = $this;
707
 
classes/views/frm-entries/form.php CHANGED
@@ -44,7 +44,16 @@ $frm_hide_fields = FrmAppHelper::get_post_param( 'frm_hide_fields_' . $form->id,
44
  <?php } ?>
45
  <?php
46
  if ( $values['fields'] ) {
47
- FrmFieldsHelper::show_fields( $values['fields'], $errors, $form, $form_action );
 
 
 
 
 
 
 
 
 
48
  }
49
 
50
  $frm_settings = FrmAppHelper::get_settings();
44
  <?php } ?>
45
  <?php
46
  if ( $values['fields'] ) {
47
+ /**
48
+ * Allows modifying the list of fields in the frontend form.
49
+ *
50
+ * @since 5.0.04
51
+ *
52
+ * @param array $fields Array of fields.
53
+ * @param array $args The arguments. Contains `form`.
54
+ */
55
+ $fields_to_show = apply_filters( 'frm_fields_in_form', $values['fields'], compact( 'form' ) );
56
+ FrmFieldsHelper::show_fields( $fields_to_show, $errors, $form, $form_action );
57
  }
58
 
59
  $frm_settings = FrmAppHelper::get_settings();
classes/views/frm-fields/back-end/bulk-options-overlay.php CHANGED
@@ -17,7 +17,8 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  </p>
18
  <textarea name="frm_bulk_options" id="frm_bulk_options"></textarea>
19
  <input type="hidden" value="" id="bulk-field-id" />
20
-
 
21
  <button class="button-primary frm-button-primary" id="frm-update-bulk-opts">
22
  <?php esc_attr_e( 'Update Options', 'formidable' ); ?>
23
  </button>
@@ -27,8 +28,16 @@ if ( ! defined( 'ABSPATH' ) ) {
27
  <?php esc_html_e( 'Insert Presets', 'formidable' ); ?>
28
  </h3>
29
  <ul class="frm_prepop">
30
- <?php foreach ( $prepop as $label => $pop ) { ?>
31
- <li>
 
 
 
 
 
 
 
 
32
  <a href="#" class="frm-insert-preset" data-opts="<?php echo esc_attr( json_encode( $pop ) ); ?>">
33
  <?php echo esc_html( $label ); ?>
34
  </a>
17
  </p>
18
  <textarea name="frm_bulk_options" id="frm_bulk_options"></textarea>
19
  <input type="hidden" value="" id="bulk-field-id" />
20
+ <input type="hidden" value="" id="bulk-option-type" />
21
+
22
  <button class="button-primary frm-button-primary" id="frm-update-bulk-opts">
23
  <?php esc_attr_e( 'Update Options', 'formidable' ); ?>
24
  </button>
28
  <?php esc_html_e( 'Insert Presets', 'formidable' ); ?>
29
  </h3>
30
  <ul class="frm_prepop">
31
+ <?php
32
+ foreach ( $prepop as $label => $pop ) {
33
+ if ( isset( $pop['class'] ) ) {
34
+ $class = $pop['class'];
35
+ unset( $pop['class'] );
36
+ } else {
37
+ $class = '';
38
+ }
39
+ ?>
40
+ <li class="<?php echo esc_attr( $class ); ?>">
41
  <a href="#" class="frm-insert-preset" data-opts="<?php echo esc_attr( json_encode( $pop ) ); ?>">
42
  <?php echo esc_html( $label ); ?>
43
  </a>
classes/views/frm-fields/back-end/radio-display-format.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Display format option
4
+ *
5
+ * @since 5.0.04
6
+ * @package Formidable
7
+ *
8
+ * @var array $field Field data.
9
+ * @var array $options Options array.
10
+ * @var array $args The arguments.
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ die( 'You are not allowed to call this page directly.' );
15
+ }
16
+ ?>
17
+ <div id="frm_display_format_<?php echo intval( $field['id'] ); ?>_container" class="frm_form_field">
18
+ <label for="frm_image_options_<?php echo intval( $field['id'] ); ?>"><?php esc_html_e( 'Display format', 'formidable' ); ?></label>
19
+ <?php FrmAppHelper::images_dropdown( $args ); ?>
20
+ </div>
classes/views/frm-fields/back-end/radio-images.php CHANGED
@@ -1,7 +1,17 @@
1
  <?php
 
 
 
 
 
 
 
 
2
  if ( ! defined( 'ABSPATH' ) ) {
3
  die( 'You are not allowed to call this page directly.' );
4
  }
 
 
5
  ?>
6
  <p class="frm6 frm_form_field frm_noallow frm_show_upgrade" data-upgrade="<?php esc_attr_e( 'Separate Values', 'formidable' ); ?>" data-message="<?php esc_attr_e( 'Add a separate value to use for calculations, email routing, saving to the database, and many other uses. The option values are saved while the option labels are shown in the form.', 'formidable' ); ?>" data-medium="builder" data-content="separate-values">
7
  <label>
@@ -9,10 +19,3 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  <?php esc_html_e( 'Use separate values', 'formidable' ); ?>
10
  </label>
11
  </p>
12
-
13
- <p class="frm6 frm_form_field frm_image_options_radio frm_noallow frm_show_upgrade" data-upgrade="<?php esc_attr_e( 'Image Options', 'formidable' ); ?>" data-message="<?php echo esc_attr( __( 'Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more.', 'formidable' ) . '<img src="' . FrmAppHelper::plugin_url() . '/images/image-options.png" />' ); ?>" data-medium="builder" data-content="image-options">
14
- <label>
15
- <input type="checkbox" value="1" disabled="disabled" />
16
- <?php esc_html_e( 'Use images for options', 'formidable' ); ?>
17
- </label>
18
- </p>
1
  <?php
2
+ /**
3
+ * View file for image options of Radio or Checkbox field.
4
+ *
5
+ * @package Formidable
6
+ *
7
+ * @var array $args Arguments. Contains `field`, `display` and `values`.
8
+ */
9
+
10
  if ( ! defined( 'ABSPATH' ) ) {
11
  die( 'You are not allowed to call this page directly.' );
12
  }
13
+
14
+ FrmFieldsHelper::show_radio_display_format( $args['field'] );
15
  ?>
16
  <p class="frm6 frm_form_field frm_noallow frm_show_upgrade" data-upgrade="<?php esc_attr_e( 'Separate Values', 'formidable' ); ?>" data-message="<?php esc_attr_e( 'Add a separate value to use for calculations, email routing, saving to the database, and many other uses. The option values are saved while the option labels are shown in the form.', 'formidable' ); ?>" data-medium="builder" data-content="separate-values">
17
  <label>
19
  <?php esc_html_e( 'Use separate values', 'formidable' ); ?>
20
  </label>
21
  </p>
 
 
 
 
 
 
 
classes/views/frm-fields/back-end/settings.php CHANGED
@@ -100,7 +100,17 @@ if ( $display['clear_on_focus'] ) {
100
  do_action( 'frm_extra_field_display_options', $field );
101
  }
102
 
103
- do_action( 'frm_before_field_options', $field );
 
 
 
 
 
 
 
 
 
 
104
 
105
  ?>
106
 
@@ -304,7 +314,7 @@ do_action( 'frm_before_field_options', $field );
304
  <select name="field_options[type_<?php echo esc_attr( $field['id'] ); ?>]" id="field_options_type_<?php echo esc_attr( $field['id'] ); ?>">
305
  <?php foreach ( $field_types as $fkey => $ftype ) { ?>
306
  <option value="<?php echo esc_attr( $fkey ); ?>" <?php echo ( $fkey === $field['type'] ) ? ' selected="selected"' : ''; ?> <?php echo array_key_exists( $fkey, $disabled_fields ) ? 'disabled="disabled"' : ''; ?>>
307
- <?php echo esc_html( is_array( $ftype ) ? $ftype['name'] : $ftype ); ?>
308
  </option>
309
  <?php
310
  unset( $fkey, $ftype );
100
  do_action( 'frm_extra_field_display_options', $field );
101
  }
102
 
103
+ /**
104
+ * Fires after printing the primary options section of field.
105
+ *
106
+ * @since 5.0.04 Added `$display` and `$values`.
107
+ *
108
+ * @param array $field Field data.
109
+ * @param FrmFieldType $field_obj Field type object.
110
+ * @param array $display Display data.
111
+ * @param array $values Field values.
112
+ */
113
+ do_action( 'frm_before_field_options', $field, compact( 'field_obj', 'display', 'values' ) );
114
 
115
  ?>
116
 
314
  <select name="field_options[type_<?php echo esc_attr( $field['id'] ); ?>]" id="field_options_type_<?php echo esc_attr( $field['id'] ); ?>">
315
  <?php foreach ( $field_types as $fkey => $ftype ) { ?>
316
  <option value="<?php echo esc_attr( $fkey ); ?>" <?php echo ( $fkey === $field['type'] ) ? ' selected="selected"' : ''; ?> <?php echo array_key_exists( $fkey, $disabled_fields ) ? 'disabled="disabled"' : ''; ?>>
317
+ <?php echo esc_html( is_array( $ftype ) ? $ftype['name'] : $ftype ); ?>
318
  </option>
319
  <?php
320
  unset( $fkey, $ftype );
classes/views/frm-fields/front-end/checkbox-field.php CHANGED
@@ -23,6 +23,16 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
23
  $field_val = FrmFieldsHelper::get_value_from_array( $opt, $opt_key, $field );
24
  $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
25
 
 
 
 
 
 
 
 
 
 
 
26
  $checked = ''; // init
27
  if ( ! FrmFieldsHelper::is_other_opt( $opt_key ) ) {
28
  // Let the checked state of 'Other' fields be determined solely by FrmFieldsHelper::prepare_other_input as below.
@@ -48,7 +58,7 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
48
  ?> /><?php
49
 
50
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
51
- echo ' ' . FrmAppHelper::kses( $opt, 'all' ) . '</label>'; // WPCS: XSS ok.
52
  }
53
 
54
  $other_args = array(
23
  $field_val = FrmFieldsHelper::get_value_from_array( $opt, $opt_key, $field );
24
  $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
25
 
26
+ /**
27
+ * Allows changing the HTML of option label in choice field (radio, checkbox,...).
28
+ *
29
+ * @since 5.0.04
30
+ *
31
+ * @param string $label Label HTML.
32
+ * @param array $args The arguments. Contains `field`.
33
+ */
34
+ $label = apply_filters( 'frm_choice_field_option_label', $opt, compact( 'field' ) );
35
+
36
  $checked = ''; // init
37
  if ( ! FrmFieldsHelper::is_other_opt( $opt_key ) ) {
38
  // Let the checked state of 'Other' fields be determined solely by FrmFieldsHelper::prepare_other_input as below.
58
  ?> /><?php
59
 
60
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
61
+ echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // WPCS: XSS ok.
62
  }
63
 
64
  $other_args = array(
classes/views/frm-fields/front-end/radio-field.php CHANGED
@@ -22,6 +22,16 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
22
 
23
  $field_val = FrmFieldsHelper::get_value_from_array( $opt, $opt_key, $field );
24
  $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
 
 
 
 
 
 
 
 
 
 
25
  ?>
26
  <div class="<?php echo esc_attr( apply_filters( 'frm_radio_class', 'frm_radio', $field, $field_val ) ); ?>" id="<?php echo esc_attr( FrmFieldsHelper::get_checkbox_id( $field, $opt_key, 'radio' ) ); ?>"><?php
27
 
@@ -40,7 +50,7 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
40
  ?>/><?php
41
 
42
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
43
- echo ' ' . FrmAppHelper::kses( $opt, 'all' ) . '</label>'; // WPCS: XSS ok.
44
  }
45
 
46
  $other_args = array(
22
 
23
  $field_val = FrmFieldsHelper::get_value_from_array( $opt, $opt_key, $field );
24
  $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
25
+
26
+ /**
27
+ * Allows changing the HTML of option label in choice field (radio, checkbox,...).
28
+ *
29
+ * @since 5.0.04
30
+ *
31
+ * @param string $label Label HTML.
32
+ * @param array $args The arguments. Contains `field`.
33
+ */
34
+ $label = apply_filters( 'frm_choice_field_option_label', $opt, compact( 'field' ) );
35
  ?>
36
  <div class="<?php echo esc_attr( apply_filters( 'frm_radio_class', 'frm_radio', $field, $field_val ) ); ?>" id="<?php echo esc_attr( FrmFieldsHelper::get_checkbox_id( $field, $opt_key, 'radio' ) ); ?>"><?php
37
 
50
  ?>/><?php
51
 
52
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
53
+ echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // WPCS: XSS ok.
54
  }
55
 
56
  $other_args = array(
classes/views/frm-forms/settings-advanced.php CHANGED
@@ -121,11 +121,13 @@ if ( ! defined( 'ABSPATH' ) ) {
121
  <?php is_callable( 'self::render_spam_settings' ) && self::render_spam_settings( $values ); ?>
122
  </table>
123
 
 
 
124
  <!--AJAX Section-->
125
  <h3><?php esc_html_e( 'AJAX', 'formidable' ); ?>
126
  <span class="frm_help frm_icon_font frm_tooltip_icon" data-placement="right" title="<?php esc_attr_e( 'Make stuff happen in the background without a page refresh', 'formidable' ); ?>" ></span>
127
  </h3>
128
- <?php FrmTipsHelper::pro_tip( 'get_form_settings_tip', 'p' ); ?>
129
  <table class="form-table">
130
  <tr>
131
  <td>
@@ -136,6 +138,17 @@ if ( ! defined( 'ABSPATH' ) ) {
136
  </td>
137
  </tr>
138
  <?php do_action( 'frm_add_form_ajax_options', $values ); ?>
 
 
 
 
 
 
 
 
 
 
 
139
  <tr>
140
  <td>
141
  <label for="js_validate" class="frm_inline_block">
121
  <?php is_callable( 'self::render_spam_settings' ) && self::render_spam_settings( $values ); ?>
122
  </table>
123
 
124
+ <?php FrmTipsHelper::pro_tip( 'get_form_settings_tip', 'p' ); ?>
125
+
126
  <!--AJAX Section-->
127
  <h3><?php esc_html_e( 'AJAX', 'formidable' ); ?>
128
  <span class="frm_help frm_icon_font frm_tooltip_icon" data-placement="right" title="<?php esc_attr_e( 'Make stuff happen in the background without a page refresh', 'formidable' ); ?>" ></span>
129
  </h3>
130
+
131
  <table class="form-table">
132
  <tr>
133
  <td>
138
  </td>
139
  </tr>
140
  <?php do_action( 'frm_add_form_ajax_options', $values ); ?>
141
+ <?php if ( ! FrmAppHelper::pro_is_installed() ) { ?>
142
+ <tr>
143
+ <td>
144
+ <label data-upgrade="<?php esc_attr_e( 'AJAX Form Submissions', 'formidable' ); ?>" data-medium="ajax" data-message="<?php esc_attr_e( 'Want to submit forms without reloading the page?', 'formidable' ); ?>">
145
+ <input type="checkbox" disabled="disabled" />
146
+ <span class="frm_noallow"><?php esc_html_e( 'Submit this form with AJAX', 'formidable' ); ?></span>
147
+ <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Submit the form without refreshing the page.', 'formidable' ); ?>"></span>
148
+ </label>
149
+ </td>
150
+ </tr>
151
+ <?php } ?>
152
  <tr>
153
  <td>
154
  <label for="js_validate" class="frm_inline_block">
classes/views/frm-forms/settings-buttons.php CHANGED
@@ -47,9 +47,9 @@ if ( ! defined( 'ABSPATH' ) ) {
47
  </td>
48
  </tr>
49
  <tr>
50
- <td><label><?php esc_html_e( 'Submit Button Text', 'formidable' ); ?></label></td>
51
  <td>
52
- <input type="text" name="options[submit_value]" value="<?php echo esc_attr( $values['submit_value'] ); ?>" />
53
  </td>
54
  </tr>
55
  <?php do_action( 'frm_add_form_button_options', $values ); ?>
47
  </td>
48
  </tr>
49
  <tr>
50
+ <td><label for="frm_submit_button_text"><?php esc_html_e( 'Submit Button Text', 'formidable' ); ?></label></td>
51
  <td>
52
+ <input id="frm_submit_button_text" type="text" name="options[submit_value]" value="<?php echo esc_attr( $values['submit_value'] ); ?>" />
53
  </td>
54
  </tr>
55
  <?php do_action( 'frm_add_form_button_options', $values ); ?>
classes/views/inbox/banner.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ die( 'You are not allowed to call this page directly.' );
4
+ }
5
+ $cta = str_replace( 'button-secondary', 'button-primary', $message['cta'] );
6
+ ?>
7
+ <div id="frm_banner" data-key="<?php echo esc_attr( $message['key'] ); ?>">
8
+ <?php if ( ! empty( $message['emoji'] ) ) { ?>
9
+ <span class="frm-banner-emoji"><?php echo esc_html( $message['emoji'] ); ?></span>
10
+ <?php } ?>
11
+ <strong class="frm-banner-title"><?php echo esc_html( $message['subject'] ); ?></strong>
12
+ <span class="frm-banner-content"><?php echo esc_html( $message['banner'] ); ?></span>
13
+ <span class="frm-banner-cta"><?php echo FrmAppHelper::kses( $cta, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
14
+ <span class="frm-banner-dismiss frmsvg"><?php FrmAppHelper::icon_by_class( 'frmfont frm_close_icon', array( 'aria-label' => 'Dismiss' ) ); ?></span>
15
+ </div>
classes/views/shared/admin-header.php CHANGED
@@ -11,6 +11,7 @@ if ( current_user_can( 'administrator' ) && ! FrmAppHelper::pro_is_installed() &
11
  </div>
12
  <?php
13
  }
 
14
  ?>
15
  <div id="frm_top_bar">
16
  <?php if ( FrmAppHelper::is_full_screen() ) { ?>
11
  </div>
12
  <?php
13
  }
14
+ FrmInbox::maybe_show_banner();
15
  ?>
16
  <div id="frm_top_bar">
17
  <?php if ( FrmAppHelper::is_full_screen() ) { ?>
classes/views/shared/images-dropdown.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Images dropdown option view
4
+ *
5
+ * @since 5.0.04
6
+ * @package Formidable
7
+ *
8
+ * @var array $args The arguments of images_dropdown() method.
9
+ * @var array $option The option data.
10
+ * @var string $image The image HTML.
11
+ * @var string $classes The HTML classes.
12
+ * @var string $custom_attrs The custom HTML attributes.
13
+ */
14
+
15
+ if ( ! defined( 'ABSPATH' ) ) {
16
+ die( 'You are not allowed to call this page directly.' );
17
+ }
18
+ ?>
19
+ <div class="frm_images_dropdown frm_grid_container <?php echo esc_attr( $args['classes'] ); ?>">
20
+ <?php
21
+ foreach ( $args['options'] as $key => $option ) {
22
+ $option['key'] = $key;
23
+
24
+ $image = self::get_images_dropdown_option_image( $option, $args );
25
+ $classes = self::get_images_dropdown_option_classes( $option, $args );
26
+ $custom_attrs = self::get_images_dropdown_option_html_attrs( $option, $args );
27
+ ?>
28
+ <div class="frm_radio frm_image_option frm<?php echo esc_attr( $args['col_class'] ); ?>">
29
+ <label class="<?php echo esc_attr( $classes ); ?>" data-value="<?php echo esc_attr( $option['key'] ); ?>"<?php echo $custom_attrs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
30
+ <input value="<?php echo esc_attr( $option['key'] ); ?>" <?php checked( $option['key'], $args['selected'] ); ?> <?php echo $input_attrs_str; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> />
31
+ <div class="frm_image_option_container frm_grid_container">
32
+ <span class="frm_images_dropdown__image frm4">
33
+ <?php echo FrmAppHelper::kses( $image, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
34
+ </span>
35
+ <span class="frm_text_label_for_image frm8">
36
+ <?php echo esc_html( $option['text'] ); ?>
37
+ </span>
38
+ </div>
39
+ </label>
40
+ </div>
41
+ <?php
42
+ }
43
+ ?>
44
+ </div>
classes/views/shared/upgrade_overlay.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  esc_html__( '%s are not installed', 'formidable' ),
20
  '<span class="frm_feature_label"></span>'
21
  );
22
- ?>
23
  </h2>
24
  <div class="cta-inside">
25
 
19
  esc_html__( '%s are not installed', 'formidable' ),
20
  '<span class="frm_feature_label"></span>'
21
  );
22
+ ?>
23
  </h2>
24
  <div class="cta-inside">
25
 
css/font_icons.css CHANGED
@@ -8,7 +8,7 @@
8
  }
9
 
10
  .frm-submenu-highlight {
11
- background: #F15A24;
12
  }
13
 
14
  .frm-submenu-highlight a span {
8
  }
9
 
10
  .frm-submenu-highlight {
11
+ background: #1da867;
12
  }
13
 
14
  .frm-submenu-highlight a span {
css/frm_admin.css CHANGED
@@ -1797,6 +1797,15 @@ h2.frm-h2 + .howto {
1797
  visibility: hidden;
1798
  }
1799
 
 
 
 
 
 
 
 
 
 
1800
  .addon-status-label {
1801
  opacity: .7;
1802
  }
@@ -7535,6 +7544,51 @@ button.frm_choose_image_box,
7535
  width: auto;
7536
  }
7537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7538
  /* Welcome page */
7539
 
7540
  .wp-core-ui .frm_grey.frm-button-primary.disabled,
@@ -8263,7 +8317,7 @@ Responsive Design
8263
 
8264
  #frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,
8265
  #frm_field_group_popup .frm-row-layout-option:hover {
8266
- outline: 1px solid #4199FD;
8267
  }
8268
 
8269
  .frm-custom-field-group-layout,
@@ -8344,3 +8398,39 @@ Responsive Design
8344
  .frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) {
8345
  pointer-events: none;
8346
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1797
  visibility: hidden;
1798
  }
1799
 
1800
+ #frm_save_and_reload_options {
1801
+ margin-top: 10px;
1802
+ font-size: 13px;
1803
+ }
1804
+
1805
+ #frm_save_and_reload_settings, #frm_save_and_reload_settings + .frm-button-secondary {
1806
+ visibility: visible;
1807
+ }
1808
+
1809
  .addon-status-label {
1810
  opacity: .7;
1811
  }
7544
  width: auto;
7545
  }
7546
 
7547
+ /* Image Options */
7548
+
7549
+ .frm_images_dropdown .frm_image_option {
7550
+ margin: 0 !important;
7551
+ }
7552
+
7553
+ .frm_images_dropdown .frm_radio input[type=radio] {
7554
+ opacity: 0;
7555
+ position: absolute;
7556
+ z-index: -1;
7557
+ }
7558
+
7559
+ .frm_images_dropdown__image .frmsvg {
7560
+ width: 100%;
7561
+ max-width: 102px;
7562
+ fill: none;
7563
+ margin: 0;
7564
+ }
7565
+
7566
+ .frm_images_dropdown .frm_noallow .frm_image_option_container {
7567
+ opacity: .5;
7568
+ }
7569
+
7570
+ .frm_images_dropdown .frm_image_option_container {
7571
+ border-radius: var(--small-radius);
7572
+ border: 2px solid transparent;
7573
+ align-items: center;
7574
+ }
7575
+
7576
+ .frm_images_dropdown .frm_image_option_container:hover {
7577
+ background: #fff !important;
7578
+ }
7579
+
7580
+ .frm_images_dropdown input[type="radio"]:checked + .frm_image_option_container {
7581
+ background: #fff !important;
7582
+ border-color: var(--primary-color);
7583
+ }
7584
+
7585
+ .frm_images_dropdown .frm_text_label_for_image {
7586
+ padding: 0;
7587
+ text-align: left;
7588
+ }
7589
+
7590
+ /* End Image Options */
7591
+
7592
  /* Welcome page */
7593
 
7594
  .wp-core-ui .frm_grey.frm-button-primary.disabled,
8317
 
8318
  #frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,
8319
  #frm_field_group_popup .frm-row-layout-option:hover {
8320
+ outline: 1px solid var(--primary-color);
8321
  }
8322
 
8323
  .frm-custom-field-group-layout,
8398
  .frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider) {
8399
  pointer-events: none;
8400
  }
8401
+
8402
+ #frm_banner {
8403
+ width: 100%;
8404
+ color: #fff;
8405
+ background: var(--primary-color);
8406
+ height: 40px;
8407
+ line-height: 40px;
8408
+ text-align: center;
8409
+ position: relative;
8410
+ }
8411
+
8412
+ .frm-banner-emoji {
8413
+ font-size: 19px;
8414
+ }
8415
+
8416
+ .frm-banner-emoji,
8417
+ .frm-banner-title {
8418
+ margin-right: 5px;
8419
+ vertical-align: top;
8420
+ }
8421
+
8422
+ .frm-banner-cta a {
8423
+ text-decoration: underline !important;
8424
+ }
8425
+
8426
+ .frm-banner-dismiss {
8427
+ cursor: pointer;
8428
+ position: absolute;
8429
+ right: 10px;
8430
+ top: 50%;
8431
+ transform: translateY( -50% );
8432
+ }
8433
+
8434
+ .frm-banner-dismiss .frmsvg {
8435
+ vertical-align: top;
8436
+ }
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: 5.0.03
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: 5.0.04
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
images/icons.svg CHANGED
@@ -908,6 +908,11 @@
908
  <symbol id="frm_case_icon" viewBox="0 0 24 24"><path d="M15 6.5a1 1 0 01-1-1V4h-4v1.5a1 1 0 01-2 0V4c0-1.1.9-2 2-2h4a2 2 0 012 2v1.5c0 .6-.4 1-1 1zM18 12.5v1c0 .3-.3.7-.8.7a.8.8 0 01-.7-.8v-.9h-9v1c0 .3-.3.7-.8.7a.8.8 0 01-.7-.8v-.9H0v6.7C0 20.8 1.2 22 2.7 22h18.5c1.6 0 2.8-1.2 2.8-2.8v-6.7h-6zM21.3 5H2.7A2.7 2.7 0 000 7.8V11h6V9.8c0-.5.3-.8.8-.8.4 0 .7.3.7.8V11h9V9.8c0-.5.3-.8.8-.8.4 0 .7.3.7.8V11h6V7.7C24 6.2 22.8 5 21.3 5z" fill="currentColor"></path></symbol>
909
  <symbol id="frm_smile_icon" viewBox="0 0 24 24"><path d="M12 0a12 12 0 100 24 12 12 0 000-24zM5 9c0-1.1.9-2 2-2a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2zm12.7 9a8 8 0 01-11.4 0 1 1 0 011.4-1.5 6 6 0 008.6 0 1 1 0 011.4 1.4zm-.7-7a2 2 0 01-2-2c0-1.1.9-2 2-2a2 2 0 010 4z" fill="currentColor"></path></symbol>
910
  <symbol id="frm_user_name_icon" viewBox="0 0 24 24" fill="none"><path d="M3 21L21 21C22.1046 21 23 20.1046 23 19L23 16.75L23 13.5625L23 12.5L23 11.4375L23 8.25L23 6C23 4.89543 22.1046 4 21 4L15.1429 4L8.85714 4L3 4C1.89543 4 0.999998 4.89543 0.999998 6L0.999997 19C0.999997 20.1046 1.89543 21 3 21Z" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11.9313 9.93864C11.9313 11.5916 10.5987 12.8773 8.99262 12.8773C7.34168 12.8773 6.05398 11.5896 6.05398 9.93864C6.05398 8.33253 7.33964 7 8.99262 7C10.6008 7 11.9313 8.33049 11.9313 9.93864ZM10.1619 9.93864C10.1619 9.32165 9.60961 8.76932 8.99262 8.76932C8.33687 8.76932 7.8233 9.31757 7.8233 9.93864C7.8233 10.5984 8.33283 11.108 8.99262 11.108C9.61369 11.108 10.1619 10.5944 10.1619 9.93864ZM4 17.4699C4 15.4783 5.58561 13.8466 7.6233 13.8466H10.3619C12.3552 13.8466 13.9852 15.4766 13.9852 17.4699C13.9852 17.9734 13.5453 18.3546 13.1006 18.3546C12.605 18.3546 12.2159 17.9655 12.2159 17.4699C12.2159 16.4678 11.3641 15.6159 10.3619 15.6159H7.6233C6.5811 15.6159 5.76932 16.4651 5.76932 17.4699C5.76932 17.9734 5.32934 18.3546 4.88466 18.3546C4.38908 18.3546 4 17.9655 4 17.4699Z" fill="#282F36" fill-opacity="0.45"/><line x1="15.75" y1="9.25" x2="19.25" y2="9.25" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5" stroke-linecap="round"/><line x1="15.75" y1="12.25" x2="19.25" y2="12.25" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5" stroke-linecap="round"/></symbol>
 
 
 
 
 
911
  <symbol id="frm_field_group_layout_icon" viewBox="0 0 18 16" fill="none"><rect width="4.667" height="16" rx="1" fill="#9EA9B8"/><rect x="6.666" width="4.667" height="16" rx="1" fill="#9EA9B8"/><rect x="13.334" width="4.667" height="16" rx="1" fill="#9EA9B8"/></symbol>
912
  <symbol id="frm_break_field_group_icon" viewBox="0 0 20 20" fill="none"><path d="M16.667 3.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667zM16.667 11.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
913
  <symbol id="frm_gear_icon" viewBox="0 0 20 20" fill="none"><path d="M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.167 12.5a1.375 1.375 0 00.275 1.516l.05.05a1.666 1.666 0 01-1.179 2.847 1.666 1.666 0 01-1.179-.488l-.05-.05a1.375 1.375 0 00-1.517-.275 1.374 1.374 0 00-.833 1.258v.142a1.667 1.667 0 01-3.333 0v-.075a1.375 1.375 0 00-.9-1.259 1.375 1.375 0 00-1.517.275l-.05.05a1.666 1.666 0 11-2.358-2.358l.05-.05a1.375 1.375 0 00.275-1.517 1.376 1.376 0 00-1.259-.833h-.141a1.667 1.667 0 010-3.333h.075a1.375 1.375 0 001.258-.9 1.375 1.375 0 00-.275-1.517l-.05-.05a1.667 1.667 0 112.358-2.358l.05.05a1.375 1.375 0 001.517.275h.067a1.375 1.375 0 00.833-1.259V2.5a1.667 1.667 0 013.333 0v.075a1.375 1.375 0 00.834 1.258 1.375 1.375 0 001.516-.275l.05-.05a1.667 1.667 0 112.359 2.358l-.05.05a1.376 1.376 0 00-.275 1.517V7.5a1.375 1.375 0 001.258.833h.142a1.667 1.667 0 110 3.333h-.075a1.376 1.376 0 00-1.259.834v0z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
908
  <symbol id="frm_case_icon" viewBox="0 0 24 24"><path d="M15 6.5a1 1 0 01-1-1V4h-4v1.5a1 1 0 01-2 0V4c0-1.1.9-2 2-2h4a2 2 0 012 2v1.5c0 .6-.4 1-1 1zM18 12.5v1c0 .3-.3.7-.8.7a.8.8 0 01-.7-.8v-.9h-9v1c0 .3-.3.7-.8.7a.8.8 0 01-.7-.8v-.9H0v6.7C0 20.8 1.2 22 2.7 22h18.5c1.6 0 2.8-1.2 2.8-2.8v-6.7h-6zM21.3 5H2.7A2.7 2.7 0 000 7.8V11h6V9.8c0-.5.3-.8.8-.8.4 0 .7.3.7.8V11h9V9.8c0-.5.3-.8.8-.8.4 0 .7.3.7.8V11h6V7.7C24 6.2 22.8 5 21.3 5z" fill="currentColor"></path></symbol>
909
  <symbol id="frm_smile_icon" viewBox="0 0 24 24"><path d="M12 0a12 12 0 100 24 12 12 0 000-24zM5 9c0-1.1.9-2 2-2a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2zm12.7 9a8 8 0 01-11.4 0 1 1 0 011.4-1.5 6 6 0 008.6 0 1 1 0 011.4 1.4zm-.7-7a2 2 0 01-2-2c0-1.1.9-2 2-2a2 2 0 010 4z" fill="currentColor"></path></symbol>
910
  <symbol id="frm_user_name_icon" viewBox="0 0 24 24" fill="none"><path d="M3 21L21 21C22.1046 21 23 20.1046 23 19L23 16.75L23 13.5625L23 12.5L23 11.4375L23 8.25L23 6C23 4.89543 22.1046 4 21 4L15.1429 4L8.85714 4L3 4C1.89543 4 0.999998 4.89543 0.999998 6L0.999997 19C0.999997 20.1046 1.89543 21 3 21Z" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11.9313 9.93864C11.9313 11.5916 10.5987 12.8773 8.99262 12.8773C7.34168 12.8773 6.05398 11.5896 6.05398 9.93864C6.05398 8.33253 7.33964 7 8.99262 7C10.6008 7 11.9313 8.33049 11.9313 9.93864ZM10.1619 9.93864C10.1619 9.32165 9.60961 8.76932 8.99262 8.76932C8.33687 8.76932 7.8233 9.31757 7.8233 9.93864C7.8233 10.5984 8.33283 11.108 8.99262 11.108C9.61369 11.108 10.1619 10.5944 10.1619 9.93864ZM4 17.4699C4 15.4783 5.58561 13.8466 7.6233 13.8466H10.3619C12.3552 13.8466 13.9852 15.4766 13.9852 17.4699C13.9852 17.9734 13.5453 18.3546 13.1006 18.3546C12.605 18.3546 12.2159 17.9655 12.2159 17.4699C12.2159 16.4678 11.3641 15.6159 10.3619 15.6159H7.6233C6.5811 15.6159 5.76932 16.4651 5.76932 17.4699C5.76932 17.9734 5.32934 18.3546 4.88466 18.3546C4.38908 18.3546 4 17.9655 4 17.4699Z" fill="#282F36" fill-opacity="0.45"/><line x1="15.75" y1="9.25" x2="19.25" y2="9.25" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5" stroke-linecap="round"/><line x1="15.75" y1="12.25" x2="19.25" y2="12.25" stroke="#282F36" stroke-opacity="0.45" stroke-width="1.5" stroke-linecap="round"/></symbol>
911
+ <symbol id="frm_simple_radio" viewBox="0 0 102 89"><rect width="53" height="7" fill="#C0C7D1" rx="3.5" transform="matrix(1 0 0 -1 32 30)"/><rect width="13" height="13" fill="#4199FD" rx="6.5" transform="matrix(1 0 0 -1 13 33)"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" d="m16.5 25.7 2.5 2.6 3.5-3.6"/><rect width="53" height="7" fill="#C0C7D1" rx="3.5" transform="matrix(1 0 0 -1 32 48)"/><rect width="13" height="13" fill="#fff" rx="6.5" transform="matrix(1 0 0 -1 13 51)"/><rect width="12" height="12" x=".5" y="-.5" stroke="#C0C7D1" stroke-opacity=".5" rx="6" transform="matrix(1 0 0 -1 13 50)"/><rect width="53" height="7" fill="#C0C7D1" rx="3.5" transform="matrix(1 0 0 -1 32 66)"/><rect width="13" height="13" fill="#fff" rx="6.5" transform="matrix(1 0 0 -1 13 69)"/><rect width="12" height="12" x=".5" y="-.5" stroke="#C0C7D1" stroke-opacity=".5" rx="6" transform="matrix(1 0 0 -1 13 68)"/></symbol>
912
+ <symbol id="frm_image_as_option" viewBox="0 0 102 89"><rect width="55" height="37" x="24" y="20" fill="#C0C7D1" rx="3"/><path fill="#fff" fill-opacity=".7" d="M39.6 37c2.5 0 4.5-2 4.5-4.5s-2-4.5-4.5-4.5C37 28 35 30 35 32.5c0 2.4 2 4.4 4.6 4.4zm0-6.5c1 0 2 .9 2 2 0 1-1 1.9-2 1.9s-2-.9-2-2c0-1 .9-1.9 2-1.9zm16.9 1.9-7.8 7.5-2.5-2.4a2 2 0 0 0-2.8 0l-7.2 7a2 2 0 0 0-.4.6l-.1.7V48c0 .6.4 1 1 1H66c.6 0 1-.4 1-1v-7.3c0-.5-.2-1-.6-1.3l-7.2-7a2 2 0 0 0-2.7 0zm7.9 14H38.3v-.3l6.5-6.4 4 3.8 9-8.9 6.6 6.4v5.5z"/><rect width="55" height="7" fill="#C0C7D1" rx="3.5" transform="matrix(1 0 0 -1 24 69)"/><rect width="14" height="14" x="-.5" y=".5" fill="#4199FD" stroke="#fff" rx="7" transform="matrix(1 0 0 -1 17 29)"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" d="m20.5 20.7 2.5 2.6 3.5-3.6"/></symbol>
913
+ <symbol id="frm_button_as_option" viewBox="0 0 102 89"><rect x="13" y="18" width="72" height="16" rx="3" fill="#4199FD"/><rect x="31" y="24" width="36" height="4" rx="2" fill="#fff"/><rect x="13" y="36" width="72" height="16" rx="3" fill="#C0C7D1"/><rect x="38" y="42" width="22" height="4" rx="2" fill="#fff"/><rect x="13" y="54" width="72" height="16" rx="3" fill="#C0C7D1"/><rect x="23" y="60" width="52" height="4" rx="2" fill="#fff"/></symbol>
914
+ <symbol id="frm_likert_scale" viewBox="0 0 24 24"><path fill="currentColor" d="M19.5 10a2.5 2.5 0 0 0-2.3 1.5h-3a2.5 2.5 0 0 0-4.5 0h-3a2.5 2.5 0 1 0 0 2h3a2.5 2.5 0 0 0 4.6 0h3a2.5 2.5 0 1 0 2.2-3.5zm0-7a2.5 2.5 0 0 0-2.3 1.5h-3a2.5 2.5 0 0 0-4.5 0h-3a2.5 2.5 0 1 0 0 2h3a2.5 2.5 0 0 0 4.6 0h3A2.5 2.5 0 1 0 19.4 3zm0 14a2.5 2.5 0 0 0-2.3 1.5h-3a2.5 2.5 0 0 0-4.5 0h-3a2.5 2.5 0 1 0 0 2h3a2.5 2.5 0 0 0 4.6 0h3a2.5 2.5 0 1 0 2.2-3.5z"/></symbol>
915
+ <symbol id="frm_nps" viewBox="0 0 21 16"><path fill="currentColor" d="M10.5 0C4.7 0 0 4.6 0 10.3c0 1.9.5 3.6 1.4 5.2.2.3.6.5 1 .5h16.2c.4 0 .8-.2 1-.5a10 10 0 0 0 1.4-5.2C21 4.6 16.3 0 10.5 0zm0 2.3c.5 0 1 .3 1.1.8l-.1.3-.4 1-.6.2a1.2 1.2 0 0 1-1.2-1.2c0-.6.6-1.1 1.2-1.1zm-7 10.3a1.2 1.2 0 0 1-1.2-1.2c0-.6.6-1.1 1.2-1.1s1.2.5 1.2 1.1c0 .7-.6 1.2-1.2 1.2zm1.8-5.7A1.2 1.2 0 0 1 4 5.7c0-.6.5-1.1 1.2-1.1s1.1.5 1.1 1.1S6 7 5.2 7zm9-2.6L12 10.8c.5.5.8 1 .8 1.8 0 .4 0 .8-.3 1.1h-4a2.2 2.2 0 0 1-.3-1.1c0-1.2 1-2.2 2.2-2.3l2.2-6.6a.9.9 0 0 1 1-.5c.6.1.8.6.6 1zm.5 2 .5-1.6.5-.1c.6 0 1.1.5 1.1 1.1a1.2 1.2 0 0 1-2.1.6zm2.7 6.3a1.2 1.2 0 0 1-1.2-1.2c0-.6.6-1.1 1.2-1.1s1.2.5 1.2 1.1c0 .7-.6 1.2-1.2 1.2z"/></symbol>
916
  <symbol id="frm_field_group_layout_icon" viewBox="0 0 18 16" fill="none"><rect width="4.667" height="16" rx="1" fill="#9EA9B8"/><rect x="6.666" width="4.667" height="16" rx="1" fill="#9EA9B8"/><rect x="13.334" width="4.667" height="16" rx="1" fill="#9EA9B8"/></symbol>
917
  <symbol id="frm_break_field_group_icon" viewBox="0 0 20 20" fill="none"><path d="M16.667 3.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667zM16.667 11.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
918
  <symbol id="frm_gear_icon" viewBox="0 0 20 20" fill="none"><path d="M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.167 12.5a1.375 1.375 0 00.275 1.516l.05.05a1.666 1.666 0 01-1.179 2.847 1.666 1.666 0 01-1.179-.488l-.05-.05a1.375 1.375 0 00-1.517-.275 1.374 1.374 0 00-.833 1.258v.142a1.667 1.667 0 01-3.333 0v-.075a1.375 1.375 0 00-.9-1.259 1.375 1.375 0 00-1.517.275l-.05.05a1.666 1.666 0 11-2.358-2.358l.05-.05a1.375 1.375 0 00.275-1.517 1.376 1.376 0 00-1.259-.833h-.141a1.667 1.667 0 010-3.333h.075a1.375 1.375 0 001.258-.9 1.375 1.375 0 00-.275-1.517l-.05-.05a1.667 1.667 0 112.358-2.358l.05.05a1.375 1.375 0 001.517.275h.067a1.375 1.375 0 00.833-1.259V2.5a1.667 1.667 0 013.333 0v.075a1.375 1.375 0 00.834 1.258 1.375 1.375 0 001.516-.275l.05-.05a1.667 1.667 0 112.359 2.358l-.05.05a1.376 1.376 0 00-.275 1.517V7.5a1.375 1.375 0 001.258.833h.142a1.667 1.667 0 110 3.333h-.075a1.376 1.376 0 00-1.259.834v0z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
js/formidable.js CHANGED
@@ -463,10 +463,22 @@ function frmFrontFormJS() {
463
  }
464
 
465
  function getFieldValidationMessage( field, messageType ) {
466
- var msg = field.getAttribute( messageType );
467
- if ( msg === null ) {
 
 
468
  msg = '';
469
  }
 
 
 
 
 
 
 
 
 
 
470
  return msg;
471
  }
472
 
@@ -702,7 +714,13 @@ function frmFrontFormJS() {
702
  if ( typeof frmThemeOverride_frmPlaceError === 'function' ) { // eslint-disable-line camelcase
703
  frmThemeOverride_frmPlaceError( key, jsErrors );
704
  } else {
705
- $fieldCont.append( '<div class="frm_error" id="' + id + '">' + jsErrors[key] + '</div>' );
 
 
 
 
 
 
706
 
707
  if ( typeof describedBy === 'undefined' ) {
708
  describedBy = id;
463
  }
464
 
465
  function getFieldValidationMessage( field, messageType ) {
466
+ var msg, errorHtml;
467
+
468
+ msg = field.getAttribute( messageType );
469
+ if ( null === msg ) {
470
  msg = '';
471
  }
472
+
473
+ if ( '' !== msg ) {
474
+ errorHtml = field.getAttribute( 'data-error-html' );
475
+ if ( null !== errorHtml ) {
476
+ errorHtml = errorHtml.replace( /\+/g, '%20' );
477
+ msg = decodeURIComponent( errorHtml ).replace( '[error]', msg );
478
+ msg = msg.replace( '[key]', getFieldId( field, false ) );
479
+ }
480
+ }
481
+
482
  return msg;
483
  }
484
 
714
  if ( typeof frmThemeOverride_frmPlaceError === 'function' ) { // eslint-disable-line camelcase
715
  frmThemeOverride_frmPlaceError( key, jsErrors );
716
  } else {
717
+ if ( -1 !== jsErrors[key].indexOf( '<div' ) ) {
718
+ $fieldCont.append(
719
+ jsErrors[key]
720
+ );
721
+ } else {
722
+ $fieldCont.append( '<div class="frm_error" id="' + id + '">' + jsErrors[key] + '</div>' );
723
+ }
724
 
725
  if ( typeof describedBy === 'undefined' ) {
726
  describedBy = id;
js/formidable.min.js CHANGED
@@ -15,41 +15,42 @@ errors);return errors}function confirmField(field,errors){var value,confirmValue
15
  if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField("conf_"+strippedFieldID,confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=
16
  field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');
17
  if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=
18
- $recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg=field.getAttribute(messageType);if(msg===null)msg="";return msg}function shouldJSValidate(object){var validate=
19
- jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+
20
- action+"&nonce="+frm_js.nonce,success:function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);
21
- window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,input,
22
- previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+
23
- response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=
24
- $fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);
25
- else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=
26
- jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==
27
- -1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");
28
- i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,
29
- jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),
30
- describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();
31
- if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}
32
- function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,
33
- loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;
34
- thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",
35
- entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){var len,
36
- from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=
37
- function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}
38
- function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}
39
- function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");if(null!==textarea)textarea.focus()};
40
- else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});
41
- jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',frmFrontForm.fieldValueChanged);jQuery(document).on("change keyup",".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea",
42
- maybeShowLabel);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv);checkForErrorsAndMaybeSetFocus();changeFocusWhenClickComboFieldLabel();addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,recaptchaID,size=
43
- captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")};if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,params);
44
- captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token,formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);
45
- if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length<1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);
46
- if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,antispamInput,classList=object.className.trim().split(/\s+/gi);if(object.hasAttribute("data-token")&&null===object.querySelector('[name="antispam_token"]')){antispamInput=document.createElement("input");antispamInput.type="hidden";antispamInput.name="antispam_token";antispamInput.value=object.getAttribute("data-token");object.appendChild(antispamInput)}if(classList.indexOf("frm_ajax_submit")>
47
- -1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action=jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},
48
- getAjaxFormErrors:function(object){var customErrors,key;jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+
49
- "_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object);checkForErrorsAndMaybeSetFocus()},checkFormErrors:function(object,action){getFormErrors(object,action)},checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=
50
- jQuery(document.getElementById(id));frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+id+"_container");else scrollObj=id;jQuery(scrollObj).trigger("focus");newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;
51
- newPos=newPos-frm_js.offset;m=jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos<screenTop){if(typeof animate==="undefined")jQuery(window).scrollTop(newPos);else jQuery("html,body").animate({scrollTop:newPos},500);return false}}},fieldValueChanged:function(e){var fieldId=
52
- frmFrontForm.getFieldId(this,false);if(!fieldId||typeof fieldId==="undefined")return;if(e.frmTriggered&&e.frmTriggered==fieldId)return;jQuery(document).trigger("frmFieldChanged",[this,fieldId,e]);if(e.selfTriggered!==true)maybeValidateChange(fieldId,this)},savingDraft:function(object){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if(typeof frmProForm!=="undefined")return frmProForm.savingDraft(object)},goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");
 
53
  if(typeof frmProForm!=="undefined")return frmProForm.goingToPreviousPage(object)},hideOrShowFields:function(){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");if(typeof frmProForm!=="undefined")frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},
54
  checkDependentDynamicFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentDynamicFields(ids)},checkDependentLookupFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");
55
  frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});
15
  if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField("conf_"+strippedFieldID,confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=
16
  field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');
17
  if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=
18
+ $recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!==
19
+ msg){errorHtml=field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,
20
+ action){var fieldset;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+action+"&nonce="+frm_js.nonce,success:function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};
21
+ if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();
22
+ response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();
23
+ frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),
24
+ "enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,
25
+ response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);
26
+ object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);
27
+ if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",
28
+ response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");
29
+ input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{if(-1!==jsErrors[key].indexOf("<div"))$fieldCont.append(jsErrors[key]);else $fieldCont.append('<div class="frm_error" id="'+id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",
30
+ describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,
31
+ "");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&
32
+ !$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");
33
+ loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),
34
+ "clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),
35
+ formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");
36
+ return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){var len,from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!==
37
+ "function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=
38
+ function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");
39
+ if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();
40
+ break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");if(null!==textarea)textarea.focus()};else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");
41
+ jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);jQuery(document).on("change",
42
+ '.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',frmFrontForm.fieldValueChanged);jQuery(document).on("change keyup",".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea",maybeShowLabel);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").on("click",
43
+ toggleDiv);checkForErrorsAndMaybeSetFocus();changeFocusWhenClickComboFieldLabel();addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,recaptchaID,size=captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")};
44
+ if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,params);captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token,
45
+ formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length<
46
+ 1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,antispamInput,classList=
47
+ object.className.trim().split(/\s+/gi);if(object.hasAttribute("data-token")&&null===object.querySelector('[name="antispam_token"]')){antispamInput=document.createElement("input");antispamInput.type="hidden";antispamInput.name="antispam_token";antispamInput.value=object.getAttribute("data-token");object.appendChild(antispamInput)}if(classList.indexOf("frm_ajax_submit")>-1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action=
48
+ jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},getAjaxFormErrors:function(object){var customErrors,key;
49
+ jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont,
50
+ key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object);checkForErrorsAndMaybeSetFocus()},checkFormErrors:function(object,action){getFormErrors(object,action)},checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=jQuery(document.getElementById(id));
51
+ frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+id+"_container");else scrollObj=id;jQuery(scrollObj).trigger("focus");newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;newPos=newPos-frm_js.offset;m=
52
+ jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos<screenTop){if(typeof animate==="undefined")jQuery(window).scrollTop(newPos);else jQuery("html,body").animate({scrollTop:newPos},500);return false}}},fieldValueChanged:function(e){var fieldId=frmFrontForm.getFieldId(this,
53
+ false);if(!fieldId||typeof fieldId==="undefined")return;if(e.frmTriggered&&e.frmTriggered==fieldId)return;jQuery(document).trigger("frmFieldChanged",[this,fieldId,e]);if(e.selfTriggered!==true)maybeValidateChange(fieldId,this)},savingDraft:function(object){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if(typeof frmProForm!=="undefined")return frmProForm.savingDraft(object)},goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");
54
  if(typeof frmProForm!=="undefined")return frmProForm.goingToPreviousPage(object)},hideOrShowFields:function(){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");if(typeof frmProForm!=="undefined")frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},
55
  checkDependentDynamicFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentDynamicFields(ids)},checkDependentLookupFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");
56
  frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});
js/formidable_admin.js CHANGED
@@ -595,6 +595,10 @@ function frmAdminBuildJS() {
595
  deleteButton = jQuery( this ),
596
  continueRemove = confirmLinkClick( this );
597
 
 
 
 
 
598
  if ( continueRemove === false ) {
599
  return;
600
  } else {
@@ -972,6 +976,9 @@ function frmAdminBuildJS() {
972
  fixUnwrappedListItems();
973
  toggleSectionHolder();
974
  updateFieldOrder();
 
 
 
975
  }
976
 
977
  function maybeRemoveNewCancelledFields() {
@@ -1286,10 +1293,9 @@ function frmAdminBuildJS() {
1286
  // Get the section where a field is dropped
1287
  function getSectionForFieldPlacement( currentItem ) {
1288
  var section = '';
1289
- if ( typeof currentItem !== 'undefined' ) {
1290
  section = currentItem.closest( '.edit_field_type_divider' );
1291
  }
1292
-
1293
  return section;
1294
  }
1295
 
@@ -1484,8 +1490,8 @@ function frmAdminBuildJS() {
1484
  return false;
1485
  }
1486
 
1487
- if ( ui.item.hasClass( 'frm_thidden' ) && insideFieldGroup ) {
1488
- // do not allow a hidden field in a field group.
1489
  return false;
1490
  }
1491
 
@@ -2082,6 +2088,13 @@ function frmAdminBuildJS() {
2082
 
2083
  deselectFields();
2084
  initiateMultiselect();
 
 
 
 
 
 
 
2085
  }
2086
 
2087
  function clearSettingsBox( preventFieldGroups ) {
@@ -2735,12 +2748,19 @@ function frmAdminBuildJS() {
2735
  event.preventDefault();
2736
  var i, key, label,
2737
  content = '',
 
 
2738
  fieldId = jQuery( this ).closest( '[data-fid]' ).data( 'fid' ),
2739
  separate = usingSeparateValues( fieldId ),
2740
- optList = document.getElementById( 'frm_field_' + fieldId + '_opts' ),
2741
- opts = optList.getElementsByTagName( 'li' ),
2742
  product = isProductField( fieldId );
2743
 
 
 
 
 
 
 
 
2744
  document.getElementById( 'bulk-field-id' ).value = fieldId;
2745
 
2746
  for ( i = 0; i < opts.length; i++ ) {
@@ -2770,7 +2790,14 @@ function frmAdminBuildJS() {
2770
  });
2771
 
2772
  jQuery( '#frm-update-bulk-opts' ).on( 'click', function() {
2773
- var fieldId = document.getElementById( 'bulk-field-id' ).value;
 
 
 
 
 
 
 
2774
  this.classList.add( 'frm_loading_button' );
2775
  frmAdminBuild.updateOpts( fieldId, document.getElementById( 'frm_bulk_options' ).value, $info );
2776
  });
@@ -3470,8 +3497,13 @@ function frmAdminBuildJS() {
3470
  return wrapper;
3471
  }
3472
 
3473
- function div() {
3474
  var element = document.createElement( 'div' );
 
 
 
 
 
3475
  return element;
3476
  }
3477
 
@@ -4617,16 +4649,28 @@ function frmAdminBuildJS() {
4617
 
4618
  function resetOptOnChange() {
4619
  /*jshint validthis:true */
4620
- var field = getFieldKeyFromOpt( this ),
4621
- thisOpt = jQuery( this ).closest( '.frm_single_option' );
 
 
 
 
 
 
4622
 
4623
  resetSingleOpt( field.fieldId, field.fieldKey, thisOpt );
4624
  }
4625
 
4626
  function getFieldKeyFromOpt( object ) {
4627
- var allOpts = jQuery( object ).closest( '.frm_sortable_field_opts' ),
4628
- fieldId = allOpts.attr( 'id' ).replace( 'frm_field_', '' ).replace( '_opts', '' ),
4629
- fieldKey = allOpts.data( 'key' );
 
 
 
 
 
 
4630
 
4631
  return {
4632
  fieldId: fieldId,
@@ -4921,6 +4965,11 @@ function frmAdminBuildJS() {
4921
  label = getImageLabel( label, showLabelWithImage, imageUrl, fieldType );
4922
  }
4923
 
 
 
 
 
 
4924
  checked = getChecked( optVals[ i ].id );
4925
 
4926
  optObj = {
@@ -5020,11 +5069,28 @@ function frmAdminBuildJS() {
5020
  * Is the box checked to use images as options?
5021
  */
5022
  function imagesAsOptions( fieldId ) {
5023
- return isChecked( 'image_options_' + fieldId );
 
 
 
 
 
 
 
 
 
 
 
 
5024
  }
5025
 
5026
  function showingLabelWithImage( fieldId ) {
5027
- return ! isChecked( 'hide_image_text_' + fieldId );
 
 
 
 
 
5028
  }
5029
 
5030
  function isChecked( id ) {
@@ -6749,6 +6815,18 @@ function frmAdminBuildJS() {
6749
  fieldsUpdated = 0;
6750
  }
6751
 
 
 
 
 
 
 
 
 
 
 
 
 
6752
  function confirmExit( event ) {
6753
  if ( fieldsUpdated ) {
6754
  event.preventDefault();
@@ -6757,9 +6835,11 @@ function frmAdminBuildJS() {
6757
  }
6758
 
6759
  function bindClickForDialogClose( $modal ) {
6760
- jQuery( '.ui-widget-overlay, a.dismiss' ).on( 'click', function() {
6761
  $modal.dialog( 'close' );
6762
- });
 
 
6763
  }
6764
 
6765
  function triggerNewFormModal( event ) {
@@ -7344,12 +7424,14 @@ function frmAdminBuildJS() {
7344
  }
7345
 
7346
  function installOrActivate( clicked, action ) {
 
 
7347
  // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated.
7348
  jQuery( '.frm-addon-error' ).remove();
7349
- var button = jQuery( clicked );
7350
- var plugin = button.attr( 'rel' );
7351
- var el = button.parent();
7352
- var message = el.parent().find( '.addon-status-label' );
7353
 
7354
  button.addClass( 'frm_loading_button' );
7355
 
@@ -7366,14 +7448,23 @@ function frmAdminBuildJS() {
7366
  plugin: plugin
7367
  },
7368
  success: function( response ) {
7369
- var error = extractErrorFromAddOnResponse( response );
 
 
 
 
 
 
 
 
 
7370
 
7371
  if ( error ) {
7372
  addonError( error, el, button );
7373
  return;
7374
  }
7375
 
7376
- afterAddonInstall( response, button, message, el );
7377
  },
7378
  error: function() {
7379
  button.removeClass( 'frm_loading_button' );
@@ -7422,12 +7513,15 @@ function frmAdminBuildJS() {
7422
  });
7423
  }
7424
 
7425
- function afterAddonInstall( response, button, message, el ) {
 
 
 
7426
  // The Ajax request was successful, so let's update the output.
7427
- button.css({ 'opacity': '0' });
7428
  message.text( frm_admin_js.active );
7429
  jQuery( '#frm-oneclick' ).hide();
7430
- jQuery( '#frm-addon-status' ).text( response ).show();
7431
  jQuery( '#frm_upgrade_modal h2' ).hide();
7432
  jQuery( '#frm_upgrade_modal .frm_lock_icon' ).addClass( 'frm_lock_open_icon' );
7433
  jQuery( '#frm_upgrade_modal .frm_lock_icon use' ).attr( 'xlink:href', '#frm_lock_open_icon' );
@@ -7437,15 +7531,38 @@ function frmAdminBuildJS() {
7437
  button.removeClass( 'frm_loading_button' );
7438
 
7439
  // Maybe refresh import and SMTP pages
7440
- var refreshPage = document.querySelectorAll( '.frm-admin-page-import, #frm-admin-smtp, #frm-welcome' );
7441
  if ( refreshPage.length > 0 ) {
7442
  window.location.reload();
 
 
7443
  }
7444
  }
7445
 
7446
- function extractErrorFromAddOnResponse( response ) {
7447
- var $message, text;
 
 
 
 
7448
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7449
  if ( typeof response !== 'string' ) {
7450
  if ( typeof response.success !== 'undefined' && response.success ) {
7451
  return false;
@@ -8263,6 +8380,12 @@ function frmAdminBuildJS() {
8263
  close: function() {
8264
  jQuery( '#wpwrap' ).removeClass( 'frm_overlay' );
8265
  jQuery( '.spinner' ).css( 'visibility', 'hidden' );
 
 
 
 
 
 
8266
  }
8267
  });
8268
 
@@ -8523,6 +8646,8 @@ function frmAdminBuildJS() {
8523
  thisFormId = jQuery( document.getElementById( 'form_id' ) ).val();
8524
  }
8525
 
 
 
8526
  if ( $newFields.length > 0 ) {
8527
  // only load this on the form builder page
8528
  frmAdminBuild.buildInit();
@@ -8922,6 +9047,7 @@ function frmAdminBuildJS() {
8922
 
8923
  jQuery( document ).on( 'submit', '.frm_form_settings', settingsSubmitted );
8924
  jQuery( document ).on( 'change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated );
 
8925
 
8926
  // Page Selection Autocomplete
8927
  initSelectionAutocomplete();
@@ -9258,6 +9384,40 @@ function frmAdminBuildJS() {
9258
  });
9259
  },
9260
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9261
  updateOpts: function( fieldId, opts, modal ) {
9262
  var separate = usingSeparateValues( fieldId ),
9263
  action = isProductField( fieldId ) ? 'frm_bulk_products' : 'frm_import_options';
@@ -9294,6 +9454,18 @@ function frmAdminBuildJS() {
9294
  url = url + '&is_template=' + isTemplate;
9295
  }
9296
  location.href = url;
 
 
 
 
 
 
 
 
 
 
 
 
9297
  }
9298
  };
9299
  }
595
  deleteButton = jQuery( this ),
596
  continueRemove = confirmLinkClick( this );
597
 
598
+ if ( parseInt( this.getAttribute( 'data-skip-frm-js' ) ) ) {
599
+ return;
600
+ }
601
+
602
  if ( continueRemove === false ) {
603
  return;
604
  } else {
976
  fixUnwrappedListItems();
977
  toggleSectionHolder();
978
  updateFieldOrder();
979
+
980
+ const event = new Event( 'frm_sync_after_drag_and_drop', { bubbles: false });
981
+ document.dispatchEvent( event );
982
  }
983
 
984
  function maybeRemoveNewCancelledFields() {
1293
  // Get the section where a field is dropped
1294
  function getSectionForFieldPlacement( currentItem ) {
1295
  var section = '';
1296
+ if ( typeof currentItem !== 'undefined' && ! currentItem.hasClass( 'edit_field_type_divider' ) ) {
1297
  section = currentItem.closest( '.edit_field_type_divider' );
1298
  }
 
1299
  return section;
1300
  }
1301
 
1490
  return false;
1491
  }
1492
 
1493
+ if ( insideFieldGroup && ( ui.item.hasClass( 'frm_thidden' ) || ui.item.hasClass( 'frm_tsummary' ) ) ) {
1494
+ // do not allow a hidden field or summary field in a field group.
1495
  return false;
1496
  }
1497
 
2088
 
2089
  deselectFields();
2090
  initiateMultiselect();
2091
+
2092
+ const addedEvent = new Event( 'frm_added_field', { bubbles: false });
2093
+ addedEvent.frmField = field;
2094
+ addedEvent.frmSection = section;
2095
+ addedEvent.frmType = type;
2096
+ addedEvent.frmToggles = toggled;
2097
+ document.dispatchEvent( addedEvent );
2098
  }
2099
 
2100
  function clearSettingsBox( preventFieldGroups ) {
2748
  event.preventDefault();
2749
  var i, key, label,
2750
  content = '',
2751
+ optList,
2752
+ opts,
2753
  fieldId = jQuery( this ).closest( '[data-fid]' ).data( 'fid' ),
2754
  separate = usingSeparateValues( fieldId ),
 
 
2755
  product = isProductField( fieldId );
2756
 
2757
+ optList = document.getElementById( 'frm_field_' + fieldId + '_opts' );
2758
+ if ( ! optList ) {
2759
+ return;
2760
+ }
2761
+
2762
+ opts = optList.getElementsByTagName( 'li' );
2763
+
2764
  document.getElementById( 'bulk-field-id' ).value = fieldId;
2765
 
2766
  for ( i = 0; i < opts.length; i++ ) {
2790
  });
2791
 
2792
  jQuery( '#frm-update-bulk-opts' ).on( 'click', function() {
2793
+ var fieldId = document.getElementById( 'bulk-field-id' ).value;
2794
+ var optionType = document.getElementById( 'bulk-option-type' ).value;
2795
+
2796
+ if ( optionType ) {
2797
+ // Use custom handler for custom option type.
2798
+ return;
2799
+ }
2800
+
2801
  this.classList.add( 'frm_loading_button' );
2802
  frmAdminBuild.updateOpts( fieldId, document.getElementById( 'frm_bulk_options' ).value, $info );
2803
  });
3497
  return wrapper;
3498
  }
3499
 
3500
+ function div( atts ) {
3501
  var element = document.createElement( 'div' );
3502
+ if ( 'object' === typeof atts ) {
3503
+ if ( 'undefined' !== typeof atts.id ) {
3504
+ element.id = atts.id;
3505
+ }
3506
+ }
3507
  return element;
3508
  }
3509
 
4649
 
4650
  function resetOptOnChange() {
4651
  /*jshint validthis:true */
4652
+ var field, thisOpt;
4653
+
4654
+ field = getFieldKeyFromOpt( this );
4655
+ if ( ! field ) {
4656
+ return;
4657
+ }
4658
+
4659
+ thisOpt = jQuery( this ).closest( '.frm_single_option' );
4660
 
4661
  resetSingleOpt( field.fieldId, field.fieldKey, thisOpt );
4662
  }
4663
 
4664
  function getFieldKeyFromOpt( object ) {
4665
+ var allOpts, fieldId, fieldKey;
4666
+
4667
+ allOpts = jQuery( object ).closest( '.frm_sortable_field_opts' );
4668
+ if ( ! allOpts.length ) {
4669
+ return false;
4670
+ }
4671
+
4672
+ fieldId = allOpts.attr( 'id' ).replace( 'frm_field_', '' ).replace( '_opts', '' );
4673
+ fieldKey = allOpts.data( 'key' );
4674
 
4675
  return {
4676
  fieldId: fieldId,
4965
  label = getImageLabel( label, showLabelWithImage, imageUrl, fieldType );
4966
  }
4967
 
4968
+ /**
4969
+ * @since 5.0.04
4970
+ */
4971
+ label = frmAdminBuild.hooks.applyFilters( 'frm_choice_field_label', label, fieldId, optVals[ i ], hasImageOptions );
4972
+
4973
  checked = getChecked( optVals[ i ].id );
4974
 
4975
  optObj = {
5069
  * Is the box checked to use images as options?
5070
  */
5071
  function imagesAsOptions( fieldId ) {
5072
+ var checked = false,
5073
+ field = document.getElementsByName( 'field_options[image_options_' + fieldId + ']' );
5074
+
5075
+ for ( var i = 0; i < field.length; i++ ) {
5076
+ if ( field[ i ].checked ) {
5077
+ checked = '0' !== field[ i ].value;
5078
+ }
5079
+ }
5080
+
5081
+ /**
5082
+ * @since 5.0.04
5083
+ */
5084
+ return frmAdminBuild.hooks.applyFilters( 'frm_choice_field_images_as_options', checked, fieldId );
5085
  }
5086
 
5087
  function showingLabelWithImage( fieldId ) {
5088
+ const isShowing = ! isChecked( 'hide_image_text_' + fieldId );
5089
+
5090
+ /**
5091
+ * @since 5.0.04
5092
+ */
5093
+ return frmAdminBuild.hooks.applyFilters( 'frm_choice_field_showing_label_with_image', isShowing, fieldId );
5094
  }
5095
 
5096
  function isChecked( id ) {
6815
  fieldsUpdated = 0;
6816
  }
6817
 
6818
+ function saveAndReloadSettings() {
6819
+ var page, form;
6820
+ page = document.getElementById( 'form_settings_page' );
6821
+ if ( null !== page ) {
6822
+ form = page.querySelector( 'form.frm_form_settings' );
6823
+ if ( null !== form ) {
6824
+ fieldsUpdated = 0;
6825
+ form.submit();
6826
+ }
6827
+ }
6828
+ }
6829
+
6830
  function confirmExit( event ) {
6831
  if ( fieldsUpdated ) {
6832
  event.preventDefault();
6835
  }
6836
 
6837
  function bindClickForDialogClose( $modal ) {
6838
+ const closeModal = function() {
6839
  $modal.dialog( 'close' );
6840
+ };
6841
+ jQuery( '.ui-widget-overlay' ).on( 'click', closeModal );
6842
+ $modal.on( 'click', 'a.dismiss', closeModal );
6843
  }
6844
 
6845
  function triggerNewFormModal( event ) {
7424
  }
7425
 
7426
  function installOrActivate( clicked, action ) {
7427
+ var button, plugin, el, message;
7428
+
7429
  // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated.
7430
  jQuery( '.frm-addon-error' ).remove();
7431
+ button = jQuery( clicked );
7432
+ plugin = button.attr( 'rel' );
7433
+ el = button.parent();
7434
+ message = el.parent().find( '.addon-status-label' );
7435
 
7436
  button.addClass( 'frm_loading_button' );
7437
 
7448
  plugin: plugin
7449
  },
7450
  success: function( response ) {
7451
+ var saveAndReload, error;
7452
+
7453
+ if ( 'string' !== typeof response && 'string' === typeof response.message ) {
7454
+ if ( 'undefined' !== typeof response.saveAndReload ) {
7455
+ saveAndReload = response.saveAndReload;
7456
+ }
7457
+ response = response.message;
7458
+ }
7459
+
7460
+ error = extractErrorFromAddOnResponse( response );
7461
 
7462
  if ( error ) {
7463
  addonError( error, el, button );
7464
  return;
7465
  }
7466
 
7467
+ afterAddonInstall( response, button, message, el, saveAndReload );
7468
  },
7469
  error: function() {
7470
  button.removeClass( 'frm_loading_button' );
7513
  });
7514
  }
7515
 
7516
+ function afterAddonInstall( response, button, message, el, saveAndReload ) {
7517
+ var $addonStatus, refreshPage;
7518
+
7519
+ $addonStatus = jQuery( document.getElementById( 'frm-addon-status' ) );
7520
  // The Ajax request was successful, so let's update the output.
7521
+ button.css({ opacity: '0' });
7522
  message.text( frm_admin_js.active );
7523
  jQuery( '#frm-oneclick' ).hide();
7524
+ $addonStatus.text( response ).show();
7525
  jQuery( '#frm_upgrade_modal h2' ).hide();
7526
  jQuery( '#frm_upgrade_modal .frm_lock_icon' ).addClass( 'frm_lock_open_icon' );
7527
  jQuery( '#frm_upgrade_modal .frm_lock_icon use' ).attr( 'xlink:href', '#frm_lock_open_icon' );
7531
  button.removeClass( 'frm_loading_button' );
7532
 
7533
  // Maybe refresh import and SMTP pages
7534
+ refreshPage = document.querySelectorAll( '.frm-admin-page-import, #frm-admin-smtp, #frm-welcome' );
7535
  if ( refreshPage.length > 0 ) {
7536
  window.location.reload();
7537
+ } else if ( 'settings' === saveAndReload ) {
7538
+ $addonStatus.append( getSaveAndReloadSettingsOptions() );
7539
  }
7540
  }
7541
 
7542
+ function getSaveAndReloadSettingsOptions() {
7543
+ var wrapper = div({ id: 'frm_save_and_reload_options' });
7544
+ wrapper.appendChild( saveAndReloadSettingsButton() );
7545
+ wrapper.appendChild( closePopupButton() );
7546
+ return wrapper;
7547
+ }
7548
 
7549
+ function saveAndReloadSettingsButton() {
7550
+ var button = document.createElement( 'button' );
7551
+ button.id = 'frm_save_and_reload_settings';
7552
+ button.classList.add( 'button', 'button-primary', 'frm-button-primary' );
7553
+ button.textContent = __( 'Save and Reload', 'formidable' );
7554
+ return button;
7555
+ }
7556
+
7557
+ function closePopupButton() {
7558
+ var a = document.createElement( 'a' );
7559
+ a.setAttribute( 'href', '#' );
7560
+ a.classList.add( 'button', 'button-secondary', 'frm-button-secondary', 'dismiss' );
7561
+ a.textContent = __( 'Close', 'formidable' );
7562
+ return a;
7563
+ }
7564
+
7565
+ function extractErrorFromAddOnResponse( response ) {
7566
  if ( typeof response !== 'string' ) {
7567
  if ( typeof response.success !== 'undefined' && response.success ) {
7568
  return false;
8380
  close: function() {
8381
  jQuery( '#wpwrap' ).removeClass( 'frm_overlay' );
8382
  jQuery( '.spinner' ).css( 'visibility', 'hidden' );
8383
+
8384
+ this.removeAttribute( 'data-option-type' );
8385
+ const optionType = document.getElementById( 'bulk-option-type' );
8386
+ if ( optionType ) {
8387
+ optionType.value = '';
8388
+ }
8389
  }
8390
  });
8391
 
8646
  thisFormId = jQuery( document.getElementById( 'form_id' ) ).val();
8647
  }
8648
 
8649
+ frmAdminBuild.inboxBannerInit();
8650
+
8651
  if ( $newFields.length > 0 ) {
8652
  // only load this on the form builder page
8653
  frmAdminBuild.buildInit();
9047
 
9048
  jQuery( document ).on( 'submit', '.frm_form_settings', settingsSubmitted );
9049
  jQuery( document ).on( 'change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated );
9050
+ jQuery( document ).on( 'click', '#frm_save_and_reload_settings', saveAndReloadSettings );
9051
 
9052
  // Page Selection Autocomplete
9053
  initSelectionAutocomplete();
9384
  });
9385
  },
9386
 
9387
+ inboxBannerInit: function() {
9388
+ const banner = document.getElementById( 'frm_banner' );
9389
+ if ( ! banner ) {
9390
+ return;
9391
+ }
9392
+
9393
+ const dismissButton = banner.querySelector( '.frm-banner-dismiss' );
9394
+ document.addEventListener(
9395
+ 'click',
9396
+ function( event ) {
9397
+ if ( event.target !== dismissButton ) {
9398
+ return;
9399
+ }
9400
+
9401
+ const data = {
9402
+ action: 'frm_inbox_dismiss',
9403
+ key: banner.dataset.key,
9404
+ nonce: frmGlobal.nonce
9405
+ };
9406
+ postAjax(
9407
+ data,
9408
+ function() {
9409
+ jQuery( banner ).fadeOut(
9410
+ 400,
9411
+ function() {
9412
+ banner.remove();
9413
+ }
9414
+ );
9415
+ }
9416
+ );
9417
+ }
9418
+ );
9419
+ },
9420
+
9421
  updateOpts: function( fieldId, opts, modal ) {
9422
  var separate = usingSeparateValues( fieldId ),
9423
  action = isProductField( fieldId ) ? 'frm_bulk_products' : 'frm_import_options';
9454
  url = url + '&is_template=' + isTemplate;
9455
  }
9456
  location.href = url;
9457
+ },
9458
+
9459
+ /**
9460
+ * @since 5.0.04
9461
+ */
9462
+ hooks: {
9463
+ applyFilters: function( hookName, ...args ) {
9464
+ return wp.hooks.applyFilters( hookName, ...args );
9465
+ },
9466
+ addFilter: function( hookName, callback, priority ) {
9467
+ return wp.hooks.addFilter( hookName, 'formidable', callback, priority );
9468
+ }
9469
  }
9470
  };
9471
  }
languages/formidable.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Formidable Forms 5.0.03\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2021-09-08T17:52:01+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
@@ -139,7 +139,7 @@ msgstr ""
139
  #: classes/controllers/FrmAddonsController.php:22
140
  #: classes/helpers/FrmFormsHelper.php:1328
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
- #: classes/views/shared/admin-header.php:32
143
  msgid "Upgrade"
144
  msgstr ""
145
 
@@ -164,26 +164,26 @@ msgstr ""
164
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
165
  msgstr ""
166
 
167
- #: classes/controllers/FrmAddonsController.php:968
 
 
 
 
168
  msgid "Your plugin has been activated. Please reload the page to see more options."
169
  msgstr ""
170
 
171
- #: classes/controllers/FrmAddonsController.php:1067
172
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
173
  msgstr ""
174
 
175
- #: classes/controllers/FrmAddonsController.php:1152
176
- #: classes/controllers/FrmAddonsController.php:1153
177
  #: classes/controllers/FrmWelcomeController.php:141
178
  #: classes/views/frm-forms/new-form-overlay.php:112
179
  #: classes/views/shared/reports-info.php:24
180
  msgid "Upgrade Now"
181
  msgstr ""
182
 
183
- #: classes/controllers/FrmAddonsController.php:1167
184
- msgid "Your plugin has been installed. Please reload the page to see more options."
185
- msgstr ""
186
-
187
  #: classes/controllers/FrmAppController.php:151
188
  msgid "Build"
189
  msgstr ""
@@ -224,8 +224,8 @@ msgid "Build a Form"
224
  msgstr ""
225
 
226
  #: classes/controllers/FrmEntriesController.php:79
227
- #: classes/controllers/FrmFormsController.php:1289
228
- #: classes/views/frm-entries/form.php:54
229
  #: classes/views/frm-entries/sidebar-shared.php:57
230
  msgid "Entry Key"
231
  msgstr ""
@@ -255,40 +255,40 @@ msgstr ""
255
  msgid "Entry update date"
256
  msgstr ""
257
 
258
- #: classes/controllers/FrmEntriesController.php:396
259
  msgid "Your import is complete"
260
  msgstr ""
261
 
262
  #. translators: %1$s: Time string
263
- #: classes/controllers/FrmEntriesController.php:408
264
  msgid "This form is in the trash and is scheduled to be deleted permanently in %s along with any entries."
265
  msgstr ""
266
 
267
- #: classes/controllers/FrmEntriesController.php:427
268
  msgid "You are trying to view an entry that does not exist."
269
  msgstr ""
270
 
271
- #: classes/controllers/FrmEntriesController.php:455
272
  msgid "Entry was Successfully Deleted"
273
  msgstr ""
274
 
275
- #: classes/controllers/FrmFieldsController.php:353
276
  msgid "Default Value (Text)"
277
  msgstr ""
278
 
279
- #: classes/controllers/FrmFieldsController.php:360
280
  msgid "Default Value (Calculation)"
281
  msgstr ""
282
 
283
- #: classes/controllers/FrmFieldsController.php:364
284
  msgid "Calculator forms"
285
  msgstr ""
286
 
287
- #: classes/controllers/FrmFieldsController.php:369
288
  msgid "Default Value (Lookup)"
289
  msgstr ""
290
 
291
- #: classes/controllers/FrmFieldsController.php:373
292
  msgid "Lookup fields"
293
  msgstr ""
294
 
@@ -347,7 +347,7 @@ msgid "Settings Successfully Updated"
347
  msgstr ""
348
 
349
  #: classes/controllers/FrmFormsController.php:184
350
- #: classes/controllers/FrmFormsController.php:982
351
  msgid "Form was successfully updated."
352
  msgstr ""
353
 
@@ -478,161 +478,161 @@ msgstr ""
478
  msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
479
  msgstr ""
480
 
481
- #: classes/controllers/FrmFormsController.php:984
482
  msgid "Template was successfully updated."
483
  msgstr ""
484
 
485
- #: classes/controllers/FrmFormsController.php:1048
486
  #: classes/controllers/FrmStylesController.php:393
487
  msgid "General"
488
  msgstr ""
489
 
490
- #: classes/controllers/FrmFormsController.php:1049
491
  msgid "General Form Settings"
492
  msgstr ""
493
 
494
- #: classes/controllers/FrmFormsController.php:1054
495
  msgid "Actions & Notifications"
496
  msgstr ""
497
 
498
- #: classes/controllers/FrmFormsController.php:1060
499
- #: classes/controllers/FrmFormsController.php:1065
500
  msgid "Form Permissions"
501
  msgstr ""
502
 
503
- #: classes/controllers/FrmFormsController.php:1066
504
  msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
505
  msgstr ""
506
 
507
- #: classes/controllers/FrmFormsController.php:1070
508
  msgid "Form Scheduling"
509
  msgstr ""
510
 
511
- #: classes/controllers/FrmFormsController.php:1075
512
  msgid "Form scheduling settings"
513
  msgstr ""
514
 
515
- #: classes/controllers/FrmFormsController.php:1079
516
  msgid "Styling & Buttons"
517
  msgstr ""
518
 
519
- #: classes/controllers/FrmFormsController.php:1085
520
  msgid "Customize HTML"
521
  msgstr ""
522
 
523
- #: classes/controllers/FrmFormsController.php:1205
524
  msgid "Customize field values with the following parameters."
525
  msgstr ""
526
 
527
- #: classes/controllers/FrmFormsController.php:1242
528
  msgid "Separator"
529
  msgstr ""
530
 
531
- #: classes/controllers/FrmFormsController.php:1243
532
  msgid "Use a different separator for checkbox fields"
533
  msgstr ""
534
 
535
- #: classes/controllers/FrmFormsController.php:1246
536
  msgid "Date Format"
537
  msgstr ""
538
 
539
- #: classes/controllers/FrmFormsController.php:1249
540
  #: classes/views/frm-fields/back-end/settings.php:27
541
  msgid "Field Label"
542
  msgstr ""
543
 
544
- #: classes/controllers/FrmFormsController.php:1252
545
  msgid "No Auto P"
546
  msgstr ""
547
 
548
- #: classes/controllers/FrmFormsController.php:1253
549
  msgid "Do not automatically add any paragraphs or line breaks"
550
  msgstr ""
551
 
552
- #: classes/controllers/FrmFormsController.php:1268
553
  #: classes/models/FrmField.php:62
554
  msgid "User ID"
555
  msgstr ""
556
 
557
- #: classes/controllers/FrmFormsController.php:1269
558
  msgid "First Name"
559
  msgstr ""
560
 
561
- #: classes/controllers/FrmFormsController.php:1270
562
  msgid "Last Name"
563
  msgstr ""
564
 
565
- #: classes/controllers/FrmFormsController.php:1271
566
  msgid "Display Name"
567
  msgstr ""
568
 
569
- #: classes/controllers/FrmFormsController.php:1272
570
  msgid "User Login"
571
  msgstr ""
572
 
573
- #: classes/controllers/FrmFormsController.php:1273
574
  #: classes/models/FrmField.php:34
575
  msgid "Email"
576
  msgstr ""
577
 
578
- #: classes/controllers/FrmFormsController.php:1274
579
  msgid "Avatar"
580
  msgstr ""
581
 
582
- #: classes/controllers/FrmFormsController.php:1275
583
  msgid "Author Link"
584
  msgstr ""
585
 
586
- #: classes/controllers/FrmFormsController.php:1288
587
  #: classes/views/frm-entries/sidebar-shared.php:51
588
  msgid "Entry ID"
589
  msgstr ""
590
 
591
- #: classes/controllers/FrmFormsController.php:1290
592
  msgid "Post ID"
593
  msgstr ""
594
 
595
- #: classes/controllers/FrmFormsController.php:1291
596
  msgid "User IP"
597
  msgstr ""
598
 
599
- #: classes/controllers/FrmFormsController.php:1292
600
  msgid "Entry created"
601
  msgstr ""
602
 
603
- #: classes/controllers/FrmFormsController.php:1293
604
  msgid "Entry updated"
605
  msgstr ""
606
 
607
- #: classes/controllers/FrmFormsController.php:1295
608
  msgid "Site URL"
609
  msgstr ""
610
 
611
- #: classes/controllers/FrmFormsController.php:1296
612
  msgid "Site Name"
613
  msgstr ""
614
 
615
- #: classes/controllers/FrmFormsController.php:1304
616
  msgid "Default Msg"
617
  msgstr ""
618
 
619
- #: classes/controllers/FrmFormsController.php:1305
620
  msgid "Default HTML"
621
  msgstr ""
622
 
623
- #: classes/controllers/FrmFormsController.php:1306
624
  msgid "Default Plain"
625
  msgstr ""
626
 
627
- #: classes/controllers/FrmFormsController.php:1395
628
  msgid "No forms were specified"
629
  msgstr ""
630
 
631
- #: classes/controllers/FrmFormsController.php:1507
632
  msgid "Abnormal HTML characters prevented your form from saving correctly"
633
  msgstr ""
634
 
635
- #: classes/controllers/FrmFormsController.php:1622
636
  #: classes/helpers/FrmFormsHelper.php:57
637
  #: classes/helpers/FrmFormsHelper.php:112
638
  #: classes/helpers/FrmFormsHelper.php:166
@@ -645,17 +645,17 @@ msgstr ""
645
  msgid "(no title)"
646
  msgstr ""
647
 
648
- #: classes/controllers/FrmFormsController.php:1668
649
- #: classes/controllers/FrmFormsController.php:1682
650
  msgid "Please select a valid form"
651
  msgstr ""
652
 
653
- #: classes/controllers/FrmFormsController.php:1904
654
  msgid "Please wait while you are redirected."
655
  msgstr ""
656
 
657
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
658
- #: classes/controllers/FrmFormsController.php:1940
659
  msgid "%1$sClick here%2$s if you are not automatically redirected."
660
  msgstr ""
661
 
@@ -714,7 +714,7 @@ msgid "Plugin Licenses"
714
  msgstr ""
715
 
716
  #: classes/controllers/FrmSettingsController.php:104
717
- #: classes/views/frm-forms/settings-advanced.php:170
718
  msgid "Miscellaneous"
719
  msgstr ""
720
 
@@ -954,6 +954,7 @@ msgid "Check Box & Radio Fields"
954
  msgstr ""
955
 
956
  #: classes/controllers/FrmStylesController.php:401
 
957
  #: classes/views/frm-forms/settings-buttons.php:46
958
  msgid "Buttons"
959
  msgstr ""
@@ -1221,14 +1222,14 @@ msgstr ""
1221
  #: classes/views/frm-forms/new-form-overlay.php:119
1222
  #: classes/views/frm-forms/new-form-overlay.php:129
1223
  #: classes/views/frm-forms/new-form-overlay.php:139
1224
- #: classes/views/shared/admin-header.php:63
1225
  #: classes/views/shared/confirm-overlay.php:19
1226
- #: js/formidable_admin.js:3581
1227
  msgid "Cancel"
1228
  msgstr ""
1229
 
1230
  #: classes/helpers/FrmAppHelper.php:2509
1231
- #: classes/views/frm-fields/back-end/settings.php:270
1232
  msgid "Default"
1233
  msgstr ""
1234
 
@@ -1250,7 +1251,7 @@ msgstr ""
1250
 
1251
  #: classes/helpers/FrmAppHelper.php:2514
1252
  #: classes/helpers/FrmListHelper.php:405
1253
- #: js/formidable_admin.js:3963
1254
  msgid "Heads up"
1255
  msgstr ""
1256
 
@@ -1625,18 +1626,18 @@ msgid "Turkish"
1625
  msgstr ""
1626
 
1627
  #: classes/helpers/FrmAppHelper.php:2713
1628
- msgid "Ukranian"
1629
  msgstr ""
1630
 
1631
  #: classes/helpers/FrmAppHelper.php:2714
1632
  msgid "Vietnamese"
1633
  msgstr ""
1634
 
1635
- #: classes/helpers/FrmAppHelper.php:2766
1636
  msgid "Your account has expired"
1637
  msgstr ""
1638
 
1639
- #: classes/helpers/FrmAppHelper.php:2769
1640
  msgid "Renew Now"
1641
  msgstr ""
1642
 
@@ -1758,7 +1759,7 @@ msgstr ""
1758
  #: classes/helpers/FrmFormsHelper.php:1134
1759
  #: classes/helpers/FrmFormsListHelper.php:133
1760
  #: classes/views/frm-form-actions/form_action.php:25
1761
- #: js/formidable_admin.js:1997
1762
  msgid "Delete"
1763
  msgstr ""
1764
 
@@ -1798,1135 +1799,1183 @@ msgstr ""
1798
  msgid "Categories"
1799
  msgstr ""
1800
 
1801
- #: classes/helpers/FrmFieldsHelper.php:1375
1802
  msgid "Afghanistan"
1803
  msgstr ""
1804
 
1805
- #: classes/helpers/FrmFieldsHelper.php:1376
1806
  msgid "Aland Islands"
1807
  msgstr ""
1808
 
1809
- #: classes/helpers/FrmFieldsHelper.php:1377
1810
  msgid "Albania"
1811
  msgstr ""
1812
 
1813
- #: classes/helpers/FrmFieldsHelper.php:1378
1814
  msgid "Algeria"
1815
  msgstr ""
1816
 
1817
- #: classes/helpers/FrmFieldsHelper.php:1379
1818
  msgid "American Samoa"
1819
  msgstr ""
1820
 
1821
- #: classes/helpers/FrmFieldsHelper.php:1380
1822
  msgid "Andorra"
1823
  msgstr ""
1824
 
1825
- #: classes/helpers/FrmFieldsHelper.php:1381
1826
  msgid "Angola"
1827
  msgstr ""
1828
 
1829
- #: classes/helpers/FrmFieldsHelper.php:1382
1830
  msgid "Anguilla"
1831
  msgstr ""
1832
 
1833
- #: classes/helpers/FrmFieldsHelper.php:1383
1834
  msgid "Antarctica"
1835
  msgstr ""
1836
 
1837
- #: classes/helpers/FrmFieldsHelper.php:1384
1838
  msgid "Antigua and Barbuda"
1839
  msgstr ""
1840
 
1841
- #: classes/helpers/FrmFieldsHelper.php:1385
1842
  msgid "Argentina"
1843
  msgstr ""
1844
 
1845
- #: classes/helpers/FrmFieldsHelper.php:1386
1846
  msgid "Armenia"
1847
  msgstr ""
1848
 
1849
- #: classes/helpers/FrmFieldsHelper.php:1387
1850
  msgid "Aruba"
1851
  msgstr ""
1852
 
1853
- #: classes/helpers/FrmFieldsHelper.php:1388
1854
  msgid "Australia"
1855
  msgstr ""
1856
 
1857
- #: classes/helpers/FrmFieldsHelper.php:1389
1858
  msgid "Austria"
1859
  msgstr ""
1860
 
1861
- #: classes/helpers/FrmFieldsHelper.php:1390
1862
  msgid "Azerbaijan"
1863
  msgstr ""
1864
 
1865
- #: classes/helpers/FrmFieldsHelper.php:1391
1866
  msgid "Bahamas"
1867
  msgstr ""
1868
 
1869
- #: classes/helpers/FrmFieldsHelper.php:1392
1870
  msgid "Bahrain"
1871
  msgstr ""
1872
 
1873
- #: classes/helpers/FrmFieldsHelper.php:1393
1874
  msgid "Bangladesh"
1875
  msgstr ""
1876
 
1877
- #: classes/helpers/FrmFieldsHelper.php:1394
1878
  msgid "Barbados"
1879
  msgstr ""
1880
 
1881
- #: classes/helpers/FrmFieldsHelper.php:1395
1882
  msgid "Belarus"
1883
  msgstr ""
1884
 
1885
- #: classes/helpers/FrmFieldsHelper.php:1396
1886
  msgid "Belgium"
1887
  msgstr ""
1888
 
1889
- #: classes/helpers/FrmFieldsHelper.php:1397
1890
  msgid "Belize"
1891
  msgstr ""
1892
 
1893
- #: classes/helpers/FrmFieldsHelper.php:1398
1894
  msgid "Benin"
1895
  msgstr ""
1896
 
1897
- #: classes/helpers/FrmFieldsHelper.php:1399
1898
  msgid "Bermuda"
1899
  msgstr ""
1900
 
1901
- #: classes/helpers/FrmFieldsHelper.php:1400
1902
  msgid "Bhutan"
1903
  msgstr ""
1904
 
1905
- #: classes/helpers/FrmFieldsHelper.php:1401
1906
  msgid "Bolivia"
1907
  msgstr ""
1908
 
1909
- #: classes/helpers/FrmFieldsHelper.php:1402
1910
  msgid "Bonaire, Sint Eustatius and Saba"
1911
  msgstr ""
1912
 
1913
- #: classes/helpers/FrmFieldsHelper.php:1403
1914
  msgid "Bosnia and Herzegovina"
1915
  msgstr ""
1916
 
1917
- #: classes/helpers/FrmFieldsHelper.php:1404
1918
  msgid "Botswana"
1919
  msgstr ""
1920
 
1921
- #: classes/helpers/FrmFieldsHelper.php:1405
1922
  msgid "Bouvet Island"
1923
  msgstr ""
1924
 
1925
- #: classes/helpers/FrmFieldsHelper.php:1406
1926
  msgid "Brazil"
1927
  msgstr ""
1928
 
1929
- #: classes/helpers/FrmFieldsHelper.php:1407
1930
  msgid "British Indian Ocean Territory"
1931
  msgstr ""
1932
 
1933
- #: classes/helpers/FrmFieldsHelper.php:1408
1934
  msgid "Brunei"
1935
  msgstr ""
1936
 
1937
- #: classes/helpers/FrmFieldsHelper.php:1409
1938
  msgid "Bulgaria"
1939
  msgstr ""
1940
 
1941
- #: classes/helpers/FrmFieldsHelper.php:1410
1942
  msgid "Burkina Faso"
1943
  msgstr ""
1944
 
1945
- #: classes/helpers/FrmFieldsHelper.php:1411
1946
  msgid "Burundi"
1947
  msgstr ""
1948
 
1949
- #: classes/helpers/FrmFieldsHelper.php:1412
1950
  msgid "Cambodia"
1951
  msgstr ""
1952
 
1953
- #: classes/helpers/FrmFieldsHelper.php:1413
1954
  msgid "Cameroon"
1955
  msgstr ""
1956
 
1957
- #: classes/helpers/FrmFieldsHelper.php:1414
1958
  msgid "Canada"
1959
  msgstr ""
1960
 
1961
- #: classes/helpers/FrmFieldsHelper.php:1415
1962
  msgid "Cape Verde"
1963
  msgstr ""
1964
 
1965
- #: classes/helpers/FrmFieldsHelper.php:1416
1966
  msgid "Cayman Islands"
1967
  msgstr ""
1968
 
1969
- #: classes/helpers/FrmFieldsHelper.php:1417
1970
  msgid "Central African Republic"
1971
  msgstr ""
1972
 
1973
- #: classes/helpers/FrmFieldsHelper.php:1418
1974
  msgid "Chad"
1975
  msgstr ""
1976
 
1977
- #: classes/helpers/FrmFieldsHelper.php:1419
1978
  msgid "Chile"
1979
  msgstr ""
1980
 
1981
- #: classes/helpers/FrmFieldsHelper.php:1420
1982
  msgid "China"
1983
  msgstr ""
1984
 
1985
- #: classes/helpers/FrmFieldsHelper.php:1421
1986
  msgid "Christmas Island"
1987
  msgstr ""
1988
 
1989
- #: classes/helpers/FrmFieldsHelper.php:1422
1990
  msgid "Cocos (Keeling) Islands"
1991
  msgstr ""
1992
 
1993
- #: classes/helpers/FrmFieldsHelper.php:1423
1994
  msgid "Colombia"
1995
  msgstr ""
1996
 
1997
- #: classes/helpers/FrmFieldsHelper.php:1424
1998
  msgid "Comoros"
1999
  msgstr ""
2000
 
2001
- #: classes/helpers/FrmFieldsHelper.php:1425
2002
  msgid "Congo"
2003
  msgstr ""
2004
 
2005
- #: classes/helpers/FrmFieldsHelper.php:1426
2006
  msgid "Cook Islands"
2007
  msgstr ""
2008
 
2009
- #: classes/helpers/FrmFieldsHelper.php:1427
2010
  msgid "Costa Rica"
2011
  msgstr ""
2012
 
2013
- #: classes/helpers/FrmFieldsHelper.php:1428
2014
  msgid "C&ocirc;te d'Ivoire"
2015
  msgstr ""
2016
 
2017
- #: classes/helpers/FrmFieldsHelper.php:1429
2018
  msgid "Croatia"
2019
  msgstr ""
2020
 
2021
- #: classes/helpers/FrmFieldsHelper.php:1430
2022
  msgid "Cuba"
2023
  msgstr ""
2024
 
2025
- #: classes/helpers/FrmFieldsHelper.php:1431
2026
  msgid "Curacao"
2027
  msgstr ""
2028
 
2029
- #: classes/helpers/FrmFieldsHelper.php:1432
2030
  msgid "Cyprus"
2031
  msgstr ""
2032
 
2033
- #: classes/helpers/FrmFieldsHelper.php:1433
2034
  msgid "Czech Republic"
2035
  msgstr ""
2036
 
2037
- #: classes/helpers/FrmFieldsHelper.php:1434
2038
  msgid "Denmark"
2039
  msgstr ""
2040
 
2041
- #: classes/helpers/FrmFieldsHelper.php:1435
2042
  msgid "Djibouti"
2043
  msgstr ""
2044
 
2045
- #: classes/helpers/FrmFieldsHelper.php:1436
2046
  msgid "Dominica"
2047
  msgstr ""
2048
 
2049
- #: classes/helpers/FrmFieldsHelper.php:1437
2050
  msgid "Dominican Republic"
2051
  msgstr ""
2052
 
2053
- #: classes/helpers/FrmFieldsHelper.php:1438
2054
  msgid "East Timor"
2055
  msgstr ""
2056
 
2057
- #: classes/helpers/FrmFieldsHelper.php:1439
2058
  msgid "Ecuador"
2059
  msgstr ""
2060
 
2061
- #: classes/helpers/FrmFieldsHelper.php:1440
2062
  msgid "Egypt"
2063
  msgstr ""
2064
 
2065
- #: classes/helpers/FrmFieldsHelper.php:1441
2066
  msgid "El Salvador"
2067
  msgstr ""
2068
 
2069
- #: classes/helpers/FrmFieldsHelper.php:1442
2070
  msgid "Equatorial Guinea"
2071
  msgstr ""
2072
 
2073
- #: classes/helpers/FrmFieldsHelper.php:1443
2074
  msgid "Eritrea"
2075
  msgstr ""
2076
 
2077
- #: classes/helpers/FrmFieldsHelper.php:1444
2078
  msgid "Estonia"
2079
  msgstr ""
2080
 
2081
- #: classes/helpers/FrmFieldsHelper.php:1445
2082
  msgid "Ethiopia"
2083
  msgstr ""
2084
 
2085
- #: classes/helpers/FrmFieldsHelper.php:1446
2086
  msgid "Falkland Islands (Malvinas)"
2087
  msgstr ""
2088
 
2089
- #: classes/helpers/FrmFieldsHelper.php:1447
2090
  msgid "Faroe Islands"
2091
  msgstr ""
2092
 
2093
- #: classes/helpers/FrmFieldsHelper.php:1448
2094
  msgid "Fiji"
2095
  msgstr ""
2096
 
2097
- #: classes/helpers/FrmFieldsHelper.php:1449
2098
  msgid "Finland"
2099
  msgstr ""
2100
 
2101
- #: classes/helpers/FrmFieldsHelper.php:1450
2102
  msgid "France"
2103
  msgstr ""
2104
 
2105
- #: classes/helpers/FrmFieldsHelper.php:1451
2106
  msgid "French Guiana"
2107
  msgstr ""
2108
 
2109
- #: classes/helpers/FrmFieldsHelper.php:1452
2110
  msgid "French Polynesia"
2111
  msgstr ""
2112
 
2113
- #: classes/helpers/FrmFieldsHelper.php:1453
2114
  msgid "French Southern Territories"
2115
  msgstr ""
2116
 
2117
- #: classes/helpers/FrmFieldsHelper.php:1454
2118
  msgid "Gabon"
2119
  msgstr ""
2120
 
2121
- #: classes/helpers/FrmFieldsHelper.php:1455
2122
  msgid "Gambia"
2123
  msgstr ""
2124
 
2125
- #: classes/helpers/FrmFieldsHelper.php:1456
2126
  msgid "Georgia"
2127
  msgstr ""
2128
 
2129
- #: classes/helpers/FrmFieldsHelper.php:1457
2130
  msgid "Germany"
2131
  msgstr ""
2132
 
2133
- #: classes/helpers/FrmFieldsHelper.php:1458
2134
  msgid "Ghana"
2135
  msgstr ""
2136
 
2137
- #: classes/helpers/FrmFieldsHelper.php:1459
2138
  msgid "Gibraltar"
2139
  msgstr ""
2140
 
2141
- #: classes/helpers/FrmFieldsHelper.php:1460
2142
  msgid "Greece"
2143
  msgstr ""
2144
 
2145
- #: classes/helpers/FrmFieldsHelper.php:1461
2146
  msgid "Greenland"
2147
  msgstr ""
2148
 
2149
- #: classes/helpers/FrmFieldsHelper.php:1462
2150
  msgid "Grenada"
2151
  msgstr ""
2152
 
2153
- #: classes/helpers/FrmFieldsHelper.php:1463
2154
  msgid "Guadeloupe"
2155
  msgstr ""
2156
 
2157
- #: classes/helpers/FrmFieldsHelper.php:1464
2158
  msgid "Guam"
2159
  msgstr ""
2160
 
2161
- #: classes/helpers/FrmFieldsHelper.php:1465
2162
  msgid "Guatemala"
2163
  msgstr ""
2164
 
2165
- #: classes/helpers/FrmFieldsHelper.php:1466
2166
  msgid "Guernsey"
2167
  msgstr ""
2168
 
2169
- #: classes/helpers/FrmFieldsHelper.php:1467
2170
  msgid "Guinea"
2171
  msgstr ""
2172
 
2173
- #: classes/helpers/FrmFieldsHelper.php:1468
2174
  msgid "Guinea-Bissau"
2175
  msgstr ""
2176
 
2177
- #: classes/helpers/FrmFieldsHelper.php:1469
2178
  msgid "Guyana"
2179
  msgstr ""
2180
 
2181
- #: classes/helpers/FrmFieldsHelper.php:1470
2182
  msgid "Haiti"
2183
  msgstr ""
2184
 
2185
- #: classes/helpers/FrmFieldsHelper.php:1471
2186
  msgid "Heard Island and McDonald Islands"
2187
  msgstr ""
2188
 
2189
- #: classes/helpers/FrmFieldsHelper.php:1472
2190
  msgid "Holy See"
2191
  msgstr ""
2192
 
2193
- #: classes/helpers/FrmFieldsHelper.php:1473
2194
  msgid "Honduras"
2195
  msgstr ""
2196
 
2197
- #: classes/helpers/FrmFieldsHelper.php:1474
2198
  msgid "Hong Kong"
2199
  msgstr ""
2200
 
2201
- #: classes/helpers/FrmFieldsHelper.php:1475
2202
  msgid "Hungary"
2203
  msgstr ""
2204
 
2205
- #: classes/helpers/FrmFieldsHelper.php:1476
2206
  msgid "Iceland"
2207
  msgstr ""
2208
 
2209
- #: classes/helpers/FrmFieldsHelper.php:1477
2210
  msgid "India"
2211
  msgstr ""
2212
 
2213
- #: classes/helpers/FrmFieldsHelper.php:1478
2214
  msgid "Indonesia"
2215
  msgstr ""
2216
 
2217
- #: classes/helpers/FrmFieldsHelper.php:1479
2218
  msgid "Iran"
2219
  msgstr ""
2220
 
2221
- #: classes/helpers/FrmFieldsHelper.php:1480
2222
  msgid "Iraq"
2223
  msgstr ""
2224
 
2225
- #: classes/helpers/FrmFieldsHelper.php:1481
2226
  msgid "Ireland"
2227
  msgstr ""
2228
 
2229
- #: classes/helpers/FrmFieldsHelper.php:1482
2230
  msgid "Israel"
2231
  msgstr ""
2232
 
2233
- #: classes/helpers/FrmFieldsHelper.php:1483
2234
  msgid "Isle of Man"
2235
  msgstr ""
2236
 
2237
- #: classes/helpers/FrmFieldsHelper.php:1484
2238
  msgid "Italy"
2239
  msgstr ""
2240
 
2241
- #: classes/helpers/FrmFieldsHelper.php:1485
2242
  msgid "Jamaica"
2243
  msgstr ""
2244
 
2245
- #: classes/helpers/FrmFieldsHelper.php:1486
2246
  msgid "Japan"
2247
  msgstr ""
2248
 
2249
- #: classes/helpers/FrmFieldsHelper.php:1487
2250
  msgid "Jersey"
2251
  msgstr ""
2252
 
2253
- #: classes/helpers/FrmFieldsHelper.php:1488
2254
  msgid "Jordan"
2255
  msgstr ""
2256
 
2257
- #: classes/helpers/FrmFieldsHelper.php:1489
2258
  msgid "Kazakhstan"
2259
  msgstr ""
2260
 
2261
- #: classes/helpers/FrmFieldsHelper.php:1490
2262
  msgid "Kenya"
2263
  msgstr ""
2264
 
2265
- #: classes/helpers/FrmFieldsHelper.php:1491
2266
  msgid "Kiribati"
2267
  msgstr ""
2268
 
2269
- #: classes/helpers/FrmFieldsHelper.php:1492
2270
  msgid "North Korea"
2271
  msgstr ""
2272
 
2273
- #: classes/helpers/FrmFieldsHelper.php:1493
2274
  msgid "South Korea"
2275
  msgstr ""
2276
 
2277
- #: classes/helpers/FrmFieldsHelper.php:1494
2278
  msgid "Kosovo"
2279
  msgstr ""
2280
 
2281
- #: classes/helpers/FrmFieldsHelper.php:1495
2282
  msgid "Kuwait"
2283
  msgstr ""
2284
 
2285
- #: classes/helpers/FrmFieldsHelper.php:1496
2286
  msgid "Kyrgyzstan"
2287
  msgstr ""
2288
 
2289
- #: classes/helpers/FrmFieldsHelper.php:1497
2290
  msgid "Laos"
2291
  msgstr ""
2292
 
2293
- #: classes/helpers/FrmFieldsHelper.php:1498
2294
  msgid "Latvia"
2295
  msgstr ""
2296
 
2297
- #: classes/helpers/FrmFieldsHelper.php:1499
2298
  msgid "Lebanon"
2299
  msgstr ""
2300
 
2301
- #: classes/helpers/FrmFieldsHelper.php:1500
2302
  msgid "Lesotho"
2303
  msgstr ""
2304
 
2305
- #: classes/helpers/FrmFieldsHelper.php:1501
2306
  msgid "Liberia"
2307
  msgstr ""
2308
 
2309
- #: classes/helpers/FrmFieldsHelper.php:1502
2310
  msgid "Libya"
2311
  msgstr ""
2312
 
2313
- #: classes/helpers/FrmFieldsHelper.php:1503
2314
  msgid "Liechtenstein"
2315
  msgstr ""
2316
 
2317
- #: classes/helpers/FrmFieldsHelper.php:1504
2318
  msgid "Lithuania"
2319
  msgstr ""
2320
 
2321
- #: classes/helpers/FrmFieldsHelper.php:1505
2322
  msgid "Luxembourg"
2323
  msgstr ""
2324
 
2325
- #: classes/helpers/FrmFieldsHelper.php:1506
2326
  msgid "Macao"
2327
  msgstr ""
2328
 
2329
- #: classes/helpers/FrmFieldsHelper.php:1507
2330
  msgid "Macedonia"
2331
  msgstr ""
2332
 
2333
- #: classes/helpers/FrmFieldsHelper.php:1508
2334
  msgid "Madagascar"
2335
  msgstr ""
2336
 
2337
- #: classes/helpers/FrmFieldsHelper.php:1509
2338
  msgid "Malawi"
2339
  msgstr ""
2340
 
2341
- #: classes/helpers/FrmFieldsHelper.php:1510
2342
  msgid "Malaysia"
2343
  msgstr ""
2344
 
2345
- #: classes/helpers/FrmFieldsHelper.php:1511
2346
  msgid "Maldives"
2347
  msgstr ""
2348
 
2349
- #: classes/helpers/FrmFieldsHelper.php:1512
2350
  msgid "Mali"
2351
  msgstr ""
2352
 
2353
- #: classes/helpers/FrmFieldsHelper.php:1513
2354
  msgid "Malta"
2355
  msgstr ""
2356
 
2357
- #: classes/helpers/FrmFieldsHelper.php:1514
2358
  msgid "Marshall Islands"
2359
  msgstr ""
2360
 
2361
- #: classes/helpers/FrmFieldsHelper.php:1515
2362
  msgid "Martinique"
2363
  msgstr ""
2364
 
2365
- #: classes/helpers/FrmFieldsHelper.php:1516
2366
  msgid "Mauritania"
2367
  msgstr ""
2368
 
2369
- #: classes/helpers/FrmFieldsHelper.php:1517
2370
  msgid "Mauritius"
2371
  msgstr ""
2372
 
2373
- #: classes/helpers/FrmFieldsHelper.php:1518
2374
  msgid "Mayotte"
2375
  msgstr ""
2376
 
2377
- #: classes/helpers/FrmFieldsHelper.php:1519
2378
  msgid "Mexico"
2379
  msgstr ""
2380
 
2381
- #: classes/helpers/FrmFieldsHelper.php:1520
2382
  msgid "Micronesia"
2383
  msgstr ""
2384
 
2385
- #: classes/helpers/FrmFieldsHelper.php:1521
2386
  msgid "Moldova"
2387
  msgstr ""
2388
 
2389
- #: classes/helpers/FrmFieldsHelper.php:1522
2390
  msgid "Monaco"
2391
  msgstr ""
2392
 
2393
- #: classes/helpers/FrmFieldsHelper.php:1523
2394
  msgid "Mongolia"
2395
  msgstr ""
2396
 
2397
- #: classes/helpers/FrmFieldsHelper.php:1524
2398
  msgid "Montenegro"
2399
  msgstr ""
2400
 
2401
- #: classes/helpers/FrmFieldsHelper.php:1525
2402
  msgid "Montserrat"
2403
  msgstr ""
2404
 
2405
- #: classes/helpers/FrmFieldsHelper.php:1526
2406
  msgid "Morocco"
2407
  msgstr ""
2408
 
2409
- #: classes/helpers/FrmFieldsHelper.php:1527
2410
  msgid "Mozambique"
2411
  msgstr ""
2412
 
2413
- #: classes/helpers/FrmFieldsHelper.php:1528
2414
  msgid "Myanmar"
2415
  msgstr ""
2416
 
2417
- #: classes/helpers/FrmFieldsHelper.php:1529
2418
  msgid "Namibia"
2419
  msgstr ""
2420
 
2421
- #: classes/helpers/FrmFieldsHelper.php:1530
2422
  msgid "Nauru"
2423
  msgstr ""
2424
 
2425
- #: classes/helpers/FrmFieldsHelper.php:1531
2426
  msgid "Nepal"
2427
  msgstr ""
2428
 
2429
- #: classes/helpers/FrmFieldsHelper.php:1532
2430
  msgid "Netherlands"
2431
  msgstr ""
2432
 
2433
- #: classes/helpers/FrmFieldsHelper.php:1533
2434
  msgid "New Caledonia"
2435
  msgstr ""
2436
 
2437
- #: classes/helpers/FrmFieldsHelper.php:1534
2438
  msgid "New Zealand"
2439
  msgstr ""
2440
 
2441
- #: classes/helpers/FrmFieldsHelper.php:1535
2442
  msgid "Nicaragua"
2443
  msgstr ""
2444
 
2445
- #: classes/helpers/FrmFieldsHelper.php:1536
2446
  msgid "Niger"
2447
  msgstr ""
2448
 
2449
- #: classes/helpers/FrmFieldsHelper.php:1537
2450
  msgid "Nigeria"
2451
  msgstr ""
2452
 
2453
- #: classes/helpers/FrmFieldsHelper.php:1538
2454
  msgid "Niue"
2455
  msgstr ""
2456
 
2457
- #: classes/helpers/FrmFieldsHelper.php:1539
2458
  msgid "Norfolk Island"
2459
  msgstr ""
2460
 
2461
- #: classes/helpers/FrmFieldsHelper.php:1540
2462
  msgid "Northern Mariana Islands"
2463
  msgstr ""
2464
 
2465
- #: classes/helpers/FrmFieldsHelper.php:1541
2466
  msgid "Norway"
2467
  msgstr ""
2468
 
2469
- #: classes/helpers/FrmFieldsHelper.php:1542
2470
  msgid "Oman"
2471
  msgstr ""
2472
 
2473
- #: classes/helpers/FrmFieldsHelper.php:1543
2474
  msgid "Pakistan"
2475
  msgstr ""
2476
 
2477
- #: classes/helpers/FrmFieldsHelper.php:1544
2478
  msgid "Palau"
2479
  msgstr ""
2480
 
2481
- #: classes/helpers/FrmFieldsHelper.php:1545
2482
  msgid "Palestine"
2483
  msgstr ""
2484
 
2485
- #: classes/helpers/FrmFieldsHelper.php:1546
2486
  msgid "Panama"
2487
  msgstr ""
2488
 
2489
- #: classes/helpers/FrmFieldsHelper.php:1547
2490
  msgid "Papua New Guinea"
2491
  msgstr ""
2492
 
2493
- #: classes/helpers/FrmFieldsHelper.php:1548
2494
  msgid "Paraguay"
2495
  msgstr ""
2496
 
2497
- #: classes/helpers/FrmFieldsHelper.php:1549
2498
  msgid "Peru"
2499
  msgstr ""
2500
 
2501
- #: classes/helpers/FrmFieldsHelper.php:1550
2502
  msgid "Philippines"
2503
  msgstr ""
2504
 
2505
- #: classes/helpers/FrmFieldsHelper.php:1551
2506
  msgid "Pitcairn"
2507
  msgstr ""
2508
 
2509
- #: classes/helpers/FrmFieldsHelper.php:1552
2510
  msgid "Poland"
2511
  msgstr ""
2512
 
2513
- #: classes/helpers/FrmFieldsHelper.php:1553
2514
  msgid "Portugal"
2515
  msgstr ""
2516
 
2517
- #: classes/helpers/FrmFieldsHelper.php:1554
2518
  msgid "Puerto Rico"
2519
  msgstr ""
2520
 
2521
- #: classes/helpers/FrmFieldsHelper.php:1555
2522
  msgid "Qatar"
2523
  msgstr ""
2524
 
2525
- #: classes/helpers/FrmFieldsHelper.php:1556
2526
  msgid "Reunion"
2527
  msgstr ""
2528
 
2529
- #: classes/helpers/FrmFieldsHelper.php:1557
2530
  msgid "Romania"
2531
  msgstr ""
2532
 
2533
- #: classes/helpers/FrmFieldsHelper.php:1558
2534
  msgid "Russia"
2535
  msgstr ""
2536
 
2537
- #: classes/helpers/FrmFieldsHelper.php:1559
2538
  msgid "Rwanda"
2539
  msgstr ""
2540
 
2541
- #: classes/helpers/FrmFieldsHelper.php:1560
2542
  msgid "Saint Barthelemy"
2543
  msgstr ""
2544
 
2545
- #: classes/helpers/FrmFieldsHelper.php:1561
2546
  msgid "Saint Helena, Ascension and Tristan da Cunha"
2547
  msgstr ""
2548
 
2549
- #: classes/helpers/FrmFieldsHelper.php:1562
2550
  msgid "Saint Kitts and Nevis"
2551
  msgstr ""
2552
 
2553
- #: classes/helpers/FrmFieldsHelper.php:1563
2554
  msgid "Saint Lucia"
2555
  msgstr ""
2556
 
2557
- #: classes/helpers/FrmFieldsHelper.php:1564
2558
  msgid "Saint Martin (French part)"
2559
  msgstr ""
2560
 
2561
- #: classes/helpers/FrmFieldsHelper.php:1565
2562
  msgid "Saint Pierre and Miquelon"
2563
  msgstr ""
2564
 
2565
- #: classes/helpers/FrmFieldsHelper.php:1566
2566
  msgid "Saint Vincent and the Grenadines"
2567
  msgstr ""
2568
 
2569
- #: classes/helpers/FrmFieldsHelper.php:1567
2570
  msgid "Samoa"
2571
  msgstr ""
2572
 
2573
- #: classes/helpers/FrmFieldsHelper.php:1568
2574
  msgid "San Marino"
2575
  msgstr ""
2576
 
2577
- #: classes/helpers/FrmFieldsHelper.php:1569
2578
  msgid "Sao Tome and Principe"
2579
  msgstr ""
2580
 
2581
- #: classes/helpers/FrmFieldsHelper.php:1570
2582
  msgid "Saudi Arabia"
2583
  msgstr ""
2584
 
2585
- #: classes/helpers/FrmFieldsHelper.php:1571
2586
  msgid "Senegal"
2587
  msgstr ""
2588
 
2589
- #: classes/helpers/FrmFieldsHelper.php:1572
2590
  msgid "Serbia"
2591
  msgstr ""
2592
 
2593
- #: classes/helpers/FrmFieldsHelper.php:1573
2594
  msgid "Seychelles"
2595
  msgstr ""
2596
 
2597
- #: classes/helpers/FrmFieldsHelper.php:1574
2598
  msgid "Sierra Leone"
2599
  msgstr ""
2600
 
2601
- #: classes/helpers/FrmFieldsHelper.php:1575
2602
  msgid "Singapore"
2603
  msgstr ""
2604
 
2605
- #: classes/helpers/FrmFieldsHelper.php:1576
2606
  msgid "Sint Maarten (Dutch part)"
2607
  msgstr ""
2608
 
2609
- #: classes/helpers/FrmFieldsHelper.php:1577
2610
  msgid "Slovakia"
2611
  msgstr ""
2612
 
2613
- #: classes/helpers/FrmFieldsHelper.php:1578
2614
  msgid "Slovenia"
2615
  msgstr ""
2616
 
2617
- #: classes/helpers/FrmFieldsHelper.php:1579
2618
  msgid "Solomon Islands"
2619
  msgstr ""
2620
 
2621
- #: classes/helpers/FrmFieldsHelper.php:1580
2622
  msgid "Somalia"
2623
  msgstr ""
2624
 
2625
- #: classes/helpers/FrmFieldsHelper.php:1581
2626
  msgid "South Africa"
2627
  msgstr ""
2628
 
2629
- #: classes/helpers/FrmFieldsHelper.php:1582
2630
  msgid "South Georgia and the South Sandwich Islands"
2631
  msgstr ""
2632
 
2633
- #: classes/helpers/FrmFieldsHelper.php:1583
2634
  msgid "South Sudan"
2635
  msgstr ""
2636
 
2637
- #: classes/helpers/FrmFieldsHelper.php:1584
2638
  msgid "Spain"
2639
  msgstr ""
2640
 
2641
- #: classes/helpers/FrmFieldsHelper.php:1585
2642
  msgid "Sri Lanka"
2643
  msgstr ""
2644
 
2645
- #: classes/helpers/FrmFieldsHelper.php:1586
2646
  msgid "Sudan"
2647
  msgstr ""
2648
 
2649
- #: classes/helpers/FrmFieldsHelper.php:1587
2650
  msgid "Suriname"
2651
  msgstr ""
2652
 
2653
- #: classes/helpers/FrmFieldsHelper.php:1588
2654
  msgid "Svalbard and Jan Mayen"
2655
  msgstr ""
2656
 
2657
- #: classes/helpers/FrmFieldsHelper.php:1589
2658
  msgid "Swaziland"
2659
  msgstr ""
2660
 
2661
- #: classes/helpers/FrmFieldsHelper.php:1590
2662
  msgid "Sweden"
2663
  msgstr ""
2664
 
2665
- #: classes/helpers/FrmFieldsHelper.php:1591
2666
  msgid "Switzerland"
2667
  msgstr ""
2668
 
2669
- #: classes/helpers/FrmFieldsHelper.php:1592
2670
  msgid "Syria"
2671
  msgstr ""
2672
 
2673
- #: classes/helpers/FrmFieldsHelper.php:1593
2674
  msgid "Taiwan"
2675
  msgstr ""
2676
 
2677
- #: classes/helpers/FrmFieldsHelper.php:1594
2678
  msgid "Tajikistan"
2679
  msgstr ""
2680
 
2681
- #: classes/helpers/FrmFieldsHelper.php:1595
2682
  msgid "Tanzania"
2683
  msgstr ""
2684
 
2685
- #: classes/helpers/FrmFieldsHelper.php:1596
2686
  msgid "Thailand"
2687
  msgstr ""
2688
 
2689
- #: classes/helpers/FrmFieldsHelper.php:1597
2690
  msgid "Timor-Leste"
2691
  msgstr ""
2692
 
2693
- #: classes/helpers/FrmFieldsHelper.php:1598
2694
  msgid "Togo"
2695
  msgstr ""
2696
 
2697
- #: classes/helpers/FrmFieldsHelper.php:1599
2698
  msgid "Tokelau"
2699
  msgstr ""
2700
 
2701
- #: classes/helpers/FrmFieldsHelper.php:1600
2702
  msgid "Tonga"
2703
  msgstr ""
2704
 
2705
- #: classes/helpers/FrmFieldsHelper.php:1601
2706
  msgid "Trinidad and Tobago"
2707
  msgstr ""
2708
 
2709
- #: classes/helpers/FrmFieldsHelper.php:1602
2710
  msgid "Tunisia"
2711
  msgstr ""
2712
 
2713
- #: classes/helpers/FrmFieldsHelper.php:1603
2714
  msgid "Turkey"
2715
  msgstr ""
2716
 
2717
- #: classes/helpers/FrmFieldsHelper.php:1604
2718
  msgid "Turkmenistan"
2719
  msgstr ""
2720
 
2721
- #: classes/helpers/FrmFieldsHelper.php:1605
2722
  msgid "Turks and Caicos Islands"
2723
  msgstr ""
2724
 
2725
- #: classes/helpers/FrmFieldsHelper.php:1606
2726
  msgid "Tuvalu"
2727
  msgstr ""
2728
 
2729
- #: classes/helpers/FrmFieldsHelper.php:1607
2730
  msgid "Uganda"
2731
  msgstr ""
2732
 
2733
- #: classes/helpers/FrmFieldsHelper.php:1608
2734
  msgid "Ukraine"
2735
  msgstr ""
2736
 
2737
- #: classes/helpers/FrmFieldsHelper.php:1609
2738
  msgid "United Arab Emirates"
2739
  msgstr ""
2740
 
2741
- #: classes/helpers/FrmFieldsHelper.php:1610
2742
  msgid "United Kingdom"
2743
  msgstr ""
2744
 
2745
- #: classes/helpers/FrmFieldsHelper.php:1611
2746
  msgid "United States"
2747
  msgstr ""
2748
 
2749
- #: classes/helpers/FrmFieldsHelper.php:1612
2750
  msgid "United States Minor Outlying Islands"
2751
  msgstr ""
2752
 
2753
- #: classes/helpers/FrmFieldsHelper.php:1613
2754
  msgid "Uruguay"
2755
  msgstr ""
2756
 
2757
- #: classes/helpers/FrmFieldsHelper.php:1614
2758
  msgid "Uzbekistan"
2759
  msgstr ""
2760
 
2761
- #: classes/helpers/FrmFieldsHelper.php:1615
2762
  msgid "Vanuatu"
2763
  msgstr ""
2764
 
2765
- #: classes/helpers/FrmFieldsHelper.php:1616
2766
  msgid "Vatican City"
2767
  msgstr ""
2768
 
2769
- #: classes/helpers/FrmFieldsHelper.php:1617
2770
  msgid "Venezuela"
2771
  msgstr ""
2772
 
2773
- #: classes/helpers/FrmFieldsHelper.php:1618
2774
  msgid "Vietnam"
2775
  msgstr ""
2776
 
2777
- #: classes/helpers/FrmFieldsHelper.php:1619
2778
  msgid "Virgin Islands, British"
2779
  msgstr ""
2780
 
2781
- #: classes/helpers/FrmFieldsHelper.php:1620
2782
  msgid "Virgin Islands, U.S."
2783
  msgstr ""
2784
 
2785
- #: classes/helpers/FrmFieldsHelper.php:1621
2786
  msgid "Wallis and Futuna"
2787
  msgstr ""
2788
 
2789
- #: classes/helpers/FrmFieldsHelper.php:1622
2790
  msgid "Western Sahara"
2791
  msgstr ""
2792
 
2793
- #: classes/helpers/FrmFieldsHelper.php:1623
2794
  msgid "Yemen"
2795
  msgstr ""
2796
 
2797
- #: classes/helpers/FrmFieldsHelper.php:1624
2798
  msgid "Zambia"
2799
  msgstr ""
2800
 
2801
- #: classes/helpers/FrmFieldsHelper.php:1625
2802
  msgid "Zimbabwe"
2803
  msgstr ""
2804
 
2805
- #: classes/helpers/FrmFieldsHelper.php:1633
2806
  msgid "Countries"
2807
  msgstr ""
2808
 
2809
- #: classes/helpers/FrmFieldsHelper.php:1638
2810
  msgid "U.S. State Abbreviations"
2811
  msgstr ""
2812
 
2813
- #: classes/helpers/FrmFieldsHelper.php:1642
2814
  msgid "U.S. States"
2815
  msgstr ""
2816
 
2817
- #: classes/helpers/FrmFieldsHelper.php:1645
2818
- msgid "Age"
2819
- msgstr ""
2820
-
2821
- #: classes/helpers/FrmFieldsHelper.php:1646
2822
  msgid "Under 18"
2823
  msgstr ""
2824
 
2825
- #: classes/helpers/FrmFieldsHelper.php:1647
2826
  msgid "18-24"
2827
  msgstr ""
2828
 
2829
- #: classes/helpers/FrmFieldsHelper.php:1648
2830
  msgid "25-34"
2831
  msgstr ""
2832
 
2833
- #: classes/helpers/FrmFieldsHelper.php:1649
2834
  msgid "35-44"
2835
  msgstr ""
2836
 
2837
- #: classes/helpers/FrmFieldsHelper.php:1650
2838
  msgid "45-54"
2839
  msgstr ""
2840
 
2841
- #: classes/helpers/FrmFieldsHelper.php:1651
2842
  msgid "55-64"
2843
  msgstr ""
2844
 
2845
- #: classes/helpers/FrmFieldsHelper.php:1652
2846
  msgid "65 or Above"
2847
  msgstr ""
2848
 
2849
- #: classes/helpers/FrmFieldsHelper.php:1653
2850
  msgid "Prefer Not to Answer"
2851
  msgstr ""
2852
 
2853
- #: classes/helpers/FrmFieldsHelper.php:1656
2854
- msgid "Satisfaction"
2855
  msgstr ""
2856
 
2857
- #: classes/helpers/FrmFieldsHelper.php:1657
2858
- msgid "Very Satisfied"
2859
  msgstr ""
2860
 
2861
- #: classes/helpers/FrmFieldsHelper.php:1658
2862
- msgid "Satisfied"
2863
  msgstr ""
2864
 
2865
- #: classes/helpers/FrmFieldsHelper.php:1659
2866
- #: classes/helpers/FrmFieldsHelper.php:1668
2867
- #: classes/helpers/FrmFieldsHelper.php:1677
 
2868
  msgid "Neutral"
2869
  msgstr ""
2870
 
2871
- #: classes/helpers/FrmFieldsHelper.php:1660
2872
- msgid "Unsatisfied"
2873
  msgstr ""
2874
 
2875
- #: classes/helpers/FrmFieldsHelper.php:1661
2876
- msgid "Very Unsatisfied"
2877
  msgstr ""
2878
 
2879
- #: classes/helpers/FrmFieldsHelper.php:1662
2880
- #: classes/helpers/FrmFieldsHelper.php:1671
2881
- #: classes/helpers/FrmFieldsHelper.php:1680
 
2882
  msgid "N/A"
2883
  msgstr ""
2884
 
2885
- #: classes/helpers/FrmFieldsHelper.php:1665
2886
- msgid "Importance"
2887
  msgstr ""
2888
 
2889
- #: classes/helpers/FrmFieldsHelper.php:1666
2890
- msgid "Very Important"
 
 
 
 
2891
  msgstr ""
2892
 
2893
- #: classes/helpers/FrmFieldsHelper.php:1667
2894
  msgid "Important"
2895
  msgstr ""
2896
 
2897
- #: classes/helpers/FrmFieldsHelper.php:1669
2898
- msgid "Somewhat Important"
2899
  msgstr ""
2900
 
2901
- #: classes/helpers/FrmFieldsHelper.php:1670
2902
- msgid "Not at all Important"
2903
  msgstr ""
2904
 
2905
- #: classes/helpers/FrmFieldsHelper.php:1674
2906
- msgid "Agreement"
2907
  msgstr ""
2908
 
2909
- #: classes/helpers/FrmFieldsHelper.php:1675
2910
- msgid "Strongly Agree"
2911
  msgstr ""
2912
 
2913
- #: classes/helpers/FrmFieldsHelper.php:1676
2914
  msgid "Agree"
2915
  msgstr ""
2916
 
2917
- #: classes/helpers/FrmFieldsHelper.php:1678
2918
- msgid "Disagree"
2919
  msgstr ""
2920
 
2921
- #: classes/helpers/FrmFieldsHelper.php:1679
2922
- msgid "Strongly Disagree"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2923
  msgstr ""
2924
 
2925
  #. translators: %s: Field name
2926
- #: classes/helpers/FrmFieldsHelper.php:1755
2927
  msgid "%s fields"
2928
  msgstr ""
2929
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2930
  #: classes/helpers/FrmFormMigratorsHelper.php:46
2931
  msgid "Learn More"
2932
  msgstr ""
@@ -2978,7 +3027,7 @@ msgid "Field ID"
2978
  msgstr ""
2979
 
2980
  #: classes/helpers/FrmFormsHelper.php:463
2981
- #: classes/views/frm-fields/back-end/settings.php:294
2982
  msgid "Field Key"
2983
  msgstr ""
2984
 
@@ -2987,7 +3036,7 @@ msgid "Field Name"
2987
  msgstr ""
2988
 
2989
  #: classes/helpers/FrmFormsHelper.php:475
2990
- #: classes/views/frm-fields/back-end/settings.php:267
2991
  msgid "Label Position"
2992
  msgstr ""
2993
 
@@ -3095,7 +3144,7 @@ msgid "This will permanently delete the form and all its entries. This is irreve
3095
  msgstr ""
3096
 
3097
  #: classes/helpers/FrmFormsHelper.php:1149
3098
- #: classes/models/FrmField.php:193
3099
  msgid "Total"
3100
  msgstr ""
3101
 
@@ -3378,10 +3427,10 @@ msgstr ""
3378
  #: classes/helpers/FrmTipsHelper.php:60
3379
  #: classes/helpers/FrmTipsHelper.php:76
3380
  #: classes/helpers/FrmTipsHelper.php:92
3381
- #: classes/helpers/FrmTipsHelper.php:161
3382
- #: classes/helpers/FrmTipsHelper.php:169
3383
- #: classes/helpers/FrmTipsHelper.php:263
3384
- #: classes/helpers/FrmTipsHelper.php:287
3385
  msgid "Upgrade to Pro."
3386
  msgstr ""
3387
 
@@ -3418,7 +3467,7 @@ msgid "Fill out forms automatically!"
3418
  msgstr ""
3419
 
3420
  #: classes/helpers/FrmTipsHelper.php:114
3421
- #: classes/helpers/FrmTipsHelper.php:270
3422
  msgid "A site with dynamic, user-generated content is within reach."
3423
  msgstr ""
3424
 
@@ -3434,140 +3483,132 @@ msgstr ""
3434
  msgid "Let users save drafts and return later!"
3435
  msgstr ""
3436
 
3437
- #: classes/helpers/FrmTipsHelper.php:129
3438
- msgid "Want to submit forms without reloading the page?"
3439
- msgstr ""
3440
-
3441
  #: classes/helpers/FrmTipsHelper.php:130
3442
- msgid "Get ajax form submit."
3443
- msgstr ""
3444
-
3445
- #: classes/helpers/FrmTipsHelper.php:137
3446
  msgid "Want your form open only for a certain time period?"
3447
  msgstr ""
3448
 
3449
- #: classes/helpers/FrmTipsHelper.php:138
3450
  msgid "Add form scheduling."
3451
  msgstr ""
3452
 
3453
- #: classes/helpers/FrmTipsHelper.php:152
3454
  msgid "Save time by sending the email to the right person automatically."
3455
  msgstr ""
3456
 
3457
- #: classes/helpers/FrmTipsHelper.php:153
3458
  msgid "Add email routing."
3459
  msgstr ""
3460
 
3461
- #: classes/helpers/FrmTipsHelper.php:160
3462
  msgid "Create blog posts or pages from the front-end."
3463
  msgstr ""
3464
 
3465
- #: classes/helpers/FrmTipsHelper.php:168
3466
  msgid "Let your users submit posts on the front-end."
3467
  msgstr ""
3468
 
3469
- #: classes/helpers/FrmTipsHelper.php:176
3470
  msgid "Grow your business with automated email follow-up."
3471
  msgstr ""
3472
 
3473
- #: classes/helpers/FrmTipsHelper.php:177
3474
  msgid "Send leads straight to MailChimp."
3475
  msgstr ""
3476
 
3477
- #: classes/helpers/FrmTipsHelper.php:184
3478
  msgid "Increase revenue."
3479
  msgstr ""
3480
 
3481
- #: classes/helpers/FrmTipsHelper.php:185
3482
  msgid "Use PayPal with this form."
3483
  msgstr ""
3484
 
3485
- #: classes/helpers/FrmTipsHelper.php:192
3486
  msgid "Get paid instantly."
3487
  msgstr ""
3488
 
3489
- #: classes/helpers/FrmTipsHelper.php:193
3490
  msgid "Use Paypal with this form."
3491
  msgstr ""
3492
 
3493
- #: classes/helpers/FrmTipsHelper.php:200
3494
  msgid "Automatically create user accounts."
3495
  msgstr ""
3496
 
3497
- #: classes/helpers/FrmTipsHelper.php:201
3498
  msgid "Upgrade to boost your site membership."
3499
  msgstr ""
3500
 
3501
- #: classes/helpers/FrmTipsHelper.php:208
3502
  msgid "Need front-end profile editing?"
3503
  msgstr ""
3504
 
3505
- #: classes/helpers/FrmTipsHelper.php:209
3506
  msgid "Add user registration."
3507
  msgstr ""
3508
 
3509
- #: classes/helpers/FrmTipsHelper.php:216
3510
  msgid "Want an SMS notification when a form is submitted or a payment received?"
3511
  msgstr ""
3512
 
3513
- #: classes/helpers/FrmTipsHelper.php:217
3514
- #: classes/helpers/FrmTipsHelper.php:225
3515
  msgid "Get the Twilio integration."
3516
  msgstr ""
3517
 
3518
- #: classes/helpers/FrmTipsHelper.php:224
3519
  msgid "Send an SMS message when a form is submitted."
3520
  msgstr ""
3521
 
3522
- #: classes/helpers/FrmTipsHelper.php:239
3523
  msgid "Make your sidebar and footer forms stand out."
3524
  msgstr ""
3525
 
3526
- #: classes/helpers/FrmTipsHelper.php:240
3527
  msgid "Use multiple style templates."
3528
  msgstr ""
3529
 
3530
- #: classes/helpers/FrmTipsHelper.php:254
3531
  msgid "Want to edit form submissions?"
3532
  msgstr ""
3533
 
3534
- #: classes/helpers/FrmTipsHelper.php:255
3535
  msgid "Add entry management."
3536
  msgstr ""
3537
 
3538
- #: classes/helpers/FrmTipsHelper.php:262
3539
  msgid "Want to search submitted entries?"
3540
  msgstr ""
3541
 
3542
- #: classes/helpers/FrmTipsHelper.php:271
3543
  msgid "Display form data with Views."
3544
  msgstr ""
3545
 
3546
- #: classes/helpers/FrmTipsHelper.php:286
3547
  msgid "Want to import entries into your forms?"
3548
  msgstr ""
3549
 
3550
- #: classes/helpers/FrmTipsHelper.php:301
3551
  msgid "Looking for more ways to get professional results?"
3552
  msgstr ""
3553
 
3554
- #: classes/helpers/FrmTipsHelper.php:302
3555
  msgid "Take your forms to the next level."
3556
  msgstr ""
3557
 
3558
- #: classes/helpers/FrmTipsHelper.php:309
3559
  msgid "Increase conversions in long forms."
3560
  msgstr ""
3561
 
3562
- #: classes/helpers/FrmTipsHelper.php:310
3563
  msgid "Add conditional logic, page breaks, and section headings."
3564
  msgstr ""
3565
 
3566
- #: classes/helpers/FrmTipsHelper.php:317
3567
  msgid "Automate your business and increase revenue."
3568
  msgstr ""
3569
 
3570
- #: classes/helpers/FrmTipsHelper.php:318
3571
  msgid "Collect instant payments, and send leads to MailChimp."
3572
  msgstr ""
3573
 
@@ -3692,12 +3733,12 @@ msgid "Option 2"
3692
  msgstr ""
3693
 
3694
  #: classes/models/fields/FrmFieldCombo.php:190
3695
- #: classes/views/frm-fields/back-end/settings.php:134
3696
  msgid "Default Value"
3697
  msgstr ""
3698
 
3699
  #: classes/models/fields/FrmFieldCombo.php:191
3700
- #: classes/views/frm-fields/back-end/settings.php:180
3701
  msgid "Placeholder Text"
3702
  msgstr ""
3703
 
@@ -3837,17 +3878,17 @@ msgid "User Information"
3837
  msgstr ""
3838
 
3839
  #: classes/models/FrmEmail.php:310
3840
- #: classes/models/FrmEntryValues.php:214
3841
  msgid "User-Agent (Browser/OS)"
3842
  msgstr ""
3843
 
3844
  #: classes/models/FrmEmail.php:311
3845
- #: classes/models/FrmEntryValues.php:219
3846
  msgid "Referrer"
3847
  msgstr ""
3848
 
3849
  #: classes/models/FrmEmail.php:327
3850
- #: classes/models/FrmEntryValues.php:209
3851
  msgid "IP Address"
3852
  msgstr ""
3853
 
@@ -3855,12 +3896,12 @@ msgstr ""
3855
  msgid "There was a problem with your submission. Please try again."
3856
  msgstr ""
3857
 
3858
- #: classes/models/FrmEntryValidate.php:236
3859
- #: classes/models/FrmEntryValidate.php:240
3860
  msgid "Your entry appears to be spam!"
3861
  msgstr ""
3862
 
3863
- #: classes/models/FrmEntryValidate.php:238
3864
  msgid "Your entry appears to be blocked spam!"
3865
  msgstr ""
3866
 
@@ -3979,42 +4020,50 @@ msgid "Embed Form"
3979
  msgstr ""
3980
 
3981
  #: classes/models/FrmField.php:143
 
 
 
 
 
 
 
 
3982
  msgid "Password"
3983
  msgstr ""
3984
 
3985
- #: classes/models/FrmField.php:147
3986
  msgid "Tags"
3987
  msgstr ""
3988
 
3989
- #: classes/models/FrmField.php:151
3990
  msgid "Credit Card"
3991
  msgstr ""
3992
 
3993
- #: classes/models/FrmField.php:156
3994
  msgid "Address"
3995
  msgstr ""
3996
 
3997
- #: classes/models/FrmField.php:160
3998
  msgid "Summary"
3999
  msgstr ""
4000
 
4001
- #: classes/models/FrmField.php:165
4002
  msgid "Signature"
4003
  msgstr ""
4004
 
4005
- #: classes/models/FrmField.php:170
4006
  msgid "Quiz Score"
4007
  msgstr ""
4008
 
4009
- #: classes/models/FrmField.php:175
4010
  msgid "Appointment"
4011
  msgstr ""
4012
 
4013
- #: classes/models/FrmField.php:183
4014
  msgid "Product"
4015
  msgstr ""
4016
 
4017
- #: classes/models/FrmField.php:188
4018
  msgid "Quantity"
4019
  msgstr ""
4020
 
@@ -4328,7 +4377,7 @@ msgstr ""
4328
 
4329
  #: classes/views/frm-entries/list.php:34
4330
  #: classes/views/frm-forms/list-templates.php:29
4331
- #: classes/views/shared/admin-header.php:58
4332
  #: classes/views/xml/import_form.php:17
4333
  msgid "Import"
4334
  msgstr ""
@@ -4438,7 +4487,8 @@ msgstr ""
4438
  #: classes/views/frm-fields/back-end/bulk-options-overlay.php:8
4439
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4440
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4441
- #: classes/views/shared/admin-header.php:18
 
4442
  msgid "Close"
4443
  msgstr ""
4444
 
@@ -4446,11 +4496,11 @@ msgstr ""
4446
  msgid "Edit or add field options (one per line)"
4447
  msgstr ""
4448
 
4449
- #: classes/views/frm-fields/back-end/bulk-options-overlay.php:22
4450
  msgid "Update Options"
4451
  msgstr ""
4452
 
4453
- #: classes/views/frm-fields/back-end/bulk-options-overlay.php:27
4454
  msgid "Insert Presets"
4455
  msgstr ""
4456
 
@@ -4477,7 +4527,7 @@ msgstr ""
4477
 
4478
  #: classes/views/frm-fields/back-end/html-content.php:16
4479
  #: classes/views/frm-fields/back-end/settings.php:85
4480
- #: classes/views/frm-fields/back-end/settings.php:143
4481
  #: classes/views/frm-fields/back-end/value-format.php:16
4482
  msgid "Toggle Options"
4483
  msgstr ""
@@ -4558,37 +4608,29 @@ msgstr ""
4558
  msgid "(%, px, em)"
4559
  msgstr ""
4560
 
4561
- #: classes/views/frm-fields/back-end/radio-images.php:6
 
 
 
 
4562
  msgid "Separate Values"
4563
  msgstr ""
4564
 
4565
- #: classes/views/frm-fields/back-end/radio-images.php:6
4566
  msgid "Add a separate value to use for calculations, email routing, saving to the database, and many other uses. The option values are saved while the option labels are shown in the form."
4567
  msgstr ""
4568
 
4569
- #: classes/views/frm-fields/back-end/radio-images.php:9
4570
  msgid "Use separate values"
4571
  msgstr ""
4572
 
4573
- #: classes/views/frm-fields/back-end/radio-images.php:13
4574
- msgid "Image Options"
4575
- msgstr ""
4576
-
4577
- #: classes/views/frm-fields/back-end/radio-images.php:13
4578
- msgid "Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
4579
- msgstr ""
4580
-
4581
- #: classes/views/frm-fields/back-end/radio-images.php:16
4582
- msgid "Use images for options"
4583
- msgstr ""
4584
-
4585
  #. translators: %s: Field type
4586
  #: classes/views/frm-fields/back-end/settings.php:17
4587
  msgid "%s Field"
4588
  msgstr ""
4589
 
4590
  #: classes/views/frm-fields/back-end/settings.php:39
4591
- #: classes/views/frm-fields/back-end/settings.php:340
4592
  msgid "Required"
4593
  msgstr ""
4594
 
@@ -4597,7 +4639,7 @@ msgid "Unique: Do not allow the same response multiple times. For example, if on
4597
  msgstr ""
4598
 
4599
  #: classes/views/frm-fields/back-end/settings.php:47
4600
- #: classes/views/frm-fields/back-end/settings.php:360
4601
  msgid "Unique"
4602
  msgstr ""
4603
 
@@ -4617,68 +4659,68 @@ msgstr ""
4617
  msgid "CSS Layout Classes"
4618
  msgstr ""
4619
 
4620
- #: classes/views/frm-fields/back-end/settings.php:108
4621
  #: classes/views/shared/mb_adv_info.php:22
4622
  msgid "Advanced"
4623
  msgstr ""
4624
 
4625
- #: classes/views/frm-fields/back-end/settings.php:214
4626
  msgid "If this URL points to an image, show to image on the entries listing page."
4627
  msgstr ""
4628
 
4629
- #: classes/views/frm-fields/back-end/settings.php:221
4630
  msgid "Set the size of the captcha field. The compact option is best if your form is in a small area."
4631
  msgstr ""
4632
 
4633
- #: classes/views/frm-fields/back-end/settings.php:222
4634
  msgid "ReCaptcha Type"
4635
  msgstr ""
4636
 
4637
- #: classes/views/frm-fields/back-end/settings.php:226
4638
  msgid "Normal"
4639
  msgstr ""
4640
 
4641
- #: classes/views/frm-fields/back-end/settings.php:229
4642
  msgid "Compact"
4643
  msgstr ""
4644
 
4645
- #: classes/views/frm-fields/back-end/settings.php:235
4646
  msgid "reCAPTCHA Color"
4647
  msgstr ""
4648
 
4649
- #: classes/views/frm-fields/back-end/settings.php:239
4650
  msgid "Light"
4651
  msgstr ""
4652
 
4653
- #: classes/views/frm-fields/back-end/settings.php:242
4654
  msgid "Dark"
4655
  msgstr ""
4656
 
4657
- #: classes/views/frm-fields/back-end/settings.php:259
4658
  msgid "Required Field Indicator"
4659
  msgstr ""
4660
 
4661
- #: classes/views/frm-fields/back-end/settings.php:285
4662
  msgid "Center"
4663
  msgstr ""
4664
 
4665
- #: classes/views/frm-fields/back-end/settings.php:293
4666
  msgid "The field key can be used as an alternative to the field ID in many cases."
4667
  msgstr ""
4668
 
4669
- #: classes/views/frm-fields/back-end/settings.php:302
4670
  msgid "Field Type"
4671
  msgstr ""
4672
 
4673
- #: classes/views/frm-fields/back-end/settings.php:332
4674
  msgid "Validation Messages"
4675
  msgstr ""
4676
 
4677
- #: classes/views/frm-fields/back-end/settings.php:349
4678
  msgid "Invalid Format"
4679
  msgstr ""
4680
 
4681
- #: classes/views/frm-fields/back-end/settings.php:371
4682
  msgid "Confirmation"
4683
  msgstr ""
4684
 
@@ -4730,7 +4772,7 @@ msgid "Conditional emails"
4730
  msgstr ""
4731
 
4732
  #: classes/views/frm-form-actions/form_action.php:21
4733
- #: js/formidable_admin.js:2003
4734
  msgid "Duplicate"
4735
  msgstr ""
4736
 
@@ -4855,7 +4897,7 @@ msgid "Move Field"
4855
  msgstr ""
4856
 
4857
  #: classes/views/frm-forms/add_field.php:29
4858
- #: js/formidable_admin.js:1192
4859
  msgid "More Options"
4860
  msgstr ""
4861
 
@@ -5201,7 +5243,7 @@ msgid "Form Settings"
5201
  msgstr ""
5202
 
5203
  #: classes/views/frm-forms/settings-advanced.php:67
5204
- #: classes/views/frm-forms/settings-advanced.php:161
5205
  msgid "On Submit"
5206
  msgstr ""
5207
 
@@ -5229,35 +5271,51 @@ msgstr ""
5229
  msgid "Do not store entries submitted from this form"
5230
  msgstr ""
5231
 
5232
- #: classes/views/frm-forms/settings-advanced.php:125
5233
  msgid "AJAX"
5234
  msgstr ""
5235
 
5236
- #: classes/views/frm-forms/settings-advanced.php:126
5237
  msgid "Make stuff happen in the background without a page refresh"
5238
  msgstr ""
5239
 
5240
- #: classes/views/frm-forms/settings-advanced.php:133
5241
  msgid "Load and save form builder page with AJAX"
5242
  msgstr ""
5243
 
5244
- #: classes/views/frm-forms/settings-advanced.php:134
5245
  msgid "Recommended for long forms."
5246
  msgstr ""
5247
 
5248
- #: classes/views/frm-forms/settings-advanced.php:143
5249
- msgid "Validate this form with javascript"
5250
  msgstr ""
5251
 
5252
  #: classes/views/frm-forms/settings-advanced.php:144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5253
  msgid "Required fields, email format, and number format can be checked instantly in your browser. You may want to turn this option off if you have any customizations to remove validation messages on certain fields."
5254
  msgstr ""
5255
 
5256
- #: classes/views/frm-forms/settings-advanced.php:155
5257
  msgid "Messages"
5258
  msgstr ""
5259
 
5260
- #: classes/views/frm-forms/settings-advanced.php:156
5261
  msgid "Set up your confirmation messages."
5262
  msgstr ""
5263
 
@@ -6220,47 +6278,51 @@ msgstr ""
6220
  msgid "Error"
6221
  msgstr ""
6222
 
6223
- #: js/formidable_admin.js:1973
6224
  msgid "Field settings"
6225
  msgstr ""
6226
 
6227
- #: js/formidable_admin.js:1997
6228
  msgid "Delete Group"
6229
  msgstr ""
6230
 
6231
- #: js/formidable_admin.js:2003
6232
  msgid "Duplicate Group"
6233
  msgstr ""
6234
 
6235
- #: js/formidable_admin.js:3294
6236
  msgid "Custom layout"
6237
  msgstr ""
6238
 
6239
- #: js/formidable_admin.js:3308
6240
  msgid "Break into rows"
6241
  msgstr ""
6242
 
6243
- #: js/formidable_admin.js:3317
6244
  msgid "Row Layout"
6245
  msgstr ""
6246
 
6247
- #: js/formidable_admin.js:3566
6248
  msgid "Enter number of columns for each field"
6249
  msgstr ""
6250
 
6251
- #: js/formidable_admin.js:3570
6252
  msgid "Layouts are based on a 12-column grid system"
6253
  msgstr ""
6254
 
6255
- #: js/formidable_admin.js:3586
6256
  msgid "Save"
6257
  msgstr ""
6258
 
6259
- #: js/formidable_admin.js:3877
6260
  msgid "Merge into row"
6261
  msgstr ""
6262
 
6263
  #. translators: %1$s: Number of fields that are selected to be deleted.
6264
- #: js/formidable_admin.js:3965
6265
  msgid "Are you sure you want to delete these %1$s selected fields?"
6266
  msgstr ""
 
 
 
 
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 5.0.04\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-09-16T18:03:50+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
139
  #: classes/controllers/FrmAddonsController.php:22
140
  #: classes/helpers/FrmFormsHelper.php:1328
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
+ #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
144
  msgstr ""
145
 
164
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
165
  msgstr ""
166
 
167
+ #: classes/controllers/FrmAddonsController.php:977
168
+ msgid "Your plugin has been activated. Would you like to save and reload the page now?"
169
+ msgstr ""
170
+
171
+ #: classes/controllers/FrmAddonsController.php:981
172
  msgid "Your plugin has been activated. Please reload the page to see more options."
173
  msgstr ""
174
 
175
+ #: classes/controllers/FrmAddonsController.php:1088
176
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
177
  msgstr ""
178
 
179
+ #: classes/controllers/FrmAddonsController.php:1173
180
+ #: classes/controllers/FrmAddonsController.php:1174
181
  #: classes/controllers/FrmWelcomeController.php:141
182
  #: classes/views/frm-forms/new-form-overlay.php:112
183
  #: classes/views/shared/reports-info.php:24
184
  msgid "Upgrade Now"
185
  msgstr ""
186
 
 
 
 
 
187
  #: classes/controllers/FrmAppController.php:151
188
  msgid "Build"
189
  msgstr ""
224
  msgstr ""
225
 
226
  #: classes/controllers/FrmEntriesController.php:79
227
+ #: classes/controllers/FrmFormsController.php:1318
228
+ #: classes/views/frm-entries/form.php:63
229
  #: classes/views/frm-entries/sidebar-shared.php:57
230
  msgid "Entry Key"
231
  msgstr ""
255
  msgid "Entry update date"
256
  msgstr ""
257
 
258
+ #: classes/controllers/FrmEntriesController.php:417
259
  msgid "Your import is complete"
260
  msgstr ""
261
 
262
  #. translators: %1$s: Time string
263
+ #: classes/controllers/FrmEntriesController.php:429
264
  msgid "This form is in the trash and is scheduled to be deleted permanently in %s along with any entries."
265
  msgstr ""
266
 
267
+ #: classes/controllers/FrmEntriesController.php:448
268
  msgid "You are trying to view an entry that does not exist."
269
  msgstr ""
270
 
271
+ #: classes/controllers/FrmEntriesController.php:476
272
  msgid "Entry was Successfully Deleted"
273
  msgstr ""
274
 
275
+ #: classes/controllers/FrmFieldsController.php:370
276
  msgid "Default Value (Text)"
277
  msgstr ""
278
 
279
+ #: classes/controllers/FrmFieldsController.php:377
280
  msgid "Default Value (Calculation)"
281
  msgstr ""
282
 
283
+ #: classes/controllers/FrmFieldsController.php:381
284
  msgid "Calculator forms"
285
  msgstr ""
286
 
287
+ #: classes/controllers/FrmFieldsController.php:386
288
  msgid "Default Value (Lookup)"
289
  msgstr ""
290
 
291
+ #: classes/controllers/FrmFieldsController.php:390
292
  msgid "Lookup fields"
293
  msgstr ""
294
 
347
  msgstr ""
348
 
349
  #: classes/controllers/FrmFormsController.php:184
350
+ #: classes/controllers/FrmFormsController.php:991
351
  msgid "Form was successfully updated."
352
  msgstr ""
353
 
478
  msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
479
  msgstr ""
480
 
481
+ #: classes/controllers/FrmFormsController.php:993
482
  msgid "Template was successfully updated."
483
  msgstr ""
484
 
485
+ #: classes/controllers/FrmFormsController.php:1067
486
  #: classes/controllers/FrmStylesController.php:393
487
  msgid "General"
488
  msgstr ""
489
 
490
+ #: classes/controllers/FrmFormsController.php:1068
491
  msgid "General Form Settings"
492
  msgstr ""
493
 
494
+ #: classes/controllers/FrmFormsController.php:1073
495
  msgid "Actions & Notifications"
496
  msgstr ""
497
 
498
+ #: classes/controllers/FrmFormsController.php:1079
499
+ #: classes/controllers/FrmFormsController.php:1084
500
  msgid "Form Permissions"
501
  msgstr ""
502
 
503
+ #: classes/controllers/FrmFormsController.php:1085
504
  msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
505
  msgstr ""
506
 
507
+ #: classes/controllers/FrmFormsController.php:1089
508
  msgid "Form Scheduling"
509
  msgstr ""
510
 
511
+ #: classes/controllers/FrmFormsController.php:1094
512
  msgid "Form scheduling settings"
513
  msgstr ""
514
 
515
+ #: classes/controllers/FrmFormsController.php:1098
516
  msgid "Styling & Buttons"
517
  msgstr ""
518
 
519
+ #: classes/controllers/FrmFormsController.php:1104
520
  msgid "Customize HTML"
521
  msgstr ""
522
 
523
+ #: classes/controllers/FrmFormsController.php:1234
524
  msgid "Customize field values with the following parameters."
525
  msgstr ""
526
 
527
+ #: classes/controllers/FrmFormsController.php:1271
528
  msgid "Separator"
529
  msgstr ""
530
 
531
+ #: classes/controllers/FrmFormsController.php:1272
532
  msgid "Use a different separator for checkbox fields"
533
  msgstr ""
534
 
535
+ #: classes/controllers/FrmFormsController.php:1275
536
  msgid "Date Format"
537
  msgstr ""
538
 
539
+ #: classes/controllers/FrmFormsController.php:1278
540
  #: classes/views/frm-fields/back-end/settings.php:27
541
  msgid "Field Label"
542
  msgstr ""
543
 
544
+ #: classes/controllers/FrmFormsController.php:1281
545
  msgid "No Auto P"
546
  msgstr ""
547
 
548
+ #: classes/controllers/FrmFormsController.php:1282
549
  msgid "Do not automatically add any paragraphs or line breaks"
550
  msgstr ""
551
 
552
+ #: classes/controllers/FrmFormsController.php:1297
553
  #: classes/models/FrmField.php:62
554
  msgid "User ID"
555
  msgstr ""
556
 
557
+ #: classes/controllers/FrmFormsController.php:1298
558
  msgid "First Name"
559
  msgstr ""
560
 
561
+ #: classes/controllers/FrmFormsController.php:1299
562
  msgid "Last Name"
563
  msgstr ""
564
 
565
+ #: classes/controllers/FrmFormsController.php:1300
566
  msgid "Display Name"
567
  msgstr ""
568
 
569
+ #: classes/controllers/FrmFormsController.php:1301
570
  msgid "User Login"
571
  msgstr ""
572
 
573
+ #: classes/controllers/FrmFormsController.php:1302
574
  #: classes/models/FrmField.php:34
575
  msgid "Email"
576
  msgstr ""
577
 
578
+ #: classes/controllers/FrmFormsController.php:1303
579
  msgid "Avatar"
580
  msgstr ""
581
 
582
+ #: classes/controllers/FrmFormsController.php:1304
583
  msgid "Author Link"
584
  msgstr ""
585
 
586
+ #: classes/controllers/FrmFormsController.php:1317
587
  #: classes/views/frm-entries/sidebar-shared.php:51
588
  msgid "Entry ID"
589
  msgstr ""
590
 
591
+ #: classes/controllers/FrmFormsController.php:1319
592
  msgid "Post ID"
593
  msgstr ""
594
 
595
+ #: classes/controllers/FrmFormsController.php:1320
596
  msgid "User IP"
597
  msgstr ""
598
 
599
+ #: classes/controllers/FrmFormsController.php:1321
600
  msgid "Entry created"
601
  msgstr ""
602
 
603
+ #: classes/controllers/FrmFormsController.php:1322
604
  msgid "Entry updated"
605
  msgstr ""
606
 
607
+ #: classes/controllers/FrmFormsController.php:1324
608
  msgid "Site URL"
609
  msgstr ""
610
 
611
+ #: classes/controllers/FrmFormsController.php:1325
612
  msgid "Site Name"
613
  msgstr ""
614
 
615
+ #: classes/controllers/FrmFormsController.php:1333
616
  msgid "Default Msg"
617
  msgstr ""
618
 
619
+ #: classes/controllers/FrmFormsController.php:1334
620
  msgid "Default HTML"
621
  msgstr ""
622
 
623
+ #: classes/controllers/FrmFormsController.php:1335
624
  msgid "Default Plain"
625
  msgstr ""
626
 
627
+ #: classes/controllers/FrmFormsController.php:1438
628
  msgid "No forms were specified"
629
  msgstr ""
630
 
631
+ #: classes/controllers/FrmFormsController.php:1550
632
  msgid "Abnormal HTML characters prevented your form from saving correctly"
633
  msgstr ""
634
 
635
+ #: classes/controllers/FrmFormsController.php:1665
636
  #: classes/helpers/FrmFormsHelper.php:57
637
  #: classes/helpers/FrmFormsHelper.php:112
638
  #: classes/helpers/FrmFormsHelper.php:166
645
  msgid "(no title)"
646
  msgstr ""
647
 
648
+ #: classes/controllers/FrmFormsController.php:1711
649
+ #: classes/controllers/FrmFormsController.php:1725
650
  msgid "Please select a valid form"
651
  msgstr ""
652
 
653
+ #: classes/controllers/FrmFormsController.php:1947
654
  msgid "Please wait while you are redirected."
655
  msgstr ""
656
 
657
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
658
+ #: classes/controllers/FrmFormsController.php:1983
659
  msgid "%1$sClick here%2$s if you are not automatically redirected."
660
  msgstr ""
661
 
714
  msgstr ""
715
 
716
  #: classes/controllers/FrmSettingsController.php:104
717
+ #: classes/views/frm-forms/settings-advanced.php:183
718
  msgid "Miscellaneous"
719
  msgstr ""
720
 
954
  msgstr ""
955
 
956
  #: classes/controllers/FrmStylesController.php:401
957
+ #: classes/helpers/FrmFieldsHelper.php:1885
958
  #: classes/views/frm-forms/settings-buttons.php:46
959
  msgid "Buttons"
960
  msgstr ""
1222
  #: classes/views/frm-forms/new-form-overlay.php:119
1223
  #: classes/views/frm-forms/new-form-overlay.php:129
1224
  #: classes/views/frm-forms/new-form-overlay.php:139
1225
+ #: classes/views/shared/admin-header.php:64
1226
  #: classes/views/shared/confirm-overlay.php:19
1227
+ #: js/formidable_admin.js:3613
1228
  msgid "Cancel"
1229
  msgstr ""
1230
 
1231
  #: classes/helpers/FrmAppHelper.php:2509
1232
+ #: classes/views/frm-fields/back-end/settings.php:280
1233
  msgid "Default"
1234
  msgstr ""
1235
 
1251
 
1252
  #: classes/helpers/FrmAppHelper.php:2514
1253
  #: classes/helpers/FrmListHelper.php:405
1254
+ #: js/formidable_admin.js:3995
1255
  msgid "Heads up"
1256
  msgstr ""
1257
 
1626
  msgstr ""
1627
 
1628
  #: classes/helpers/FrmAppHelper.php:2713
1629
+ msgid "Ukrainian"
1630
  msgstr ""
1631
 
1632
  #: classes/helpers/FrmAppHelper.php:2714
1633
  msgid "Vietnamese"
1634
  msgstr ""
1635
 
1636
+ #: classes/helpers/FrmAppHelper.php:2963
1637
  msgid "Your account has expired"
1638
  msgstr ""
1639
 
1640
+ #: classes/helpers/FrmAppHelper.php:2966
1641
  msgid "Renew Now"
1642
  msgstr ""
1643
 
1759
  #: classes/helpers/FrmFormsHelper.php:1134
1760
  #: classes/helpers/FrmFormsListHelper.php:133
1761
  #: classes/views/frm-form-actions/form_action.php:25
1762
+ #: js/formidable_admin.js:2003
1763
  msgid "Delete"
1764
  msgstr ""
1765
 
1799
  msgid "Categories"
1800
  msgstr ""
1801
 
1802
+ #: classes/helpers/FrmFieldsHelper.php:1401
1803
  msgid "Afghanistan"
1804
  msgstr ""
1805
 
1806
+ #: classes/helpers/FrmFieldsHelper.php:1402
1807
  msgid "Aland Islands"
1808
  msgstr ""
1809
 
1810
+ #: classes/helpers/FrmFieldsHelper.php:1403
1811
  msgid "Albania"
1812
  msgstr ""
1813
 
1814
+ #: classes/helpers/FrmFieldsHelper.php:1404
1815
  msgid "Algeria"
1816
  msgstr ""
1817
 
1818
+ #: classes/helpers/FrmFieldsHelper.php:1405
1819
  msgid "American Samoa"
1820
  msgstr ""
1821
 
1822
+ #: classes/helpers/FrmFieldsHelper.php:1406
1823
  msgid "Andorra"
1824
  msgstr ""
1825
 
1826
+ #: classes/helpers/FrmFieldsHelper.php:1407
1827
  msgid "Angola"
1828
  msgstr ""
1829
 
1830
+ #: classes/helpers/FrmFieldsHelper.php:1408
1831
  msgid "Anguilla"
1832
  msgstr ""
1833
 
1834
+ #: classes/helpers/FrmFieldsHelper.php:1409
1835
  msgid "Antarctica"
1836
  msgstr ""
1837
 
1838
+ #: classes/helpers/FrmFieldsHelper.php:1410
1839
  msgid "Antigua and Barbuda"
1840
  msgstr ""
1841
 
1842
+ #: classes/helpers/FrmFieldsHelper.php:1411
1843
  msgid "Argentina"
1844
  msgstr ""
1845
 
1846
+ #: classes/helpers/FrmFieldsHelper.php:1412
1847
  msgid "Armenia"
1848
  msgstr ""
1849
 
1850
+ #: classes/helpers/FrmFieldsHelper.php:1413
1851
  msgid "Aruba"
1852
  msgstr ""
1853
 
1854
+ #: classes/helpers/FrmFieldsHelper.php:1414
1855
  msgid "Australia"
1856
  msgstr ""
1857
 
1858
+ #: classes/helpers/FrmFieldsHelper.php:1415
1859
  msgid "Austria"
1860
  msgstr ""
1861
 
1862
+ #: classes/helpers/FrmFieldsHelper.php:1416
1863
  msgid "Azerbaijan"
1864
  msgstr ""
1865
 
1866
+ #: classes/helpers/FrmFieldsHelper.php:1417
1867
  msgid "Bahamas"
1868
  msgstr ""
1869
 
1870
+ #: classes/helpers/FrmFieldsHelper.php:1418
1871
  msgid "Bahrain"
1872
  msgstr ""
1873
 
1874
+ #: classes/helpers/FrmFieldsHelper.php:1419
1875
  msgid "Bangladesh"
1876
  msgstr ""
1877
 
1878
+ #: classes/helpers/FrmFieldsHelper.php:1420
1879
  msgid "Barbados"
1880
  msgstr ""
1881
 
1882
+ #: classes/helpers/FrmFieldsHelper.php:1421
1883
  msgid "Belarus"
1884
  msgstr ""
1885
 
1886
+ #: classes/helpers/FrmFieldsHelper.php:1422
1887
  msgid "Belgium"
1888
  msgstr ""
1889
 
1890
+ #: classes/helpers/FrmFieldsHelper.php:1423
1891
  msgid "Belize"
1892
  msgstr ""
1893
 
1894
+ #: classes/helpers/FrmFieldsHelper.php:1424
1895
  msgid "Benin"
1896
  msgstr ""
1897
 
1898
+ #: classes/helpers/FrmFieldsHelper.php:1425
1899
  msgid "Bermuda"
1900
  msgstr ""
1901
 
1902
+ #: classes/helpers/FrmFieldsHelper.php:1426
1903
  msgid "Bhutan"
1904
  msgstr ""
1905
 
1906
+ #: classes/helpers/FrmFieldsHelper.php:1427
1907
  msgid "Bolivia"
1908
  msgstr ""
1909
 
1910
+ #: classes/helpers/FrmFieldsHelper.php:1428
1911
  msgid "Bonaire, Sint Eustatius and Saba"
1912
  msgstr ""
1913
 
1914
+ #: classes/helpers/FrmFieldsHelper.php:1429
1915
  msgid "Bosnia and Herzegovina"
1916
  msgstr ""
1917
 
1918
+ #: classes/helpers/FrmFieldsHelper.php:1430
1919
  msgid "Botswana"
1920
  msgstr ""
1921
 
1922
+ #: classes/helpers/FrmFieldsHelper.php:1431
1923
  msgid "Bouvet Island"
1924
  msgstr ""
1925
 
1926
+ #: classes/helpers/FrmFieldsHelper.php:1432
1927
  msgid "Brazil"
1928
  msgstr ""
1929
 
1930
+ #: classes/helpers/FrmFieldsHelper.php:1433
1931
  msgid "British Indian Ocean Territory"
1932
  msgstr ""
1933
 
1934
+ #: classes/helpers/FrmFieldsHelper.php:1434
1935
  msgid "Brunei"
1936
  msgstr ""
1937
 
1938
+ #: classes/helpers/FrmFieldsHelper.php:1435
1939
  msgid "Bulgaria"
1940
  msgstr ""
1941
 
1942
+ #: classes/helpers/FrmFieldsHelper.php:1436
1943
  msgid "Burkina Faso"
1944
  msgstr ""
1945
 
1946
+ #: classes/helpers/FrmFieldsHelper.php:1437
1947
  msgid "Burundi"
1948
  msgstr ""
1949
 
1950
+ #: classes/helpers/FrmFieldsHelper.php:1438
1951
  msgid "Cambodia"
1952
  msgstr ""
1953
 
1954
+ #: classes/helpers/FrmFieldsHelper.php:1439
1955
  msgid "Cameroon"
1956
  msgstr ""
1957
 
1958
+ #: classes/helpers/FrmFieldsHelper.php:1440
1959
  msgid "Canada"
1960
  msgstr ""
1961
 
1962
+ #: classes/helpers/FrmFieldsHelper.php:1441
1963
  msgid "Cape Verde"
1964
  msgstr ""
1965
 
1966
+ #: classes/helpers/FrmFieldsHelper.php:1442
1967
  msgid "Cayman Islands"
1968
  msgstr ""
1969
 
1970
+ #: classes/helpers/FrmFieldsHelper.php:1443
1971
  msgid "Central African Republic"
1972
  msgstr ""
1973
 
1974
+ #: classes/helpers/FrmFieldsHelper.php:1444
1975
  msgid "Chad"
1976
  msgstr ""
1977
 
1978
+ #: classes/helpers/FrmFieldsHelper.php:1445
1979
  msgid "Chile"
1980
  msgstr ""
1981
 
1982
+ #: classes/helpers/FrmFieldsHelper.php:1446
1983
  msgid "China"
1984
  msgstr ""
1985
 
1986
+ #: classes/helpers/FrmFieldsHelper.php:1447
1987
  msgid "Christmas Island"
1988
  msgstr ""
1989
 
1990
+ #: classes/helpers/FrmFieldsHelper.php:1448
1991
  msgid "Cocos (Keeling) Islands"
1992
  msgstr ""
1993
 
1994
+ #: classes/helpers/FrmFieldsHelper.php:1449
1995
  msgid "Colombia"
1996
  msgstr ""
1997
 
1998
+ #: classes/helpers/FrmFieldsHelper.php:1450
1999
  msgid "Comoros"
2000
  msgstr ""
2001
 
2002
+ #: classes/helpers/FrmFieldsHelper.php:1451
2003
  msgid "Congo"
2004
  msgstr ""
2005
 
2006
+ #: classes/helpers/FrmFieldsHelper.php:1452
2007
  msgid "Cook Islands"
2008
  msgstr ""
2009
 
2010
+ #: classes/helpers/FrmFieldsHelper.php:1453
2011
  msgid "Costa Rica"
2012
  msgstr ""
2013
 
2014
+ #: classes/helpers/FrmFieldsHelper.php:1454
2015
  msgid "C&ocirc;te d'Ivoire"
2016
  msgstr ""
2017
 
2018
+ #: classes/helpers/FrmFieldsHelper.php:1455
2019
  msgid "Croatia"
2020
  msgstr ""
2021
 
2022
+ #: classes/helpers/FrmFieldsHelper.php:1456
2023
  msgid "Cuba"
2024
  msgstr ""
2025
 
2026
+ #: classes/helpers/FrmFieldsHelper.php:1457
2027
  msgid "Curacao"
2028
  msgstr ""
2029
 
2030
+ #: classes/helpers/FrmFieldsHelper.php:1458
2031
  msgid "Cyprus"
2032
  msgstr ""
2033
 
2034
+ #: classes/helpers/FrmFieldsHelper.php:1459
2035
  msgid "Czech Republic"
2036
  msgstr ""
2037
 
2038
+ #: classes/helpers/FrmFieldsHelper.php:1460
2039
  msgid "Denmark"
2040
  msgstr ""
2041
 
2042
+ #: classes/helpers/FrmFieldsHelper.php:1461
2043
  msgid "Djibouti"
2044
  msgstr ""
2045
 
2046
+ #: classes/helpers/FrmFieldsHelper.php:1462
2047
  msgid "Dominica"
2048
  msgstr ""
2049
 
2050
+ #: classes/helpers/FrmFieldsHelper.php:1463
2051
  msgid "Dominican Republic"
2052
  msgstr ""
2053
 
2054
+ #: classes/helpers/FrmFieldsHelper.php:1464
2055
  msgid "East Timor"
2056
  msgstr ""
2057
 
2058
+ #: classes/helpers/FrmFieldsHelper.php:1465
2059
  msgid "Ecuador"
2060
  msgstr ""
2061
 
2062
+ #: classes/helpers/FrmFieldsHelper.php:1466
2063
  msgid "Egypt"
2064
  msgstr ""
2065
 
2066
+ #: classes/helpers/FrmFieldsHelper.php:1467
2067
  msgid "El Salvador"
2068
  msgstr ""
2069
 
2070
+ #: classes/helpers/FrmFieldsHelper.php:1468
2071
  msgid "Equatorial Guinea"
2072
  msgstr ""
2073
 
2074
+ #: classes/helpers/FrmFieldsHelper.php:1469
2075
  msgid "Eritrea"
2076
  msgstr ""
2077
 
2078
+ #: classes/helpers/FrmFieldsHelper.php:1470
2079
  msgid "Estonia"
2080
  msgstr ""
2081
 
2082
+ #: classes/helpers/FrmFieldsHelper.php:1471
2083
  msgid "Ethiopia"
2084
  msgstr ""
2085
 
2086
+ #: classes/helpers/FrmFieldsHelper.php:1472
2087
  msgid "Falkland Islands (Malvinas)"
2088
  msgstr ""
2089
 
2090
+ #: classes/helpers/FrmFieldsHelper.php:1473
2091
  msgid "Faroe Islands"
2092
  msgstr ""
2093
 
2094
+ #: classes/helpers/FrmFieldsHelper.php:1474
2095
  msgid "Fiji"
2096
  msgstr ""
2097
 
2098
+ #: classes/helpers/FrmFieldsHelper.php:1475
2099
  msgid "Finland"
2100
  msgstr ""
2101
 
2102
+ #: classes/helpers/FrmFieldsHelper.php:1476
2103
  msgid "France"
2104
  msgstr ""
2105
 
2106
+ #: classes/helpers/FrmFieldsHelper.php:1477
2107
  msgid "French Guiana"
2108
  msgstr ""
2109
 
2110
+ #: classes/helpers/FrmFieldsHelper.php:1478
2111
  msgid "French Polynesia"
2112
  msgstr ""
2113
 
2114
+ #: classes/helpers/FrmFieldsHelper.php:1479
2115
  msgid "French Southern Territories"
2116
  msgstr ""
2117
 
2118
+ #: classes/helpers/FrmFieldsHelper.php:1480
2119
  msgid "Gabon"
2120
  msgstr ""
2121
 
2122
+ #: classes/helpers/FrmFieldsHelper.php:1481
2123
  msgid "Gambia"
2124
  msgstr ""
2125
 
2126
+ #: classes/helpers/FrmFieldsHelper.php:1482
2127
  msgid "Georgia"
2128
  msgstr ""
2129
 
2130
+ #: classes/helpers/FrmFieldsHelper.php:1483
2131
  msgid "Germany"
2132
  msgstr ""
2133
 
2134
+ #: classes/helpers/FrmFieldsHelper.php:1484
2135
  msgid "Ghana"
2136
  msgstr ""
2137
 
2138
+ #: classes/helpers/FrmFieldsHelper.php:1485
2139
  msgid "Gibraltar"
2140
  msgstr ""
2141
 
2142
+ #: classes/helpers/FrmFieldsHelper.php:1486
2143
  msgid "Greece"
2144
  msgstr ""
2145
 
2146
+ #: classes/helpers/FrmFieldsHelper.php:1487
2147
  msgid "Greenland"
2148
  msgstr ""
2149
 
2150
+ #: classes/helpers/FrmFieldsHelper.php:1488
2151
  msgid "Grenada"
2152
  msgstr ""
2153
 
2154
+ #: classes/helpers/FrmFieldsHelper.php:1489
2155
  msgid "Guadeloupe"
2156
  msgstr ""
2157
 
2158
+ #: classes/helpers/FrmFieldsHelper.php:1490
2159
  msgid "Guam"
2160
  msgstr ""
2161
 
2162
+ #: classes/helpers/FrmFieldsHelper.php:1491
2163
  msgid "Guatemala"
2164
  msgstr ""
2165
 
2166
+ #: classes/helpers/FrmFieldsHelper.php:1492
2167
  msgid "Guernsey"
2168
  msgstr ""
2169
 
2170
+ #: classes/helpers/FrmFieldsHelper.php:1493
2171
  msgid "Guinea"
2172
  msgstr ""
2173
 
2174
+ #: classes/helpers/FrmFieldsHelper.php:1494
2175
  msgid "Guinea-Bissau"
2176
  msgstr ""
2177
 
2178
+ #: classes/helpers/FrmFieldsHelper.php:1495
2179
  msgid "Guyana"
2180
  msgstr ""
2181
 
2182
+ #: classes/helpers/FrmFieldsHelper.php:1496
2183
  msgid "Haiti"
2184
  msgstr ""
2185
 
2186
+ #: classes/helpers/FrmFieldsHelper.php:1497
2187
  msgid "Heard Island and McDonald Islands"
2188
  msgstr ""
2189
 
2190
+ #: classes/helpers/FrmFieldsHelper.php:1498
2191
  msgid "Holy See"
2192
  msgstr ""
2193
 
2194
+ #: classes/helpers/FrmFieldsHelper.php:1499
2195
  msgid "Honduras"
2196
  msgstr ""
2197
 
2198
+ #: classes/helpers/FrmFieldsHelper.php:1500
2199
  msgid "Hong Kong"
2200
  msgstr ""
2201
 
2202
+ #: classes/helpers/FrmFieldsHelper.php:1501
2203
  msgid "Hungary"
2204
  msgstr ""
2205
 
2206
+ #: classes/helpers/FrmFieldsHelper.php:1502
2207
  msgid "Iceland"
2208
  msgstr ""
2209
 
2210
+ #: classes/helpers/FrmFieldsHelper.php:1503
2211
  msgid "India"
2212
  msgstr ""
2213
 
2214
+ #: classes/helpers/FrmFieldsHelper.php:1504
2215
  msgid "Indonesia"
2216
  msgstr ""
2217
 
2218
+ #: classes/helpers/FrmFieldsHelper.php:1505
2219
  msgid "Iran"
2220
  msgstr ""
2221
 
2222
+ #: classes/helpers/FrmFieldsHelper.php:1506
2223
  msgid "Iraq"
2224
  msgstr ""
2225
 
2226
+ #: classes/helpers/FrmFieldsHelper.php:1507
2227
  msgid "Ireland"
2228
  msgstr ""
2229
 
2230
+ #: classes/helpers/FrmFieldsHelper.php:1508
2231
  msgid "Israel"
2232
  msgstr ""
2233
 
2234
+ #: classes/helpers/FrmFieldsHelper.php:1509
2235
  msgid "Isle of Man"
2236
  msgstr ""
2237
 
2238
+ #: classes/helpers/FrmFieldsHelper.php:1510
2239
  msgid "Italy"
2240
  msgstr ""
2241
 
2242
+ #: classes/helpers/FrmFieldsHelper.php:1511
2243
  msgid "Jamaica"
2244
  msgstr ""
2245
 
2246
+ #: classes/helpers/FrmFieldsHelper.php:1512
2247
  msgid "Japan"
2248
  msgstr ""
2249
 
2250
+ #: classes/helpers/FrmFieldsHelper.php:1513
2251
  msgid "Jersey"
2252
  msgstr ""
2253
 
2254
+ #: classes/helpers/FrmFieldsHelper.php:1514
2255
  msgid "Jordan"
2256
  msgstr ""
2257
 
2258
+ #: classes/helpers/FrmFieldsHelper.php:1515
2259
  msgid "Kazakhstan"
2260
  msgstr ""
2261
 
2262
+ #: classes/helpers/FrmFieldsHelper.php:1516
2263
  msgid "Kenya"
2264
  msgstr ""
2265
 
2266
+ #: classes/helpers/FrmFieldsHelper.php:1517
2267
  msgid "Kiribati"
2268
  msgstr ""
2269
 
2270
+ #: classes/helpers/FrmFieldsHelper.php:1518
2271
  msgid "North Korea"
2272
  msgstr ""
2273
 
2274
+ #: classes/helpers/FrmFieldsHelper.php:1519
2275
  msgid "South Korea"
2276
  msgstr ""
2277
 
2278
+ #: classes/helpers/FrmFieldsHelper.php:1520
2279
  msgid "Kosovo"
2280
  msgstr ""
2281
 
2282
+ #: classes/helpers/FrmFieldsHelper.php:1521
2283
  msgid "Kuwait"
2284
  msgstr ""
2285
 
2286
+ #: classes/helpers/FrmFieldsHelper.php:1522
2287
  msgid "Kyrgyzstan"
2288
  msgstr ""
2289
 
2290
+ #: classes/helpers/FrmFieldsHelper.php:1523
2291
  msgid "Laos"
2292
  msgstr ""
2293
 
2294
+ #: classes/helpers/FrmFieldsHelper.php:1524
2295
  msgid "Latvia"
2296
  msgstr ""
2297
 
2298
+ #: classes/helpers/FrmFieldsHelper.php:1525
2299
  msgid "Lebanon"
2300
  msgstr ""
2301
 
2302
+ #: classes/helpers/FrmFieldsHelper.php:1526
2303
  msgid "Lesotho"
2304
  msgstr ""
2305
 
2306
+ #: classes/helpers/FrmFieldsHelper.php:1527
2307
  msgid "Liberia"
2308
  msgstr ""
2309
 
2310
+ #: classes/helpers/FrmFieldsHelper.php:1528
2311
  msgid "Libya"
2312
  msgstr ""
2313
 
2314
+ #: classes/helpers/FrmFieldsHelper.php:1529
2315
  msgid "Liechtenstein"
2316
  msgstr ""
2317
 
2318
+ #: classes/helpers/FrmFieldsHelper.php:1530
2319
  msgid "Lithuania"
2320
  msgstr ""
2321
 
2322
+ #: classes/helpers/FrmFieldsHelper.php:1531
2323
  msgid "Luxembourg"
2324
  msgstr ""
2325
 
2326
+ #: classes/helpers/FrmFieldsHelper.php:1532
2327
  msgid "Macao"
2328
  msgstr ""
2329
 
2330
+ #: classes/helpers/FrmFieldsHelper.php:1533
2331
  msgid "Macedonia"
2332
  msgstr ""
2333
 
2334
+ #: classes/helpers/FrmFieldsHelper.php:1534
2335
  msgid "Madagascar"
2336
  msgstr ""
2337
 
2338
+ #: classes/helpers/FrmFieldsHelper.php:1535
2339
  msgid "Malawi"
2340
  msgstr ""
2341
 
2342
+ #: classes/helpers/FrmFieldsHelper.php:1536
2343
  msgid "Malaysia"
2344
  msgstr ""
2345
 
2346
+ #: classes/helpers/FrmFieldsHelper.php:1537
2347
  msgid "Maldives"
2348
  msgstr ""
2349
 
2350
+ #: classes/helpers/FrmFieldsHelper.php:1538
2351
  msgid "Mali"
2352
  msgstr ""
2353
 
2354
+ #: classes/helpers/FrmFieldsHelper.php:1539
2355
  msgid "Malta"
2356
  msgstr ""
2357
 
2358
+ #: classes/helpers/FrmFieldsHelper.php:1540
2359
  msgid "Marshall Islands"
2360
  msgstr ""
2361
 
2362
+ #: classes/helpers/FrmFieldsHelper.php:1541
2363
  msgid "Martinique"
2364
  msgstr ""
2365
 
2366
+ #: classes/helpers/FrmFieldsHelper.php:1542
2367
  msgid "Mauritania"
2368
  msgstr ""
2369
 
2370
+ #: classes/helpers/FrmFieldsHelper.php:1543
2371
  msgid "Mauritius"
2372
  msgstr ""
2373
 
2374
+ #: classes/helpers/FrmFieldsHelper.php:1544
2375
  msgid "Mayotte"
2376
  msgstr ""
2377
 
2378
+ #: classes/helpers/FrmFieldsHelper.php:1545
2379
  msgid "Mexico"
2380
  msgstr ""
2381
 
2382
+ #: classes/helpers/FrmFieldsHelper.php:1546
2383
  msgid "Micronesia"
2384
  msgstr ""
2385
 
2386
+ #: classes/helpers/FrmFieldsHelper.php:1547
2387
  msgid "Moldova"
2388
  msgstr ""
2389
 
2390
+ #: classes/helpers/FrmFieldsHelper.php:1548
2391
  msgid "Monaco"
2392
  msgstr ""
2393
 
2394
+ #: classes/helpers/FrmFieldsHelper.php:1549
2395
  msgid "Mongolia"
2396
  msgstr ""
2397
 
2398
+ #: classes/helpers/FrmFieldsHelper.php:1550
2399
  msgid "Montenegro"
2400
  msgstr ""
2401
 
2402
+ #: classes/helpers/FrmFieldsHelper.php:1551
2403
  msgid "Montserrat"
2404
  msgstr ""
2405
 
2406
+ #: classes/helpers/FrmFieldsHelper.php:1552
2407
  msgid "Morocco"
2408
  msgstr ""
2409
 
2410
+ #: classes/helpers/FrmFieldsHelper.php:1553
2411
  msgid "Mozambique"
2412
  msgstr ""
2413
 
2414
+ #: classes/helpers/FrmFieldsHelper.php:1554
2415
  msgid "Myanmar"
2416
  msgstr ""
2417
 
2418
+ #: classes/helpers/FrmFieldsHelper.php:1555
2419
  msgid "Namibia"
2420
  msgstr ""
2421
 
2422
+ #: classes/helpers/FrmFieldsHelper.php:1556
2423
  msgid "Nauru"
2424
  msgstr ""
2425
 
2426
+ #: classes/helpers/FrmFieldsHelper.php:1557
2427
  msgid "Nepal"
2428
  msgstr ""
2429
 
2430
+ #: classes/helpers/FrmFieldsHelper.php:1558
2431
  msgid "Netherlands"
2432
  msgstr ""
2433
 
2434
+ #: classes/helpers/FrmFieldsHelper.php:1559
2435
  msgid "New Caledonia"
2436
  msgstr ""
2437
 
2438
+ #: classes/helpers/FrmFieldsHelper.php:1560
2439
  msgid "New Zealand"
2440
  msgstr ""
2441
 
2442
+ #: classes/helpers/FrmFieldsHelper.php:1561
2443
  msgid "Nicaragua"
2444
  msgstr ""
2445
 
2446
+ #: classes/helpers/FrmFieldsHelper.php:1562
2447
  msgid "Niger"
2448
  msgstr ""
2449
 
2450
+ #: classes/helpers/FrmFieldsHelper.php:1563
2451
  msgid "Nigeria"
2452
  msgstr ""
2453
 
2454
+ #: classes/helpers/FrmFieldsHelper.php:1564
2455
  msgid "Niue"
2456
  msgstr ""
2457
 
2458
+ #: classes/helpers/FrmFieldsHelper.php:1565
2459
  msgid "Norfolk Island"
2460
  msgstr ""
2461
 
2462
+ #: classes/helpers/FrmFieldsHelper.php:1566
2463
  msgid "Northern Mariana Islands"
2464
  msgstr ""
2465
 
2466
+ #: classes/helpers/FrmFieldsHelper.php:1567
2467
  msgid "Norway"
2468
  msgstr ""
2469
 
2470
+ #: classes/helpers/FrmFieldsHelper.php:1568
2471
  msgid "Oman"
2472
  msgstr ""
2473
 
2474
+ #: classes/helpers/FrmFieldsHelper.php:1569
2475
  msgid "Pakistan"
2476
  msgstr ""
2477
 
2478
+ #: classes/helpers/FrmFieldsHelper.php:1570
2479
  msgid "Palau"
2480
  msgstr ""
2481
 
2482
+ #: classes/helpers/FrmFieldsHelper.php:1571
2483
  msgid "Palestine"
2484
  msgstr ""
2485
 
2486
+ #: classes/helpers/FrmFieldsHelper.php:1572
2487
  msgid "Panama"
2488
  msgstr ""
2489
 
2490
+ #: classes/helpers/FrmFieldsHelper.php:1573
2491
  msgid "Papua New Guinea"
2492
  msgstr ""
2493
 
2494
+ #: classes/helpers/FrmFieldsHelper.php:1574
2495
  msgid "Paraguay"
2496
  msgstr ""
2497
 
2498
+ #: classes/helpers/FrmFieldsHelper.php:1575
2499
  msgid "Peru"
2500
  msgstr ""
2501
 
2502
+ #: classes/helpers/FrmFieldsHelper.php:1576
2503
  msgid "Philippines"
2504
  msgstr ""
2505
 
2506
+ #: classes/helpers/FrmFieldsHelper.php:1577
2507
  msgid "Pitcairn"
2508
  msgstr ""
2509
 
2510
+ #: classes/helpers/FrmFieldsHelper.php:1578
2511
  msgid "Poland"
2512
  msgstr ""
2513
 
2514
+ #: classes/helpers/FrmFieldsHelper.php:1579
2515
  msgid "Portugal"
2516
  msgstr ""
2517
 
2518
+ #: classes/helpers/FrmFieldsHelper.php:1580
2519
  msgid "Puerto Rico"
2520
  msgstr ""
2521
 
2522
+ #: classes/helpers/FrmFieldsHelper.php:1581
2523
  msgid "Qatar"
2524
  msgstr ""
2525
 
2526
+ #: classes/helpers/FrmFieldsHelper.php:1582
2527
  msgid "Reunion"
2528
  msgstr ""
2529
 
2530
+ #: classes/helpers/FrmFieldsHelper.php:1583
2531
  msgid "Romania"
2532
  msgstr ""
2533
 
2534
+ #: classes/helpers/FrmFieldsHelper.php:1584
2535
  msgid "Russia"
2536
  msgstr ""
2537
 
2538
+ #: classes/helpers/FrmFieldsHelper.php:1585
2539
  msgid "Rwanda"
2540
  msgstr ""
2541
 
2542
+ #: classes/helpers/FrmFieldsHelper.php:1586
2543
  msgid "Saint Barthelemy"
2544
  msgstr ""
2545
 
2546
+ #: classes/helpers/FrmFieldsHelper.php:1587
2547
  msgid "Saint Helena, Ascension and Tristan da Cunha"
2548
  msgstr ""
2549
 
2550
+ #: classes/helpers/FrmFieldsHelper.php:1588
2551
  msgid "Saint Kitts and Nevis"
2552
  msgstr ""
2553
 
2554
+ #: classes/helpers/FrmFieldsHelper.php:1589
2555
  msgid "Saint Lucia"
2556
  msgstr ""
2557
 
2558
+ #: classes/helpers/FrmFieldsHelper.php:1590
2559
  msgid "Saint Martin (French part)"
2560
  msgstr ""
2561
 
2562
+ #: classes/helpers/FrmFieldsHelper.php:1591
2563
  msgid "Saint Pierre and Miquelon"
2564
  msgstr ""
2565
 
2566
+ #: classes/helpers/FrmFieldsHelper.php:1592
2567
  msgid "Saint Vincent and the Grenadines"
2568
  msgstr ""
2569
 
2570
+ #: classes/helpers/FrmFieldsHelper.php:1593
2571
  msgid "Samoa"
2572
  msgstr ""
2573
 
2574
+ #: classes/helpers/FrmFieldsHelper.php:1594
2575
  msgid "San Marino"
2576
  msgstr ""
2577
 
2578
+ #: classes/helpers/FrmFieldsHelper.php:1595
2579
  msgid "Sao Tome and Principe"
2580
  msgstr ""
2581
 
2582
+ #: classes/helpers/FrmFieldsHelper.php:1596
2583
  msgid "Saudi Arabia"
2584
  msgstr ""
2585
 
2586
+ #: classes/helpers/FrmFieldsHelper.php:1597
2587
  msgid "Senegal"
2588
  msgstr ""
2589
 
2590
+ #: classes/helpers/FrmFieldsHelper.php:1598
2591
  msgid "Serbia"
2592
  msgstr ""
2593
 
2594
+ #: classes/helpers/FrmFieldsHelper.php:1599
2595
  msgid "Seychelles"
2596
  msgstr ""
2597
 
2598
+ #: classes/helpers/FrmFieldsHelper.php:1600
2599
  msgid "Sierra Leone"
2600
  msgstr ""
2601
 
2602
+ #: classes/helpers/FrmFieldsHelper.php:1601
2603
  msgid "Singapore"
2604
  msgstr ""
2605
 
2606
+ #: classes/helpers/FrmFieldsHelper.php:1602
2607
  msgid "Sint Maarten (Dutch part)"
2608
  msgstr ""
2609
 
2610
+ #: classes/helpers/FrmFieldsHelper.php:1603
2611
  msgid "Slovakia"
2612
  msgstr ""
2613
 
2614
+ #: classes/helpers/FrmFieldsHelper.php:1604
2615
  msgid "Slovenia"
2616
  msgstr ""
2617
 
2618
+ #: classes/helpers/FrmFieldsHelper.php:1605
2619
  msgid "Solomon Islands"
2620
  msgstr ""
2621
 
2622
+ #: classes/helpers/FrmFieldsHelper.php:1606
2623
  msgid "Somalia"
2624
  msgstr ""
2625
 
2626
+ #: classes/helpers/FrmFieldsHelper.php:1607
2627
  msgid "South Africa"
2628
  msgstr ""
2629
 
2630
+ #: classes/helpers/FrmFieldsHelper.php:1608
2631
  msgid "South Georgia and the South Sandwich Islands"
2632
  msgstr ""
2633
 
2634
+ #: classes/helpers/FrmFieldsHelper.php:1609
2635
  msgid "South Sudan"
2636
  msgstr ""
2637
 
2638
+ #: classes/helpers/FrmFieldsHelper.php:1610
2639
  msgid "Spain"
2640
  msgstr ""
2641
 
2642
+ #: classes/helpers/FrmFieldsHelper.php:1611
2643
  msgid "Sri Lanka"
2644
  msgstr ""
2645
 
2646
+ #: classes/helpers/FrmFieldsHelper.php:1612
2647
  msgid "Sudan"
2648
  msgstr ""
2649
 
2650
+ #: classes/helpers/FrmFieldsHelper.php:1613
2651
  msgid "Suriname"
2652
  msgstr ""
2653
 
2654
+ #: classes/helpers/FrmFieldsHelper.php:1614
2655
  msgid "Svalbard and Jan Mayen"
2656
  msgstr ""
2657
 
2658
+ #: classes/helpers/FrmFieldsHelper.php:1615
2659
  msgid "Swaziland"
2660
  msgstr ""
2661
 
2662
+ #: classes/helpers/FrmFieldsHelper.php:1616
2663
  msgid "Sweden"
2664
  msgstr ""
2665
 
2666
+ #: classes/helpers/FrmFieldsHelper.php:1617
2667
  msgid "Switzerland"
2668
  msgstr ""
2669
 
2670
+ #: classes/helpers/FrmFieldsHelper.php:1618
2671
  msgid "Syria"
2672
  msgstr ""
2673
 
2674
+ #: classes/helpers/FrmFieldsHelper.php:1619
2675
  msgid "Taiwan"
2676
  msgstr ""
2677
 
2678
+ #: classes/helpers/FrmFieldsHelper.php:1620
2679
  msgid "Tajikistan"
2680
  msgstr ""
2681
 
2682
+ #: classes/helpers/FrmFieldsHelper.php:1621
2683
  msgid "Tanzania"
2684
  msgstr ""
2685
 
2686
+ #: classes/helpers/FrmFieldsHelper.php:1622
2687
  msgid "Thailand"
2688
  msgstr ""
2689
 
2690
+ #: classes/helpers/FrmFieldsHelper.php:1623
2691
  msgid "Timor-Leste"
2692
  msgstr ""
2693
 
2694
+ #: classes/helpers/FrmFieldsHelper.php:1624
2695
  msgid "Togo"
2696
  msgstr ""
2697
 
2698
+ #: classes/helpers/FrmFieldsHelper.php:1625
2699
  msgid "Tokelau"
2700
  msgstr ""
2701
 
2702
+ #: classes/helpers/FrmFieldsHelper.php:1626
2703
  msgid "Tonga"
2704
  msgstr ""
2705
 
2706
+ #: classes/helpers/FrmFieldsHelper.php:1627
2707
  msgid "Trinidad and Tobago"
2708
  msgstr ""
2709
 
2710
+ #: classes/helpers/FrmFieldsHelper.php:1628
2711
  msgid "Tunisia"
2712
  msgstr ""
2713
 
2714
+ #: classes/helpers/FrmFieldsHelper.php:1629
2715
  msgid "Turkey"
2716
  msgstr ""
2717
 
2718
+ #: classes/helpers/FrmFieldsHelper.php:1630
2719
  msgid "Turkmenistan"
2720
  msgstr ""
2721
 
2722
+ #: classes/helpers/FrmFieldsHelper.php:1631
2723
  msgid "Turks and Caicos Islands"
2724
  msgstr ""
2725
 
2726
+ #: classes/helpers/FrmFieldsHelper.php:1632
2727
  msgid "Tuvalu"
2728
  msgstr ""
2729
 
2730
+ #: classes/helpers/FrmFieldsHelper.php:1633
2731
  msgid "Uganda"
2732
  msgstr ""
2733
 
2734
+ #: classes/helpers/FrmFieldsHelper.php:1634
2735
  msgid "Ukraine"
2736
  msgstr ""
2737
 
2738
+ #: classes/helpers/FrmFieldsHelper.php:1635
2739
  msgid "United Arab Emirates"
2740
  msgstr ""
2741
 
2742
+ #: classes/helpers/FrmFieldsHelper.php:1636
2743
  msgid "United Kingdom"
2744
  msgstr ""
2745
 
2746
+ #: classes/helpers/FrmFieldsHelper.php:1637
2747
  msgid "United States"
2748
  msgstr ""
2749
 
2750
+ #: classes/helpers/FrmFieldsHelper.php:1638
2751
  msgid "United States Minor Outlying Islands"
2752
  msgstr ""
2753
 
2754
+ #: classes/helpers/FrmFieldsHelper.php:1639
2755
  msgid "Uruguay"
2756
  msgstr ""
2757
 
2758
+ #: classes/helpers/FrmFieldsHelper.php:1640
2759
  msgid "Uzbekistan"
2760
  msgstr ""
2761
 
2762
+ #: classes/helpers/FrmFieldsHelper.php:1641
2763
  msgid "Vanuatu"
2764
  msgstr ""
2765
 
2766
+ #: classes/helpers/FrmFieldsHelper.php:1642
2767
  msgid "Vatican City"
2768
  msgstr ""
2769
 
2770
+ #: classes/helpers/FrmFieldsHelper.php:1643
2771
  msgid "Venezuela"
2772
  msgstr ""
2773
 
2774
+ #: classes/helpers/FrmFieldsHelper.php:1644
2775
  msgid "Vietnam"
2776
  msgstr ""
2777
 
2778
+ #: classes/helpers/FrmFieldsHelper.php:1645
2779
  msgid "Virgin Islands, British"
2780
  msgstr ""
2781
 
2782
+ #: classes/helpers/FrmFieldsHelper.php:1646
2783
  msgid "Virgin Islands, U.S."
2784
  msgstr ""
2785
 
2786
+ #: classes/helpers/FrmFieldsHelper.php:1647
2787
  msgid "Wallis and Futuna"
2788
  msgstr ""
2789
 
2790
+ #: classes/helpers/FrmFieldsHelper.php:1648
2791
  msgid "Western Sahara"
2792
  msgstr ""
2793
 
2794
+ #: classes/helpers/FrmFieldsHelper.php:1649
2795
  msgid "Yemen"
2796
  msgstr ""
2797
 
2798
+ #: classes/helpers/FrmFieldsHelper.php:1650
2799
  msgid "Zambia"
2800
  msgstr ""
2801
 
2802
+ #: classes/helpers/FrmFieldsHelper.php:1651
2803
  msgid "Zimbabwe"
2804
  msgstr ""
2805
 
2806
+ #: classes/helpers/FrmFieldsHelper.php:1673
2807
  msgid "Countries"
2808
  msgstr ""
2809
 
2810
+ #: classes/helpers/FrmFieldsHelper.php:1683
2811
  msgid "U.S. State Abbreviations"
2812
  msgstr ""
2813
 
2814
+ #: classes/helpers/FrmFieldsHelper.php:1692
2815
  msgid "U.S. States"
2816
  msgstr ""
2817
 
2818
+ #: classes/helpers/FrmFieldsHelper.php:1697
 
 
 
 
2819
  msgid "Under 18"
2820
  msgstr ""
2821
 
2822
+ #: classes/helpers/FrmFieldsHelper.php:1698
2823
  msgid "18-24"
2824
  msgstr ""
2825
 
2826
+ #: classes/helpers/FrmFieldsHelper.php:1699
2827
  msgid "25-34"
2828
  msgstr ""
2829
 
2830
+ #: classes/helpers/FrmFieldsHelper.php:1700
2831
  msgid "35-44"
2832
  msgstr ""
2833
 
2834
+ #: classes/helpers/FrmFieldsHelper.php:1701
2835
  msgid "45-54"
2836
  msgstr ""
2837
 
2838
+ #: classes/helpers/FrmFieldsHelper.php:1702
2839
  msgid "55-64"
2840
  msgstr ""
2841
 
2842
+ #: classes/helpers/FrmFieldsHelper.php:1703
2843
  msgid "65 or Above"
2844
  msgstr ""
2845
 
2846
+ #: classes/helpers/FrmFieldsHelper.php:1704
2847
  msgid "Prefer Not to Answer"
2848
  msgstr ""
2849
 
2850
+ #: classes/helpers/FrmFieldsHelper.php:1710
2851
+ msgid "Age"
2852
  msgstr ""
2853
 
2854
+ #: classes/helpers/FrmFieldsHelper.php:1714
2855
+ msgid "Very Unsatisfied"
2856
  msgstr ""
2857
 
2858
+ #: classes/helpers/FrmFieldsHelper.php:1715
2859
+ msgid "Unsatisfied"
2860
  msgstr ""
2861
 
2862
+ #: classes/helpers/FrmFieldsHelper.php:1716
2863
+ #: classes/helpers/FrmFieldsHelper.php:1731
2864
+ #: classes/helpers/FrmFieldsHelper.php:1746
2865
+ #: classes/helpers/FrmFieldsHelper.php:1761
2866
  msgid "Neutral"
2867
  msgstr ""
2868
 
2869
+ #: classes/helpers/FrmFieldsHelper.php:1717
2870
+ msgid "Satisfied"
2871
  msgstr ""
2872
 
2873
+ #: classes/helpers/FrmFieldsHelper.php:1718
2874
+ msgid "Very Satisfied"
2875
  msgstr ""
2876
 
2877
+ #: classes/helpers/FrmFieldsHelper.php:1719
2878
+ #: classes/helpers/FrmFieldsHelper.php:1734
2879
+ #: classes/helpers/FrmFieldsHelper.php:1749
2880
+ #: classes/helpers/FrmFieldsHelper.php:1764
2881
  msgid "N/A"
2882
  msgstr ""
2883
 
2884
+ #: classes/helpers/FrmFieldsHelper.php:1725
2885
+ msgid "Satisfaction"
2886
  msgstr ""
2887
 
2888
+ #: classes/helpers/FrmFieldsHelper.php:1729
2889
+ msgid "Not at all Important"
2890
+ msgstr ""
2891
+
2892
+ #: classes/helpers/FrmFieldsHelper.php:1730
2893
+ msgid "Somewhat Important"
2894
  msgstr ""
2895
 
2896
+ #: classes/helpers/FrmFieldsHelper.php:1732
2897
  msgid "Important"
2898
  msgstr ""
2899
 
2900
+ #: classes/helpers/FrmFieldsHelper.php:1733
2901
+ msgid "Very Important"
2902
  msgstr ""
2903
 
2904
+ #: classes/helpers/FrmFieldsHelper.php:1740
2905
+ msgid "Importance"
2906
  msgstr ""
2907
 
2908
+ #: classes/helpers/FrmFieldsHelper.php:1744
2909
+ msgid "Strongly Disagree"
2910
  msgstr ""
2911
 
2912
+ #: classes/helpers/FrmFieldsHelper.php:1745
2913
+ msgid "Disagree"
2914
  msgstr ""
2915
 
2916
+ #: classes/helpers/FrmFieldsHelper.php:1747
2917
  msgid "Agree"
2918
  msgstr ""
2919
 
2920
+ #: classes/helpers/FrmFieldsHelper.php:1748
2921
+ msgid "Strongly Agree"
2922
  msgstr ""
2923
 
2924
+ #: classes/helpers/FrmFieldsHelper.php:1755
2925
+ msgid "Agreement"
2926
+ msgstr ""
2927
+
2928
+ #: classes/helpers/FrmFieldsHelper.php:1759
2929
+ msgid "Extremely Unlikely"
2930
+ msgstr ""
2931
+
2932
+ #: classes/helpers/FrmFieldsHelper.php:1760
2933
+ msgid "Unlikely"
2934
+ msgstr ""
2935
+
2936
+ #: classes/helpers/FrmFieldsHelper.php:1762
2937
+ #: classes/helpers/FrmFieldsHelper.php:1770
2938
+ msgid "Likely"
2939
+ msgstr ""
2940
+
2941
+ #: classes/helpers/FrmFieldsHelper.php:1763
2942
+ msgid "Extremely Likely"
2943
  msgstr ""
2944
 
2945
  #. translators: %s: Field name
2946
+ #: classes/helpers/FrmFieldsHelper.php:1844
2947
  msgid "%s fields"
2948
  msgstr ""
2949
 
2950
+ #: classes/helpers/FrmFieldsHelper.php:1873
2951
+ msgid "Simple"
2952
+ msgstr ""
2953
+
2954
+ #: classes/helpers/FrmFieldsHelper.php:1877
2955
+ msgid "Images"
2956
+ msgstr ""
2957
+
2958
+ #: classes/helpers/FrmFieldsHelper.php:1880
2959
+ msgid "Image Options"
2960
+ msgstr ""
2961
+
2962
+ #: classes/helpers/FrmFieldsHelper.php:1881
2963
+ msgid "Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2964
+ msgstr ""
2965
+
2966
+ #: classes/helpers/FrmFieldsHelper.php:1888
2967
+ msgid "Button Options"
2968
+ msgstr ""
2969
+
2970
+ #: classes/helpers/FrmFieldsHelper.php:1889
2971
+ msgid "Show buttons for radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2972
+ msgstr ""
2973
+
2974
+ #. translators: Add-on name.
2975
+ #: classes/helpers/FrmFieldsHelper.php:1971
2976
+ msgid "Formidable %s"
2977
+ msgstr ""
2978
+
2979
  #: classes/helpers/FrmFormMigratorsHelper.php:46
2980
  msgid "Learn More"
2981
  msgstr ""
3027
  msgstr ""
3028
 
3029
  #: classes/helpers/FrmFormsHelper.php:463
3030
+ #: classes/views/frm-fields/back-end/settings.php:304
3031
  msgid "Field Key"
3032
  msgstr ""
3033
 
3036
  msgstr ""
3037
 
3038
  #: classes/helpers/FrmFormsHelper.php:475
3039
+ #: classes/views/frm-fields/back-end/settings.php:277
3040
  msgid "Label Position"
3041
  msgstr ""
3042
 
3144
  msgstr ""
3145
 
3146
  #: classes/helpers/FrmFormsHelper.php:1149
3147
+ #: classes/models/FrmField.php:203
3148
  msgid "Total"
3149
  msgstr ""
3150
 
3427
  #: classes/helpers/FrmTipsHelper.php:60
3428
  #: classes/helpers/FrmTipsHelper.php:76
3429
  #: classes/helpers/FrmTipsHelper.php:92
3430
+ #: classes/helpers/FrmTipsHelper.php:154
3431
+ #: classes/helpers/FrmTipsHelper.php:162
3432
+ #: classes/helpers/FrmTipsHelper.php:256
3433
+ #: classes/helpers/FrmTipsHelper.php:280
3434
  msgid "Upgrade to Pro."
3435
  msgstr ""
3436
 
3467
  msgstr ""
3468
 
3469
  #: classes/helpers/FrmTipsHelper.php:114
3470
+ #: classes/helpers/FrmTipsHelper.php:263
3471
  msgid "A site with dynamic, user-generated content is within reach."
3472
  msgstr ""
3473
 
3483
  msgid "Let users save drafts and return later!"
3484
  msgstr ""
3485
 
 
 
 
 
3486
  #: classes/helpers/FrmTipsHelper.php:130
 
 
 
 
3487
  msgid "Want your form open only for a certain time period?"
3488
  msgstr ""
3489
 
3490
+ #: classes/helpers/FrmTipsHelper.php:131
3491
  msgid "Add form scheduling."
3492
  msgstr ""
3493
 
3494
+ #: classes/helpers/FrmTipsHelper.php:145
3495
  msgid "Save time by sending the email to the right person automatically."
3496
  msgstr ""
3497
 
3498
+ #: classes/helpers/FrmTipsHelper.php:146
3499
  msgid "Add email routing."
3500
  msgstr ""
3501
 
3502
+ #: classes/helpers/FrmTipsHelper.php:153
3503
  msgid "Create blog posts or pages from the front-end."
3504
  msgstr ""
3505
 
3506
+ #: classes/helpers/FrmTipsHelper.php:161
3507
  msgid "Let your users submit posts on the front-end."
3508
  msgstr ""
3509
 
3510
+ #: classes/helpers/FrmTipsHelper.php:169
3511
  msgid "Grow your business with automated email follow-up."
3512
  msgstr ""
3513
 
3514
+ #: classes/helpers/FrmTipsHelper.php:170
3515
  msgid "Send leads straight to MailChimp."
3516
  msgstr ""
3517
 
3518
+ #: classes/helpers/FrmTipsHelper.php:177
3519
  msgid "Increase revenue."
3520
  msgstr ""
3521
 
3522
+ #: classes/helpers/FrmTipsHelper.php:178
3523
  msgid "Use PayPal with this form."
3524
  msgstr ""
3525
 
3526
+ #: classes/helpers/FrmTipsHelper.php:185
3527
  msgid "Get paid instantly."
3528
  msgstr ""
3529
 
3530
+ #: classes/helpers/FrmTipsHelper.php:186
3531
  msgid "Use Paypal with this form."
3532
  msgstr ""
3533
 
3534
+ #: classes/helpers/FrmTipsHelper.php:193
3535
  msgid "Automatically create user accounts."
3536
  msgstr ""
3537
 
3538
+ #: classes/helpers/FrmTipsHelper.php:194
3539
  msgid "Upgrade to boost your site membership."
3540
  msgstr ""
3541
 
3542
+ #: classes/helpers/FrmTipsHelper.php:201
3543
  msgid "Need front-end profile editing?"
3544
  msgstr ""
3545
 
3546
+ #: classes/helpers/FrmTipsHelper.php:202
3547
  msgid "Add user registration."
3548
  msgstr ""
3549
 
3550
+ #: classes/helpers/FrmTipsHelper.php:209
3551
  msgid "Want an SMS notification when a form is submitted or a payment received?"
3552
  msgstr ""
3553
 
3554
+ #: classes/helpers/FrmTipsHelper.php:210
3555
+ #: classes/helpers/FrmTipsHelper.php:218
3556
  msgid "Get the Twilio integration."
3557
  msgstr ""
3558
 
3559
+ #: classes/helpers/FrmTipsHelper.php:217
3560
  msgid "Send an SMS message when a form is submitted."
3561
  msgstr ""
3562
 
3563
+ #: classes/helpers/FrmTipsHelper.php:232
3564
  msgid "Make your sidebar and footer forms stand out."
3565
  msgstr ""
3566
 
3567
+ #: classes/helpers/FrmTipsHelper.php:233
3568
  msgid "Use multiple style templates."
3569
  msgstr ""
3570
 
3571
+ #: classes/helpers/FrmTipsHelper.php:247
3572
  msgid "Want to edit form submissions?"
3573
  msgstr ""
3574
 
3575
+ #: classes/helpers/FrmTipsHelper.php:248
3576
  msgid "Add entry management."
3577
  msgstr ""
3578
 
3579
+ #: classes/helpers/FrmTipsHelper.php:255
3580
  msgid "Want to search submitted entries?"
3581
  msgstr ""
3582
 
3583
+ #: classes/helpers/FrmTipsHelper.php:264
3584
  msgid "Display form data with Views."
3585
  msgstr ""
3586
 
3587
+ #: classes/helpers/FrmTipsHelper.php:279
3588
  msgid "Want to import entries into your forms?"
3589
  msgstr ""
3590
 
3591
+ #: classes/helpers/FrmTipsHelper.php:294
3592
  msgid "Looking for more ways to get professional results?"
3593
  msgstr ""
3594
 
3595
+ #: classes/helpers/FrmTipsHelper.php:295
3596
  msgid "Take your forms to the next level."
3597
  msgstr ""
3598
 
3599
+ #: classes/helpers/FrmTipsHelper.php:302
3600
  msgid "Increase conversions in long forms."
3601
  msgstr ""
3602
 
3603
+ #: classes/helpers/FrmTipsHelper.php:303
3604
  msgid "Add conditional logic, page breaks, and section headings."
3605
  msgstr ""
3606
 
3607
+ #: classes/helpers/FrmTipsHelper.php:310
3608
  msgid "Automate your business and increase revenue."
3609
  msgstr ""
3610
 
3611
+ #: classes/helpers/FrmTipsHelper.php:311
3612
  msgid "Collect instant payments, and send leads to MailChimp."
3613
  msgstr ""
3614
 
3733
  msgstr ""
3734
 
3735
  #: classes/models/fields/FrmFieldCombo.php:190
3736
+ #: classes/views/frm-fields/back-end/settings.php:144
3737
  msgid "Default Value"
3738
  msgstr ""
3739
 
3740
  #: classes/models/fields/FrmFieldCombo.php:191
3741
+ #: classes/views/frm-fields/back-end/settings.php:190
3742
  msgid "Placeholder Text"
3743
  msgstr ""
3744
 
3878
  msgstr ""
3879
 
3880
  #: classes/models/FrmEmail.php:310
3881
+ #: classes/models/FrmEntryValues.php:251
3882
  msgid "User-Agent (Browser/OS)"
3883
  msgstr ""
3884
 
3885
  #: classes/models/FrmEmail.php:311
3886
+ #: classes/models/FrmEntryValues.php:256
3887
  msgid "Referrer"
3888
  msgstr ""
3889
 
3890
  #: classes/models/FrmEmail.php:327
3891
+ #: classes/models/FrmEntryValues.php:246
3892
  msgid "IP Address"
3893
  msgstr ""
3894
 
3896
  msgid "There was a problem with your submission. Please try again."
3897
  msgstr ""
3898
 
3899
+ #: classes/models/FrmEntryValidate.php:245
3900
+ #: classes/models/FrmEntryValidate.php:249
3901
  msgid "Your entry appears to be spam!"
3902
  msgstr ""
3903
 
3904
+ #: classes/models/FrmEntryValidate.php:247
3905
  msgid "Your entry appears to be blocked spam!"
3906
  msgstr ""
3907
 
4020
  msgstr ""
4021
 
4022
  #: classes/models/FrmField.php:143
4023
+ msgid "Likert Scale"
4024
+ msgstr ""
4025
+
4026
+ #: classes/models/FrmField.php:148
4027
+ msgid "NPS"
4028
+ msgstr ""
4029
+
4030
+ #: classes/models/FrmField.php:153
4031
  msgid "Password"
4032
  msgstr ""
4033
 
4034
+ #: classes/models/FrmField.php:157
4035
  msgid "Tags"
4036
  msgstr ""
4037
 
4038
+ #: classes/models/FrmField.php:161
4039
  msgid "Credit Card"
4040
  msgstr ""
4041
 
4042
+ #: classes/models/FrmField.php:166
4043
  msgid "Address"
4044
  msgstr ""
4045
 
4046
+ #: classes/models/FrmField.php:170
4047
  msgid "Summary"
4048
  msgstr ""
4049
 
4050
+ #: classes/models/FrmField.php:175
4051
  msgid "Signature"
4052
  msgstr ""
4053
 
4054
+ #: classes/models/FrmField.php:180
4055
  msgid "Quiz Score"
4056
  msgstr ""
4057
 
4058
+ #: classes/models/FrmField.php:185
4059
  msgid "Appointment"
4060
  msgstr ""
4061
 
4062
+ #: classes/models/FrmField.php:193
4063
  msgid "Product"
4064
  msgstr ""
4065
 
4066
+ #: classes/models/FrmField.php:198
4067
  msgid "Quantity"
4068
  msgstr ""
4069
 
4377
 
4378
  #: classes/views/frm-entries/list.php:34
4379
  #: classes/views/frm-forms/list-templates.php:29
4380
+ #: classes/views/shared/admin-header.php:59
4381
  #: classes/views/xml/import_form.php:17
4382
  msgid "Import"
4383
  msgstr ""
4487
  #: classes/views/frm-fields/back-end/bulk-options-overlay.php:8
4488
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4489
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4490
+ #: classes/views/shared/admin-header.php:19
4491
+ #: js/formidable_admin.js:7561
4492
  msgid "Close"
4493
  msgstr ""
4494
 
4496
  msgid "Edit or add field options (one per line)"
4497
  msgstr ""
4498
 
4499
+ #: classes/views/frm-fields/back-end/bulk-options-overlay.php:23
4500
  msgid "Update Options"
4501
  msgstr ""
4502
 
4503
+ #: classes/views/frm-fields/back-end/bulk-options-overlay.php:28
4504
  msgid "Insert Presets"
4505
  msgstr ""
4506
 
4527
 
4528
  #: classes/views/frm-fields/back-end/html-content.php:16
4529
  #: classes/views/frm-fields/back-end/settings.php:85
4530
+ #: classes/views/frm-fields/back-end/settings.php:153
4531
  #: classes/views/frm-fields/back-end/value-format.php:16
4532
  msgid "Toggle Options"
4533
  msgstr ""
4608
  msgid "(%, px, em)"
4609
  msgstr ""
4610
 
4611
+ #: classes/views/frm-fields/back-end/radio-display-format.php:18
4612
+ msgid "Display format"
4613
+ msgstr ""
4614
+
4615
+ #: classes/views/frm-fields/back-end/radio-images.php:16
4616
  msgid "Separate Values"
4617
  msgstr ""
4618
 
4619
+ #: classes/views/frm-fields/back-end/radio-images.php:16
4620
  msgid "Add a separate value to use for calculations, email routing, saving to the database, and many other uses. The option values are saved while the option labels are shown in the form."
4621
  msgstr ""
4622
 
4623
+ #: classes/views/frm-fields/back-end/radio-images.php:19
4624
  msgid "Use separate values"
4625
  msgstr ""
4626
 
 
 
 
 
 
 
 
 
 
 
 
 
4627
  #. translators: %s: Field type
4628
  #: classes/views/frm-fields/back-end/settings.php:17
4629
  msgid "%s Field"
4630
  msgstr ""
4631
 
4632
  #: classes/views/frm-fields/back-end/settings.php:39
4633
+ #: classes/views/frm-fields/back-end/settings.php:350
4634
  msgid "Required"
4635
  msgstr ""
4636
 
4639
  msgstr ""
4640
 
4641
  #: classes/views/frm-fields/back-end/settings.php:47
4642
+ #: classes/views/frm-fields/back-end/settings.php:370
4643
  msgid "Unique"
4644
  msgstr ""
4645
 
4659
  msgid "CSS Layout Classes"
4660
  msgstr ""
4661
 
4662
+ #: classes/views/frm-fields/back-end/settings.php:118
4663
  #: classes/views/shared/mb_adv_info.php:22
4664
  msgid "Advanced"
4665
  msgstr ""
4666
 
4667
+ #: classes/views/frm-fields/back-end/settings.php:224
4668
  msgid "If this URL points to an image, show to image on the entries listing page."
4669
  msgstr ""
4670
 
4671
+ #: classes/views/frm-fields/back-end/settings.php:231
4672
  msgid "Set the size of the captcha field. The compact option is best if your form is in a small area."
4673
  msgstr ""
4674
 
4675
+ #: classes/views/frm-fields/back-end/settings.php:232
4676
  msgid "ReCaptcha Type"
4677
  msgstr ""
4678
 
4679
+ #: classes/views/frm-fields/back-end/settings.php:236
4680
  msgid "Normal"
4681
  msgstr ""
4682
 
4683
+ #: classes/views/frm-fields/back-end/settings.php:239
4684
  msgid "Compact"
4685
  msgstr ""
4686
 
4687
+ #: classes/views/frm-fields/back-end/settings.php:245
4688
  msgid "reCAPTCHA Color"
4689
  msgstr ""
4690
 
4691
+ #: classes/views/frm-fields/back-end/settings.php:249
4692
  msgid "Light"
4693
  msgstr ""
4694
 
4695
+ #: classes/views/frm-fields/back-end/settings.php:252
4696
  msgid "Dark"
4697
  msgstr ""
4698
 
4699
+ #: classes/views/frm-fields/back-end/settings.php:269
4700
  msgid "Required Field Indicator"
4701
  msgstr ""
4702
 
4703
+ #: classes/views/frm-fields/back-end/settings.php:295
4704
  msgid "Center"
4705
  msgstr ""
4706
 
4707
+ #: classes/views/frm-fields/back-end/settings.php:303
4708
  msgid "The field key can be used as an alternative to the field ID in many cases."
4709
  msgstr ""
4710
 
4711
+ #: classes/views/frm-fields/back-end/settings.php:312
4712
  msgid "Field Type"
4713
  msgstr ""
4714
 
4715
+ #: classes/views/frm-fields/back-end/settings.php:342
4716
  msgid "Validation Messages"
4717
  msgstr ""
4718
 
4719
+ #: classes/views/frm-fields/back-end/settings.php:359
4720
  msgid "Invalid Format"
4721
  msgstr ""
4722
 
4723
+ #: classes/views/frm-fields/back-end/settings.php:381
4724
  msgid "Confirmation"
4725
  msgstr ""
4726
 
4772
  msgstr ""
4773
 
4774
  #: classes/views/frm-form-actions/form_action.php:21
4775
+ #: js/formidable_admin.js:2009
4776
  msgid "Duplicate"
4777
  msgstr ""
4778
 
4897
  msgstr ""
4898
 
4899
  #: classes/views/frm-forms/add_field.php:29
4900
+ #: js/formidable_admin.js:1199
4901
  msgid "More Options"
4902
  msgstr ""
4903
 
5243
  msgstr ""
5244
 
5245
  #: classes/views/frm-forms/settings-advanced.php:67
5246
+ #: classes/views/frm-forms/settings-advanced.php:174
5247
  msgid "On Submit"
5248
  msgstr ""
5249
 
5271
  msgid "Do not store entries submitted from this form"
5272
  msgstr ""
5273
 
5274
+ #: classes/views/frm-forms/settings-advanced.php:127
5275
  msgid "AJAX"
5276
  msgstr ""
5277
 
5278
+ #: classes/views/frm-forms/settings-advanced.php:128
5279
  msgid "Make stuff happen in the background without a page refresh"
5280
  msgstr ""
5281
 
5282
+ #: classes/views/frm-forms/settings-advanced.php:135
5283
  msgid "Load and save form builder page with AJAX"
5284
  msgstr ""
5285
 
5286
+ #: classes/views/frm-forms/settings-advanced.php:136
5287
  msgid "Recommended for long forms."
5288
  msgstr ""
5289
 
5290
+ #: classes/views/frm-forms/settings-advanced.php:144
5291
+ msgid "AJAX Form Submissions"
5292
  msgstr ""
5293
 
5294
  #: classes/views/frm-forms/settings-advanced.php:144
5295
+ msgid "Want to submit forms without reloading the page?"
5296
+ msgstr ""
5297
+
5298
+ #: classes/views/frm-forms/settings-advanced.php:146
5299
+ msgid "Submit this form with AJAX"
5300
+ msgstr ""
5301
+
5302
+ #: classes/views/frm-forms/settings-advanced.php:147
5303
+ msgid "Submit the form without refreshing the page."
5304
+ msgstr ""
5305
+
5306
+ #: classes/views/frm-forms/settings-advanced.php:156
5307
+ msgid "Validate this form with javascript"
5308
+ msgstr ""
5309
+
5310
+ #: classes/views/frm-forms/settings-advanced.php:157
5311
  msgid "Required fields, email format, and number format can be checked instantly in your browser. You may want to turn this option off if you have any customizations to remove validation messages on certain fields."
5312
  msgstr ""
5313
 
5314
+ #: classes/views/frm-forms/settings-advanced.php:168
5315
  msgid "Messages"
5316
  msgstr ""
5317
 
5318
+ #: classes/views/frm-forms/settings-advanced.php:169
5319
  msgid "Set up your confirmation messages."
5320
  msgstr ""
5321
 
6278
  msgid "Error"
6279
  msgstr ""
6280
 
6281
+ #: js/formidable_admin.js:1979
6282
  msgid "Field settings"
6283
  msgstr ""
6284
 
6285
+ #: js/formidable_admin.js:2003
6286
  msgid "Delete Group"
6287
  msgstr ""
6288
 
6289
+ #: js/formidable_admin.js:2009
6290
  msgid "Duplicate Group"
6291
  msgstr ""
6292
 
6293
+ #: js/formidable_admin.js:3321
6294
  msgid "Custom layout"
6295
  msgstr ""
6296
 
6297
+ #: js/formidable_admin.js:3335
6298
  msgid "Break into rows"
6299
  msgstr ""
6300
 
6301
+ #: js/formidable_admin.js:3344
6302
  msgid "Row Layout"
6303
  msgstr ""
6304
 
6305
+ #: js/formidable_admin.js:3598
6306
  msgid "Enter number of columns for each field"
6307
  msgstr ""
6308
 
6309
+ #: js/formidable_admin.js:3602
6310
  msgid "Layouts are based on a 12-column grid system"
6311
  msgstr ""
6312
 
6313
+ #: js/formidable_admin.js:3618
6314
  msgid "Save"
6315
  msgstr ""
6316
 
6317
+ #: js/formidable_admin.js:3909
6318
  msgid "Merge into row"
6319
  msgstr ""
6320
 
6321
  #. translators: %1$s: Number of fields that are selected to be deleted.
6322
+ #: js/formidable_admin.js:3997
6323
  msgid "Are you sure you want to delete these %1$s selected fields?"
6324
  msgstr ""
6325
+
6326
+ #: js/formidable_admin.js:7553
6327
+ msgid "Save and Reload"
6328
+ msgstr ""
readme.txt CHANGED
@@ -3,9 +3,9 @@ Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for Wor
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
5
  Requires at least: 5.0
6
- Tested up to: 5.8
7
  Requires PHP: 5.6
8
- Stable tag: 5.0.03
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
@@ -27,7 +27,7 @@ Plus, we have optimized Formidable for speed and maximum server performance. We
27
 
28
  You can start with our pre-built templates or create totally custom forms from scratch. All with an easy-to-use drag & drop form maker interface.
29
 
30
- https://www.youtube.com/watch?v=d2IPmicn2x8&rel=0
31
 
32
  Let’s take a look at all the powerful features for making an amazing lead form, survey form, poll, subscription form, request a quote form, donation form, user registration form, or payment form.
33
 
@@ -440,6 +440,11 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
 
 
 
 
 
443
  = 5.0.03 =
444
  * New: Added an Elementor widget.
445
  * New: When duplicating fields, most unsaved changes will now duplicate as well.
@@ -463,7 +468,7 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
463
  * New: Added the option to quickly set layouts for a full row of fields at once.
464
  * New: Fields can now be multiselected using the command, control, and shift keys. Selected field groups can be merged into rows and deleted in batches.
465
  * New: Added additional formatting to calculations to avoid issues with comparisons getting stripped when spaces are left out.
466
- * New: Permissions are now updated right away when a formidable license is activated to avoid issues with certain pro features not being available right away.
467
  * Fix: Updated styling rules for repeater button icons to avoid issues with file upload icons getting styled as well.
468
  * Fix: The confirmation pop up title was displaying as inline when trying to delete a section.
469
  * Fix: Updated styling for new fields that are about to be dropped into a form.
@@ -478,9 +483,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
478
  * Fix: When switching between the dropdown and text lookup types, the watch lookup option not properly toggle back on.
479
  * Fix: The autocomplete page dropdown was not consistent with other styles.
480
 
481
- = 4.11.03 =
482
- * New: Name fields now work in the To and From settings for email actions.
483
- * Fix: Images were not properly loading when styles were loading via an AJAX request.
484
- * Fix: Zeros were not appearing in the entries list for repeaters.
485
-
486
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
5
  Requires at least: 5.0
6
+ Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
+ Stable tag: 5.0.04
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
27
 
28
  You can start with our pre-built templates or create totally custom forms from scratch. All with an easy-to-use drag & drop form maker interface.
29
 
30
+ https://www.youtube.com/watch?v=-eGuL_OWHw4&rel=0
31
 
32
  Let’s take a look at all the powerful features for making an amazing lead form, survey form, poll, subscription form, request a quote form, donation form, user registration form, or payment form.
33
 
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
443
+ = 5.0.04 =
444
+ * New: Custom HTML for errors is now also applied when validating with JavaScript.
445
+ * New: Added a button to quickly save and reload after activating a new plugin from the settings page.
446
+ * New: Added several new filters required to support the new new Formidable surveys add on.
447
+
448
  = 5.0.03 =
449
  * New: Added an Elementor widget.
450
  * New: When duplicating fields, most unsaved changes will now duplicate as well.
468
  * New: Added the option to quickly set layouts for a full row of fields at once.
469
  * New: Fields can now be multiselected using the command, control, and shift keys. Selected field groups can be merged into rows and deleted in batches.
470
  * New: Added additional formatting to calculations to avoid issues with comparisons getting stripped when spaces are left out.
471
+ * New: Permissions are now updated right away when a Formidable license is activated to avoid issues with certain pro features not being available right away.
472
  * Fix: Updated styling rules for repeater button icons to avoid issues with file upload icons getting styled as well.
473
  * Fix: The confirmation pop up title was displaying as inline when trying to delete a section.
474
  * Fix: Updated styling for new fields that are about to be dropped into a form.
483
  * Fix: When switching between the dropdown and text lookup types, the watch lookup option not properly toggle back on.
484
  * Fix: The autocomplete page dropdown was not consistent with other styles.
485
 
 
 
 
 
 
486
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>