Strong Testimonials - Version 2.31.8

Version Description

  • June 16, 2018 =
  • Fix "wait" spinner in unstyled form template.
  • On forms, only show required symbol if field label is shown.
  • Refactor inline style method.
  • Improve exception handling.
Download this release

Release Info

Developer cdillon27
Plugin Icon 128x128 Strong Testimonials
Version 2.31.8
Comparing to
See all releases

Code changes from version 2.31.7 to 2.31.8

admin/class-strong-testimonials-defaults.php CHANGED
@@ -398,6 +398,7 @@ class Strong_Testimonials_Defaults {
398
  /* translators: Settings > Form > Messages tab */
399
  'description' => _x( 'Captcha Label', 'description', 'strong-testimonials' ),
400
  'text' => _x( 'Captcha', 'Default label for Captcha field on submission form.', 'strong-testimonials' ),
 
401
  ),
402
  'form-submit-button' => array(
403
  'order' => 3,
398
  /* translators: Settings > Form > Messages tab */
399
  'description' => _x( 'Captcha Label', 'description', 'strong-testimonials' ),
400
  'text' => _x( 'Captcha', 'Default label for Captcha field on submission form.', 'strong-testimonials' ),
401
+ 'required' => false,
402
  ),
403
  'form-submit-button' => array(
404
  'order' => 3,
admin/class-strong-testimonials-updater.php CHANGED
@@ -550,10 +550,16 @@ class Strong_Testimonials_Updater {
550
  * Merge in new options.
551
  */
552
  $defaults = Strong_Testimonials_Defaults::get_form_options();
 
553
  $form_options = array_merge( $defaults, $form_options );
 
554
  // Merge nested arrays individually. Don't use array_merge_recursive.
 
555
  $form_options['default_recipient'] = array_merge( $defaults['default_recipient'], $form_options['default_recipient'] );
556
- $form_options['messages'] = array_merge( $defaults['messages'], $form_options['messages'] );
 
 
 
557
 
558
  /**
559
  * Convert Captcha plugin name.
550
  * Merge in new options.
551
  */
552
  $defaults = Strong_Testimonials_Defaults::get_form_options();
553
+
554
  $form_options = array_merge( $defaults, $form_options );
555
+
556
  // Merge nested arrays individually. Don't use array_merge_recursive.
557
+
558
  $form_options['default_recipient'] = array_merge( $defaults['default_recipient'], $form_options['default_recipient'] );
559
+
560
+ foreach ( $defaults['messages'] as $key => $message ) {
561
+ $form_options['messages'][ $key ] = array_merge( $message, $form_options['messages'][ $key ] );
562
+ }
563
 
564
  /**
565
  * Convert Captcha plugin name.
admin/settings/partials/form.php CHANGED
@@ -55,6 +55,8 @@ foreach ( $plugins as $key => $plugin ) {
55
  <?php
56
  $messages = $form_options['messages'];
57
  foreach ( $messages as $key => $message ):
 
 
58
  $elid = str_replace( '-', '_', $key );
59
  // $string, $context, $name
60
  $content = apply_filters( 'wpmtst_l10n', $message['text'], 'strong-testimonials-form-messages', $message['description'] );
@@ -90,7 +92,8 @@ foreach ( $plugins as $key => $plugin ) {
90
  <?php endif; ?>
91
  <input type="text" id="<?php echo $elid; ?>"
92
  name="wpmtst_form_options[messages][<?php echo $key; ?>][text]"
93
- value="<?php esc_attr_e( $content ); ?>" required/>
 
94
  <?php endif; ?>
95
  </td>
96
  <td class="actions">
55
  <?php
56
  $messages = $form_options['messages'];
57
  foreach ( $messages as $key => $message ):
58
+ $required = isset( $message['required'] ) ? $message['required'] : true;
59
+
60
  $elid = str_replace( '-', '_', $key );
61
  // $string, $context, $name
62
  $content = apply_filters( 'wpmtst_l10n', $message['text'], 'strong-testimonials-form-messages', $message['description'] );
92
  <?php endif; ?>
93
  <input type="text" id="<?php echo $elid; ?>"
94
  name="wpmtst_form_options[messages][<?php echo $key; ?>][text]"
95
+ value="<?php esc_attr_e( $content ); ?>"
96
+ <?php echo $required ? 'required' : '' ?>/>
97
  <?php endif; ?>
98
  </td>
99
  <td class="actions">
includes/class-strong-testimonials-render.php CHANGED
@@ -247,7 +247,6 @@ class Strong_Testimonials_Render {
247
  }
248
  }
249
  }
250
- wp_enqueue_style( 'wpmtst-custom-style' );
251
  }
252
 
253
  /**
@@ -633,6 +632,8 @@ class Strong_Testimonials_Render {
633
  if ( isset( $atts['id'] ) && $atts['id'] ) {
634
  $atts['view'] = $atts['id'];
635
  unset( $atts['id'] );
 
 
636
  }
637
 
638
  // Fetch the view
247
  }
248
  }
249
  }
 
250
  }
251
 
252
  /**
632
  if ( isset( $atts['id'] ) && $atts['id'] ) {
633
  $atts['view'] = $atts['id'];
634
  unset( $atts['id'] );
635
+ } else {
636
+ return array_merge( array( 'view_not_found' => 1 ), $atts );
637
  }
638
 
639
  // Fetch the view
includes/class-strong-view-display.php CHANGED
@@ -107,11 +107,7 @@ class Strong_View_Display extends Strong_View {
107
  $this->load_dependent_scripts();
108
  $this->load_extra_stylesheets();
109
 
110
- /*
111
- * If we cannot preprocess, add the inline style to the footer.
112
- * If we were able to preprocess, this will not duplicate the code
113
- * since `wpmtst-custom-style` was already enqueued (I think).
114
- */
115
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
116
 
117
  /**
107
  $this->load_dependent_scripts();
108
  $this->load_extra_stylesheets();
109
 
110
+ // If we cannot preprocess, add the inline style to the footer.
 
 
 
 
111
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
112
 
113
  /**
includes/class-strong-view-form.php CHANGED
@@ -79,11 +79,7 @@ class Strong_View_Form extends Strong_View {
79
  $this->custom_background();
80
  $this->load_validator();
81
 
82
- /*
83
- * If we cannot preprocess, add the inline style to the footer.
84
- * If we were able to preprocess, this will not duplicate the code
85
- * since `wpmtst-custom-style` was already enqueued (I think).
86
- */
87
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
88
  add_action( 'wp_footer', array( $this, 'load_honeypots' ) );
89
 
79
  $this->custom_background();
80
  $this->load_validator();
81
 
82
+ // If we cannot preprocess, add the inline style to the footer.
 
 
 
 
83
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
84
  add_action( 'wp_footer', array( $this, 'load_honeypots' ) );
85
 
includes/class-strong-view-slideshow.php CHANGED
@@ -60,11 +60,7 @@ class Strong_View_Slideshow extends Strong_View_Display {
60
  $this->load_dependent_scripts();
61
  $this->load_extra_stylesheets();
62
 
63
- /*
64
- * If we cannot preprocess, add the inline style to the footer.
65
- * If we were able to preprocess, this will not duplicate the code
66
- * since `wpmtst-custom-style` was already enqueued (I think).
67
- */
68
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
69
 
70
  /**
60
  $this->load_dependent_scripts();
61
  $this->load_extra_stylesheets();
62
 
63
+ // If we cannot preprocess, add the inline style to the footer.
 
 
 
 
64
  add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
65
 
66
  /**
includes/class-strong-view.php CHANGED
@@ -43,6 +43,14 @@ class Strong_View {
43
  */
44
  public $plugin_version;
45
 
 
 
 
 
 
 
 
 
46
  /**
47
  * Strong_View constructor.
48
  *
@@ -193,6 +201,7 @@ class Strong_View {
193
  $stylesheet = WPMST()->templates->get_template_attr( $this->atts, 'stylesheet', false );
194
  if ( $stylesheet ) {
195
  $handle = 'testimonials-' . str_replace( ':', '-', $this->atts['template'] );
 
196
  wp_register_style( $handle, $stylesheet, array(), $this->plugin_version );
197
  if ( $enqueue ) {
198
  WPMST()->render->add_style( $handle );
@@ -256,7 +265,8 @@ class Strong_View {
256
  $this->custom_font_color();
257
 
258
  /**
259
- * Hook to add more inline style to `wpmtst-custom-style` handle.
 
260
  * @since 2.22.0
261
  */
262
  do_action( 'wpmtst_view_custom_style', $this );
@@ -288,13 +298,14 @@ class Strong_View {
288
 
289
  if ( $c1 ) {
290
  $view_el = ".strong-view-id-{$this->atts['view']}";
 
291
 
292
  if ( $this->is_form() ) {
293
- wp_add_inline_style( 'wpmtst-custom-style',
294
  "$view_el .strong-form-inner { color: $c1; }" );
295
  }
296
  else {
297
- wp_add_inline_style( 'wpmtst-custom-style',
298
  "$view_el .testimonial-heading, " .
299
  "$view_el .testimonial-content p, " .
300
  "$view_el .testimonial-content a.readmore, " .
@@ -313,7 +324,7 @@ class Strong_View {
313
  return;
314
  }
315
 
316
- $handle = 'wpmtst-custom-style';
317
  $c1 = '';
318
  $c2 = '';
319
 
@@ -416,6 +427,14 @@ class Strong_View {
416
  }
417
  }
418
 
 
 
 
 
 
 
 
 
419
  }
420
 
421
  endif;
43
  */
44
  public $plugin_version;
45
 
46
+ /**
47
+ * The stylesheet handle. For adding inline style.
48
+ *
49
+ * @since 2.31.8
50
+ * @var string
51
+ */
52
+ public $stylesheet;
53
+
54
  /**
55
  * Strong_View constructor.
56
  *
201
  $stylesheet = WPMST()->templates->get_template_attr( $this->atts, 'stylesheet', false );
202
  if ( $stylesheet ) {
203
  $handle = 'testimonials-' . str_replace( ':', '-', $this->atts['template'] );
204
+ $this->set_stylesheet( $handle );
205
  wp_register_style( $handle, $stylesheet, array(), $this->plugin_version );
206
  if ( $enqueue ) {
207
  WPMST()->render->add_style( $handle );
265
  $this->custom_font_color();
266
 
267
  /**
268
+ * Hook to add more inline style.
269
+ *
270
  * @since 2.22.0
271
  */
272
  do_action( 'wpmtst_view_custom_style', $this );
298
 
299
  if ( $c1 ) {
300
  $view_el = ".strong-view-id-{$this->atts['view']}";
301
+ $handle = $this->get_stylesheet();
302
 
303
  if ( $this->is_form() ) {
304
+ wp_add_inline_style( $handle,
305
  "$view_el .strong-form-inner { color: $c1; }" );
306
  }
307
  else {
308
+ wp_add_inline_style( $handle,
309
  "$view_el .testimonial-heading, " .
310
  "$view_el .testimonial-content p, " .
311
  "$view_el .testimonial-content a.readmore, " .
324
  return;
325
  }
326
 
327
+ $handle = $this->get_stylesheet();
328
  $c1 = '';
329
  $c2 = '';
330
 
427
  }
428
  }
429
 
430
+ public function set_stylesheet( $handle = '' ) {
431
+ $this->stylesheet = $handle;
432
+ }
433
+
434
+ public function get_stylesheet() {
435
+ return $this->stylesheet;
436
+ }
437
+
438
  }
439
 
440
  endif;
includes/functions-template-form.php CHANGED
@@ -69,22 +69,24 @@ function wpmtst_single_form_field( $field ) {
69
 
70
  if ( 'checkbox' != $field['input_type'] ) {
71
  if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
72
- $label = '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
73
- echo $label;
74
- }
75
- if ( isset( $field['required'] ) && $field['required'] ) {
76
- wpmtst_field_required_symbol();
77
  }
78
  wpmtst_field_before( $field );
79
  }
80
 
81
  // Check for callback first.
82
  if ( isset( $field['action_input'] ) && $field['action_input'] ) {
 
83
  $value = ( isset( $form_values[ $field['name'] ] ) && $form_values[ $field['name'] ] ) ? $form_values[ $field['name'] ] : '';
84
  do_action( $field['action_input'], $field, $value );
85
- }
86
- // Check field type.
87
- else {
 
88
  switch ( $field['input_type'] ) {
89
 
90
  case 'category-selector' :
@@ -138,8 +140,7 @@ function wpmtst_single_form_field( $field ) {
138
 
139
  case 'checkbox' :
140
  if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
141
- $label = '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
142
- echo $label;
143
  }
144
 
145
  wpmtst_field_before( $field );
@@ -155,13 +156,11 @@ function wpmtst_single_form_field( $field ) {
155
  checked( $field['default_form_value'], 1, false ) );
156
 
157
  if ( isset( $field['text'] ) ) {
158
- echo '<label for="wpmtst_' . $field['name'] . '" class="checkbox-label">';
159
- echo wpmtst_form_field_meta_l10n( $field['text'], $field, 'text' );
160
- echo '</label>';
161
- }
162
 
163
- if ( isset( $field['required'] ) && $field['required'] ) {
164
- wpmtst_field_required_symbol();
 
165
  }
166
 
167
  echo '</div><!-- .field-wrap -->';
@@ -179,6 +178,7 @@ function wpmtst_single_form_field( $field ) {
179
  wpmtst_field_required_tag( $field ) );
180
 
181
  }
 
182
  }
183
 
184
  wpmtst_field_after( $field );
@@ -407,17 +407,22 @@ function wpmtst_form_captcha() {
407
  * To display or not to display.
408
  */
409
  if ( $invisible && 'captcha-pro' == $form_options['captcha']) {
 
410
  echo '<div class="form-field wpmtst-captcha">';
411
  echo $captcha_html;
412
  echo '</div>';
413
- }
414
- elseif ( $invisible ) {
 
415
  echo $captcha_html;
416
- }
417
- else {
 
418
  ?>
419
  <div class="form-field wpmtst-captcha">
 
420
  <label for="wpmtst_captcha"><?php wpmtst_form_message( 'captcha' ); ?></label><span class="required symbol"></span>
 
421
  <div>
422
  <?php echo $captcha_html; ?>
423
  <?php if ( isset( $errors['captcha'] ) ) : ?>
@@ -426,6 +431,7 @@ function wpmtst_form_captcha() {
426
  </div>
427
  </div>
428
  <?php
 
429
  }
430
  }
431
  add_action( 'wpmtst_form_after_fields', 'wpmtst_form_captcha' );
69
 
70
  if ( 'checkbox' != $field['input_type'] ) {
71
  if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
72
+ echo '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
73
+
74
+ if ( isset( $field['required'] ) && $field['required'] ) {
75
+ wpmtst_field_required_symbol();
76
+ }
77
  }
78
  wpmtst_field_before( $field );
79
  }
80
 
81
  // Check for callback first.
82
  if ( isset( $field['action_input'] ) && $field['action_input'] ) {
83
+
84
  $value = ( isset( $form_values[ $field['name'] ] ) && $form_values[ $field['name'] ] ) ? $form_values[ $field['name'] ] : '';
85
  do_action( $field['action_input'], $field, $value );
86
+
87
+ } else {
88
+
89
+ // Check field type.
90
  switch ( $field['input_type'] ) {
91
 
92
  case 'category-selector' :
140
 
141
  case 'checkbox' :
142
  if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
143
+ echo '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
 
144
  }
145
 
146
  wpmtst_field_before( $field );
156
  checked( $field['default_form_value'], 1, false ) );
157
 
158
  if ( isset( $field['text'] ) ) {
159
+ echo '<label for="wpmtst_' . $field['name'] . '" class="checkbox-label">' . wpmtst_form_field_meta_l10n( $field['text'], $field, 'text' ) . '</label>';
 
 
 
160
 
161
+ if ( isset( $field['required'] ) && $field['required'] ) {
162
+ wpmtst_field_required_symbol();
163
+ }
164
  }
165
 
166
  echo '</div><!-- .field-wrap -->';
178
  wpmtst_field_required_tag( $field ) );
179
 
180
  }
181
+
182
  }
183
 
184
  wpmtst_field_after( $field );
407
  * To display or not to display.
408
  */
409
  if ( $invisible && 'captcha-pro' == $form_options['captcha']) {
410
+
411
  echo '<div class="form-field wpmtst-captcha">';
412
  echo $captcha_html;
413
  echo '</div>';
414
+
415
+ } elseif ( $invisible ) {
416
+
417
  echo $captcha_html;
418
+
419
+ } else {
420
+
421
  ?>
422
  <div class="form-field wpmtst-captcha">
423
+ <?php if ( wpmtst_get_form_message( 'captcha' ) ) : ?>
424
  <label for="wpmtst_captcha"><?php wpmtst_form_message( 'captcha' ); ?></label><span class="required symbol"></span>
425
+ <?php endif; ?>
426
  <div>
427
  <?php echo $captcha_html; ?>
428
  <?php if ( isset( $errors['captcha'] ) ) : ?>
431
  </div>
432
  </div>
433
  <?php
434
+
435
  }
436
  }
