Version Description
- New: Added a new welcome screen to introduce new users to Formidable.
- Fix: Make sure that Site Health exists when upgrading.
- Fix: Invalid message data was occasionally appearing in the Inbox.
- Fix: Excluded checkbox options were not properly toggling for Action Taxonomies.
- Fix: Some pop ups were occasionally including outdated text.
Download this release
Release Info
Developer | formidableforms |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 4.09.06 |
Comparing to | |
See all releases |
Code changes from version 4.09.05 to 4.09.06
- classes/controllers/FrmAddonsController.php +12 -1
- classes/controllers/FrmAppController.php +17 -1
- classes/controllers/FrmHooksController.php +1 -0
- classes/controllers/FrmWelcomeController.php +159 -0
- classes/helpers/FrmAppHelper.php +1 -1
- classes/models/FrmInbox.php +2 -2
- classes/models/FrmMigrate.php +2 -0
- classes/views/welcome/show.php +92 -0
- css/frm_admin.css +2 -1
- css/welcome_screen.css +184 -0
- formidable.php +8 -1
- images/icons.svg +1 -1
- js/bootstrap-multiselect.js +2 -2
- js/formidable.js +5 -5
- js/formidable.min.js +10 -10
- js/formidable_admin.js +25 -20
- languages/formidable.pot +81 -19
- readme.txt +9 -2
classes/controllers/FrmAddonsController.php
CHANGED
@@ -45,6 +45,17 @@ class FrmAddonsController {
|
|
45 |
$license_type = isset( $addons['error']['type'] ) ? $addons['error']['type'] : '';
|
46 |
unset( $addons['error'] );
|
47 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
self::prepare_addons( $addons );
|
49 |
|
50 |
$pricing = FrmAppHelper::admin_upgrade_link( 'addons' );
|
@@ -91,7 +102,7 @@ class FrmAddonsController {
|
|
91 |
protected static function fallback_plugin_list() {
|
92 |
$list = array(
|
93 |
'formidable-pro' => array(
|
94 |
-
'title' => 'Formidable Forms',
|
95 |
'link' => 'pricing/',
|
96 |
'docs' => '',
|
97 |
'excerpt' => 'Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in minutes.',
|
45 |
$license_type = isset( $addons['error']['type'] ) ? $addons['error']['type'] : '';
|
46 |
unset( $addons['error'] );
|
47 |
}
|
48 |
+
|
49 |
+
$pro = array(
|
50 |
+
'pro' => array(
|
51 |
+
'title' => 'Formidable Forms Pro',
|
52 |
+
'slug' => 'formidable-pro',
|
53 |
+
'released' => '2011-02-05',
|
54 |
+
'docs' => 'knowledgebase/',
|
55 |
+
'excerpt' => 'Create calculators, surveys, smart forms, and data-driven applications. Build directories, real estate listings, job boards, and much more.',
|
56 |
+
),
|
57 |
+
);
|
58 |
+
$addons = $pro + $addons;
|
59 |
self::prepare_addons( $addons );
|
60 |
|
61 |
$pricing = FrmAppHelper::admin_upgrade_link( 'addons' );
|
102 |
protected static function fallback_plugin_list() {
|
103 |
$list = array(
|
104 |
'formidable-pro' => array(
|
105 |
+
'title' => 'Formidable Forms Pro',
|
106 |
'link' => 'pricing/',
|
107 |
'docs' => '',
|
108 |
'excerpt' => 'Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in minutes.',
|
classes/controllers/FrmAppController.php
CHANGED
@@ -94,6 +94,7 @@ class FrmAppController {
|
|
94 |
'formidable-styles',
|
95 |
'formidable-styles2',
|
96 |
'formidable-inbox',
|
|
|
97 |
);
|
98 |
|
99 |
$get_page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
|
@@ -267,7 +268,7 @@ class FrmAppController {
|
|
267 |
include $shared_path . 'upgrade_overlay.php';
|
268 |
include $shared_path . 'confirm-overlay.php';
|
269 |
|
270 |
-
if ( FrmAppHelper::is_admin_page( 'formidable' ) && in_array( FrmAppHelper::get_param( 'frm_action' ), array( '', 'list', 'trash' ), true ) ) {
|
271 |
self::new_form_overlay_html();
|
272 |
}
|
273 |
}
|
@@ -562,6 +563,8 @@ class FrmAppController {
|
|
562 |
set_transient( 'frm_updating_api', true, MINUTE_IN_SECONDS );
|
563 |
$request = new WP_REST_Request( 'GET', '/frm-admin/v1/install' );
|
564 |
|
|
|
|
|
565 |
if ( $blog_id ) {
|
566 |
switch_to_blog( $blog_id );
|
567 |
$response = rest_do_request( $request );
|
@@ -576,6 +579,19 @@ class FrmAppController {
|
|
576 |
}
|
577 |
}
|
578 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
579 |
/**
|
580 |
* @since 3.0
|
581 |
*/
|
94 |
'formidable-styles',
|
95 |
'formidable-styles2',
|
96 |
'formidable-inbox',
|
97 |
+
'formidable-welcome',
|
98 |
);
|
99 |
|
100 |
$get_page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
|
268 |
include $shared_path . 'upgrade_overlay.php';
|
269 |
include $shared_path . 'confirm-overlay.php';
|
270 |
|
271 |
+
if ( ( FrmAppHelper::is_admin_page( 'formidable' ) || FrmAppHelper::is_admin_page( 'formidable-welcome' ) ) && in_array( FrmAppHelper::get_param( 'frm_action' ), array( '', 'list', 'trash' ), true ) ) {
|
272 |
self::new_form_overlay_html();
|
273 |
}
|
274 |
}
|
563 |
set_transient( 'frm_updating_api', true, MINUTE_IN_SECONDS );
|
564 |
$request = new WP_REST_Request( 'GET', '/frm-admin/v1/install' );
|
565 |
|
566 |
+
self::maybe_add_wp_site_health();
|
567 |
+
|
568 |
if ( $blog_id ) {
|
569 |
switch_to_blog( $blog_id );
|
570 |
$response = rest_do_request( $request );
|
579 |
}
|
580 |
}
|
581 |
|
582 |
+
/**
|
583 |
+
* Make sure WP_Site_Health has been included because it is required when calling rest_do_request.
|
584 |
+
* Check first that the file exists because WP_Site_Health was only introduced in WordPress 5.2.
|
585 |
+
*/
|
586 |
+
private static function maybe_add_wp_site_health() {
|
587 |
+
if ( ! class_exists( 'WP_Site_Health' ) ) {
|
588 |
+
$wp_site_health_path = ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
|
589 |
+
if ( file_exists( $wp_site_health_path ) ) {
|
590 |
+
require_once $wp_site_health_path;
|
591 |
+
}
|
592 |
+
}
|
593 |
+
}
|
594 |
+
|
595 |
/**
|
596 |
* @since 3.0
|
597 |
*/
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -150,6 +150,7 @@ class FrmHooksController {
|
|
150 |
add_action( 'admin_init', 'FrmUsageController::schedule_send' );
|
151 |
|
152 |
FrmSMTPController::load_hooks();
|
|
|
153 |
}
|
154 |
|
155 |
public static function load_ajax_hooks() {
|
150 |
add_action( 'admin_init', 'FrmUsageController::schedule_send' );
|
151 |
|
152 |
FrmSMTPController::load_hooks();
|
153 |
+
FrmWelcomeController::load_hooks();
|
154 |
}
|
155 |
|
156 |
public static function load_ajax_hooks() {
|
classes/controllers/FrmWelcomeController.php
ADDED
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
|
6 |
+
class FrmWelcomeController {
|
7 |
+
|
8 |
+
public static $menu_slug = 'formidable-welcome';
|
9 |
+
|
10 |
+
public static $option_name = 'frm_activation_redirect';
|
11 |
+
|
12 |
+
private static $last_redirect = 'frm_welcome_redirect';
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Register all of the hooks related to the welcome screen functionality
|
16 |
+
*
|
17 |
+
* @access public
|
18 |
+
*/
|
19 |
+
public static function load_hooks() {
|
20 |
+
add_action( 'admin_init', __CLASS__ . '::redirect' );
|
21 |
+
|
22 |
+
if ( ! FrmAppHelper::is_admin_page( self::$menu_slug ) ) {
|
23 |
+
return;
|
24 |
+
}
|
25 |
+
|
26 |
+
add_action( 'admin_menu', __CLASS__ . '::screen_page' );
|
27 |
+
add_action( 'admin_head', __CLASS__ . '::remove_menu' );
|
28 |
+
add_action( 'admin_enqueue_scripts', __CLASS__ . '::enqueue_styles' );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Performs a safe (local) redirect to the welcome screen
|
33 |
+
* when the plugin is activated
|
34 |
+
*
|
35 |
+
* @return void
|
36 |
+
*/
|
37 |
+
public static function redirect() {
|
38 |
+
$current_page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
|
39 |
+
if ( $current_page === self::$menu_slug ) {
|
40 |
+
// Prevent endless loop.
|
41 |
+
return;
|
42 |
+
}
|
43 |
+
|
44 |
+
// Only do this for single site installs.
|
45 |
+
if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // WPCS: CSRF ok.
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
|
49 |
+
// Check if we should consider redirection.
|
50 |
+
if ( ! self::is_welcome_screen() ) {
|
51 |
+
return;
|
52 |
+
}
|
53 |
+
|
54 |
+
set_transient( self::$option_name, 'no', 60 );
|
55 |
+
|
56 |
+
// Prevent redirect with every activation.
|
57 |
+
if ( self::already_redirected() ) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
// Initial install.
|
62 |
+
wp_safe_redirect( esc_url( self::settings_link() ) );
|
63 |
+
exit;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Don't redirect every time the plugin is activated.
|
68 |
+
*/
|
69 |
+
private static function already_redirected() {
|
70 |
+
$last_redirect = get_option( self::$last_redirect );
|
71 |
+
if ( $last_redirect ) {
|
72 |
+
return true;
|
73 |
+
}
|
74 |
+
|
75 |
+
update_option( self::$last_redirect, FrmAppHelper::plugin_version(), 'no' );
|
76 |
+
return false;
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Add a submenu welcome screen for the formidable parent menu
|
81 |
+
*
|
82 |
+
* @return void
|
83 |
+
*/
|
84 |
+
public static function screen_page() {
|
85 |
+
add_submenu_page( 'formidable', 'Formidable | ' . __( 'Welcome Screen', 'formidable' ), __( 'Welcome Screen', 'formidable' ), 'read', self::$menu_slug, __CLASS__ . '::screen_content' );
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Include html content for the welcome screem
|
90 |
+
*
|
91 |
+
* @return void
|
92 |
+
*/
|
93 |
+
public static function screen_content() {
|
94 |
+
FrmAppHelper::include_svg();
|
95 |
+
include FrmAppHelper::plugin_path() . '/classes/views/welcome/show.php';
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Remove the welcome screen submenu page from the formidable parent menu
|
100 |
+
* since it is not necessary to show that link there
|
101 |
+
*
|
102 |
+
* @return void
|
103 |
+
*/
|
104 |
+
public static function remove_menu() {
|
105 |
+
remove_submenu_page( 'formidable', self::$menu_slug );
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Register the stylesheets for the welcome screen.
|
110 |
+
*
|
111 |
+
* @return void
|
112 |
+
*/
|
113 |
+
public static function enqueue_styles() {
|
114 |
+
$version = FrmAppHelper::plugin_version();
|
115 |
+
wp_enqueue_style( 'frm-welcome-screen', FrmAppHelper::plugin_url() . '/css/welcome_screen.css', array( 'formidable-admin' ), $version );
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Helps to confirm if the user is currently on the welcome screen
|
120 |
+
*
|
121 |
+
* @return bool
|
122 |
+
*/
|
123 |
+
public static function is_welcome_screen() {
|
124 |
+
$to_redirect = get_transient( self::$option_name );
|
125 |
+
return $to_redirect === self::$menu_slug;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Build the admin URL link for the welcome screen
|
130 |
+
*
|
131 |
+
* @return string
|
132 |
+
*/
|
133 |
+
public static function settings_link() {
|
134 |
+
return admin_url( 'admin.php?page=' . self::$menu_slug );
|
135 |
+
}
|
136 |
+
|
137 |
+
public static function upgrade_to_pro_button() {
|
138 |
+
if ( ! FrmAppHelper::pro_is_installed() ) {
|
139 |
+
?>
|
140 |
+
<a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'settings-license' ) ); ?>" class="button-secondary frm-button-secondary" target="_blank" rel="nofollow noopener">
|
141 |
+
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
142 |
+
</a>
|
143 |
+
<?php
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
public static function maybe_show_license_box() {
|
148 |
+
if ( ! FrmAppHelper::pro_is_installed() ) {
|
149 |
+
FrmSettingsController::license_box();
|
150 |
+
}
|
151 |
+
}
|
152 |
+
|
153 |
+
public static function maybe_show_conditional_action_button( $plugin, $upgrade_link_args ) {
|
154 |
+
$is_installed = is_callable( 'FrmProAppHelper::views_is_installed' ) && FrmProAppHelper::views_is_installed();
|
155 |
+
if ( ! $is_installed ) {
|
156 |
+
FrmAddonsController::conditional_action_button( $plugin, $upgrade_link_args );
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '4.09.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '4.09.06';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
classes/models/FrmInbox.php
CHANGED
@@ -140,7 +140,7 @@ class FrmInbox extends FrmFormApi {
|
|
140 |
$user_id = get_current_user_id();
|
141 |
foreach ( $messages as $k => $message ) {
|
142 |
$dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] );
|
143 |
-
if ( $this->is_expired( $message ) || $dismissed ) {
|
144 |
unset( $messages[ $k ] );
|
145 |
} elseif ( ! $this->is_for_user( $message ) ) {
|
146 |
unset( $messages[ $k ] );
|
@@ -176,7 +176,7 @@ class FrmInbox extends FrmFormApi {
|
|
176 |
* @param string $key
|
177 |
*/
|
178 |
public function mark_read( $key ) {
|
179 |
-
if ( ! isset( $this->messages[ $key ] ) ) {
|
180 |
return;
|
181 |
}
|
182 |
|
140 |
$user_id = get_current_user_id();
|
141 |
foreach ( $messages as $k => $message ) {
|
142 |
$dismissed = isset( $message['dismissed'] ) && isset( $message['dismissed'][ $user_id ] );
|
143 |
+
if ( empty( $k ) || $this->is_expired( $message ) || $dismissed ) {
|
144 |
unset( $messages[ $k ] );
|
145 |
} elseif ( ! $this->is_for_user( $message ) ) {
|
146 |
unset( $messages[ $k ] );
|
176 |
* @param string $key
|
177 |
*/
|
178 |
public function mark_read( $key ) {
|
179 |
+
if ( ! $key || ! isset( $this->messages[ $key ] ) ) {
|
180 |
return;
|
181 |
}
|
182 |
|
classes/models/FrmMigrate.php
CHANGED
@@ -234,6 +234,7 @@ class FrmMigrate {
|
|
234 |
delete_option( 'frm-usage-uuid' );
|
235 |
delete_option( 'frm_inbox' );
|
236 |
delete_option( 'frmpro_css' );
|
|
|
237 |
|
238 |
// Delete roles.
|
239 |
$frm_roles = FrmAppHelper::frm_capabilities();
|
@@ -264,6 +265,7 @@ class FrmMigrate {
|
|
264 |
delete_transient( 'frmpro_css' );
|
265 |
delete_transient( 'frm_options' );
|
266 |
delete_transient( 'frmpro_options' );
|
|
|
267 |
|
268 |
$wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) );
|
269 |
|
234 |
delete_option( 'frm-usage-uuid' );
|
235 |
delete_option( 'frm_inbox' );
|
236 |
delete_option( 'frmpro_css' );
|
237 |
+
delete_option( 'frm_welcome_redirect' );
|
238 |
|
239 |
// Delete roles.
|
240 |
$frm_roles = FrmAppHelper::frm_capabilities();
|
265 |
delete_transient( 'frmpro_css' );
|
266 |
delete_transient( 'frm_options' );
|
267 |
delete_transient( 'frmpro_options' );
|
268 |
+
delete_transient( 'frm_activation_redirect' );
|
269 |
|
270 |
$wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) );
|
271 |
|
classes/views/welcome/show.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
?>
|
6 |
+
<div class="frm_wrap">
|
7 |
+
<div class="frm_grid_container frm_no_grid_750">
|
8 |
+
<div class="frm6">
|
9 |
+
<div class="frm-ws-block-1">
|
10 |
+
<div class="frm-ws-logo">
|
11 |
+
<?php
|
12 |
+
FrmAppHelper::show_logo(
|
13 |
+
array(
|
14 |
+
'height' => 68.76,
|
15 |
+
'width' => 69,
|
16 |
+
)
|
17 |
+
);
|
18 |
+
?>
|
19 |
+
</div>
|
20 |
+
<h1><?php esc_html_e( 'Welcome to Formidable Forms!', 'formidable' ); ?></h1>
|
21 |
+
<p><?php esc_html_e( 'Thanks for choosing Formidable Froms - The most powerful and vesatile form builder for Wordpress', 'formidable' ); ?></p>
|
22 |
+
<?php FrmWelcomeController::maybe_show_license_box(); ?>
|
23 |
+
|
24 |
+
</div>
|
25 |
+
</div>
|
26 |
+
<div class="frm6">
|
27 |
+
<div class="frm-player">
|
28 |
+
<iframe width="480" height="240" src="https://www.youtube.com/embed/-eGuL_OWHw4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
|
33 |
+
<div class="frm_grid_container frm-top-spacing">
|
34 |
+
<div class="frm6 frm-ws-block frm-create-blank-form">
|
35 |
+
<div class="frm-icon"><?php FrmAppHelper::icon_by_class( 'frmfont frm_plus_icon' ); ?></div>
|
36 |
+
<div class="frm-fill">
|
37 |
+
<h3><?php esc_html_e( 'New Blank Form', 'formidable' ); ?></h3>
|
38 |
+
<p><?php esc_html_e( 'Create a new view from scratch', 'formidable' ); ?></p>
|
39 |
+
</div>
|
40 |
+
<?php FrmAppHelper::icon_by_class( 'frmfont frm_arrow_right_icon frm-right-arrow' ); ?>
|
41 |
+
</div>
|
42 |
+
<div class="frm6 frm-ws-block frm-trigger-new-form-modal">
|
43 |
+
<div class="frm-icon frm-icon-briefcase">
|
44 |
+
<svg viewBox="0 0 24 24" fill="none"><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.5a1 1 0 01-1 1z" fill="currentColor" fill-opacity=".6"/><path d="M18 12.5v1c0 .3-.3.7-.8.7s-.7-.4-.7-.8v-.9h-9v1c0 .3-.3.7-.8.7s-.7-.4-.7-.8v-.9H0v6.8A2.8 2.8 0 002.8 22h18.4a2.8 2.8 0 002.8-2.8v-6.7h-6zM21.3 5H2.6A2.8 2.8 0 000 7.8V11h6V9.7c0-.4.3-.7.8-.7s.7.3.7.8V11h9V9.7c0-.4.3-.7.8-.7s.7.3.7.8V11h6V7.7A2.8 2.8 0 0021.2 5z" fill="currentColor"/></svg>
|
45 |
+
</div>
|
46 |
+
<div class="frm-fill">
|
47 |
+
<h3><?php esc_html_e( 'New Form From a Template', 'formidable' ); ?></h3>
|
48 |
+
<p><?php esc_html_e( 'Check out our powerful pre-built templates', 'formidable' ); ?></p>
|
49 |
+
</div>
|
50 |
+
<?php FrmAppHelper::icon_by_class( 'frmfont frm_arrow_right_icon frm-right-arrow' ); ?>
|
51 |
+
</div>
|
52 |
+
</div>
|
53 |
+
|
54 |
+
<div class="frm-ws-carousel-wrapper">
|
55 |
+
<h4><?php esc_html_e( 'Get limitless possibilities', 'formidable' ); ?></h4>
|
56 |
+
|
57 |
+
<div class="frm_grid_container">
|
58 |
+
<div class="frm3">
|
59 |
+
<div class="frm-icon">
|
60 |
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 65 65"><path d="M57 39.5V11a4 4 0 00-4-4H11a4 4 0 00-4 4v42a4 4 0 004 4h42a4 4 0 004-4v-3M32.5 8.5v48" stroke="currentColor" stroke-width="3" stroke-linecap="round"/><path d="M40 28h10.5M40 34h10.5" stroke="currentColor" opacity=".6" stroke-width="3" stroke-linecap="round"/><path d="M32 33H8m12.5-18.5V25m3.6 16.2l-7.4 7.4M15 20h10.5m-9.1 21.2l7.4 7.4" stroke="currentColor" stroke-width="3" stroke-linecap="round"/></svg>
|
61 |
+
</div>
|
62 |
+
<h3><?php esc_html_e( 'Calculators', 'formidable' ); ?></h3>
|
63 |
+
<p><?php esc_html_e( 'Give instant online estimates and calculate advanced product options.', 'formidable' ); ?></p>
|
64 |
+
<?php FrmWelcomeController::upgrade_to_pro_button(); ?>
|
65 |
+
</div>
|
66 |
+
<div class="frm3">
|
67 |
+
<div class="frm-icon">
|
68 |
+
<?php FrmAppHelper::icon_by_class( 'frmfont frm_comment_icon' ); ?>
|
69 |
+
</div>
|
70 |
+
<h3><?php esc_html_e( 'Survey and Polls', 'formidable' ); ?></h3>
|
71 |
+
<p><?php esc_html_e( 'Collect customer feedback & data like a pro - no coding required.', 'formidable' ); ?></p>
|
72 |
+
<?php FrmWelcomeController::upgrade_to_pro_button(); ?>
|
73 |
+
</div>
|
74 |
+
<div class="frm3">
|
75 |
+
<div class="frm-icon">
|
76 |
+
<svg viewBox="0 0 28 28" fill="none"><path d="M25 12.9L14.3 23.6a7 7 0 11-10-9.9L15.2 3a4.7 4.7 0 016.6 6.6L11 20.3A2.3 2.3 0 017.7 17l9.9-9.9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
77 |
+
</div>
|
78 |
+
<h3><?php esc_html_e( 'File uploads', 'formidable' ); ?></h3>
|
79 |
+
<p><?php esc_html_e( 'Easily upload documents, files, photos, and music for user avatars, featured images, or email attachments.', 'formidable' ); ?></p>
|
80 |
+
<?php FrmWelcomeController::upgrade_to_pro_button(); ?>
|
81 |
+
</div>
|
82 |
+
<div class="frm3">
|
83 |
+
<div class="frm-icon">
|
84 |
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.3 5.5H1.8C1 5.5.5 4.9.5 4.3V1.8C.5 1 1.1.5 1.8.5h5.4c.7 0 1.3.6 1.3 1.3v2.4c0 .7-.6 1.3-1.2 1.3zm0 9H1.8c-.7 0-1.3-.6-1.3-1.2v-2.5c0-.7.6-1.3 1.3-1.3h5.4c.7 0 1.3.6 1.3 1.2v2.5c0 .7-.6 1.3-1.2 1.3zm0 9H1.8c-.7 0-1.3-.6-1.3-1.2v-2.5c0-.7.6-1.3 1.3-1.3h5.4c.7 0 1.3.6 1.3 1.2v2.5c0 .7-.6 1.3-1.2 1.3z" stroke="currentColor" opacity=".6"/><path d="M23.3 1.4H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6zm0 2H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6zm0 7H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6zm0 2H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6zm0 7H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6zm0 2H11.7c-.4 0-.7.3-.7.6s.3.6.8.6h11.5c.4 0 .7-.3.7-.6s-.3-.6-.7-.6z" fill="currentColor"/></svg>
|
85 |
+
</div>
|
86 |
+
<h3><?php esc_html_e( 'Display form data with views', 'formidable' ); ?></h3>
|
87 |
+
<p><?php esc_html_e( 'Now you can display form data in custom Views without any PHP.', 'formidable' ); ?></p>
|
88 |
+
<?php FrmWelcomeController::maybe_show_conditional_action_button( 'views', 'views-info' ); ?>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
</div>
|
css/frm_admin.css
CHANGED
@@ -1101,7 +1101,7 @@ h2 .frm-button-primary {
|
|
1101 |
.wp-core-ui.frm-white-body .button-secondary:focus,
|
1102 |
.frm_wrap .preview > .button:hover {
|
1103 |
border-color: var(--primary-hover) !important;
|
1104 |
-
background: var(--primary-hover);
|
1105 |
color: #fff;
|
1106 |
box-shadow: none;
|
1107 |
}
|
@@ -6878,6 +6878,7 @@ li.frm_noallow.button.frm_show_upgrade {
|
|
6878 |
border-radius: 10px;
|
6879 |
border: 1px solid var(--grey);
|
6880 |
background-color: #fff;
|
|
|
6881 |
}
|
6882 |
|
6883 |
.frm-dialog .postbox {
|
1101 |
.wp-core-ui.frm-white-body .button-secondary:focus,
|
1102 |
.frm_wrap .preview > .button:hover {
|
1103 |
border-color: var(--primary-hover) !important;
|
1104 |
+
background: var(--primary-hover) !important;
|
1105 |
color: #fff;
|
1106 |
box-shadow: none;
|
1107 |
}
|
6878 |
border-radius: 10px;
|
6879 |
border: 1px solid var(--grey);
|
6880 |
background-color: #fff;
|
6881 |
+
max-width: 100% !important;
|
6882 |
}
|
6883 |
|
6884 |
.frm-dialog .postbox {
|
css/welcome_screen.css
ADDED
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body.frm-admin-page-welcome {
|
2 |
+
background: var(--sidebar-color);
|
3 |
+
color: var(--darkest-grey);
|
4 |
+
}
|
5 |
+
|
6 |
+
.frm_wrap {
|
7 |
+
max-width: 1092px;
|
8 |
+
margin: 62px auto 0;
|
9 |
+
padding: 0 20px;
|
10 |
+
}
|
11 |
+
|
12 |
+
.frm-button-secondary:hover {
|
13 |
+
background: transparent !important;
|
14 |
+
}
|
15 |
+
|
16 |
+
.frm-ws-block-1 h1 {
|
17 |
+
font-size: 30px;
|
18 |
+
line-height: 41px;
|
19 |
+
color: var(--darkest-grey);
|
20 |
+
}
|
21 |
+
|
22 |
+
.frm-ws-block-1 p {
|
23 |
+
font-size: 14px;
|
24 |
+
line-height: 25px;
|
25 |
+
opacity: 0.8;
|
26 |
+
}
|
27 |
+
|
28 |
+
#frm-connect-btns a {
|
29 |
+
border-radius: var(--border-radius);
|
30 |
+
margin: 16px 0;
|
31 |
+
padding: 12px 24px;
|
32 |
+
height: auto;
|
33 |
+
font-size: 15px;
|
34 |
+
line-height: 1;
|
35 |
+
}
|
36 |
+
|
37 |
+
#frm-connect-btns {
|
38 |
+
color: transparent; /* Hide the "or" */
|
39 |
+
opacity: 1;
|
40 |
+
}
|
41 |
+
|
42 |
+
#frm-using-lite {
|
43 |
+
display: none;
|
44 |
+
}
|
45 |
+
|
46 |
+
.frm-ws-block-1 .frm-bg-transparent {
|
47 |
+
margin-left: 16px;
|
48 |
+
}
|
49 |
+
|
50 |
+
.frm-ws-block-1 .frm-bg-transparent span {
|
51 |
+
color: var(--primary-color);
|
52 |
+
}
|
53 |
+
|
54 |
+
.frm-player {
|
55 |
+
overflow: hidden;
|
56 |
+
z-index: 1;
|
57 |
+
margin-left: 34px;
|
58 |
+
margin-top: 55px;
|
59 |
+
}
|
60 |
+
|
61 |
+
.frm-player iframe {
|
62 |
+
width: 100%;
|
63 |
+
max-width: 480px;
|
64 |
+
border-radius: 10px;
|
65 |
+
}
|
66 |
+
|
67 |
+
.frm-ws-block .frm-icon {
|
68 |
+
width: 40px;
|
69 |
+
height: 40px;
|
70 |
+
margin-right: 24px;
|
71 |
+
|
72 |
+
background: var(--primary-color);
|
73 |
+
border-radius: 4px;
|
74 |
+
}
|
75 |
+
|
76 |
+
.frm-ws-block h3 {
|
77 |
+
font-size: 14px;
|
78 |
+
color: rgba(40, 47, 54, 0.85);
|
79 |
+
margin: 2px 0;
|
80 |
+
}
|
81 |
+
|
82 |
+
.frm-ws-block p {
|
83 |
+
font-size: 13px;
|
84 |
+
opacity: 0.6;
|
85 |
+
margin: 0;
|
86 |
+
}
|
87 |
+
|
88 |
+
.frm-ws-block .frm-right-arrow {
|
89 |
+
height: 22px;
|
90 |
+
width: 19px;
|
91 |
+
align-self: center;
|
92 |
+
}
|
93 |
+
|
94 |
+
.frm-ws-block .frm-icon svg {
|
95 |
+
margin: 11px;
|
96 |
+
color: #FFFFFF;
|
97 |
+
}
|
98 |
+
|
99 |
+
.frm-ws-block .frm-icon-briefcase svg {
|
100 |
+
margin: 8px !important;
|
101 |
+
height: 24px;
|
102 |
+
width: 24px;
|
103 |
+
}
|
104 |
+
|
105 |
+
.frm-ws-block {
|
106 |
+
background: #FFFFFF;
|
107 |
+
border: 1px solid var(--sidebar-hover);
|
108 |
+
border-radius: 6px;
|
109 |
+
cursor: pointer;
|
110 |
+
padding: 24px;
|
111 |
+
display: flex;
|
112 |
+
}
|
113 |
+
|
114 |
+
.frm-fill {
|
115 |
+
flex: 1;
|
116 |
+
}
|
117 |
+
|
118 |
+
.frm-ws-carousel-wrapper h4 {
|
119 |
+
margin: 64px 0 20px;
|
120 |
+
font-size: 15px;
|
121 |
+
line-height: 157.9%;
|
122 |
+
color: rgba(40, 47, 54, 0.85);
|
123 |
+
}
|
124 |
+
|
125 |
+
.frm-ws-carousel-wrapper .frm3 {
|
126 |
+
background: #FFFFFF;
|
127 |
+
border-radius: 10px;
|
128 |
+
padding: 16px;
|
129 |
+
}
|
130 |
+
|
131 |
+
.frm-ws-carousel-wrapper .frm-icon {
|
132 |
+
height: 48px;
|
133 |
+
width: 48px;
|
134 |
+
background: var(--light-blue);
|
135 |
+
border-radius: 10px;
|
136 |
+
}
|
137 |
+
|
138 |
+
.frm-ws-carousel-wrapper .frm-icon svg {
|
139 |
+
width: 29px;
|
140 |
+
height: 29px;
|
141 |
+
margin: 9px;
|
142 |
+
color: #3F4B5B;
|
143 |
+
}
|
144 |
+
|
145 |
+
.frm-ws-carousel-wrapper h3 {
|
146 |
+
font-size: 14px;
|
147 |
+
line-height: 19px;
|
148 |
+
color: rgba(40, 47, 54, 0.85);
|
149 |
+
margin: 17px 0 8px;
|
150 |
+
}
|
151 |
+
|
152 |
+
.frm-ws-carousel-wrapper p {
|
153 |
+
font-size: 13px;
|
154 |
+
min-height: 80px;
|
155 |
+
line-height: 18px;
|
156 |
+
opacity: 0.6;
|
157 |
+
margin: 0;
|
158 |
+
}
|
159 |
+
|
160 |
+
.frm-ws-carousel-wrapper a {
|
161 |
+
font-size: 14px !important;
|
162 |
+
line-height: 19px;
|
163 |
+
text-align: center;
|
164 |
+
margin: 10px 0 0 !important;
|
165 |
+
}
|
166 |
+
|
167 |
+
.frm-top-spacing {
|
168 |
+
margin-top: 100px;
|
169 |
+
}
|
170 |
+
|
171 |
+
@media only screen and (max-width: 900px) {
|
172 |
+
.frm-ws-carousel-wrapper .frm3 {
|
173 |
+
grid-column:span 6 / span 6;
|
174 |
+
margin-bottom: 15px;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
@media only screen and (max-width: 750px) {
|
179 |
+
.frm-player,
|
180 |
+
.frm-ws-block-1 {
|
181 |
+
text-align: center;
|
182 |
+
margin-left: 0;
|
183 |
+
}
|
184 |
+
}
|
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: 4.09.
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
@@ -95,3 +95,10 @@ function frm_class_autoloader( $class_name, $filepath ) {
|
|
95 |
require( $filepath );
|
96 |
}
|
97 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
+
Version: 4.09.06
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
95 |
require( $filepath );
|
96 |
}
|
97 |
}
|
98 |
+
|
99 |
+
add_action( 'activate_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'frm_maybe_install' );
|
100 |
+
function frm_maybe_install() {
|
101 |
+
if ( get_transient( FrmWelcomeController::$option_name ) !== 'no' ) {
|
102 |
+
set_transient( FrmWelcomeController::$option_name, FrmWelcomeController::$menu_slug, 60 );
|
103 |
+
}
|
104 |
+
}
|
images/icons.svg
CHANGED
@@ -929,7 +929,7 @@
|
|
929 |
<title>Unlock</title>
|
930 |
<symbol id="frm_unlock_simple" viewBox="0 0 12 14" fill="none"><path d="M10.714 7H4.071V4.18c0-1.083.85-1.983 1.91-1.993 1.072-.011 1.948.877 1.948 1.968v.438c0 .363.286.656.642.656h.858a.648.648 0 00.642-.656v-.438c0-2.297-1.834-4.164-4.084-4.156-2.25.008-4.058 1.9-4.058 4.197V7h-.643C.576 7 0 7.587 0 8.312v4.375c0 .724.576 1.312 1.286 1.312h9.428c.71 0 1.286-.588 1.286-1.312V8.312c0-.725-.576-1.313-1.286-1.313z" fill="#F0F8FF"/></symbol>
|
931 |
<symbol id="frm_house_icon" viewBox="0 0 20 20"><path d="M19.7 9L10.4.2a.6.6 0 00-.8 0L.3 9a1 1 0 00.7 1.8h1.5v8c0 .6.6 1.2 1.3 1.2h3.5c.3 0 .6-.3.6-.6V14c0-.2.1-.3.2-.3H12s.2.1.2.3v5.4c0 .3.3.6.6.6h3.6c.6 0 1.2-.6 1.2-1.3v-7.9H19a1 1 0 00.7-1.8z" fill="currentColor"/></symbol>
|
932 |
-
<symbol id="frm_comment_icon" viewBox="0 0
|
933 |
<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>
|
934 |
<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>
|
935 |
</defs>
|
929 |
<title>Unlock</title>
|
930 |
<symbol id="frm_unlock_simple" viewBox="0 0 12 14" fill="none"><path d="M10.714 7H4.071V4.18c0-1.083.85-1.983 1.91-1.993 1.072-.011 1.948.877 1.948 1.968v.438c0 .363.286.656.642.656h.858a.648.648 0 00.642-.656v-.438c0-2.297-1.834-4.164-4.084-4.156-2.25.008-4.058 1.9-4.058 4.197V7h-.643C.576 7 0 7.587 0 8.312v4.375c0 .724.576 1.312 1.286 1.312h9.428c.71 0 1.286-.588 1.286-1.312V8.312c0-.725-.576-1.313-1.286-1.313z" fill="#F0F8FF"/></symbol>
|
931 |
<symbol id="frm_house_icon" viewBox="0 0 20 20"><path d="M19.7 9L10.4.2a.6.6 0 00-.8 0L.3 9a1 1 0 00.7 1.8h1.5v8c0 .6.6 1.2 1.3 1.2h3.5c.3 0 .6-.3.6-.6V14c0-.2.1-.3.2-.3H12s.2.1.2.3v5.4c0 .3.3.6.6.6h3.6c.6 0 1.2-.6 1.2-1.3v-7.9H19a1 1 0 00.7-1.8z" fill="currentColor"/></symbol>
|
932 |
+
<symbol id="frm_comment_icon" viewBox="0 0 36 36" fill="none"><path d="M28 23.3a2.6 2.6 0 01-2.6 2.6H11c-.6 0-1.1.2-1.5.6l-2.8 2.8a1 1 0 01-1.7-.7v-18A2.6 2.6 0 017.6 8h17.8a2.6 2.6 0 012.6 2.6v12.7z" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M12.5 2.5a1 1 0 100 2v-2zM31 19a1 1 0 102 0h-2zM12.5 4.5H27v-2H12.5v2zm18.5 4V19h2V8.5h-2zm-4-4a4 4 0 014 4h2a6 6 0 00-6-6v2z" fill="currentColor" opacity=".6"></path></symbol>
|
933 |
<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>
|
934 |
<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>
|
935 |
</defs>
|
js/bootstrap-multiselect.js
CHANGED
@@ -708,7 +708,7 @@
|
|
708 |
this.lastToggledInput = $target;
|
709 |
}
|
710 |
|
711 |
-
$target.blur
|
712 |
}, this));
|
713 |
|
714 |
// Keyboard support.
|
@@ -742,7 +742,7 @@
|
|
742 |
}
|
743 |
|
744 |
var $current = $items.eq(index);
|
745 |
-
$current.focus
|
746 |
|
747 |
if (event.keyCode === 32 || event.keyCode === 13) {
|
748 |
var $checkbox = $current.find('input');
|
708 |
this.lastToggledInput = $target;
|
709 |
}
|
710 |
|
711 |
+
$target.trigger( 'blur' );
|
712 |
}, this));
|
713 |
|
714 |
// Keyboard support.
|
742 |
}
|
743 |
|
744 |
var $current = $items.eq(index);
|
745 |
+
$current.trigger( 'focus' );
|
746 |
|
747 |
if (event.keyCode === 32 || event.keyCode === 13) {
|
748 |
var $checkbox = $current.find('input');
|
js/formidable.js
CHANGED
@@ -125,7 +125,7 @@ function frmFrontFormJS() {
|
|
125 |
* @param {object} $form
|
126 |
*/
|
127 |
function enableSubmitButton( $form ) {
|
128 |
-
$form.find( 'input[type="submit"], input[type="button"], button[type="submit"]' ).
|
129 |
}
|
130 |
|
131 |
/**
|
@@ -618,7 +618,7 @@ function frmFrontFormJS() {
|
|
618 |
}
|
619 |
},
|
620 |
error: function() {
|
621 |
-
jQuery( object ).find( 'input[type="submit"], input[type="button"]' ).
|
622 |
object.submit();
|
623 |
}
|
624 |
});
|
@@ -987,13 +987,13 @@ function frmFrontFormJS() {
|
|
987 |
|
988 |
jQuery( '.frm-show-form input[onblur], .frm-show-form textarea[onblur]' ).each( function() {
|
989 |
if ( jQuery( this ).val() === '' ) {
|
990 |
-
jQuery( this ).blur
|
991 |
}
|
992 |
});
|
993 |
|
994 |
jQuery( document ).on( 'focus', '.frm_toggle_default', clearDefault );
|
995 |
jQuery( document ).on( 'blur', '.frm_toggle_default', replaceDefault );
|
996 |
-
jQuery( '.frm_toggle_default' ).blur
|
997 |
|
998 |
jQuery( document.getElementById( 'frm_resend_email' ) ).on( 'click', resendEmail );
|
999 |
|
@@ -1202,7 +1202,7 @@ function frmFrontFormJS() {
|
|
1202 |
scrollObj = id;
|
1203 |
}
|
1204 |
|
1205 |
-
scrollObj.focus
|
1206 |
newPos = scrollObj.offset().top;
|
1207 |
if ( ! newPos || frm_js.offset === '-1' ) {
|
1208 |
return;
|
125 |
* @param {object} $form
|
126 |
*/
|
127 |
function enableSubmitButton( $form ) {
|
128 |
+
$form.find( 'input[type="submit"], input[type="button"], button[type="submit"]' ).prop( 'disabled', false );
|
129 |
}
|
130 |
|
131 |
/**
|
618 |
}
|
619 |
},
|
620 |
error: function() {
|
621 |
+
jQuery( object ).find( 'input[type="submit"], input[type="button"]' ).prop( 'disabled', false );
|
622 |
object.submit();
|
623 |
}
|
624 |
});
|
987 |
|
988 |
jQuery( '.frm-show-form input[onblur], .frm-show-form textarea[onblur]' ).each( function() {
|
989 |
if ( jQuery( this ).val() === '' ) {
|
990 |
+
jQuery( this ).trigger( 'blur' );
|
991 |
}
|
992 |
});
|
993 |
|
994 |
jQuery( document ).on( 'focus', '.frm_toggle_default', clearDefault );
|
995 |
jQuery( document ).on( 'blur', '.frm_toggle_default', replaceDefault );
|
996 |
+
jQuery( '.frm_toggle_default' ).trigger( 'blur' );
|
997 |
|
998 |
jQuery( document.getElementById( 'frm_resend_email' ) ).on( 'click', resendEmail );
|
999 |
|
1202 |
scrollObj = id;
|
1203 |
}
|
1204 |
|
1205 |
+
jQuery( scrollObj ).trigger( 'focus' );
|
1206 |
newPos = scrollObj.offset().top;
|
1207 |
if ( ! newPos || frm_js.offset === '-1' ) {
|
1208 |
return;
|
js/formidable.min.js
CHANGED
@@ -2,7 +2,7 @@ var frmFrontForm;
|
|
2 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this),$label=$field.closest(".frm_inside_container").find(".frm_primary_label"),val=$field.val();if(val!==null&&val.length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName=
|
3 |
"";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;
|
4 |
if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
5 |
-
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').
|
6 |
if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++)errors=checkRequiredField(requiredFields[r],errors);fields=jQuery(object).find("input,select,textarea");if(fields.length)for(n=0,nl=fields.length;n<nl;n++){field=fields[n];value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);
|
7 |
else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function maybeValidateChange(fieldId,field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(fieldId,field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==
|
8 |
""&&matches===null)field.value="http://"+url}function validateField(fieldId,field){var key,errors=[];var $fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);
|
@@ -22,7 +22,7 @@ window.location=response.redirect}else if(response.content!==""){removeSubmitLoa
|
|
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)}else{showFileLoading(object);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').
|
26 |
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")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==
|
27 |
-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("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=
|
28 |
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,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+
|
@@ -35,7 +35,7 @@ thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal
|
|
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 |
-
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).blur
|
39 |
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",maybeShowLabel);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",
|
40 |
confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv);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")};if(rendered)return;
|
41 |
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,
|
@@ -44,13 +44,13 @@ formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm
|
|
44 |
if(classList.indexOf("frm_ajax_submit")>-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);
|
45 |
if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},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;
|
46 |
removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object)},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,
|
47 |
-
enable,processesRunning)},scrollToID:function(id){var object=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;scrollObj.focus
|
48 |
-
if(!newPos||frm_js.offset==="-1")return;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},
|
49 |
-
fieldValueChanged:function(e){var fieldId=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)},
|
50 |
-
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");
|
51 |
-
|
52 |
-
frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}
|
53 |
-
function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}function frmAfterRecaptcha(token){frmFrontForm.afterSingleRecaptcha(token)}
|
54 |
function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
|
55 |
entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
|
56 |
function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
|
2 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this),$label=$field.closest(".frm_inside_container").find(".frm_primary_label"),val=$field.val();if(val!==null&&val.length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName=
|
3 |
"";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;
|
4 |
if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
5 |
+
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').prop("disabled",false)}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var r,rl,n,nl,fields,field,value,requiredFields,errors=[];requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
|
6 |
if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++)errors=checkRequiredField(requiredFields[r],errors);fields=jQuery(object).find("input,select,textarea");if(fields.length)for(n=0,nl=fields.length;n<nl;n++){field=fields[n];value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);
|
7 |
else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function maybeValidateChange(fieldId,field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(fieldId,field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==
|
8 |
""&&matches===null)field.value="http://"+url}function validateField(fieldId,field){var key,errors=[];var $fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);
|
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)}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=jQuery(response.content).find(".frm_message");
|
26 |
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")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==
|
27 |
-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("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=
|
28 |
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,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+
|
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 |
+
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")});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",
|
39 |
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",maybeShowLabel);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",
|
40 |
confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv);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")};if(rendered)return;
|
41 |
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,
|
44 |
if(classList.indexOf("frm_ajax_submit")>-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);
|
45 |
if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},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;
|
46 |
removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object)},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,
|
47 |
+
enable,processesRunning)},scrollToID:function(id){var object=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=
|
48 |
+
scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;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},
|
49 |
+
500);return false}}},fieldValueChanged:function(e){var fieldId=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)},
|
50 |
+
goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");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");
|
51 |
+
if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},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!==
|
52 |
+
"undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}
|
53 |
+
frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}function frmAfterRecaptcha(token){frmFrontForm.afterSingleRecaptcha(token)}
|
54 |
function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
|
55 |
entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
|
56 |
function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
|
js/formidable_admin.js
CHANGED
@@ -386,6 +386,7 @@ function frmAdminBuildJS() {
|
|
386 |
caution = link.getAttribute( 'data-frmcaution' );
|
387 |
verify = link.getAttribute( 'data-frmverify' );
|
388 |
$confirmMessage = jQuery( '.frm-confirm-msg' );
|
|
|
389 |
|
390 |
if ( caution ) {
|
391 |
frmCaution = document.createElement( 'span' );
|
@@ -2236,7 +2237,7 @@ function frmAdminBuildJS() {
|
|
2236 |
if ( $self.is( ':checked' ) ) {
|
2237 |
uncheck = function() {
|
2238 |
setTimeout( function() {
|
2239 |
-
$self.
|
2240 |
}, 0 );
|
2241 |
};
|
2242 |
unbind = function() {
|
@@ -5374,10 +5375,10 @@ function frmAdminBuildJS() {
|
|
5374 |
var exportField = jQuery( 'input[name="frm_export_forms[]"]' );
|
5375 |
if ( c === 'single' ) {
|
5376 |
exportField.prop( 'multiple', false );
|
5377 |
-
exportField.
|
5378 |
} else {
|
5379 |
exportField.prop( 'multiple', true );
|
5380 |
-
exportField.
|
5381 |
}
|
5382 |
}
|
5383 |
|
@@ -5390,13 +5391,13 @@ function frmAdminBuildJS() {
|
|
5390 |
if ( count === 'single' ) {
|
5391 |
// Disable all other fields to prevent multiple selections.
|
5392 |
if ( this.checked ) {
|
5393 |
-
exportField.
|
5394 |
this.removeAttribute( 'disabled' );
|
5395 |
} else {
|
5396 |
-
exportField.
|
5397 |
}
|
5398 |
} else {
|
5399 |
-
exportField.
|
5400 |
}
|
5401 |
}
|
5402 |
|
@@ -5688,6 +5689,18 @@ function frmAdminBuildJS() {
|
|
5688 |
transitionToAddDetails( $modal, name, link, action );
|
5689 |
});
|
5690 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5691 |
jQuery( document ).on( 'click', '.frm-featured-forms.frm-templates-list li [role="button"]:not(a), .frm-templates-list .accordion-section.open li [role="button"]:not(a)', function( event ) {
|
5692 |
var $hoverIcons, $trigger,
|
5693 |
$li = jQuery( this ).closest( 'li' ),
|
@@ -5806,7 +5819,7 @@ function frmAdminBuildJS() {
|
|
5806 |
}
|
5807 |
|
5808 |
$hiddenForm = jQuery( '#frmapi-email-form' ).find( 'form' );
|
5809 |
-
$hiddenEmailField = $hiddenForm.find( '[type="email"]' );
|
5810 |
if ( ! $hiddenEmailField.length ) {
|
5811 |
return;
|
5812 |
}
|
@@ -6041,7 +6054,7 @@ function frmAdminBuildJS() {
|
|
6041 |
jQuery( this ).autocomplete( 'option', 'appendTo', $container );
|
6042 |
}
|
6043 |
})
|
6044 |
-
.
|
6045 |
// Show options on click to make it work more like a dropdown.
|
6046 |
if ( this.value === '' || this.nextElementSibling.value < 1 ) {
|
6047 |
jQuery( this ).autocomplete( 'search', this.value );
|
@@ -6598,7 +6611,7 @@ function frmAdminBuildJS() {
|
|
6598 |
});
|
6599 |
|
6600 |
jQuery( '.frm_form_builder form' ).first().on( 'submit', function() {
|
6601 |
-
jQuery( '.inplace_field' ).blur
|
6602 |
});
|
6603 |
|
6604 |
initiateMultiselect();
|
@@ -7043,7 +7056,7 @@ function frmAdminBuildJS() {
|
|
7043 |
target.parent().addClass( 'tabs' );
|
7044 |
|
7045 |
// select the search bar
|
7046 |
-
jQuery( '.quick-search', wrapper ).focus
|
7047 |
|
7048 |
e.preventDefault();
|
7049 |
}
|
@@ -7224,20 +7237,12 @@ function frm_show_div( div, value, showIf, classId ) { // eslint-disable-line ca
|
|
7224 |
}
|
7225 |
|
7226 |
function frmCheckAll( checked, n ) {
|
7227 |
-
|
7228 |
-
jQuery( 'input[name^="' + n + '"]' ).attr( 'checked', 'checked' );
|
7229 |
-
} else {
|
7230 |
-
jQuery( 'input[name^="' + n + '"]' ).removeAttr( 'checked' );
|
7231 |
-
}
|
7232 |
}
|
7233 |
|
7234 |
function frmCheckAllLevel( checked, n, level ) {
|
7235 |
var $kids = jQuery( '.frm_catlevel_' + level ).children( '.frm_checkbox' ).children( 'label' );
|
7236 |
-
|
7237 |
-
$kids.children( 'input[name^="' + n + '"]' ).attr( 'checked', 'checked' );
|
7238 |
-
} else {
|
7239 |
-
$kids.children( 'input[name^="' + n + '"]' ).removeAttr( 'checked' );
|
7240 |
-
}
|
7241 |
}
|
7242 |
|
7243 |
function frm_add_logic_row( id, formId ) { // eslint-disable-line camelcase
|
386 |
caution = link.getAttribute( 'data-frmcaution' );
|
387 |
verify = link.getAttribute( 'data-frmverify' );
|
388 |
$confirmMessage = jQuery( '.frm-confirm-msg' );
|
389 |
+
$confirmMessage.empty();
|
390 |
|
391 |
if ( caution ) {
|
392 |
frmCaution = document.createElement( 'span' );
|
2237 |
if ( $self.is( ':checked' ) ) {
|
2238 |
uncheck = function() {
|
2239 |
setTimeout( function() {
|
2240 |
+
$self.prop( 'checked', false );
|
2241 |
}, 0 );
|
2242 |
};
|
2243 |
unbind = function() {
|
5375 |
var exportField = jQuery( 'input[name="frm_export_forms[]"]' );
|
5376 |
if ( c === 'single' ) {
|
5377 |
exportField.prop( 'multiple', false );
|
5378 |
+
exportField.prop( 'checked', false );
|
5379 |
} else {
|
5380 |
exportField.prop( 'multiple', true );
|
5381 |
+
exportField.prop( 'disabled', false );
|
5382 |
}
|
5383 |
}
|
5384 |
|
5391 |
if ( count === 'single' ) {
|
5392 |
// Disable all other fields to prevent multiple selections.
|
5393 |
if ( this.checked ) {
|
5394 |
+
exportField.prop( 'disabled', true );
|
5395 |
this.removeAttribute( 'disabled' );
|
5396 |
} else {
|
5397 |
+
exportField.prop( 'disabled', false );
|
5398 |
}
|
5399 |
} else {
|
5400 |
+
exportField.prop( 'disabled', false );
|
5401 |
}
|
5402 |
}
|
5403 |
|
5689 |
transitionToAddDetails( $modal, name, link, action );
|
5690 |
});
|
5691 |
|
5692 |
+
// Welcome page modals.
|
5693 |
+
jQuery( document ).on( 'click', '.frm-create-blank-form', function( event ) {
|
5694 |
+
event.preventDefault();
|
5695 |
+
jQuery( '.frm-trigger-new-form-modal' ).trigger( 'click' );
|
5696 |
+
transitionToAddDetails( $modal, '', '', 'frm_install_form' );
|
5697 |
+
|
5698 |
+
// Close the modal with the cancel button.
|
5699 |
+
jQuery( '.frm-modal-cancel.frm-back-to-all-templates' ).on( 'click', function() {
|
5700 |
+
jQuery( '.ui-widget-overlay' ).trigger( 'click' );
|
5701 |
+
});
|
5702 |
+
});
|
5703 |
+
|
5704 |
jQuery( document ).on( 'click', '.frm-featured-forms.frm-templates-list li [role="button"]:not(a), .frm-templates-list .accordion-section.open li [role="button"]:not(a)', function( event ) {
|
5705 |
var $hoverIcons, $trigger,
|
5706 |
$li = jQuery( this ).closest( 'li' ),
|
5819 |
}
|
5820 |
|
5821 |
$hiddenForm = jQuery( '#frmapi-email-form' ).find( 'form' );
|
5822 |
+
$hiddenEmailField = $hiddenForm.find( '[type="email"]' ).not( '.frm_verify' );
|
5823 |
if ( ! $hiddenEmailField.length ) {
|
5824 |
return;
|
5825 |
}
|
6054 |
jQuery( this ).autocomplete( 'option', 'appendTo', $container );
|
6055 |
}
|
6056 |
})
|
6057 |
+
.on( 'focus', function() {
|
6058 |
// Show options on click to make it work more like a dropdown.
|
6059 |
if ( this.value === '' || this.nextElementSibling.value < 1 ) {
|
6060 |
jQuery( this ).autocomplete( 'search', this.value );
|
6611 |
});
|
6612 |
|
6613 |
jQuery( '.frm_form_builder form' ).first().on( 'submit', function() {
|
6614 |
+
jQuery( '.inplace_field' ).trigger( 'blur' );
|
6615 |
});
|
6616 |
|
6617 |
initiateMultiselect();
|
7056 |
target.parent().addClass( 'tabs' );
|
7057 |
|
7058 |
// select the search bar
|
7059 |
+
jQuery( '.quick-search', wrapper ).trigger( 'focus' );
|
7060 |
|
7061 |
e.preventDefault();
|
7062 |
}
|
7237 |
}
|
7238 |
|
7239 |
function frmCheckAll( checked, n ) {
|
7240 |
+
jQuery( 'input[name^="' + n + '"]' ).prop( 'checked', ! ! checked );
|
|
|
|
|
|
|
|
|
7241 |
}
|
7242 |
|
7243 |
function frmCheckAllLevel( checked, n, level ) {
|
7244 |
var $kids = jQuery( '.frm_catlevel_' + level ).children( '.frm_checkbox' ).children( 'label' );
|
7245 |
+
$kids.children( 'input[name^="' + n + '"]' ).prop( 'checked', ! ! checked );
|
|
|
|
|
|
|
|
|
7246 |
}
|
7247 |
|
7248 |
function frm_add_logic_row( id, formId ) { // eslint-disable-line camelcase
|
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 4.09.
|
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"
|
@@ -136,58 +136,59 @@ msgstr ""
|
|
136 |
msgid "Upgrade"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: classes/controllers/FrmAddonsController.php:
|
140 |
msgid "There are no plugins on your site that require a license"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: classes/controllers/FrmAddonsController.php:
|
144 |
msgid "Installed"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: classes/controllers/FrmAddonsController.php:
|
148 |
#: classes/helpers/FrmAppHelper.php:2459
|
149 |
msgid "Active"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: classes/controllers/FrmAddonsController.php:
|
153 |
msgid "Not Installed"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: classes/controllers/FrmAddonsController.php:
|
157 |
msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: classes/controllers/FrmAddonsController.php:
|
161 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: classes/controllers/FrmAddonsController.php:
|
165 |
msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: classes/controllers/FrmAddonsController.php:
|
169 |
-
#: classes/controllers/FrmAddonsController.php:
|
|
|
170 |
#: classes/views/frm-forms/new-form-overlay.php:112
|
171 |
#: classes/views/shared/reports-info.php:24
|
172 |
msgid "Upgrade Now"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: classes/controllers/FrmAddonsController.php:
|
176 |
msgid "Your plugin has been installed. Please reload the page to see more options."
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: classes/controllers/FrmAppController.php:
|
180 |
msgid "Build"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: classes/controllers/FrmAppController.php:
|
184 |
#: classes/helpers/FrmFormsListHelper.php:302
|
185 |
#: classes/views/frm-forms/settings.php:13
|
186 |
#: classes/views/frm-settings/form.php:14
|
187 |
msgid "Settings"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: classes/controllers/FrmAppController.php:
|
191 |
#: classes/controllers/FrmEntriesController.php:11
|
192 |
#: classes/controllers/FrmEntriesController.php:100
|
193 |
#: classes/controllers/FrmFormsController.php:735
|
@@ -196,18 +197,18 @@ msgstr ""
|
|
196 |
msgid "Entries"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: classes/controllers/FrmAppController.php:
|
200 |
#: classes/controllers/FrmEntriesController.php:15
|
201 |
#: classes/views/shared/views-info.php:11
|
202 |
msgid "Views"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: classes/controllers/FrmAppController.php:
|
206 |
#: classes/views/shared/reports-info.php:11
|
207 |
msgid "Reports"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: classes/controllers/FrmAppController.php:
|
211 |
msgid "Build a Form"
|
212 |
msgstr ""
|
213 |
|
@@ -946,6 +947,10 @@ msgstr ""
|
|
946 |
msgid "Once Weekly"
|
947 |
msgstr ""
|
948 |
|
|
|
|
|
|
|
|
|
949 |
#: classes/controllers/FrmXMLController.php:9
|
950 |
#: classes/views/xml/import_form.php:10
|
951 |
msgid "Import/Export"
|
@@ -4002,7 +4007,7 @@ msgstr ""
|
|
4002 |
msgid "Default Form"
|
4003 |
msgstr ""
|
4004 |
|
4005 |
-
#: classes/models/FrmMigrate.php:
|
4006 |
msgid "Sending"
|
4007 |
msgstr ""
|
4008 |
|
@@ -5055,6 +5060,7 @@ msgid "Formidable Views"
|
|
5055 |
msgstr ""
|
5056 |
|
5057 |
#: classes/views/frm-forms/new-form-overlay/upgrade-body.php:21
|
|
|
5058 |
msgid "File uploads"
|
5059 |
msgstr ""
|
5060 |
|
@@ -5952,6 +5958,62 @@ msgstr ""
|
|
5952 |
msgid "SAMPLE:"
|
5953 |
msgstr ""
|
5954 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5955 |
#: classes/views/xml/import_form.php:18
|
5956 |
msgid "Upload your Formidable XML file to import forms into this site. If your imported form key and creation date match a form on your site, that form will be updated."
|
5957 |
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 4.09.06\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-02-17T13:31:37+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"
|
136 |
msgid "Upgrade"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: classes/controllers/FrmAddonsController.php:69
|
140 |
msgid "There are no plugins on your site that require a license"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: classes/controllers/FrmAddonsController.php:591
|
144 |
msgid "Installed"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: classes/controllers/FrmAddonsController.php:596
|
148 |
#: classes/helpers/FrmAppHelper.php:2459
|
149 |
msgid "Active"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: classes/controllers/FrmAddonsController.php:601
|
153 |
msgid "Not Installed"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: classes/controllers/FrmAddonsController.php:888
|
157 |
msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: classes/controllers/FrmAddonsController.php:944
|
161 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: classes/controllers/FrmAddonsController.php:1043
|
165 |
msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: classes/controllers/FrmAddonsController.php:1128
|
169 |
+
#: classes/controllers/FrmAddonsController.php:1129
|
170 |
+
#: classes/controllers/FrmWelcomeController.php:141
|
171 |
#: classes/views/frm-forms/new-form-overlay.php:112
|
172 |
#: classes/views/shared/reports-info.php:24
|
173 |
msgid "Upgrade Now"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: classes/controllers/FrmAddonsController.php:1143
|
177 |
msgid "Your plugin has been installed. Please reload the page to see more options."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: classes/controllers/FrmAppController.php:151
|
181 |
msgid "Build"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: classes/controllers/FrmAppController.php:158
|
185 |
#: classes/helpers/FrmFormsListHelper.php:302
|
186 |
#: classes/views/frm-forms/settings.php:13
|
187 |
#: classes/views/frm-settings/form.php:14
|
188 |
msgid "Settings"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: classes/controllers/FrmAppController.php:165
|
192 |
#: classes/controllers/FrmEntriesController.php:11
|
193 |
#: classes/controllers/FrmEntriesController.php:100
|
194 |
#: classes/controllers/FrmFormsController.php:735
|
197 |
msgid "Entries"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: classes/controllers/FrmAppController.php:177
|
201 |
#: classes/controllers/FrmEntriesController.php:15
|
202 |
#: classes/views/shared/views-info.php:11
|
203 |
msgid "Views"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: classes/controllers/FrmAppController.php:191
|
207 |
#: classes/views/shared/reports-info.php:11
|
208 |
msgid "Reports"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: classes/controllers/FrmAppController.php:211
|
212 |
msgid "Build a Form"
|
213 |
msgstr ""
|
214 |
|
947 |
msgid "Once Weekly"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: classes/controllers/FrmWelcomeController.php:85
|
951 |
+
msgid "Welcome Screen"
|
952 |
+
msgstr ""
|
953 |
+
|
954 |
#: classes/controllers/FrmXMLController.php:9
|
955 |
#: classes/views/xml/import_form.php:10
|
956 |
msgid "Import/Export"
|
4007 |
msgid "Default Form"
|
4008 |
msgstr ""
|
4009 |
|
4010 |
+
#: classes/models/FrmMigrate.php:564
|
4011 |
msgid "Sending"
|
4012 |
msgstr ""
|
4013 |
|
5060 |
msgstr ""
|
5061 |
|
5062 |
#: classes/views/frm-forms/new-form-overlay/upgrade-body.php:21
|
5063 |
+
#: classes/views/welcome/show.php:78
|
5064 |
msgid "File uploads"
|
5065 |
msgstr ""
|
5066 |
|
5958 |
msgid "SAMPLE:"
|
5959 |
msgstr ""
|
5960 |
|
5961 |
+
#: classes/views/welcome/show.php:20
|
5962 |
+
msgid "Welcome to Formidable Forms!"
|
5963 |
+
msgstr ""
|
5964 |
+
|
5965 |
+
#: classes/views/welcome/show.php:21
|
5966 |
+
msgid "Thanks for choosing Formidable Froms - The most powerful and vesatile form builder for Wordpress"
|
5967 |
+
msgstr ""
|
5968 |
+
|
5969 |
+
#: classes/views/welcome/show.php:37
|
5970 |
+
msgid "New Blank Form"
|
5971 |
+
msgstr ""
|
5972 |
+
|
5973 |
+
#: classes/views/welcome/show.php:38
|
5974 |
+
msgid "Create a new view from scratch"
|
5975 |
+
msgstr ""
|
5976 |
+
|
5977 |
+
#: classes/views/welcome/show.php:47
|
5978 |
+
msgid "New Form From a Template"
|
5979 |
+
msgstr ""
|
5980 |
+
|
5981 |
+
#: classes/views/welcome/show.php:48
|
5982 |
+
msgid "Check out our powerful pre-built templates"
|
5983 |
+
msgstr ""
|
5984 |
+
|
5985 |
+
#: classes/views/welcome/show.php:55
|
5986 |
+
msgid "Get limitless possibilities"
|
5987 |
+
msgstr ""
|
5988 |
+
|
5989 |
+
#: classes/views/welcome/show.php:62
|
5990 |
+
msgid "Calculators"
|
5991 |
+
msgstr ""
|
5992 |
+
|
5993 |
+
#: classes/views/welcome/show.php:63
|
5994 |
+
msgid "Give instant online estimates and calculate advanced product options."
|
5995 |
+
msgstr ""
|
5996 |
+
|
5997 |
+
#: classes/views/welcome/show.php:70
|
5998 |
+
msgid "Survey and Polls"
|
5999 |
+
msgstr ""
|
6000 |
+
|
6001 |
+
#: classes/views/welcome/show.php:71
|
6002 |
+
msgid "Collect customer feedback & data like a pro - no coding required."
|
6003 |
+
msgstr ""
|
6004 |
+
|
6005 |
+
#: classes/views/welcome/show.php:79
|
6006 |
+
msgid "Easily upload documents, files, photos, and music for user avatars, featured images, or email attachments."
|
6007 |
+
msgstr ""
|
6008 |
+
|
6009 |
+
#: classes/views/welcome/show.php:86
|
6010 |
+
msgid "Display form data with views"
|
6011 |
+
msgstr ""
|
6012 |
+
|
6013 |
+
#: classes/views/welcome/show.php:87
|
6014 |
+
msgid "Now you can display form data in custom Views without any PHP."
|
6015 |
+
msgstr ""
|
6016 |
+
|
6017 |
#: classes/views/xml/import_form.php:18
|
6018 |
msgid "Upload your Formidable XML file to import forms into this site. If your imported form key and creation date match a form on your site, that form will be updated."
|
6019 |
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 form, calculator, price calculator, quote form, contact button, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form, custom form
|
5 |
Requires at least: 4.7
|
6 |
-
Tested up to: 5.6
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.09.
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
@@ -435,6 +435,13 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
|
|
435 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
436 |
|
437 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
= 4.09.05 =
|
439 |
* Fix: Autofill was flagging form submissions as spam with Honeypot in some browsers.
|
440 |
* Fix: Important security update that adds better escaping when text is used from attribute data.
|
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 form, calculator, price calculator, quote form, contact button, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form, custom form
|
5 |
Requires at least: 4.7
|
6 |
+
Tested up to: 5.6.1
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.09.06
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
435 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
436 |
|
437 |
== Changelog ==
|
438 |
+
= 4.09.06 =
|
439 |
+
* New: Added a new welcome screen to introduce new users to Formidable.
|
440 |
+
* Fix: Make sure that Site Health exists when upgrading.
|
441 |
+
* Fix: Invalid message data was occasionally appearing in the Inbox.
|
442 |
+
* Fix: Excluded checkbox options were not properly toggling for Action Taxonomies.
|
443 |
+
* Fix: Some pop ups were occasionally including outdated text.
|
444 |
+
|
445 |
= 4.09.05 =
|
446 |
* Fix: Autofill was flagging form submissions as spam with Honeypot in some browsers.
|
447 |
* Fix: Important security update that adds better escaping when text is used from attribute data.
|