Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms - Version 1.12.2

Version Description

  • Improvement: All dropdowns become searchable automatically with more than 6 choices.
  • Bugfix: "Add Media" button in Email tab wasn't working.
  • Bugfix: Submit button styles were misbehaving.
  • Bugfix: Restored forms were getting stuck in "draft" state.
  • Bugfix: Searchable dropdowns were misbehaving.
Download this release

Release Info

Developer happyforms
Plugin Icon 128x128 Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms
Version 1.12.2
Comparing to
See all releases

Code changes from version 1.12.1 to 1.12.2

core/assets/css/color.css CHANGED
@@ -403,12 +403,11 @@
403
  /* submit button */
404
 
405
  .happyforms-styles input[type=submit].happyforms-button--submit,
406
- .happyforms-styles input[type=submit][disabled].happyforms-button--submit,
407
- .happyforms-styles input[type=submit]:not(:hover):not(:active):not(.has-background) {
408
  -webkit-appearance: none;
409
  height: auto;
410
  padding: 15px 30px;
411
- border-radius: 4px;
412
  border: 1px solid transparent !important;
413
  border-color: var(--happyforms-color-submit-border) !important;
414
  font-weight: normal;
@@ -430,6 +429,15 @@
430
  overflow-wrap: anywhere;
431
  }
432
 
 
 
 
 
 
 
 
 
 
433
  .happyforms-styles.happyforms-form--disable-until-valid input[type=submit][disabled].happyforms-button--submit {
434
  opacity: 0.5;
435
  }
403
  /* submit button */
404
 
405
  .happyforms-styles input[type=submit].happyforms-button--submit,
406
+ .happyforms-styles input[type=submit][disabled].happyforms-button--submit {
 
407
  -webkit-appearance: none;
408
  height: auto;
409
  padding: 15px 30px;
410
+ border-radius: 4px!important;
411
  border: 1px solid transparent !important;
412
  border-color: var(--happyforms-color-submit-border) !important;
413
  font-weight: normal;
429
  overflow-wrap: anywhere;
430
  }
431
 
432
+ .happyforms-styles input[type=submit]:not(:hover):not(:active):not(.has-background) {
433
+ background-color: #000;
434
+ background-color: var(--happyforms-color-submit-background);
435
+ background: #000;
436
+ background: var(--happyforms-color-submit-background);
437
+ color: #fff;
438
+ color: var(--happyforms-color-submit-text);
439
+ }
440
+
441
  .happyforms-styles.happyforms-form--disable-until-valid input[type=submit][disabled].happyforms-button--submit {
442
  opacity: 0.5;
443
  }
core/assets/css/customize.css CHANGED
@@ -588,7 +588,7 @@ a.happyforms-form-part-remove:hover {
588
  .has-min-limit-choices #messages-view-errors,
589
  .has-field #messages-view-errors,
590
  .has-optional-field #messages-view-hints,
591
- .has-searchable-dropdown #messages-view-hints,
592
  .has-min-chars-label #messages-view-hints,
593
  .has-max-chars-label #messages-view-hints,
594
  .has-min-words-label #messages-view-hints,
@@ -611,7 +611,7 @@ a.happyforms-form-part-remove:hover {
611
  .show-msg-short-label #customize-control-message_too_short,
612
  .has-max-chars-label #customize-control-message_too_long,
613
  .has-max-words-label #customize-control-message_too_long,
614
- .has-searchable-dropdown #customize-control-no_results_label,
615
  .has-number #customize-control-number_min_invalid,
616
  .has-number #customize-control-number_max_invalid {
617
  display: block;
588
  .has-min-limit-choices #messages-view-errors,
589
  .has-field #messages-view-errors,
590
  .has-optional-field #messages-view-hints,
591
+ .has-select #messages-view-hints,
592
  .has-min-chars-label #messages-view-hints,
593
  .has-max-chars-label #messages-view-hints,
594
  .has-min-words-label #messages-view-hints,
611
  .show-msg-short-label #customize-control-message_too_short,
612
  .has-max-chars-label #customize-control-message_too_long,
613
  .has-max-words-label #customize-control-message_too_long,
614
+ .has-select #customize-control-no_results_label,
615
  .has-number #customize-control-number_min_invalid,
616
  .has-number #customize-control-number_max_invalid {
617
  display: block;
core/assets/css/layout.css CHANGED
@@ -1006,6 +1006,10 @@ input[type=submit][disabled].happyforms-button--submit {
1006
  overflow-y: scroll;
1007
  }
1008
 
 
 
 
 
1009
  .happyforms-part__select-wrap {
1010
  cursor: pointer;
1011
  }
1006
  overflow-y: scroll;
1007
  }
1008
 
1009
+ .happyforms-custom-select .happyforms-part__select-wrap input[data-searchable="false"] {
1010
+ cursor: pointer;
1011
+ }
1012
+
1013
  .happyforms-part__select-wrap {
1014
  cursor: pointer;
1015
  }
core/assets/js/admin/shortcode.js CHANGED
@@ -4,10 +4,10 @@
4
  template: wp.media.template( 'happyforms-shortcode' ),
5
 
6
  getTitle: function( id ) {
7
- var title = '';
8
-
9
  if ( settings.forms[id] ) {
10
- title = '"' + settings.forms[id].post_title + '" - ';
11
  }
12
 
13
  return title;
@@ -39,4 +39,4 @@
39
  views.register( 'happyforms', _.extend( {}, happyforms ) );
40
  views.register( 'form', _.extend( {}, happyforms ) );
41
 
42
- } )( window, window.wp.mce.views, window.jQuery, _happyFormsAdmin );
4
  template: wp.media.template( 'happyforms-shortcode' ),
5
 
6
  getTitle: function( id ) {
7
+ var title = 'Form';
8
+
9
  if ( settings.forms[id] ) {
10
+ title += ': ' + settings.forms[id].post_title;
11
  }
12
 
13
  return title;
39
  views.register( 'happyforms', _.extend( {}, happyforms ) );
40
  views.register( 'form', _.extend( {}, happyforms ) );
41
 
42
+ } )( window, window.wp.mce.views, window.jQuery, _happyFormsAdmin );
core/assets/js/frontend/select.js CHANGED
@@ -14,6 +14,7 @@
14
  $input: this.$input,
15
  $select: $select,
16
  searchable: $visualInput.attr( 'data-searchable' ),
 
17
  });
18
 
19
  this.$input.on( 'blur', this.onBlur.bind(this) );
14
  $input: this.$input,
15
  $select: $select,
16
  searchable: $visualInput.attr( 'data-searchable' ),
17
+ required: 'undefined' === typeof this.$el.data( 'happyforms-required' ) ? false : true,
18
  });
19
 
20
  this.$input.on( 'blur', this.onBlur.bind(this) );
core/assets/js/lib/happyforms-select.js CHANGED
@@ -5,6 +5,7 @@
5
  this.el = el;
6
  this.$el = $( this.el );
7
 
 
8
  this.keepFocus = false;
9
  this.$input = options.$input;
10
  this.$select = options.$select;
@@ -108,9 +109,21 @@
108
  if ( ! this.keepFocus ) {
109
  this.$select.hide();
110
 
111
- if ( ! this.searchable || 'false' === this.searchable ) {
 
 
 
 
 
 
 
 
 
 
 
112
  $( 'li', this.$select ).removeClass( 'active' );
113
  $( 'li.happyforms-dropdown-item', this.$select ).show();
 
114
  }
115
  }
116
  }
@@ -120,7 +133,7 @@
120
 
121
  var $li = $( e.target );
122
 
123
- if ( $li.attr( 'data-value' ) ) {
124
  this.setValue( $li.data('value').toString() );
125
  }
126
  }
@@ -314,8 +327,8 @@
314
 