437
  add_action( 'wpmtst_form_after_fields', 'wpmtst_form_captcha' );
includes/scripts.php CHANGED
@@ -69,11 +69,6 @@ function wpmtst_scripts() {
69
  false,
70
  true );
71
 
72
- /**
73
- * View custom style
74
- */
75
- wp_register_style( 'wpmtst-custom-style', WPMTST_PUBLIC_URL . 'css/custom.css' );
76
-
77
  /**
78
  * imagesLoaded, if less than WordPress 4.6
79
  */
69
  false,
70
  true );
71
 
 
 
 
 
 
72
  /**
73
  * imagesLoaded, if less than WordPress 4.6
74
  */
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: testimonials, testimonial slider, testimonial form, reviews, star ratings
4
  Requires at least: 3.7
5
  Requires PHP: 5.2.4
6
  Tested up to: 4.9.6
7
- Stable tag: 2.31.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -188,10 +188,6 @@ Yes. This requires a lightbox so if your theme does not include one, you will ne
188
 
189
  No. If you already have testimonials in another plugin or theme, you will have to re-enter them. Why? Because every theme and plugin stores data differently.
190
 
191
- = Can I import my existing testimonials? =
192
-
193
- It depends. The plugin does not provide an import tool because every situation is different. With some technical skills, you may be able to successfully export your existing testimonials to a CSV file and import them into Strong Testimonials. Contact me if you want help with that. Otherwise, it may be simpler and easier to migrate them manually.
194
-
195
  = Is it true that including a link to my site in my support requests really helps you troubleshoot problems? =
