Version Description
- New: Added an Elementor widget.
- New: When duplicating fields, most unsaved changes will now duplicate as well.
- New: Next button label and slider field label previews will now update as soon as the setting is changed in the form builder.
- New: Slider field previews will now update when the min and max values are updated in the form builder.
- Fix: The search dropdown was getting cut off on pages with no search results.
- Fix: When legacy views or visual views are active, both versions were appearing active on the add ons page.
Download this release
Release Info
Developer | formidableforms |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 5.0.03 |
Comparing to | |
See all releases |
Code changes from version 5.0.02 to 5.0.03
- classes/controllers/FrmAddonsController.php +27 -2
- classes/controllers/FrmHooksController.php +16 -0
- classes/controllers/FrmSimpleBlocksController.php +7 -1
- classes/helpers/FrmAppHelper.php +11 -1
- classes/views/frm-fields/back-end/number-range.php +2 -2
- classes/views/frm-settings/recaptcha.php +2 -6
- classes/widgets/FrmElementorWidget.php +102 -0
- css/frm_admin.css +4 -0
- formidable.php +1 -1
- js/formidable_admin.js +152 -6
- languages/formidable.pot +44 -41
- readme.txt +9 -4
classes/controllers/FrmAddonsController.php
CHANGED
@@ -532,10 +532,17 @@ class FrmAddonsController {
|
|
532 |
}
|
533 |
}
|
534 |
|
535 |
-
$addon['installed']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
536 |
$addon['activate_url'] = '';
|
537 |
|
538 |
-
if ( $addon['installed'] && ! empty( $activate_url ) && ! is_plugin_active( $file_name ) ) {
|
539 |
$addon['activate_url'] = add_query_arg(
|
540 |
array(
|
541 |
'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $file_name ),
|
@@ -560,6 +567,24 @@ class FrmAddonsController {
|
|
560 |
}
|
561 |
}
|
562 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
563 |
/**
|
564 |
* @since 3.04.02
|
565 |
*/
|
532 |
}
|
533 |
}
|
534 |
|
535 |
+
$addon['installed'] = self::is_installed( $file_name );
|
536 |
+
if ( $addon['installed'] && 'formidable-views/formidable-views.php' === $file_name ) {
|
537 |
+
$active_views_version = self::get_active_views_version();
|
538 |
+
if ( false !== $active_views_version && $slug !== $active_views_version ) {
|
539 |
+
$addon['installed'] = false;
|
540 |
+
}
|
541 |
+
}
|
542 |
+
|
543 |
$addon['activate_url'] = '';
|
544 |
|
545 |
+
if ( $addon['installed'] && ! empty( $activate_url ) && ! self::is_plugin_active( $file_name, $slug ) ) {
|
546 |
$addon['activate_url'] = add_query_arg(
|
547 |
array(
|
548 |
'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $file_name ),
|
567 |
}
|
568 |
}
|
569 |
|
570 |
+
private static function is_plugin_active( $file_name, $slug ) {
|
571 |
+
if ( 'formidable-views/formidable-views.php' === $file_name ) {
|
572 |
+
return self::get_active_views_version() === $slug;
|
573 |
+
}
|
574 |
+
return is_plugin_active( $file_name );
|
575 |
+
}
|
576 |
+
|
577 |
+
/**
|
578 |
+
* @return string|false either 'visual-views' or 'views', false if one is not found.
|
579 |
+
*/
|
580 |
+
private static function get_active_views_version() {
|
581 |
+
if ( ! is_callable( 'FrmViewsAppHelper::plugin_version' ) ) {
|
582 |
+
return false;
|
583 |
+
}
|
584 |
+
$plugin_version = FrmViewsAppHelper::plugin_version();
|
585 |
+
return version_compare( $plugin_version, '5.0', '>=' ) ? 'visual-views' : 'views';
|
586 |
+
}
|
587 |
+
|
588 |
/**
|
589 |
* @since 3.04.02
|
590 |
*/
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -90,6 +90,8 @@ class FrmHooksController {
|
|
90 |
* FrmProContent::replace_single_shortcode() applies this filter like 'frm_keep_' . $field->type . '_value_array'
|
91 |
*/
|
92 |
add_filter( 'frm_keep_name_value_array', '__return_true' );
|
|
|
|
|
93 |
}
|
94 |
|
95 |
public static function load_admin_hooks() {
|
@@ -243,4 +245,18 @@ class FrmHooksController {
|
|
243 |
// Drop tables when mu site is deleted.
|
244 |
add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
|
245 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
}
|
90 |
* FrmProContent::replace_single_shortcode() applies this filter like 'frm_keep_' . $field->type . '_value_array'
|
91 |
*/
|
92 |
add_filter( 'frm_keep_name_value_array', '__return_true' );
|
93 |
+
|
94 |
+
add_action( 'elementor/widgets/widgets_registered', 'FrmHooksController::register_elementor_hooks' );
|
95 |
}
|
96 |
|
97 |
public static function load_admin_hooks() {
|
245 |
// Drop tables when mu site is deleted.
|
246 |
add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
|
247 |
}
|
248 |
+
|
249 |
+
public static function register_elementor_hooks() {
|
250 |
+
require_once FrmAppHelper::plugin_path() . '/classes/widgets/FrmElementorWidget.php';
|
251 |
+
\Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \FrmElementorWidget() );
|
252 |
+
|
253 |
+
if ( is_admin() ) {
|
254 |
+
add_action(
|
255 |
+
'elementor/editor/after_enqueue_styles',
|
256 |
+
function() {
|
257 |
+
wp_enqueue_style( 'font_icons', FrmAppHelper::plugin_url() . '/css/font_icons.css', array(), FrmAppHelper::plugin_version() );
|
258 |
+
}
|
259 |
+
);
|
260 |
+
}
|
261 |
+
}
|
262 |
}
|
classes/controllers/FrmSimpleBlocksController.php
CHANGED
@@ -19,7 +19,13 @@ class FrmSimpleBlocksController {
|
|
19 |
true
|
20 |
);
|
21 |
|
22 |
-
$icon
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
$block_name = FrmAppHelper::get_menu_name();
|
24 |
if ( $block_name === 'Formidable' ) {
|
25 |
$block_name = 'Formidable Forms';
|
19 |
true
|
20 |
);
|
21 |
|
22 |
+
$icon = apply_filters( 'frm_icon', 'svg' );
|
23 |
+
if ( 0 === strpos( $icon, 'data:image/svg+xml;base64,' ) ) {
|
24 |
+
$icon = ' ' . FrmAppHelper::get_menu_icon_class();
|
25 |
+
} else {
|
26 |
+
$icon = str_replace( 'dashicons-', '', $icon );
|
27 |
+
}
|
28 |
+
|
29 |
$block_name = FrmAppHelper::get_menu_name();
|
30 |
if ( $block_name === 'Formidable' ) {
|
31 |
$block_name = 'Formidable Forms';
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '5.0.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
@@ -2735,6 +2735,16 @@ class FrmAppHelper {
|
|
2735 |
include_once self::plugin_path() . '/classes/views/frm-forms/multiselect-accessibility.php';
|
2736 |
}
|
2737 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2738 |
/**
|
2739 |
* @since 4.07
|
2740 |
* @deprecated 4.09.01
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '5.0.03';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
2735 |
include_once self::plugin_path() . '/classes/views/frm-forms/multiselect-accessibility.php';
|
2736 |
}
|
2737 |
|
2738 |
+
public static function get_menu_icon_class() {
|
2739 |
+
if ( is_callable( 'FrmProAppHelper::get_settings' ) ) {
|
2740 |
+
$settings = FrmProAppHelper::get_settings();
|
2741 |
+
if ( is_object( $settings ) && ! empty( $settings->menu_icon ) ) {
|
2742 |
+
return $settings->menu_icon;
|
2743 |
+
}
|
2744 |
+
}
|
2745 |
+
return 'frmfont frm_logo_icon';
|
2746 |
+
}
|
2747 |
+
|
2748 |
/**
|
2749 |
* @since 4.07
|
2750 |
* @deprecated 4.09.01
|
classes/views/frm-fields/back-end/number-range.php
CHANGED
@@ -9,10 +9,10 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
9 |
</label>
|
10 |
<span class="frm_grid_container">
|
11 |
<span class="frm5 frm_form_field frm-range-min">
|
12 |
-
<input type="text" name="field_options[minnum_<?php echo absint( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['minnum'] ); ?>" />
|
13 |
</span>
|
14 |
<span class="frm5 frm_last frm_form_field">
|
15 |
-
<input type="text" name="field_options[maxnum_<?php echo absint( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['maxnum'] ); ?>" />
|
16 |
</span>
|
17 |
</span>
|
18 |
</p>
|
9 |
</label>
|
10 |
<span class="frm_grid_container">
|
11 |
<span class="frm5 frm_form_field frm-range-min">
|
12 |
+
<input type="text" name="field_options[minnum_<?php echo absint( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['minnum'] ); ?>" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="min" />
|
13 |
</span>
|
14 |
<span class="frm5 frm_last frm_form_field">
|
15 |
+
<input type="text" name="field_options[maxnum_<?php echo absint( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['maxnum'] ); ?>" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="max" />
|
16 |
</span>
|
17 |
</span>
|
18 |
</p>
|
classes/views/frm-settings/recaptcha.php
CHANGED
@@ -19,18 +19,14 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
19 |
<label class="frm_help" for="frm_pubkey" title="<?php esc_attr_e( 'reCAPTCHA is a free, accessible CAPTCHA service that helps to digitize books while blocking spam on your blog. reCAPTCHA asks commenters to retype two words scanned from a book to prove that they are a human. This verifies that they are not a spambot.', 'formidable' ); ?>">
|
20 |
<?php esc_html_e( 'Site Key', 'formidable' ); ?>
|
21 |
</label>
|
22 |
-
<input type="text" name="frm_pubkey" id="frm_pubkey" size="42"
|
23 |
-
value="<?php echo esc_attr( $frm_settings->pubkey ); ?>"
|
24 |
-
placeholder="<?php esc_attr_e( 'Optional', 'formidable' ); ?>"/>
|
25 |
</p>
|
26 |
|
27 |
<p class="frm6 frm_form_field">
|
28 |
<label for="frm_privkey">
|
29 |
<?php esc_html_e( 'Secret Key', 'formidable' ); ?>
|
30 |
</label>
|
31 |
-
<input type="text" name="frm_privkey" id="frm_privkey" size="42"
|
32 |
-
value="<?php echo esc_attr( $frm_settings->privkey ); ?>"
|
33 |
-
placeholder="<?php esc_attr_e( 'Optional', 'formidable' ); ?>"/>
|
34 |
</p>
|
35 |
|
36 |
<p class="frm6 frm_form_field">
|
19 |
<label class="frm_help" for="frm_pubkey" title="<?php esc_attr_e( 'reCAPTCHA is a free, accessible CAPTCHA service that helps to digitize books while blocking spam on your blog. reCAPTCHA asks commenters to retype two words scanned from a book to prove that they are a human. This verifies that they are not a spambot.', 'formidable' ); ?>">
|
20 |
<?php esc_html_e( 'Site Key', 'formidable' ); ?>
|
21 |
</label>
|
22 |
+
<input type="text" name="frm_pubkey" id="frm_pubkey" size="42" value="<?php echo esc_attr( $frm_settings->pubkey ); ?>" />
|
|
|
|
|
23 |
</p>
|
24 |
|
25 |
<p class="frm6 frm_form_field">
|
26 |
<label for="frm_privkey">
|
27 |
<?php esc_html_e( 'Secret Key', 'formidable' ); ?>
|
28 |
</label>
|
29 |
+
<input type="text" name="frm_privkey" id="frm_privkey" size="42" value="<?php echo esc_attr( $frm_settings->privkey ); ?>" />
|
|
|
|
|
30 |
</p>
|
31 |
|
32 |
<p class="frm6 frm_form_field">
|
classes/widgets/FrmElementorWidget.php
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( class_exists( '\Elementor\Widget_Base' ) ) {
|
7 |
+
class FrmElementorWidget extends \Elementor\Widget_Base {
|
8 |
+
|
9 |
+
public function get_name() {
|
10 |
+
return 'formidable';
|
11 |
+
}
|
12 |
+
|
13 |
+
public function get_title() {
|
14 |
+
return FrmAppHelper::get_menu_name() . ' ' . __( 'Forms', 'formidable' );
|
15 |
+
}
|
16 |
+
|
17 |
+
public function get_icon() {
|
18 |
+
return FrmAppHelper::get_menu_icon_class();
|
19 |
+
}
|
20 |
+
|
21 |
+
public function get_categories() {
|
22 |
+
return array( 'general' );
|
23 |
+
}
|
24 |
+
|
25 |
+
protected function _register_controls() {
|
26 |
+
$this->start_controls_section(
|
27 |
+
'section_form_dropdown',
|
28 |
+
array(
|
29 |
+
'label' => __( 'Select Form', 'formidable' ),
|
30 |
+
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
|
31 |
+
)
|
32 |
+
);
|
33 |
+
|
34 |
+
$this->add_control(
|
35 |
+
'form_id',
|
36 |
+
array(
|
37 |
+
'label' => __( 'Form', 'formidable' ),
|
38 |
+
'type' => \Elementor\Controls_Manager::SELECT2,
|
39 |
+
'options' => $this->get_form_options(),
|
40 |
+
)
|
41 |
+
);
|
42 |
+
|
43 |
+
$this->end_controls_section();
|
44 |
+
|
45 |
+
$this->start_controls_section(
|
46 |
+
'section_options',
|
47 |
+
array(
|
48 |
+
'label' => __( 'Options', 'formidable' ),
|
49 |
+
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
|
50 |
+
)
|
51 |
+
);
|
52 |
+
|
53 |
+
$this->add_basic_switcher_control( 'title', __( 'Show Form Title', 'formidable' ) );
|
54 |
+
$this->add_basic_switcher_control( 'description', __( 'Show Form Description', 'formidable' ) );
|
55 |
+
$this->add_basic_switcher_control( 'minimize', __( 'Minimize HTML', 'formidable' ) );
|
56 |
+
|
57 |
+
$this->end_controls_section();
|
58 |
+
}
|
59 |
+
|
60 |
+
private function add_basic_switcher_control( $key, $title ) {
|
61 |
+
$this->add_control(
|
62 |
+
$key,
|
63 |
+
array(
|
64 |
+
'label' => $title,
|
65 |
+
'type' => \Elementor\Controls_Manager::SWITCHER,
|
66 |
+
)
|
67 |
+
);
|
68 |
+
}
|
69 |
+
|
70 |
+
private function get_form_options() {
|
71 |
+
$query = array();
|
72 |
+
$where = apply_filters( 'frm_forms_dropdown', $query, 'form' );
|
73 |
+
$forms = FrmForm::get_published_forms( $where, 999, 'exclude' );
|
74 |
+
$options = array( '' => '' );
|
75 |
+
|
76 |
+
foreach ( $forms as $form ) {
|
77 |
+
$form_title = '' === $form->name ? __( '(no title)', 'formidable' ) : FrmAppHelper::truncate( $form->name, 50 );
|
78 |
+
$options[ $form->id ] = esc_html( $form_title );
|
79 |
+
}
|
80 |
+
|
81 |
+
return $options;
|
82 |
+
}
|
83 |
+
|
84 |
+
protected function render() {
|
85 |
+
$settings = $this->get_settings_for_display();
|
86 |
+
$form_id = isset( $settings['form_id'] ) ? absint( $settings['form_id'] ) : 0;
|
87 |
+
$title = isset( $settings['title'] ) && 'yes' === $settings['title'];
|
88 |
+
$description = isset( $settings['description'] ) && 'yes' === $settings['description'];
|
89 |
+
$minimize = isset( $settings['minimize'] ) && 'yes' === $settings['minimize'];
|
90 |
+
|
91 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
92 |
+
echo FrmFormsController::get_form_shortcode(
|
93 |
+
array(
|
94 |
+
'id' => $form_id,
|
95 |
+
'title' => $title,
|
96 |
+
'description' => $description,
|
97 |
+
'minimize' => $minimize,
|
98 |
+
)
|
99 |
+
);
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
css/frm_admin.css
CHANGED
@@ -5344,6 +5344,10 @@ span.howto {
|
|
5344 |
line-height: 200%;
|
5345 |
}
|
5346 |
|
|
|
|
|
|
|
|
|
5347 |
/* Reports Page */
|
5348 |
#form_reports_page img.frm_no_reports {
|
5349 |
max-width: 100%;
|
5344 |
line-height: 200%;
|
5345 |
}
|
5346 |
|
5347 |
+
#form_entries_page #the-list .no-items {
|
5348 |
+
height: 240px; /* Equals to the max height of search dropdown */
|
5349 |
+
}
|
5350 |
+
|
5351 |
/* Reports Page */
|
5352 |
#form_reports_page img.frm_no_reports {
|
5353 |
max-width: 100%;
|
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.
|
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.03
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
js/formidable_admin.js
CHANGED
@@ -829,6 +829,13 @@ function frmAdminBuildJS() {
|
|
829 |
// A new field was dragged into the form
|
830 |
insertNewFieldByDragging( this, ui.item, opts );
|
831 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
832 |
}
|
833 |
},
|
834 |
change: function( event, ui ) {
|
@@ -1742,7 +1749,13 @@ function frmAdminBuildJS() {
|
|
1742 |
if ( null !== fieldOrder ) {
|
1743 |
newRow.lastElementChild.setAttribute( 'frm-field-order', fieldOrder );
|
1744 |
}
|
1745 |
-
jQuery( newRow ).trigger(
|
|
|
|
|
|
|
|
|
|
|
|
|
1746 |
afterAddField( msg, false );
|
1747 |
return;
|
1748 |
}
|
@@ -1757,11 +1770,97 @@ function frmAdminBuildJS() {
|
|
1757 |
|
1758 |
updateFieldOrder();
|
1759 |
afterAddField( msg, false );
|
|
|
1760 |
}
|
1761 |
});
|
1762 |
return false;
|
1763 |
}
|
1764 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1765 |
function closeOpenFieldDropdowns() {
|
1766 |
var openSettings = document.querySelector( '.frm-field-settings-open' );
|
1767 |
if ( null !== openSettings ) {
|
@@ -2450,6 +2549,8 @@ function frmAdminBuildJS() {
|
|
2450 |
}
|
2451 |
} else if ( att === 'class' ) {
|
2452 |
changeFieldClass( changes, this );
|
|
|
|
|
2453 |
} else {
|
2454 |
changes.setAttribute( att, newValue );
|
2455 |
}
|
@@ -2459,9 +2560,47 @@ function frmAdminBuildJS() {
|
|
2459 |
}
|
2460 |
} else {
|
2461 |
changes.innerHTML = newValue;
|
|
|
|
|
|
|
2462 |
}
|
2463 |
}
|
2464 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2465 |
function toggleInvalidMsg() {
|
2466 |
/*jshint validthis:true */
|
2467 |
var typeDropdown, fieldType,
|
@@ -2986,7 +3125,7 @@ function frmAdminBuildJS() {
|
|
2986 |
}
|
2987 |
|
2988 |
function duplicateFieldGroup() {
|
2989 |
-
var hoverTarget, newRowId, $newRow, $fields, syncDetails, expectedLength, duplicatedCount, injectedCloneOptions;
|
2990 |
|
2991 |
hoverTarget = document.querySelector( '.frm-field-group-hover-target' );
|
2992 |
|
@@ -3007,12 +3146,15 @@ function frmAdminBuildJS() {
|
|
3007 |
|
3008 |
expectedLength = $fields.length;
|
3009 |
duplicatedCount = 0;
|
|
|
3010 |
|
3011 |
$newRow.on(
|
3012 |
'frm_added_duplicated_field_to_row',
|
3013 |
-
function() {
|
3014 |
var $duplicatedFields, index;
|
3015 |
|
|
|
|
|
3016 |
if ( expectedLength > ++duplicatedCount ) {
|
3017 |
return;
|
3018 |
}
|
@@ -3026,14 +3168,18 @@ function frmAdminBuildJS() {
|
|
3026 |
);
|
3027 |
|
3028 |
for ( index = 0; index < expectedLength; ++index ) {
|
3029 |
-
$newRowUl.append(
|
3030 |
-
$newRowUl.children( 'li.form-field[frm-field-order="' + index + '"]' )
|
3031 |
-
);
|
3032 |
}
|
3033 |
|
3034 |
syncLayoutClasses( $duplicatedFields.first(), syncDetails );
|
3035 |
$newRow.removeClass( 'frm_hidden' );
|
3036 |
updateFieldOrder();
|
|
|
|
|
|
|
|
|
|
|
|
|
3037 |
}
|
3038 |
);
|
3039 |
|
829 |
// A new field was dragged into the form
|
830 |
insertNewFieldByDragging( this, ui.item, opts );
|
831 |
}
|
832 |
+
} else if ( ui.item.hasClass( 'frm_field_box' ) ) {
|
833 |
+
// dragging a group.
|
834 |
+
getFieldsInRow( ui.item.children( 'ul' ) ).each(
|
835 |
+
function() {
|
836 |
+
updateFieldAfterMovingBetweenSections( jQuery( this ) );
|
837 |
+
}
|
838 |
+
);
|
839 |
}
|
840 |
},
|
841 |
change: function( event, ui ) {
|
1749 |
if ( null !== fieldOrder ) {
|
1750 |
newRow.lastElementChild.setAttribute( 'frm-field-order', fieldOrder );
|
1751 |
}
|
1752 |
+
jQuery( newRow ).trigger(
|
1753 |
+
'frm_added_duplicated_field_to_row',
|
1754 |
+
{
|
1755 |
+
duplicatedFieldHtml: msg,
|
1756 |
+
originalFieldId: fieldId
|
1757 |
+
}
|
1758 |
+
);
|
1759 |
afterAddField( msg, false );
|
1760 |
return;
|
1761 |
}
|
1770 |
|
1771 |
updateFieldOrder();
|
1772 |
afterAddField( msg, false );
|
1773 |
+
maybeDuplicateUnsavedSettings( fieldId, msg );
|
1774 |
}
|
1775 |
});
|
1776 |
return false;
|
1777 |
}
|
1778 |
|
1779 |
+
function maybeDuplicateUnsavedSettings( originalFieldId, newFieldHtml ) {
|
1780 |
+
var originalSettings, newFieldId, copySettings, fieldOptionKeys, originalDefault, copyDefault;
|
1781 |
+
|
1782 |
+
originalSettings = document.getElementById( 'frm-single-settings-' + originalFieldId );
|
1783 |
+
if ( null === originalSettings ) {
|
1784 |
+
return;
|
1785 |
+
}
|
1786 |
+
|
1787 |
+
newFieldId = jQuery( newFieldHtml ).attr( 'data-fid' );
|
1788 |
+
if ( 'undefined' === typeof newFieldId ) {
|
1789 |
+
return;
|
1790 |
+
}
|
1791 |
+
|
1792 |
+
copySettings = document.getElementById( 'frm-single-settings-' + newFieldId );
|
1793 |
+
if ( null === copySettings ) {
|
1794 |
+
return;
|
1795 |
+
}
|
1796 |
+
|
1797 |
+
fieldOptionKeys = [
|
1798 |
+
'name', 'required', 'unique', 'read_only', 'placeholder', 'description', 'size', 'max', 'format', 'prepend', 'append', 'separate_value'
|
1799 |
+
];
|
1800 |
+
|
1801 |
+
originalSettings.querySelectorAll( 'input[name^="field_options["], textarea[name^="field_options["]' ).forEach(
|
1802 |
+
function( originalSetting ) {
|
1803 |
+
var key, tagType, copySetting;
|
1804 |
+
|
1805 |
+
key = getKeyFromSettingInput( originalSetting );
|
1806 |
+
|
1807 |
+
if ( 'options' === key ) {
|
1808 |
+
copyOption( originalSetting, copySettings, originalFieldId, newFieldId );
|
1809 |
+
return;
|
1810 |
+
}
|
1811 |
+
|
1812 |
+
if ( -1 === fieldOptionKeys.indexOf( key ) ) {
|
1813 |
+
return;
|
1814 |
+
}
|
1815 |
+
|
1816 |
+
tagType = originalSetting.matches( 'input' ) ? 'input' : 'textarea';
|
1817 |
+
copySetting = copySettings.querySelector( tagType + '[name="field_options[' + key + '_' + newFieldId + ']"]' );
|
1818 |
+
if ( null === copySetting ) {
|
1819 |
+
return;
|
1820 |
+
}
|
1821 |
+
|
1822 |
+
if ( 'checkbox' === originalSetting.type ) {
|
1823 |
+
if ( originalSetting.checked !== copySetting.checked ) {
|
1824 |
+
jQuery( copySetting ).trigger( 'click' );
|
1825 |
+
}
|
1826 |
+
} else if ( 'text' === originalSetting.type || 'textarea' === tagType ) {
|
1827 |
+
if ( originalSetting.value !== copySetting.value ) {
|
1828 |
+
copySetting.value = originalSetting.value;
|
1829 |
+
jQuery( copySetting ).trigger( 'change' );
|
1830 |
+
}
|
1831 |
+
}
|
1832 |
+
}
|
1833 |
+
);
|
1834 |
+
|
1835 |
+
originalDefault = originalSettings.querySelector( 'input[name="default_value_' + originalFieldId + '"]' );
|
1836 |
+
if ( null !== originalDefault ) {
|
1837 |
+
copyDefault = copySettings.querySelector( 'input[name="default_value_' + newFieldId + '"]' );
|
1838 |
+
if ( null !== copyDefault && originalDefault.value !== copyDefault.value ) {
|
1839 |
+
copyDefault.value = originalDefault.value;
|
1840 |
+
jQuery( copyDefault ).trigger( 'change' );
|
1841 |
+
}
|
1842 |
+
}
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
function copyOption( originalSetting, copySettings, originalFieldId, newFieldId ) {
|
1846 |
+
var remainingKeyDetails, copyKey, copySetting;
|
1847 |
+
remainingKeyDetails = originalSetting.name.substr( 23 + ( '' + originalFieldId ).length );
|
1848 |
+
copyKey = 'field_options[options_' + newFieldId + ']' + remainingKeyDetails;
|
1849 |
+
copySetting = copySettings.querySelector( 'input[name="' + copyKey + '"]' );
|
1850 |
+
if ( null !== copySetting && copySetting.value !== originalSetting.value ) {
|
1851 |
+
copySetting.value = originalSetting.value;
|
1852 |
+
jQuery( copySetting ).trigger( 'change' );
|
1853 |
+
}
|
1854 |
+
}
|
1855 |
+
|
1856 |
+
function getKeyFromSettingInput( input ) {
|
1857 |
+
var nameWithoutPrefix, nameSplit;
|
1858 |
+
nameWithoutPrefix = input.name.substr( 14 );
|
1859 |
+
nameSplit = nameWithoutPrefix.split( '_' );
|
1860 |
+
nameSplit.pop();
|
1861 |
+
return nameSplit.join( '_' );
|
1862 |
+
}
|
1863 |
+
|
1864 |
function closeOpenFieldDropdowns() {
|
1865 |
var openSettings = document.querySelector( '.frm-field-settings-open' );
|
1866 |
if ( null !== openSettings ) {
|
2549 |
}
|
2550 |
} else if ( att === 'class' ) {
|
2551 |
changeFieldClass( changes, this );
|
2552 |
+
} else if ( isSliderField( changes ) ) {
|
2553 |
+
updateSliderFieldPreview( changes, att, newValue );
|
2554 |
} else {
|
2555 |
changes.setAttribute( att, newValue );
|
2556 |
}
|
2560 |
}
|
2561 |
} else {
|
2562 |
changes.innerHTML = newValue;
|
2563 |
+
if ( changes.classList.contains( 'frm_primary_label' ) && 'break' === changes.nextElementSibling.getAttribute( 'data-ftype' ) ) {
|
2564 |
+
changes.nextElementSibling.querySelector( '.frm_button_submit' ).textContent = newValue;
|
2565 |
+
}
|
2566 |
}
|
2567 |
}
|
2568 |
|
2569 |
+
function updateSliderFieldPreview( field, att, newValue ) {
|
2570 |
+
if ( 'value' === att ) {
|
2571 |
+
if ( '' === newValue ) {
|
2572 |
+
newValue = getSliderMidpoint( field );
|
2573 |
+
}
|
2574 |
+
field.value = newValue;
|
2575 |
+
} else {
|
2576 |
+
field.setAttribute( att, newValue );
|
2577 |
+
}
|
2578 |
+
|
2579 |
+
if ( -1 === [ 'value', 'min', 'max' ].indexOf( att ) ) {
|
2580 |
+
return;
|
2581 |
+
}
|
2582 |
+
|
2583 |
+
if ( ( 'max' === att || 'min' === att ) && '' === getSliderDefaultValueInput( field.id ) ) {
|
2584 |
+
field.value = getSliderMidpoint( field );
|
2585 |
+
}
|
2586 |
+
|
2587 |
+
field.parentNode.querySelector( '.frm_range_value' ).textContent = field.value;
|
2588 |
+
}
|
2589 |
+
|
2590 |
+
function getSliderDefaultValueInput( previewInputId ) {
|
2591 |
+
return document.querySelector( 'input[data-changeme="' + previewInputId + '"][data-changeatt="value"]' ).value;
|
2592 |
+
}
|
2593 |
+
|
2594 |
+
function getSliderMidpoint( sliderInput ) {
|
2595 |
+
const max = parseFloat( sliderInput.getAttribute( 'max' ) );
|
2596 |
+
const min = parseFloat( sliderInput.getAttribute( 'min' ) );
|
2597 |
+
return ( max - min ) / 2 + min;
|
2598 |
+
}
|
2599 |
+
|
2600 |
+
function isSliderField( previewInput ) {
|
2601 |
+
return 'range' === previewInput.type && previewInput.parentNode.classList.contains( 'frm_range_container' );
|
2602 |
+
}
|
2603 |
+
|
2604 |
function toggleInvalidMsg() {
|
2605 |
/*jshint validthis:true */
|
2606 |
var typeDropdown, fieldType,
|
3125 |
}
|
3126 |
|
3127 |
function duplicateFieldGroup() {
|
3128 |
+
var hoverTarget, newRowId, $newRow, $fields, syncDetails, expectedLength, duplicatedCount, originalFieldIdByDuplicatedFieldId, injectedCloneOptions;
|
3129 |
|
3130 |
hoverTarget = document.querySelector( '.frm-field-group-hover-target' );
|
3131 |
|
3146 |
|
3147 |
expectedLength = $fields.length;
|
3148 |
duplicatedCount = 0;
|
3149 |
+
originalFieldIdByDuplicatedFieldId = {};
|
3150 |
|
3151 |
$newRow.on(
|
3152 |
'frm_added_duplicated_field_to_row',
|
3153 |
+
function( event, args ) {
|
3154 |
var $duplicatedFields, index;
|
3155 |
|
3156 |
+
originalFieldIdByDuplicatedFieldId[ jQuery( args.duplicatedFieldHtml ).attr( 'data-fid' ) ] = args.originalFieldId;
|
3157 |
+
|
3158 |
if ( expectedLength > ++duplicatedCount ) {
|
3159 |
return;
|
3160 |
}
|
3168 |
);
|
3169 |
|
3170 |
for ( index = 0; index < expectedLength; ++index ) {
|
3171 |
+
$newRowUl.append( $newRowUl.children( 'li.form-field[frm-field-order="' + index + '"]' ) );
|
|
|
|
|
3172 |
}
|
3173 |
|
3174 |
syncLayoutClasses( $duplicatedFields.first(), syncDetails );
|
3175 |
$newRow.removeClass( 'frm_hidden' );
|
3176 |
updateFieldOrder();
|
3177 |
+
|
3178 |
+
getFieldsInRow( $newRowUl ).each(
|
3179 |
+
function() {
|
3180 |
+
maybeDuplicateUnsavedSettings( originalFieldIdByDuplicatedFieldId[ this.getAttribute( 'data-fid' ) ], jQuery( this ).prop( 'outerHTML' ) );
|
3181 |
+
}
|
3182 |
+
);
|
3183 |
}
|
3184 |
);
|
3185 |
|
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.
|
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-
|
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"
|
@@ -73,6 +73,7 @@ msgid "forms"
|
|
73 |
msgstr ""
|
74 |
|
75 |
#: js/src/form/inspector.js:43
|
|
|
76 |
#: languages/formidable-js-strings.php:39
|
77 |
msgid "Select Form"
|
78 |
msgstr ""
|
@@ -84,21 +85,25 @@ msgstr ""
|
|
84 |
|
85 |
#: js/src/form/inspector.js:62
|
86 |
#: classes/views/frm-forms/shortcode_opts.php:16
|
|
|
87 |
#: languages/formidable-js-strings.php:45
|
88 |
msgid "Options"
|
89 |
msgstr ""
|
90 |
|
91 |
#: js/src/form/inspector.js:66
|
|
|
92 |
#: languages/formidable-js-strings.php:48
|
93 |
msgid "Show Form Title"
|
94 |
msgstr ""
|
95 |
|
96 |
#: js/src/form/inspector.js:73
|
|
|
97 |
#: languages/formidable-js-strings.php:51
|
98 |
msgid "Show Form Description"
|
99 |
msgstr ""
|
100 |
|
101 |
#: js/src/form/inspector.js:80
|
|
|
102 |
#: languages/formidable-js-strings.php:54
|
103 |
msgid "Minimize HTML"
|
104 |
msgstr ""
|
@@ -142,40 +147,40 @@ msgstr ""
|
|
142 |
msgid "There are no plugins on your site that require a license"
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: classes/controllers/FrmAddonsController.php:
|
146 |
msgid "Installed"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: classes/controllers/FrmAddonsController.php:
|
150 |
#: classes/helpers/FrmAppHelper.php:2548
|
151 |
msgid "Active"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: classes/controllers/FrmAddonsController.php:
|
155 |
msgid "Not Installed"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: classes/controllers/FrmAddonsController.php:
|
159 |
msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: classes/controllers/FrmAddonsController.php:
|
163 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: classes/controllers/FrmAddonsController.php:
|
167 |
msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: classes/controllers/FrmAddonsController.php:
|
171 |
-
#: classes/controllers/FrmAddonsController.php:
|
172 |
#: classes/controllers/FrmWelcomeController.php:141
|
173 |
#: classes/views/frm-forms/new-form-overlay.php:112
|
174 |
#: classes/views/shared/reports-info.php:24
|
175 |
msgid "Upgrade Now"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: classes/controllers/FrmAddonsController.php:
|
179 |
msgid "Your plugin has been installed. Please reload the page to see more options."
|
180 |
msgstr ""
|
181 |
|
@@ -228,6 +233,7 @@ msgstr ""
|
|
228 |
#: classes/controllers/FrmEntriesController.php:84
|
229 |
#: classes/controllers/FrmFormsController.php:673
|
230 |
#: classes/views/xml/import_form.php:152
|
|
|
231 |
#: classes/widgets/FrmShowForm.php:59
|
232 |
msgid "Form"
|
233 |
msgstr ""
|
@@ -320,6 +326,7 @@ msgstr ""
|
|
320 |
#: classes/controllers/FrmStylesController.php:51
|
321 |
#: classes/controllers/FrmXMLController.php:258
|
322 |
#: classes/views/frm-forms/list.php:10
|
|
|
323 |
msgid "Forms"
|
324 |
msgstr ""
|
325 |
|
@@ -634,6 +641,7 @@ msgstr ""
|
|
634 |
#: classes/views/frm-forms/create-template-from-an-existing-form.php:25
|
635 |
#: classes/views/styles/manage.php:59
|
636 |
#: classes/views/xml/import_form.php:133
|
|
|
637 |
msgid "(no title)"
|
638 |
msgstr ""
|
639 |
|
@@ -1215,7 +1223,7 @@ msgstr ""
|
|
1215 |
#: classes/views/frm-forms/new-form-overlay.php:139
|
1216 |
#: classes/views/shared/admin-header.php:63
|
1217 |
#: classes/views/shared/confirm-overlay.php:19
|
1218 |
-
#: js/formidable_admin.js:
|
1219 |
msgid "Cancel"
|
1220 |
msgstr ""
|
1221 |
|
@@ -1242,7 +1250,7 @@ msgstr ""
|
|
1242 |
|
1243 |
#: classes/helpers/FrmAppHelper.php:2514
|
1244 |
#: classes/helpers/FrmListHelper.php:405
|
1245 |
-
#: js/formidable_admin.js:
|
1246 |
msgid "Heads up"
|
1247 |
msgstr ""
|
1248 |
|
@@ -1624,11 +1632,11 @@ msgstr ""
|
|
1624 |
msgid "Vietnamese"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: classes/helpers/FrmAppHelper.php:
|
1628 |
msgid "Your account has expired"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: classes/helpers/FrmAppHelper.php:
|
1632 |
msgid "Renew Now"
|
1633 |
msgstr ""
|
1634 |
|
@@ -1750,7 +1758,7 @@ msgstr ""
|
|
1750 |
#: classes/helpers/FrmFormsHelper.php:1134
|
1751 |
#: classes/helpers/FrmFormsListHelper.php:133
|
1752 |
#: classes/views/frm-form-actions/form_action.php:25
|
1753 |
-
#: js/formidable_admin.js:
|
1754 |
msgid "Delete"
|
1755 |
msgstr ""
|
1756 |
|
@@ -4722,7 +4730,7 @@ msgid "Conditional emails"
|
|
4722 |
msgstr ""
|
4723 |
|
4724 |
#: classes/views/frm-form-actions/form_action.php:21
|
4725 |
-
#: js/formidable_admin.js:
|
4726 |
msgid "Duplicate"
|
4727 |
msgstr ""
|
4728 |
|
@@ -4847,7 +4855,7 @@ msgid "Move Field"
|
|
4847 |
msgstr ""
|
4848 |
|
4849 |
#: classes/views/frm-forms/add_field.php:29
|
4850 |
-
#: js/formidable_admin.js:
|
4851 |
msgid "More Options"
|
4852 |
msgstr ""
|
4853 |
|
@@ -5501,36 +5509,31 @@ msgstr ""
|
|
5501 |
msgid "Site Key"
|
5502 |
msgstr ""
|
5503 |
|
5504 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5505 |
-
#: classes/views/frm-settings/recaptcha.php:33
|
5506 |
-
msgid "Optional"
|
5507 |
-
msgstr ""
|
5508 |
-
|
5509 |
-
#: classes/views/frm-settings/recaptcha.php:29
|
5510 |
msgid "Secret Key"
|
5511 |
msgstr ""
|
5512 |
|
5513 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5514 |
msgid "reCAPTCHA Type"
|
5515 |
msgstr ""
|
5516 |
|
5517 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5518 |
msgid "Checkbox (V2)"
|
5519 |
msgstr ""
|
5520 |
|
5521 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5522 |
msgid "Invisible"
|
5523 |
msgstr ""
|
5524 |
|
5525 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5526 |
msgid "reCAPTCHA Language"
|
5527 |
msgstr ""
|
5528 |
|
5529 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5530 |
msgid "Browser Default"
|
5531 |
msgstr ""
|
5532 |
|
5533 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5534 |
msgid "Allow multiple reCaptchas to be used on a single page"
|
5535 |
msgstr ""
|
5536 |
|
@@ -6217,47 +6220,47 @@ msgstr ""
|
|
6217 |
msgid "Error"
|
6218 |
msgstr ""
|
6219 |
|
6220 |
-
#: js/formidable_admin.js:
|
6221 |
msgid "Field settings"
|
6222 |
msgstr ""
|
6223 |
|
6224 |
-
#: js/formidable_admin.js:
|
6225 |
msgid "Delete Group"
|
6226 |
msgstr ""
|
6227 |
|
6228 |
-
#: js/formidable_admin.js:
|
6229 |
msgid "Duplicate Group"
|
6230 |
msgstr ""
|
6231 |
|
6232 |
-
#: js/formidable_admin.js:
|
6233 |
msgid "Custom layout"
|
6234 |
msgstr ""
|
6235 |
|
6236 |
-
#: js/formidable_admin.js:
|
6237 |
msgid "Break into rows"
|
6238 |
msgstr ""
|
6239 |
|
6240 |
-
#: js/formidable_admin.js:
|
6241 |
msgid "Row Layout"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
-
#: js/formidable_admin.js:
|
6245 |
msgid "Enter number of columns for each field"
|
6246 |
msgstr ""
|
6247 |
|
6248 |
-
#: js/formidable_admin.js:
|
6249 |
msgid "Layouts are based on a 12-column grid system"
|
6250 |
msgstr ""
|
6251 |
|
6252 |
-
#: js/formidable_admin.js:
|
6253 |
msgid "Save"
|
6254 |
msgstr ""
|
6255 |
|
6256 |
-
#: js/formidable_admin.js:
|
6257 |
msgid "Merge into row"
|
6258 |
msgstr ""
|
6259 |
|
6260 |
#. translators: %1$s: Number of fields that are selected to be deleted.
|
6261 |
-
#: js/formidable_admin.js:
|
6262 |
msgid "Are you sure you want to delete these %1$s selected fields?"
|
6263 |
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.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"
|
73 |
msgstr ""
|
74 |
|
75 |
#: js/src/form/inspector.js:43
|
76 |
+
#: classes/widgets/FrmElementorWidget.php:29
|
77 |
#: languages/formidable-js-strings.php:39
|
78 |
msgid "Select Form"
|
79 |
msgstr ""
|
85 |
|
86 |
#: js/src/form/inspector.js:62
|
87 |
#: classes/views/frm-forms/shortcode_opts.php:16
|
88 |
+
#: classes/widgets/FrmElementorWidget.php:48
|
89 |
#: languages/formidable-js-strings.php:45
|
90 |
msgid "Options"
|
91 |
msgstr ""
|
92 |
|
93 |
#: js/src/form/inspector.js:66
|
94 |
+
#: classes/widgets/FrmElementorWidget.php:53
|
95 |
#: languages/formidable-js-strings.php:48
|
96 |
msgid "Show Form Title"
|
97 |
msgstr ""
|
98 |
|
99 |
#: js/src/form/inspector.js:73
|
100 |
+
#: classes/widgets/FrmElementorWidget.php:54
|
101 |
#: languages/formidable-js-strings.php:51
|
102 |
msgid "Show Form Description"
|
103 |
msgstr ""
|
104 |
|
105 |
#: js/src/form/inspector.js:80
|
106 |
+
#: classes/widgets/FrmElementorWidget.php:55
|
107 |
#: languages/formidable-js-strings.php:54
|
108 |
msgid "Minimize HTML"
|
109 |
msgstr ""
|
147 |
msgid "There are no plugins on your site that require a license"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: classes/controllers/FrmAddonsController.php:615
|
151 |
msgid "Installed"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: classes/controllers/FrmAddonsController.php:620
|
155 |
#: classes/helpers/FrmAppHelper.php:2548
|
156 |
msgid "Active"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: classes/controllers/FrmAddonsController.php:625
|
160 |
msgid "Not Installed"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: classes/controllers/FrmAddonsController.php:912
|
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 |
|
233 |
#: classes/controllers/FrmEntriesController.php:84
|
234 |
#: classes/controllers/FrmFormsController.php:673
|
235 |
#: classes/views/xml/import_form.php:152
|
236 |
+
#: classes/widgets/FrmElementorWidget.php:37
|
237 |
#: classes/widgets/FrmShowForm.php:59
|
238 |
msgid "Form"
|
239 |
msgstr ""
|
326 |
#: classes/controllers/FrmStylesController.php:51
|
327 |
#: classes/controllers/FrmXMLController.php:258
|
328 |
#: classes/views/frm-forms/list.php:10
|
329 |
+
#: classes/widgets/FrmElementorWidget.php:14
|
330 |
msgid "Forms"
|
331 |
msgstr ""
|
332 |
|
641 |
#: classes/views/frm-forms/create-template-from-an-existing-form.php:25
|
642 |
#: classes/views/styles/manage.php:59
|
643 |
#: classes/views/xml/import_form.php:133
|
644 |
+
#: classes/widgets/FrmElementorWidget.php:77
|
645 |
msgid "(no title)"
|
646 |
msgstr ""
|
647 |
|
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 |
|
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 |
|
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 |
#: 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 |
|
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 |
msgstr ""
|
4856 |
|
4857 |
#: classes/views/frm-forms/add_field.php:29
|
4858 |
+
#: js/formidable_admin.js:1192
|
4859 |
msgid "More Options"
|
4860 |
msgstr ""
|
4861 |
|
5509 |
msgid "Site Key"
|
5510 |
msgstr ""
|
5511 |
|
5512 |
+
#: classes/views/frm-settings/recaptcha.php:27
|
|
|
|
|
|
|
|
|
|
|
5513 |
msgid "Secret Key"
|
5514 |
msgstr ""
|
5515 |
|
5516 |
+
#: classes/views/frm-settings/recaptcha.php:34
|
5517 |
msgid "reCAPTCHA Type"
|
5518 |
msgstr ""
|
5519 |
|
5520 |
+
#: classes/views/frm-settings/recaptcha.php:38
|
5521 |
msgid "Checkbox (V2)"
|
5522 |
msgstr ""
|
5523 |
|
5524 |
+
#: classes/views/frm-settings/recaptcha.php:41
|
5525 |
msgid "Invisible"
|
5526 |
msgstr ""
|
5527 |
|
5528 |
+
#: classes/views/frm-settings/recaptcha.php:48
|
5529 |
msgid "reCAPTCHA Language"
|
5530 |
msgstr ""
|
5531 |
|
5532 |
+
#: classes/views/frm-settings/recaptcha.php:52
|
5533 |
msgid "Browser Default"
|
5534 |
msgstr ""
|
5535 |
|
5536 |
+
#: classes/views/frm-settings/recaptcha.php:66
|
5537 |
msgid "Allow multiple reCaptchas to be used on a single page"
|
5538 |
msgstr ""
|
5539 |
|
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 ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: forms, contact form, form builder, survey, form maker, form creator, paypa
|
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 5.8
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 5.0.
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
@@ -440,6 +440,14 @@ 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.02 =
|
444 |
* New: Field groups can now be duplicated and deleted.
|
445 |
|
@@ -475,7 +483,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
|
|
475 |
* Fix: Images were not properly loading when styles were loading via an AJAX request.
|
476 |
* Fix: Zeros were not appearing in the entries list for repeaters.
|
477 |
|
478 |
-
= 4.11.02 =
|
479 |
-
* New: The padding for descriptions can now be customized when editing styles.
|
480 |
-
|
481 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|
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 |
|
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.
|
446 |
+
* New: Next button label and slider field label previews will now update as soon as the setting is changed in the form builder.
|
447 |
+
* New: Slider field previews will now update when the min and max values are updated in the form builder.
|
448 |
+
* Fix: The search dropdown was getting cut off on pages with no search results.
|
449 |
+
* Fix: When legacy views or visual views are active, both versions were appearing active on the add ons page.
|
450 |
+
|
451 |
= 5.0.02 =
|
452 |
* New: Field groups can now be duplicated and deleted.
|
453 |
|
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>
|