315
  $allItems.each( function( index, li ) {
316
  var $li = $( li );
317
- var liValue = $li.data( 'value' );
318
- var labelValue = $li.data( 'label' );
319
  if ( 'string' == typeof labelValue ) {
320
  var liLabel = ( labelValue.length ) ? labelValue.toLowerCase() : '';
321
  } else {
@@ -406,10 +419,8 @@
406
  }
407
 
408
  HappyFormsSelect.prototype.setDefaults = function( value, label ) {
409
- if ( value && label ) {
410
  this.defaultValue = value;
411
  this.defaultLabel = label;
412
- }
413
  }
414
 
415
  $.fn.happyFormsSelect = function( method ) {
5
  this.el = el;
6
  this.$el = $( this.el );
7
 
8
+ this.required = options.required;
9
  this.keepFocus = false;
10
  this.$input = options.$input;
11
  this.$select = options.$select;
109
  if ( ! this.keepFocus ) {
110
  this.$select.hide();
111
 
112
+ if ( 'true' === this.searchable ) {
113
+ var searchText = this.$el.val();
114
+
115
+ if( '' === searchText && ! this.required ) {
116
+ this.$el.val( '' );
117
+ this.$input.val( '' );
118
+ } else if( '' !== searchText && '' === this.defaultValue ) {
119
+ this.$el.val( '' );
120
+ } else if ( '' !== this.defaultValue && this.defaultLabel !== searchText ) {
121
+ this.$el.val( this.defaultLabel );
122
+ }
123
+
124
  $( 'li', this.$select ).removeClass( 'active' );
125
  $( 'li.happyforms-dropdown-item', this.$select ).show();
126
+ this.$noResults.hide();
127
  }
128
  }
129
  }
133
 
134
  var $li = $( e.target );
135
 
136
+ if ( 'undefined' !== typeof $li.attr( 'data-value' ) ) {
137
  this.setValue( $li.data('value').toString() );
138
  }
139
  }
327
 
328
  $allItems.each( function( index, li ) {
329
  var $li = $( li );
330
+ var liValue = 'undefined' === typeof $li.data( 'value' ) ? '' : $li.data( 'value' );
331
+ var labelValue = 'undefined' === typeof $li.data( 'label' ) ? '' : $li.data( 'label' );
332
  if ( 'string' == typeof labelValue ) {
333
  var liLabel = ( labelValue.length ) ? labelValue.toLowerCase() : '';
334
  } else {
419
  }
420
 
421
  HappyFormsSelect.prototype.setDefaults = function( value, label ) {
 
422
  this.defaultValue = value;
423
  this.defaultLabel = label;
 
424
  }
425
 
426
  $.fn.happyFormsSelect = function( method ) {
core/assets/js/parts/part-select.js CHANGED
@@ -142,7 +142,6 @@
142
 
143
  this.optionViews = new Backbone.Collection();
144
 
145
- this.listenTo( this.model, 'change:allow_search', this.onAllowSearchChange );
146
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
147
  this.listenTo( this.model, 'change:required', this.onRequiredChange );
148
  this.listenTo( this.model.get( 'options' ), 'add', this.onOptionModelAdd );
@@ -313,23 +312,6 @@
313
  $link.hide();
314
  },
315
 
316
- onAllowSearchChange: function( model, value ) {
317
- if ( 1 == value ) {
318
- $( '[data-trigger=allow_search]', this.$el ).show();
319
- } else {
320
- $( '[data-trigger=allow_search]', this.$el ).hide();
321
- }
322
-
323
- this.model.fetchHtml( function( response ) {
324
- var data = {
325
- id: model.get( 'id' ),
326
- html: response,
327
- };
328
-
329
- happyForms.previewSend( 'happyforms-form-part-refresh', data );
330
- } );
331
- },
332
-
333
  onPlaceholderChange: function( model, value ) {
334
  var data = {
335
  id: model.get( 'id' ),
142
 
143
  this.optionViews = new Backbone.Collection();
144
 
 
145
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
146
  this.listenTo( this.model, 'change:required', this.onRequiredChange );
147
  this.listenTo( this.model.get( 'options' ), 'add', this.onOptionModelAdd );
312
  $link.hide();
313
  },
314
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  onPlaceholderChange: function( model, value ) {
316
  var data = {
317
  id: model.get( 'id' ),
core/classes/class-form-admin.php CHANGED
@@ -53,6 +53,8 @@ class HappyForms_Form_Admin {
53
  add_action( 'load-edit.php', array( $this, 'duplicate_form_redirect' ) );
54
  add_action( 'admin_footer', array( $this, 'admin_footer' ) );
55
  add_filter( 'admin_footer_text', 'happyforms_admin_footer' );
 
 
56
  }
57
 
58
  /**
@@ -424,6 +426,64 @@ class HappyForms_Form_Admin {
424
  }
425
  }
426
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  /**
428
  * Action: output Javascript logic for copying
429
  * shortcodes to clipboard in the All Forms admin screen.
53
  add_action( 'load-edit.php', array( $this, 'duplicate_form_redirect' ) );
54
  add_action( 'admin_footer', array( $this, 'admin_footer' ) );
55
  add_filter( 'admin_footer_text', 'happyforms_admin_footer' );
56
+ add_action( 'load-edit.php', array( $this, 'change_bulk_draft_post_status' ) );
57
+ add_action( 'transition_post_status', array( $this, 'change_draft_post_status' ), 10, 3 );
58
  }
59
 
60
  /**
426
  }
427
  }
428
 
429
+ /**
430
+ * Action: change bulk post from draft to publish.
431
+ *
432
+ * @since 1.0
433
+ *
434
+ * @hooked action load-edit.php
435
+ *
436
+ * @return void
437
+ */
438
+ public function change_bulk_draft_post_status() {
439
+ $post_type = happyforms_get_form_controller()->post_type;
440
+
441
+ $args = array(
442
+ 'post_type' => $post_type,
443
+ 'post_status' => 'draft',
444
+ 'posts_per_page' => -1,
445
+ 'fields' => 'ids'
446
+ );
447
+
448
+ $draft_forms = get_posts( $args );
449
+
450
+ foreach( $draft_forms as $form_id ) {
451
+ $query = array(
452
+ 'ID' => $form_id,
453
+ 'post_status' => 'publish',
454
+ );
455
+ wp_update_post( $query, true );
456
+ }
457
+ }
458
+
459
+ /**
460
+ * Action: change post from draft to publish.
461
+ *
462
+ * @since 1.24.1
463
+ *
464
+ * @hooked action transition_post_status
465
+ *
466
+ * @return void
467
+ */
468
+ public function change_draft_post_status( $new, $old, $post ) {
469
+ $post_type = happyforms_get_form_controller()->post_type;
470
+
471
+ if ( $post_type !== $post->post_type ) {
472
+ return;
473
+ }
474
+
475
+ if ( $new === $old ) {
476
+ return;
477
+ }
478
+
479
+ if ( 'draft' !== $new ) {
480
+ return;
481
+ }
482
+
483
+ wp_update_post( array( 'ID' => $post->ID, 'post_status' => 'publish' ) );
484
+ }
485
+
486
+
487
  /**
488
  * Action: output Javascript logic for copying
489
  * shortcodes to clipboard in the All Forms admin screen.
core/classes/class-form-styles.php CHANGED
@@ -40,8 +40,9 @@ class HappyForms_Form_Styles {
40
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class' ), 10, 2 );
41
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class_title_display' ), 10, 2 );
42
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class_compat' ), PHP_INT_MAX, 2 );
43
- add_filter( 'happyforms_get_form_data', array( $this, 'control_global_label_settings') );
44
- add_filter( 'happyforms_get_form_data', array( $this, 'control_global_description_settings') );
 
45
  add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
46
  }
47
 
@@ -57,10 +58,8 @@ class HappyForms_Form_Styles {
57
  'sanitize' => 'sanitize_text_field'
58
  ),
59
  'form_width' => array(
60
- 'default' => '100%',
61
- 'unit' => '',
62
- 'include_unit_switch' => true,
63
- 'units' => array( '%', 'px' ),
64
  'min' => 10,
65
  'max' => 100,
66
  'step' => 10,
@@ -1003,6 +1002,14 @@ class HappyForms_Form_Styles {
1003
  return $form;
1004
  }
1005
 
 
 
 
 
 
 
 
 
1006
  public function do_control( $control, $field, $index ) {
1007
  $type = $control['type'];
1008
  $path = happyforms_get_core_folder() . '/templates/customize-controls/style';
40
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class' ), 10, 2 );
41
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class_title_display' ), 10, 2 );
42
  add_filter( 'happyforms_form_class', array( $this, 'form_html_class_compat' ), PHP_INT_MAX, 2 );
43
+ add_filter( 'happyforms_get_form_data', array( $this, 'control_global_label_settings' ) );
44
+ add_filter( 'happyforms_get_form_data', array( $this, 'control_global_description_settings' ) );
45
+ add_filter( 'happyforms_get_form_data', array( $this, 'cap_form_width' ) );
46
  add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
47
  }
48
 
58
  'sanitize' => 'sanitize_text_field'
59
  ),
60
  'form_width' => array(
61
+ 'default' => '100',
62
+ 'unit' => '%',
 
 
63
  'min' => 10,
64
  'max' => 100,
65
  'step' => 10,
1002
  return $form;
1003
  }
1004
 
1005
+ public function cap_form_width( $form ) {
1006
+ $form['form_width'] = preg_replace( '/[^\d*]/', '', $form['form_width'] );
1007
+ $form['form_width'] = intval( $form['form_width'] );
1008
+ $form['form_width'] = min( $form['form_width'], 100 );
1009
+
1010
+ return $form;
1011
+ }
1012
+
1013
  public function do_control( $control, $field, $index ) {
1014
  $type = $control['type'];
1015
  $path = happyforms_get_core_folder() . '/templates/customize-controls/style';
core/classes/parts/class-part-select.php CHANGED
@@ -67,10 +67,6 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
67
  'default' => array(),
68
  'sanitize' => 'happyforms_sanitize_array'
69
  ),
70
- 'allow_search' => array(
71
- 'default' => 0,
72
- 'sanitize' => 'happyforms_sanitize_checkbox'
73
- ),
74
  );
75
 
76
  return happyforms_get_part_customize_fields( $fields, $this->type );
67
  'default' => array(),
68
  'sanitize' => 'happyforms_sanitize_array'
69
  ),
 
 
 
 
70
  );
71
 
72
  return happyforms_get_part_customize_fields( $fields, $this->type );
core/templates/admin-shortcode.php CHANGED
@@ -1,8 +1,8 @@
1
  <script type="text/html" id="tmpl-happyforms-shortcode">
2
  <div class="loading-placeholder">
3
  <div style="text-align: center">
4
- <span>{{ data.title }} HappyForms</span>
5
  </div>
6
  </div>
7
  <span class="wpview-end"></span>
8
- </script>
1
  <script type="text/html" id="tmpl-happyforms-shortcode">
2
  <div class="loading-placeholder">
3
  <div style="text-align: center">
4
+ <span>{{ data.title }}</span>
5
  </div>
6
  </div>
7
  <span class="wpview-end"></span>
8
+ </script>
core/templates/partials/happyforms-select.php CHANGED
@@ -1,9 +1,9 @@
1
  <ul class="happyforms-custom-select-dropdown">
2
- <li class="happyforms-custom-select-dropdown__placeholder" data-value=""><?php echo $placeholder_value; ?></li>
3
  <?php foreach ( $options as $index => $option ) : ?>
4
  <li <?php echo ( isset( $option['id'] ) ) ? 'data-option-id="'. esc_attr( $option['id'] ) .'" ' : ''; ?>data-value="<?php echo ( isset( $option['value'] ) ) ? $option['value'] : $index; ?>" data-label="<?php echo esc_attr( $option['label'] ); ?>" class="happyforms-dropdown-item happyforms-custom-select-dropdown__item"><?php echo esc_attr( $option['label'] ); ?></li>
5
  <?php endforeach; ?>
6
- <?php if ( isset( $part['allow_search'] ) && 1 == $part['allow_search'] ) : ?>
7
  <li class="happyforms-custom-select-dropdown__not-found"><?php echo esc_attr( $form['no_results_label'] ); ?></li>
8
  <?php endif; ?>
9
  </ul>
1
  <ul class="happyforms-custom-select-dropdown">
2
+ <li class="happyforms-custom-select-dropdown__placeholder" data-value="" data-label=""><?php echo $placeholder_value; ?></li>
3
  <?php foreach ( $options as $index => $option ) : ?>
4
  <li <?php echo ( isset( $option['id'] ) ) ? 'data-option-id="'. esc_attr( $option['id'] ) .'" ' : ''; ?>data-value="<?php echo ( isset( $option['value'] ) ) ? $option['value'] : $index; ?>" data-label="<?php echo esc_attr( $option['label'] ); ?>" class="happyforms-dropdown-item happyforms-custom-select-dropdown__item"><?php echo esc_attr( $option['label'] ); ?></li>
5
  <?php endforeach; ?>
6
+ <?php if ( count( $options ) > 5 ) : ?>
7
  <li class="happyforms-custom-select-dropdown__not-found"><?php echo esc_attr( $form['no_results_label'] ); ?></li>
8
  <?php endif; ?>
9
  </ul>
core/templates/parts/customize-select.php CHANGED
@@ -46,12 +46,6 @@
46
 
47
  <?php do_action( 'happyforms_part_customize_select_before_advanced_options' ); ?>
48
 
49
- <p>
50
- <label>
51
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.allow_search ) { %>checked="checked"<% } %> data-bind="allow_search" /> <?php _e( 'Make searchable', 'happyforms' ); ?>
52
- </label>
53
- </p>
54
-
55
  <?php happyforms_customize_part_width_control(); ?>
56
 
57
  <?php do_action( 'happyforms_part_customize_select_after_advanced_options' ); ?>
46
 
47
  <?php do_action( 'happyforms_part_customize_select_before_advanced_options' ); ?>
48
 
 
 
 
 
 
 
49
  <?php happyforms_customize_part_width_control(); ?>
50
 
51
  <?php do_action( 'happyforms_part_customize_select_after_advanced_options' ); ?>
core/templates/parts/frontend-select.php CHANGED
@@ -15,7 +15,7 @@
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
 
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="<?php echo ( count( $part['options'] ) > 5 ) ? 'true' : 'false'; ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
 
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.io
6
  * Description: We're changin' WordPress forms.
7
  * Author: Happyforms
8
- * Version: 1.12.1
9
  * Author URI: https://happyforms.io
10
  * Upgrade URI: https://happyforms.io/upgrade
11
  */
@@ -13,7 +13,7 @@
13
  /**
14
  * The current version of the plugin.
15
  */
16
- define( 'HAPPYFORMS_VERSION', '1.12.1' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
5
  * Plugin URI: https://happyforms.io
6
  * Description: We're changin' WordPress forms.
7
  * Author: Happyforms
8
+ * Version: 1.12.2
9
  * Author URI: https://happyforms.io
10
  * Upgrade URI: https://happyforms.io/upgrade
11
  */
13
  /**
14
  * The current version of the plugin.
15
  */
16
+ define( 'HAPPYFORMS_VERSION', '1.12.2' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/assets/js/customize.js CHANGED
@@ -1994,7 +1994,6 @@
1994
  ready: function() {
1995
  this.initColorPickers();
1996
  this.initUISliders();
1997
- this.initFormWidthSlider();
1998
  this.setupHelpPointers();
1999
  this.initCodeEditors();
2000
 
@@ -2202,67 +2201,6 @@
2202
  } );
2203
  },
2204
 
2205
- initFormWidthSlider: function(reInit) {
2206
- var self = this;
2207
-
2208
- var $container = this.$el.find( '.happyforms-range-control#customize-control-form_width' );
2209
- var $input = $( 'input', $container );
2210
- var $unitSwitch = $( '.happyforms-unit-switch', $container );
2211
-
2212
- var stringValue = this.model.get('form_width').toString();
2213
- var numericValue = (stringValue) ? parseFloat(stringValue.replace(/px|%/gi, '')) : 100;
2214
- var unit = $unitSwitch.val();
2215
-
2216
- if ( ! reInit ) {
2217
- if ( -1 !== stringValue.indexOf('%') ) {
2218
- unit = '%';
2219
- } else if ( -1 !== stringValue.indexOf('px') ) {
2220
- unit = 'px';
2221
- } else {
2222
- unit = '%';
2223
- }
2224
-
2225
- $unitSwitch.val(unit);
2226
- }
2227
-
2228
- var min = ('px' === unit) ? 360 : 0;
2229
- var max = ('px' === unit) ? 1440 : 100;
2230
- var step = ('px' === unit) ? 10 : 5;
2231
-
2232
- $input.attr('min', min);
2233
- $input.attr('max', max);
2234
- $input.attr('step', step);
2235
-
2236
- $unitSwitch.on('change', function () {
2237
- self.initFormWidthSlider(true);
2238
- });
2239
-
2240
- if ( reInit ) {
2241
- numericValue = ('%' === unit) ? 100 : 900;
2242
-
2243
- self.updateFormWidth(numericValue, unit);
2244
- }
2245
-
2246
- $input.val(numericValue);
2247
-
2248
- $input.on('keyup change mouseup', function () {
2249
- var $this = $(this);
2250
-
2251
- self.updateFormWidth($this.val(), unit);
2252
- });
2253
- },
2254
-
2255
- updateFormWidth: function( value, unit ) {
2256
- this.model.set('form_width', value + unit);
2257
-
2258
- var data = {
2259
- variable: '--happyforms-form-width',
2260
- value: value + unit,
2261
- };
2262
-
2263
- happyForms.previewSend('happyforms-css-variable-update', data);
2264
- },
2265
-
2266
  initCodeEditors: function() {
2267
  if ( ! $( '.happyforms-code-control', this.$el ).length ) {
2268
  return;
1994
  ready: function() {
1995
  this.initColorPickers();
1996
  this.initUISliders();
 
1997
  this.setupHelpPointers();
1998
  this.initCodeEditors();
1999
 
2201
  } );
2202
  },
2203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2204
  initCodeEditors: function() {
2205
  if ( ! $( '.happyforms-code-control', this.$el ).length ) {
2206
  return;
languages/happyforms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the Happyforms (free) package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Happyforms (free) 1.12.1\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2021-03-20 06:04:17+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -48,116 +48,116 @@ msgstr ""
48
  msgid "Edit Form"
49
  msgstr ""
50
 
51
- #: core/classes/class-form-admin.php:155
52
  #: core/classes/class-form-controller.php:74
53
  msgid "View form"
54
  msgstr ""
55
 
56
- #: core/classes/class-form-admin.php:160
57
  msgid "Preview form"
58
  msgstr ""
59
 
60
- #: core/classes/class-form-admin.php:165 core/classes/class-form-admin.php:168
61
  msgid "Form updated."
62
  msgstr ""
63
 
64
- #: core/classes/class-form-admin.php:166
65
  msgid "Custom field updated."
66
  msgstr ""
67
 
68
- #: core/classes/class-form-admin.php:167
69
  msgid "Custom field deleted."
70
  msgstr ""
71
 
72
- #: core/classes/class-form-admin.php:169
73
  msgid "Form restored to revision from %s."
74
  msgstr ""
75
 
76
- #: core/classes/class-form-admin.php:170
77
  msgid "Form published."
78
  msgstr ""
79
 
80
- #: core/classes/class-form-admin.php:171
81
  msgid "Form saved."
82
  msgstr ""
83
 
84
- #: core/classes/class-form-admin.php:172
85
  msgid "Form submitted."
86
  msgstr ""
87
 
88
- #: core/classes/class-form-admin.php:173
89
  msgid "Form scheduled."
90
  msgstr ""
91
 
92
- #: core/classes/class-form-admin.php:174
93
  msgid "Form draft updated."
94
  msgstr ""
95
 
96
- #: core/classes/class-form-admin.php:197
97
  msgid "%s form updated."
98
  msgid_plural "%s forms updated."
99
  msgstr[0] ""
100
  msgstr[1] ""
101
 
102
- #: core/classes/class-form-admin.php:198
103
  msgid "%s form not updated, somebody is editing it."
104
  msgid_plural "%s forms not updated, somebody is editing them."
105
  msgstr[0] ""
106
  msgstr[1] ""
107
 
108
- #: core/classes/class-form-admin.php:199
109
  msgid "%s form permanently deleted."
110
  msgid_plural "%s forms permanently deleted."
111
  msgstr[0] ""
112
  msgstr[1] ""
113
 
114
- #: core/classes/class-form-admin.php:200
115
  msgid "%s form moved to the Trash."
116
  msgid_plural "%s forms moved to the Trash."
117
  msgstr[0] ""
118
  msgstr[1] ""
119
 
120
- #: core/classes/class-form-admin.php:201
121
  msgid "%s form restored from the Trash."
122
  msgid_plural "%s forms restored from the Trash."
123
  msgstr[0] ""
124
  msgstr[1] ""
125
 
126
- #: core/classes/class-form-admin.php:244
127
  msgid "Shortcode"
128
  msgstr ""
129
 
130
- #: core/classes/class-form-admin.php:245
131
  msgid "Author"
132
  msgstr ""
133
 
134
- #: core/classes/class-form-admin.php:283
135
  msgid "Copy to clipboard"
136
  msgstr ""
137
 
138
- #: core/classes/class-form-admin.php:314
139
  msgid "Last modified"
140
  msgstr ""
141
 
142
- #: core/classes/class-form-admin.php:353
143
  msgid "Edit"
144
  msgstr ""
145
 
146
- #: core/classes/class-form-admin.php:357
147
  #: core/templates/customize-form-item.php:27
148
  #: core/templates/customize-form-part-footer.php:4
149
  msgid "Duplicate"
150
  msgstr ""
151
 
152
- #: core/classes/class-form-admin.php:361
153
  msgid "Trash"
154
  msgstr ""
155
 
156
- #: core/classes/class-form-admin.php:405
157
  msgid "1 form duplicated."
158
  msgstr ""
159
 
160
- #: core/classes/class-form-admin.php:407
161
  msgid "Undo"
162
  msgstr ""
163
 
@@ -458,50 +458,57 @@ msgstr ""
458
  msgid "Question is optional"
459
  msgstr ""
460
 
461
- #: core/classes/class-form-styles.php:53
462
  msgid "Left-to-right"
463
  msgstr ""
464
 
465
- #: core/classes/class-form-styles.php:54
466
  msgid "Right-to-left"
467
  msgstr ""
468
 
469
- #: core/classes/class-form-styles.php:75 core/classes/class-form-styles.php:149
470
- #: core/classes/class-form-styles.php:159
471
- #: core/classes/class-form-styles.php:282
472
- #: core/classes/class-form-styles.php:292
473
  msgid "Default"
474
  msgstr ""
475
 
476
- #: core/classes/class-form-styles.php:76 core/classes/class-form-styles.php:148
477
- #: core/classes/class-form-styles.php:158
478
- #: core/classes/class-form-styles.php:291
479
  msgid "Narrow"
480
  msgstr ""
481
 
482
- #: core/classes/class-form-styles.php:77 core/classes/class-form-styles.php:150
483
- #: core/classes/class-form-styles.php:160
484
- #: core/classes/class-form-styles.php:293
485
  msgid "Wide"
486
  msgstr ""
487
 
488
- #: core/classes/class-form-styles.php:91 core/classes/class-form-styles.php:120
489
- #: core/classes/class-form-styles.php:263
490
  msgid "Show"
491
  msgstr ""
492
 
493
- #: core/classes/class-form-styles.php:92 core/classes/class-form-styles.php:121
494
- #: core/classes/class-form-styles.php:264
495
  msgid "Hide"
496
  msgstr ""
497
 
 
 
 
 
 
 
 
 
498
  #: core/classes/class-form-styles.php:100
499
  #: core/classes/class-form-styles.php:174
500
- #: core/classes/class-form-styles.php:205
501
  #: core/classes/class-form-styles.php:214
502
  #: core/classes/class-form-styles.php:243
503
  #: core/classes/class-form-styles.php:320
504
- msgid "Left"
505
  msgstr ""
506
 
507
  #: core/classes/class-form-styles.php:101
@@ -509,247 +516,239 @@ msgstr ""
509
  #: core/classes/class-form-styles.php:215
510
  #: core/classes/class-form-styles.php:244
511
  #: core/classes/class-form-styles.php:321
512
- msgid "Center"
513
- msgstr ""
514
-
515
- #: core/classes/class-form-styles.php:102
516
- #: core/classes/class-form-styles.php:176
517
- #: core/classes/class-form-styles.php:216
518
- #: core/classes/class-form-styles.php:245
519
- #: core/classes/class-form-styles.php:322
520
  msgid "Right"
521
  msgstr ""
522
 
523
- #: core/classes/class-form-styles.php:129
524
  msgid "All sides"
525
  msgstr ""
526
 
527
- #: core/classes/class-form-styles.php:130
528
  msgid "Bottom only"
529
  msgstr ""
530
 
531
- #: core/classes/class-form-styles.php:138
532
- #: core/classes/class-form-styles.php:272
533
  msgid "Square"
534
  msgstr ""
535
 
536
- #: core/classes/class-form-styles.php:139
537
- #: core/classes/class-form-styles.php:273
538
  msgid "Round"
539
  msgstr ""
540
 
541
- #: core/classes/class-form-styles.php:140
542
- #: core/classes/class-form-styles.php:274
543
  msgid "Pill"
544
  msgstr ""
545
 
546
- #: core/classes/class-form-styles.php:194
547
- #: core/classes/class-form-styles.php:311
548
  msgid "Normal"
549
  msgstr ""
550
 
551
- #: core/classes/class-form-styles.php:195
552
- #: core/classes/class-form-styles.php:312
553
  msgid "Bold"
554
  msgstr ""
555
 
556
- #: core/classes/class-form-styles.php:203
557
  msgid "Above"
558
  msgstr ""
559
 
560
- #: core/classes/class-form-styles.php:204
561
  msgid "Below"
562
  msgstr ""
563
 
564
- #: core/classes/class-form-styles.php:206
565
  msgid "Hidden"
566
  msgstr ""
567
 
568
- #: core/classes/class-form-styles.php:234
569
  msgid "Standard"
570
  msgstr ""
571
 
572
- #: core/classes/class-form-styles.php:235
573
  msgid "Tooltip"
574
  msgstr ""
575
 
576
- #: core/classes/class-form-styles.php:283
577
  msgid "Full width"
578
  msgstr ""
579
 
580
- #: core/classes/class-form-styles.php:534
581
  msgid "Above form"
582
  msgstr ""
583
 
584
- #: core/classes/class-form-styles.php:535
585
  msgid "Below form"
586
  msgstr ""
587
 
588
- #: core/classes/class-form-styles.php:555
589
  msgid "General"
590
  msgstr ""
591
 
592
- #: core/classes/class-form-styles.php:560
593
- #: core/classes/class-form-styles.php:885 core/helpers/helper-misc.php:929
594
  #: core/templates/parts/customize-checkbox.php:68
595
  msgid "Width"
596
  msgstr ""
597
 
598
- #: core/classes/class-form-styles.php:565
599
- #: core/classes/class-form-styles.php:890
600
  msgid "Padding"
601
  msgstr ""
602
 
603
- #: core/classes/class-form-styles.php:570
604
  msgid "Direction"
605
  msgstr ""
606
 
607
- #: core/classes/class-form-styles.php:575
608
  msgid "Message location"
609
  msgstr ""
610
 
611
- #: core/classes/class-form-styles.php:581
612
- #: core/classes/class-form-styles.php:666
613
- #: core/classes/class-form-styles.php:746
614
- #: core/classes/class-form-styles.php:916
615
  msgid "Colors"
616
  msgstr ""
617
 
618
- #: core/classes/class-form-styles.php:585
619
  msgid "Primary"
620
  msgstr ""
621
 
622
- #: core/classes/class-form-styles.php:590
623
  msgid "Success message background"
624
  msgstr ""
625
 
626
- #: core/classes/class-form-styles.php:595
627
  msgid "Success message text"
628
  msgstr ""
629
 
630
- #: core/classes/class-form-styles.php:600
631
  msgid "Validation message text"
632
  msgstr ""
633
 
634
- #: core/classes/class-form-styles.php:605
635
  msgid "Error message background"
636
  msgstr ""
637
 
638
- #: core/classes/class-form-styles.php:610
639
  msgid "Error message text"
640
  msgstr ""
641
 
642
- #: core/classes/class-form-styles.php:615
643
  #: inc/classes/parts/class-part-layout-title-dummy.php:8
644
  #: inc/classes/parts/class-part-title-dummy.php:8
645
  msgid "Title"
646
  msgstr ""
647
 
648
- #: core/classes/class-form-styles.php:620
649
  msgid "Display"
650
  msgstr ""
651
 
652
- #: core/classes/class-form-styles.php:625
653
- #: core/classes/class-form-styles.php:905
654
  msgid "Alignment"
655
  msgstr ""
656
 
657
- #: core/classes/class-form-styles.php:630
658
- #: core/classes/class-form-styles.php:895
659
  msgid "Font size"
660
  msgstr ""
661
 
662
- #: core/classes/class-form-styles.php:635
663
  msgid "Field borders & spacing"
664
  msgstr ""
665
 
666
- #: core/classes/class-form-styles.php:640
667
- #: core/classes/class-form-styles.php:670
668
- #: core/classes/class-form-styles.php:875
669
- #: core/classes/class-form-styles.php:930
670
  msgid "Border"
671
  msgstr ""
672
 
673
- #: core/classes/class-form-styles.php:645
674
  msgid "Border location"
675
  msgstr ""
676
 
677
- #: core/classes/class-form-styles.php:650
678
- #: core/classes/class-form-styles.php:880
679
  msgid "Border radius"
680
  msgstr ""
681
 
682
- #: core/classes/class-form-styles.php:655
683
  msgid "Outer spacing"
684
  msgstr ""
685
 
686
- #: core/classes/class-form-styles.php:660
687
  msgid "Inner spacing"
688
  msgstr ""
689
 
690
- #: core/classes/class-form-styles.php:675
691
  msgid "Border on focus"
692
  msgstr ""
693
 
694
- #: core/classes/class-form-styles.php:680
695
- #: core/classes/class-form-styles.php:780
696
- #: core/classes/class-form-styles.php:805
697
- #: core/classes/class-form-styles.php:920
698
  msgid "Background"
699
  msgstr ""
700
 
701
- #: core/classes/class-form-styles.php:685
702
- #: core/classes/class-form-styles.php:790
703
- #: core/classes/class-form-styles.php:810
704
- #: core/classes/class-form-styles.php:925
705
  msgid "Background on focus"
706
  msgstr ""
707
 
708
- #: core/classes/class-form-styles.php:690
709
  msgid "Field labels & text"
710
  msgstr ""
711
 
712
- #: core/classes/class-form-styles.php:695
713
  msgid "Toggle placeholder on field focus"
714
  msgstr ""
715
 
716
- #: core/classes/class-form-styles.php:700
717
  msgid "Label alignment"
718
  msgstr ""
719
 
720
- #: core/classes/class-form-styles.php:705
721
  msgid "Label font size"
722
  msgstr ""
723
 
724
- #: core/classes/class-form-styles.php:710
725
  msgid "Label font weight"
726
  msgstr ""
727
 
728
- #: core/classes/class-form-styles.php:715
729
  msgid "Label display"
730
  msgstr ""
731
 
732
- #: core/classes/class-form-styles.php:720
733
  msgid "Hint alignment"
734
  msgstr ""
735
 
736
- #: core/classes/class-form-styles.php:725
737
  msgid "Hint font size"
738
  msgstr ""
739
 
740
- #: core/classes/class-form-styles.php:730
741
  msgid "Hint display"
742
  msgstr ""
743
 
744
- #: core/classes/class-form-styles.php:735
745
  msgid "Placeholder &amp; value alignment"
746
  msgstr ""
747
 
748
- #: core/classes/class-form-styles.php:740
749
  msgid "Value font size"
750
  msgstr ""
751
 
752
- #: core/classes/class-form-styles.php:750
753
  #: core/templates/parts/customize-checkbox.php:4
754
  #: core/templates/parts/customize-checkbox.php:102
755
  #: core/templates/parts/customize-email.php:4
@@ -758,16 +757,16 @@ msgstr ""
758
  #: core/templates/parts/customize-radio.php:4
759
  #: core/templates/parts/customize-radio.php:85
760
  #: core/templates/parts/customize-select.php:4
761
- #: core/templates/parts/customize-select.php:77
762
  #: core/templates/parts/customize-single-line-text.php:4
763
  msgid "Label"
764
  msgstr ""
765
 
766
- #: core/classes/class-form-styles.php:755
767
  msgid "Value"
768
  msgstr ""
769
 
770
- #: core/classes/class-form-styles.php:760
771
  #: core/templates/parts/customize-email.php:8
772
  #: core/templates/parts/customize-multi-line-text.php:8
773
  #: core/templates/parts/customize-number.php:8
@@ -777,7 +776,7 @@ msgstr ""
777
  msgid "Placeholder"
778
  msgstr ""
779
 
780
- #: core/classes/class-form-styles.php:765
781
  #: core/templates/parts/customize-checkbox.php:8
782
  #: core/templates/parts/customize-email.php:16
783
  #: core/templates/parts/customize-multi-line-text.php:16
@@ -788,106 +787,106 @@ msgstr ""
788
  msgid "Hint"
789
  msgstr ""
790
 
791
- #: core/classes/class-form-styles.php:770
792
  msgid "Dropdowns"
793
  msgstr ""
794
 
795
- #: core/classes/class-form-styles.php:776
796
  msgid "Items"
797
  msgstr ""
798
 
799
- #: core/classes/class-form-styles.php:785
800
- #: core/classes/class-form-styles.php:935
801
  msgid "Text"
802
  msgstr ""
803
 
804
- #: core/classes/class-form-styles.php:795
805
  msgid "Text focused"
806
  msgstr ""
807
 
808
- #: core/classes/class-form-styles.php:800
809
  msgid "Checkboxes & Radios"
810
  msgstr ""
811
 
812
- #: core/classes/class-form-styles.php:815
813
  msgid "Checkmark"
814
  msgstr ""
815
 
816
- #: core/classes/class-form-styles.php:820
817
  msgid "Rating"
818
  msgstr ""
819
 
820
- #: core/classes/class-form-styles.php:825
821
  msgid "Rating star color"
822
  msgstr ""
823
 
824
- #: core/classes/class-form-styles.php:830
825
  msgid "Rating star color on hover"
826
  msgstr ""
827
 
828
- #: core/classes/class-form-styles.php:835
829
  msgid "Tables"
830
  msgstr ""
831
 
832
- #: core/classes/class-form-styles.php:840
833
  msgid "Odd row primary"
834
  msgstr ""
835
 
836
- #: core/classes/class-form-styles.php:845
837
  msgid "Odd row secondary"
838
  msgstr ""
839
 
840
- #: core/classes/class-form-styles.php:850
841
  msgid "Even row primary"
842
  msgstr ""
843
 
844
- #: core/classes/class-form-styles.php:855
845
  msgid "Even row secondary"
846
  msgstr ""
847
 
848
- #: core/classes/class-form-styles.php:860
849
  msgid "Dividers"
850
  msgstr ""
851
 
852
- #: core/classes/class-form-styles.php:865
853
  msgid "Color"
854
  msgstr ""
855
 
856
- #: core/classes/class-form-styles.php:870
857
  msgid "Submit button"
858
  msgstr ""
859
 
860
- #: core/classes/class-form-styles.php:900
861
  msgid "Font weight"
862
  msgstr ""
863
 
864
- #: core/classes/class-form-styles.php:910
865
  msgid "Make button a field of last input"
866
  msgstr ""
867
 
868
- #: core/classes/class-form-styles.php:940
869
  msgid "Text on focus"
870
  msgstr ""
871
 
872
- #: core/classes/class-form-styles.php:952
873
  msgid "Add your own CSS code here to customize the appearance of your form."
874
  msgstr ""
875
 
876
- #: core/classes/class-form-styles.php:954
877
  msgid ""
878
  "For each rule you add, we'll prepend your form's HTML ID. This makes sure "
879
  "all styles added will only apply to this form. For example %s becomes %s."
880
  msgstr ""
881
 
882
- #: core/classes/class-form-styles.php:962
883
  msgid ""
884
  "The edit field automatically highlights code syntax. You can disable this "
885
  "in your <a href=\"%s\" class=\"%s\" target=\"_blank\">user profile</a> to "
886
  "work in plain text mode."
887
  msgstr ""
888
 
889
- #: core/classes/class-form-styles.php:970
890
- #: core/classes/class-form-styles.php:980
891
  msgid "Additional CSS"
892
  msgstr ""
893
 
@@ -2962,7 +2961,7 @@ msgstr ""
2962
  #: core/templates/customize-form-part-footer.php:3
2963
  #: core/templates/parts/customize-checkbox.php:111
2964
  #: core/templates/parts/customize-radio.php:94
2965
- #: core/templates/parts/customize-select.php:86
2966
  msgid "Delete"
2967
  msgstr ""
2968
 
@@ -3112,20 +3111,20 @@ msgstr ""
3112
  #: core/templates/parts/customize-multi-line-text.php:64
3113
  #: core/templates/parts/customize-number.php:69
3114
  #: core/templates/parts/customize-radio.php:66
3115
- #: core/templates/parts/customize-select.php:60
3116
  #: core/templates/parts/customize-single-line-text.php:45
3117
  msgid "CSS classes"
3118
  msgstr ""
3119
 
3120
  #: core/templates/parts/customize-checkbox.php:107
3121
  #: core/templates/parts/customize-radio.php:90
3122
- #: core/templates/parts/customize-select.php:82
3123
  msgid "Make this choice default"
3124
  msgstr ""
3125
 
3126
  #: core/templates/parts/customize-checkbox.php:112
3127
  #: core/templates/parts/customize-radio.php:95
3128
- #: core/templates/parts/customize-select.php:87
3129
  msgid "More"
3130
  msgstr ""
3131
 
@@ -3184,10 +3183,6 @@ msgstr ""
3184
  msgid "Decimal"
3185
  msgstr ""
3186
 
3187
- #: core/templates/parts/customize-select.php:51
3188
- msgid "Make searchable"
3189
- msgstr ""
3190
-
3191
  #: core/templates/preview-form-pencil.php:3
3192
  msgid "Click to edit this part."
3193
  msgstr ""
2
  # This file is distributed under the same license as the Happyforms (free) package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Happyforms (free) 1.12.2\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2021-03-31 13:49:47+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
48
  msgid "Edit Form"
49
  msgstr ""
50
 
51
+ #: core/classes/class-form-admin.php:157
52
  #: core/classes/class-form-controller.php:74
53
  msgid "View form"
54
  msgstr ""
55
 
56
+ #: core/classes/class-form-admin.php:162
57
  msgid "Preview form"
58
  msgstr ""
59
 
60
+ #: core/classes/class-form-admin.php:167 core/classes/class-form-admin.php:170
61
  msgid "Form updated."
62
  msgstr ""
63
 
64
+ #: core/classes/class-form-admin.php:168
65
  msgid "Custom field updated."
66
  msgstr ""
67
 
68
+ #: core/classes/class-form-admin.php:169
69
  msgid "Custom field deleted."
70
  msgstr ""
71
 
72
+ #: core/classes/class-form-admin.php:171
73
  msgid "Form restored to revision from %s."
74
  msgstr ""
75
 
76
+ #: core/classes/class-form-admin.php:172
77
  msgid "Form published."
78
  msgstr ""
79
 
80
+ #: core/classes/class-form-admin.php:173
81
  msgid "Form saved."
82
  msgstr ""
83
 
84
+ #: core/classes/class-form-admin.php:174
85
  msgid "Form submitted."
86
  msgstr ""
87
 
88
+ #: core/classes/class-form-admin.php:175
89
  msgid "Form scheduled."
90
  msgstr ""
91
 
92
+ #: core/classes/class-form-admin.php:176
93
  msgid "Form draft updated."
94
  msgstr ""
95
 
96
+ #: core/classes/class-form-admin.php:199
97
  msgid "%s form updated."
98
  msgid_plural "%s forms updated."
99
  msgstr[0] ""
100
  msgstr[1] ""
101
 
102
+ #: core/classes/class-form-admin.php:200
103
  msgid "%s form not updated, somebody is editing it."
104
  msgid_plural "%s forms not updated, somebody is editing them."
105
  msgstr[0] ""
106
  msgstr[1] ""
107
 
108
+ #: core/classes/class-form-admin.php:201
109
  msgid "%s form permanently deleted."
110
  msgid_plural "%s forms permanently deleted."
111
  msgstr[0] ""
112
  msgstr[1] ""
113
 
114
+ #: core/classes/class-form-admin.php:202
115
  msgid "%s form moved to the Trash."
116
  msgid_plural "%s forms moved to the Trash."
117
  msgstr[0] ""
118
  msgstr[1] ""
119
 
120
+ #: core/classes/class-form-admin.php:203
121
  msgid "%s form restored from the Trash."
122
  msgid_plural "%s forms restored from the Trash."
123
  msgstr[0] ""
124
  msgstr[1] ""
125
 
126
+ #: core/classes/class-form-admin.php:246
127
  msgid "Shortcode"
128
  msgstr ""
129
 
130
+ #: core/classes/class-form-admin.php:247
131
  msgid "Author"
132
  msgstr ""
133
 
134
+ #: core/classes/class-form-admin.php:285
135
  msgid "Copy to clipboard"
136
  msgstr ""
137
 
138
+ #: core/classes/class-form-admin.php:316
139
  msgid "Last modified"
140
  msgstr ""
141
 
142
+ #: core/classes/class-form-admin.php:355
143
  msgid "Edit"
144
  msgstr ""
145
 
146
+ #: core/classes/class-form-admin.php:359
147
  #: core/templates/customize-form-item.php:27
148
  #: core/templates/customize-form-part-footer.php:4
149
  msgid "Duplicate"
150
  msgstr ""
151
 
152
+ #: core/classes/class-form-admin.php:363
153
  msgid "Trash"
154
  msgstr ""
155
 
156
+ #: core/classes/class-form-admin.php:407
157
  msgid "1 form duplicated."
158
  msgstr ""
159
 
160
+ #: core/classes/class-form-admin.php:409
161
  msgid "Undo"
162
  msgstr ""
163
 
458
  msgid "Question is optional"
459
  msgstr ""
460
 
461
+ #: core/classes/class-form-styles.php:54
462
  msgid "Left-to-right"
463
  msgstr ""
464
 
465
+ #: core/classes/class-form-styles.php:55
466
  msgid "Right-to-left"
467
  msgstr ""
468
 
469
+ #: core/classes/class-form-styles.php:74 core/classes/class-form-styles.php:148
470
+ #: core/classes/class-form-styles.php:158
471
+ #: core/classes/class-form-styles.php:281
472
+ #: core/classes/class-form-styles.php:291
473
  msgid "Default"
474
  msgstr ""
475
 
476
+ #: core/classes/class-form-styles.php:75 core/classes/class-form-styles.php:147
477
+ #: core/classes/class-form-styles.php:157
478
+ #: core/classes/class-form-styles.php:290
479
  msgid "Narrow"
480
  msgstr ""
481
 
482
+ #: core/classes/class-form-styles.php:76 core/classes/class-form-styles.php:149
483
+ #: core/classes/class-form-styles.php:159
484
+ #: core/classes/class-form-styles.php:292
485
  msgid "Wide"
486
  msgstr ""
487
 
488
+ #: core/classes/class-form-styles.php:90 core/classes/class-form-styles.php:119
489
+ #: core/classes/class-form-styles.php:262
490
  msgid "Show"
491
  msgstr ""
492
 
493
+ #: core/classes/class-form-styles.php:91 core/classes/class-form-styles.php:120
494
+ #: core/classes/class-form-styles.php:263
495
  msgid "Hide"
496
  msgstr ""
497
 
498
+ #: core/classes/class-form-styles.php:99 core/classes/class-form-styles.php:173
499
+ #: core/classes/class-form-styles.php:204
500
+ #: core/classes/class-form-styles.php:213
501
+ #: core/classes/class-form-styles.php:242
502
+ #: core/classes/class-form-styles.php:319
503
+ msgid "Left"
504
+ msgstr ""
505
+
506
  #: core/classes/class-form-styles.php:100
507
  #: core/classes/class-form-styles.php:174
 
508
  #: core/classes/class-form-styles.php:214
509
  #: core/classes/class-form-styles.php:243
510
  #: core/classes/class-form-styles.php:320
511
+ msgid "Center"
512
  msgstr ""
513
 
514
  #: core/classes/class-form-styles.php:101
516
  #: core/classes/class-form-styles.php:215
517
  #: core/classes/class-form-styles.php:244
518
  #: core/classes/class-form-styles.php:321
 
 
 
 
 
 
 
 
519
  msgid "Right"
520
  msgstr ""
521
 
522
+ #: core/classes/class-form-styles.php:128
523
  msgid "All sides"
524
  msgstr ""
525
 
526
+ #: core/classes/class-form-styles.php:129
527
  msgid "Bottom only"
528
  msgstr ""
529
 
530
+ #: core/classes/class-form-styles.php:137
531
+ #: core/classes/class-form-styles.php:271
532
  msgid "Square"
533
  msgstr ""
534
 
535
+ #: core/classes/class-form-styles.php:138
536
+ #: core/classes/class-form-styles.php:272
537
  msgid "Round"
538
  msgstr ""
539
 
540
+ #: core/classes/class-form-styles.php:139
541
+ #: core/classes/class-form-styles.php:273
542
  msgid "Pill"
543
  msgstr ""
544
 
545
+ #: core/classes/class-form-styles.php:193
546
+ #: core/classes/class-form-styles.php:310
547
  msgid "Normal"
548
  msgstr ""
549
 
550
+ #: core/classes/class-form-styles.php:194
551
+ #: core/classes/class-form-styles.php:311
552
  msgid "Bold"
553
  msgstr ""
554
 
555
+ #: core/classes/class-form-styles.php:202
556
  msgid "Above"
557
  msgstr ""
558
 
559
+ #: core/classes/class-form-styles.php:203
560
  msgid "Below"
561
  msgstr ""
562
 
563
+ #: core/classes/class-form-styles.php:205
564
  msgid "Hidden"
565
  msgstr ""
566
 
567
+ #: core/classes/class-form-styles.php:233
568
  msgid "Standard"
569
  msgstr ""
570
 
571
+ #: core/classes/class-form-styles.php:234
572
  msgid "Tooltip"
573
  msgstr ""
574
 
575
+ #: core/classes/class-form-styles.php:282
576
  msgid "Full width"
577
  msgstr ""
578
 
579
+ #: core/classes/class-form-styles.php:533
580
  msgid "Above form"
581
  msgstr ""
582
 
583
+ #: core/classes/class-form-styles.php:534
584
  msgid "Below form"
585
  msgstr ""
586
 
587
+ #: core/classes/class-form-styles.php:554
588
  msgid "General"
589
  msgstr ""
590
 
591
+ #: core/classes/class-form-styles.php:559
592
+ #: core/classes/class-form-styles.php:884 core/helpers/helper-misc.php:929
593
  #: core/templates/parts/customize-checkbox.php:68
594
  msgid "Width"
595
  msgstr ""
596
 
597
+ #: core/classes/class-form-styles.php:564
598
+ #: core/classes/class-form-styles.php:889
599
  msgid "Padding"
600
  msgstr ""
601
 
602
+ #: core/classes/class-form-styles.php:569
603
  msgid "Direction"
604
  msgstr ""
605
 
606
+ #: core/classes/class-form-styles.php:574
607
  msgid "Message location"
608
  msgstr ""
609
 
610
+ #: core/classes/class-form-styles.php:580
611
+ #: core/classes/class-form-styles.php:665
612
+ #: core/classes/class-form-styles.php:745
613
+ #: core/classes/class-form-styles.php:915
614
  msgid "Colors"
615
  msgstr ""
616
 
617
+ #: core/classes/class-form-styles.php:584
618
  msgid "Primary"
619
  msgstr ""
620
 
621
+ #: core/classes/class-form-styles.php:589
622
  msgid "Success message background"
623
  msgstr ""
624
 
625
+ #: core/classes/class-form-styles.php:594
626
  msgid "Success message text"
627
  msgstr ""
628
 
629
+ #: core/classes/class-form-styles.php:599
630
  msgid "Validation message text"
631
  msgstr ""
632
 
633
+ #: core/classes/class-form-styles.php:604
634
  msgid "Error message background"
635
  msgstr ""
636
 
637
+ #: core/classes/class-form-styles.php:609
638
  msgid "Error message text"
639
  msgstr ""
640
 
641
+ #: core/classes/class-form-styles.php:614
642
  #: inc/classes/parts/class-part-layout-title-dummy.php:8
643
  #: inc/classes/parts/class-part-title-dummy.php:8
644
  msgid "Title"
645
  msgstr ""
646
 
647
+ #: core/classes/class-form-styles.php:619
648
  msgid "Display"
649
  msgstr ""
650
 
651
+ #: core/classes/class-form-styles.php:624
652
+ #: core/classes/class-form-styles.php:904
653
  msgid "Alignment"
654
  msgstr ""
655
 
656
+ #: core/classes/class-form-styles.php:629
657
+ #: core/classes/class-form-styles.php:894
658
  msgid "Font size"
659
  msgstr ""
660
 
661
+ #: core/classes/class-form-styles.php:634
662
  msgid "Field borders & spacing"
663
  msgstr ""
664
 
665
+ #: core/classes/class-form-styles.php:639
666
+ #: core/classes/class-form-styles.php:669
667
+ #: core/classes/class-form-styles.php:874
668
+ #: core/classes/class-form-styles.php:929
669
  msgid "Border"
670
  msgstr ""
671
 
672
+ #: core/classes/class-form-styles.php:644
673
  msgid "Border location"
674
  msgstr ""
675
 
676
+ #: core/classes/class-form-styles.php:649
677
+ #: core/classes/class-form-styles.php:879
678
  msgid "Border radius"
679
  msgstr ""
680
 
681
+ #: core/classes/class-form-styles.php:654
682
  msgid "Outer spacing"
683
  msgstr ""
684
 
685
+ #: core/classes/class-form-styles.php:659
686
  msgid "Inner spacing"
687
  msgstr ""
688
 
689
+ #: core/classes/class-form-styles.php:674
690
  msgid "Border on focus"
691
  msgstr ""
692
 
693
+ #: core/classes/class-form-styles.php:679
694
+ #: core/classes/class-form-styles.php:779
695
+ #: core/classes/class-form-styles.php:804
696
+ #: core/classes/class-form-styles.php:919
697
  msgid "Background"
698
  msgstr ""
699
 
700
+ #: core/classes/class-form-styles.php:684
701
+ #: core/classes/class-form-styles.php:789
702
+ #: core/classes/class-form-styles.php:809
703
+ #: core/classes/class-form-styles.php:924
704
  msgid "Background on focus"
705
  msgstr ""
706
 
707
+ #: core/classes/class-form-styles.php:689
708
  msgid "Field labels & text"
709
  msgstr ""
710
 
711
+ #: core/classes/class-form-styles.php:694
712
  msgid "Toggle placeholder on field focus"
713
  msgstr ""
714
 
715
+ #: core/classes/class-form-styles.php:699
716
  msgid "Label alignment"
717
  msgstr ""
718
 
719
+ #: core/classes/class-form-styles.php:704
720
  msgid "Label font size"
721
  msgstr ""
722
 
723
+ #: core/classes/class-form-styles.php:709
724
  msgid "Label font weight"
725
  msgstr ""
726
 
727
+ #: core/classes/class-form-styles.php:714
728
  msgid "Label display"
729
  msgstr ""
730
 
731
+ #: core/classes/class-form-styles.php:719
732
  msgid "Hint alignment"
733
  msgstr ""
734
 
735
+ #: core/classes/class-form-styles.php:724
736
  msgid "Hint font size"
737
  msgstr ""
738
 
739
+ #: core/classes/class-form-styles.php:729
740
  msgid "Hint display"
741
  msgstr ""
742
 
743
+ #: core/classes/class-form-styles.php:734
744
  msgid "Placeholder &amp; value alignment"
745
  msgstr ""
746
 
747
+ #: core/classes/class-form-styles.php:739
748
  msgid "Value font size"
749
  msgstr ""
750
 
751
+ #: core/classes/class-form-styles.php:749
752
  #: core/templates/parts/customize-checkbox.php:4
753
  #: core/templates/parts/customize-checkbox.php:102
754
  #: core/templates/parts/customize-email.php:4
757
  #: core/templates/parts/customize-radio.php:4
758
  #: core/templates/parts/customize-radio.php:85
759
  #: core/templates/parts/customize-select.php:4
760
+ #: core/templates/parts/customize-select.php:71
761
  #: core/templates/parts/customize-single-line-text.php:4
762
  msgid "Label"
763
  msgstr ""
764
 
765
+ #: core/classes/class-form-styles.php:754
766
  msgid "Value"
767
  msgstr ""
768
 
769
+ #: core/classes/class-form-styles.php:759
770
  #: core/templates/parts/customize-email.php:8
771
  #: core/templates/parts/customize-multi-line-text.php:8
772
  #: core/templates/parts/customize-number.php:8
776
  msgid "Placeholder"
777
  msgstr ""
778
 
779
+ #: core/classes/class-form-styles.php:764
780
  #: core/templates/parts/customize-checkbox.php:8
781
  #: core/templates/parts/customize-email.php:16
782
  #: core/templates/parts/customize-multi-line-text.php:16
787
  msgid "Hint"
788
  msgstr ""
789
 
790
+ #: core/classes/class-form-styles.php:769
791
  msgid "Dropdowns"
792
  msgstr ""
793
 
794
+ #: core/classes/class-form-styles.php:775
795
  msgid "Items"
796
  msgstr ""
797
 
798
+ #: core/classes/class-form-styles.php:784
799
+ #: core/classes/class-form-styles.php:934
800
  msgid "Text"
801
  msgstr ""
802
 
803
+ #: core/classes/class-form-styles.php:794
804
  msgid "Text focused"
805
  msgstr ""
806
 
807
+ #: core/classes/class-form-styles.php:799
808
  msgid "Checkboxes & Radios"
809
  msgstr ""
810
 
811
+ #: core/classes/class-form-styles.php:814
812
  msgid "Checkmark"
813
  msgstr ""
814
 
815
+ #: core/classes/class-form-styles.php:819
816
  msgid "Rating"
817
  msgstr ""
818
 
819
+ #: core/classes/class-form-styles.php:824
820
  msgid "Rating star color"
821
  msgstr ""
822
 
823
+ #: core/classes/class-form-styles.php:829
824
  msgid "Rating star color on hover"
825
  msgstr ""
826
 
827
+ #: core/classes/class-form-styles.php:834
828
  msgid "Tables"
829
  msgstr ""
830
 
831
+ #: core/classes/class-form-styles.php:839
832
  msgid "Odd row primary"
833
  msgstr ""
834
 
835
+ #: core/classes/class-form-styles.php:844
836
  msgid "Odd row secondary"
837
  msgstr ""
838
 
839
+ #: core/classes/class-form-styles.php:849
840
  msgid "Even row primary"
841
  msgstr ""
842
 
843
+ #: core/classes/class-form-styles.php:854
844
  msgid "Even row secondary"
845
  msgstr ""
846
 
847
+ #: core/classes/class-form-styles.php:859
848
  msgid "Dividers"
849
  msgstr ""
850
 
851
+ #: core/classes/class-form-styles.php:864
852
  msgid "Color"
853
  msgstr ""
854
 
855
+ #: core/classes/class-form-styles.php:869
856
  msgid "Submit button"
857
  msgstr ""
858
 
859
+ #: core/classes/class-form-styles.php:899
860
  msgid "Font weight"
861
  msgstr ""
862
 
863
+ #: core/classes/class-form-styles.php:909
864
  msgid "Make button a field of last input"
865
  msgstr ""
866
 
867
+ #: core/classes/class-form-styles.php:939
868
  msgid "Text on focus"
869
  msgstr ""
870
 
871
+ #: core/classes/class-form-styles.php:951
872
  msgid "Add your own CSS code here to customize the appearance of your form."
873
  msgstr ""
874
 
875
+ #: core/classes/class-form-styles.php:953
876
  msgid ""
877
  "For each rule you add, we'll prepend your form's HTML ID. This makes sure "
878
  "all styles added will only apply to this form. For example %s becomes %s."
879
  msgstr ""
880
 
881
+ #: core/classes/class-form-styles.php:961
882
  msgid ""
883
  "The edit field automatically highlights code syntax. You can disable this "
884
  "in your <a href=\"%s\" class=\"%s\" target=\"_blank\">user profile</a> to "
885
  "work in plain text mode."
886
  msgstr ""
887
 
888
+ #: core/classes/class-form-styles.php:969
889
+ #: core/classes/class-form-styles.php:979
890
  msgid "Additional CSS"
891
  msgstr ""
892
 
2961
  #: core/templates/customize-form-part-footer.php:3
2962
  #: core/templates/parts/customize-checkbox.php:111
2963
  #: core/templates/parts/customize-radio.php:94
2964
+ #: core/templates/parts/customize-select.php:80
2965
  msgid "Delete"
2966
  msgstr ""
2967
 
3111
  #: core/templates/parts/customize-multi-line-text.php:64
3112
  #: core/templates/parts/customize-number.php:69
3113
  #: core/templates/parts/customize-radio.php:66
3114
+ #: core/templates/parts/customize-select.php:54
3115
  #: core/templates/parts/customize-single-line-text.php:45
3116
  msgid "CSS classes"
3117
  msgstr ""
3118
 
3119
  #: core/templates/parts/customize-checkbox.php:107
3120
  #: core/templates/parts/customize-radio.php:90
3121
+ #: core/templates/parts/customize-select.php:76
3122
  msgid "Make this choice default"
3123
  msgstr ""
3124
 
3125
  #: core/templates/parts/customize-checkbox.php:112
3126
  #: core/templates/parts/customize-radio.php:95
3127
+ #: core/templates/parts/customize-select.php:81
3128
  msgid "More"
3129
  msgstr ""
3130
 
3183
  msgid "Decimal"
3184
  msgstr ""
3185
 
 
 
 
 
3186
  #: core/templates/preview-form-pencil.php:3
3187
  msgid "Click to edit this part."
3188
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: contact form, contact form plugin, forms, form builder, custom form, intak
5
  Requires at least: 4.8
6
  Tested up to: 5.7
7
  Requires PHP: 5.3
8
- Stable tag: 1.12.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -144,6 +144,13 @@ Note: you'll need to upgrade to our paid contact form builder plugin to get some
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
 
 
147
  = 1.12.1 =
148
  * Improvement: Better compatibility with 3rd party popups.
149
  * Bugfix: Form couldn't be added to ACF rich text editor fields.
@@ -768,6 +775,9 @@ Note: you'll need to upgrade to our paid contact form builder plugin to get some
768
 
769
  == Upgrade Notice ==
770
 
 
 
 
771
  = 1.12.1 =
772
  * Minor improvements and bugfixes.
773
 
5
  Requires at least: 4.8
6
  Tested up to: 5.7
7
  Requires PHP: 5.3
8
+ Stable tag: 1.12.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
144
 
145
  == Changelog ==
146
 
147
+ = 1.12.2 =
148
+ * Improvement: All dropdowns become searchable automatically with more than 6 choices.
149
+ * Bugfix: "Add Media" button in Email tab wasn't working.
150
+ * Bugfix: Submit button styles were misbehaving.
151
+ * Bugfix: Restored forms were getting stuck in "draft" state.
152
+ * Bugfix: Searchable dropdowns were misbehaving.
153
+
154
  = 1.12.1 =
155
  * Improvement: Better compatibility with 3rd party popups.
156
  * Bugfix: Form couldn't be added to ACF rich text editor fields.
775
 
776
  == Upgrade Notice ==
777
 
778
+ = 1.12.2 =
779
+ * Searchable dropdowns improvements, bugfixes.
780
+
781
  = 1.12.1 =
782
  * Minor improvements and bugfixes.
783