196
 
197
  Undeniably, yes.
@@ -215,6 +211,12 @@ If you prefer, start a private support ticket at [support.strongplugins.com](htt
215
 
216
  == Changelog ==
217
 
 
 
 
 
 
 
218
  = 2.31.7 - June 7, 2018 =
219
  * Fix JavaScript incompatibility in IE and Edge.
220
 
@@ -322,3 +324,6 @@ Privacy exporter and eraser integration.
322
 
323
  = 2.31.5 =
324
  Fix XSS security vulnerabilities.
 
 
 
4
  Requires at least: 3.7
5
  Requires PHP: 5.2.4
6
  Tested up to: 4.9.6
7
+ Stable tag: 2.31.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
188
 
189
  No. If you already have testimonials in another plugin or theme, you will have to re-enter them. Why? Because every theme and plugin stores data differently.
190
 
 
 
 
 
191
  = Is it true that including a link to my site in my support requests really helps you troubleshoot problems? =
192
 
193
  Undeniably, yes.
211
 
212
  == Changelog ==
213
 
214
+ = 2.31.8 - June 16, 2018 =
215
+ * Fix "wait" spinner in unstyled form template.
216
+ * On forms, only show required symbol if field label is shown.
217
+ * Refactor inline style method.
218
+ * Improve exception handling.
219
+
220
  = 2.31.7 - June 7, 2018 =
221
  * Fix JavaScript incompatibility in IE and Edge.
222
 
324
 
325
  = 2.31.5 =
326
  Fix XSS security vulnerabilities.
327
+
328
+ = 2.31.8 =
329
+ Minor improvements to forms and inline style.
strong-testimonials.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: https://strongplugins.com/plugins/strong-testimonials/
5
  * Description: Collect and display your testimonials or reviews.
6
  * Author: Chris Dillon
7
- * Version: 2.31.7
8
  *
9
  * Author URI: https://strongplugins.com/
10
  * Text Domain: strong-testimonials
@@ -34,7 +34,7 @@ if ( ! defined( 'ABSPATH' ) ) {
34
  exit;
35
  }
36
 
37
- define( 'WPMTST_VERSION', '2.31.7' );
38
  define( 'WPMTST_PLUGIN', plugin_basename( __FILE__ ) ); // strong-testimonials/strong-testimonials.php
39
  define( 'WPMTST', dirname( WPMTST_PLUGIN ) ); // strong-testimonials
40
  define( 'STRONGPLUGINS_STORE_URL', 'https://strongplugins.com' );
4
  * Plugin URI: https://strongplugins.com/plugins/strong-testimonials/
5
  * Description: Collect and display your testimonials or reviews.
6
  * Author: Chris Dillon
7
+ * Version: 2.31.8
8
  *
9
  * Author URI: https://strongplugins.com/
10
  * Text Domain: strong-testimonials
34
  exit;
35
  }
36
 
37
+ define( 'WPMTST_VERSION', '2.31.8' );
38
  define( 'WPMTST_PLUGIN', plugin_basename( __FILE__ ) ); // strong-testimonials/strong-testimonials.php
39
  define( 'WPMTST', dirname( WPMTST_PLUGIN ) ); // strong-testimonials
40
  define( 'STRONGPLUGINS_STORE_URL', 'https://strongplugins.com' );
templates-scss/_partials/_form-wait.scss ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .strong-form-wait {
2
+ display: none;
3
+ position: absolute;
4
+ top: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ background: rgba(255,255,255,0.7);
9
+
10
+ .message {
11
+ position: absolute;
12
+ top: calc( 50% - 25px );
13
+ text-align: center;
14
+ width: 100%;
15
+ height: 50px;
16
+ line-height: 50px;
17
+ color: #111;
18
+ }
19
+ }
templates-scss/_partials/_structure-form.scss CHANGED
@@ -120,23 +120,3 @@ img.captcha {
120
  }
121
 
122
  }
123
-
124
- .strong-form-wait {
125
- display: none;
126
- position: absolute;
127
- top: 0;
128
- bottom: 0;
129
- left: 0;
130
- right: 0;
131
- background: rgba(255,255,255,0.7);
132
-
133
- .message {
134
- position: absolute;
135
- top: calc( 50% - 25px );
136
- text-align: center;
137
- width: 100%;
138
- height: 50px;
139
- line-height: 50px;
140
- color: #111;
141
- }
142
- }
120
  }
121
 
122
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates-scss/default-form/form.scss CHANGED
@@ -2,6 +2,7 @@
2
  * Strong Testimonials Default Form template
3
  */
4
  @import "../_partials/structure-form";
 
5
 
6
  .strong-form {
7
  label {
2
  * Strong Testimonials Default Form template
3
  */
4
  @import "../_partials/structure-form";
5
+ @import "../_partials/form-wait";
6
 
7
  .strong-form {
8
  label {
templates-scss/simple-form/form.scss CHANGED
@@ -2,6 +2,7 @@
2
  * Strong Testimonials Simple Form template
3
  */
4
  @import "../_partials/structure-form";
 
5
 
6
  .strong-form {
7
  /* error indicators */
2
  * Strong Testimonials Simple Form template
3
  */
4
  @import "../_partials/structure-form";
5
+ @import "../_partials/form-wait";
6
 
7
  .strong-form {
8
  /* error indicators */
templates-scss/unstyled-form/form.scss ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /**
2
+ * Strong Testimonials Unstyled Form template
3
+ */
4
+ @import "../_partials/form-wait";
templates/unstyled-form/form.css ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Strong Testimonials Unstyled Form template
3
+ */
4
+ .strong-form-wait {
5
+ display: none;
6
+ position: absolute;
7
+ top: 0;
8
+ bottom: 0;
9
+ left: 0;
10
+ right: 0;
11
+ background: rgba(255, 255, 255, 0.7);
12
+ }
13
+ .strong-form-wait .message {
14
+ position: absolute;
15
+ top: calc( 50% - 25px );
16
+ text-align: center;
17
+ width: 100%;
18
+ height: 50px;
19
+ line-height: 50px;
20
+ color: #111;
21
+ }