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

Version Description

  • New feature: Quarter width setting for parts and part choices.
  • Improvement: Various improvements to HappyForms UI styles.
  • Improvement: Improved compatibility of form part styles with some themes.
  • Bugfix: Fixed choice parts not saving "Checked by default" setting.
Download this release

Release Info

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

Code changes from version 1.9.0 to 1.9.1

core/assets/css/customize.css CHANGED
@@ -703,8 +703,9 @@ body.adding-happyforms-parts #customize-preview iframe {
703
 
704
  .happyforms-part-widget .options,
705
  .happyforms-part-widget .options-import {
706
- border: 1px solid #eee;
707
  padding: 10px;
 
708
  }
709
 
710
  .happyforms-part-widget .option-list,
@@ -718,8 +719,7 @@ body.adding-happyforms-parts #customize-preview iframe {
718
  .happyforms-part-widget .row-list li {
719
  margin: 0;
720
  padding: 14px 0;
721
- background-color: white;
722
- border-bottom: 1px solid #eee;
723
  }
724
 
725
  .happyforms-part-widget .option-list li:last-child,
@@ -747,7 +747,6 @@ body.adding-happyforms-parts #customize-preview iframe {
747
  .happyforms-part-widget .happyforms-part-item-body {
748
  position: relative;
749
  padding: 0px 5px 0 20px;
750
- background-color: white;
751
  }
752
 
753
  .happyforms-part-widget .happyforms-part-item-handle {
@@ -813,26 +812,6 @@ textarea.option-import-area {
813
  color: #dc3232;
814
  }
815
 
816
- div.character-limit-settings {
817
- display: flex;
818
- flex-flow: row wrap;
819
- justify-content: space-between;
820
- }
821
-
822
- div.character-limit-settings label {
823
- flex: 1 1 100%;
824
- width: 100%;
825
- margin-bottom: 2px;
826
- }
827
-
828
- div.character-limit-settings input[type=number] {
829
- width: 35%;
830
- }
831
-
832
- div.character-limit-settings select {
833
- width: 60%;
834
- }
835
-
836
  /**
837
  *
838
  * Form parts drawer
@@ -1186,6 +1165,11 @@ ul.happyforms-style-controls .customize-control {
1186
  width: 47%;
1187
  }
1188
 
 
 
 
 
 
1189
  /* Style view */
1190
  .happyforms-stack-view.happyforms-style-view {
1191
  padding: 0;
@@ -1313,8 +1297,6 @@ li.customize-control.happyforms-range-control label {
1313
  }
1314
 
1315
  .happyforms-range-control-wrap.has-unit-switch input[type=range] {
1316
- position: relative;
1317
- top: 10px;
1318
  margin-left: 10px;
1319
  }
1320
 
703
 
704
  .happyforms-part-widget .options,
705
  .happyforms-part-widget .options-import {
706
+ border: 1px solid #ddd;
707
  padding: 10px;
708
+ background-color: #fdfdfd;
709
  }
710
 
711
  .happyforms-part-widget .option-list,
719
  .happyforms-part-widget .row-list li {
720
  margin: 0;
721
  padding: 14px 0;
722
+ border-bottom: 1px solid #ddd;
 
723
  }
724
 
725
  .happyforms-part-widget .option-list li:last-child,
747
  .happyforms-part-widget .happyforms-part-item-body {
748
  position: relative;
749
  padding: 0px 5px 0 20px;
 
750
  }
751
 
752
  .happyforms-part-widget .happyforms-part-item-handle {
812
  color: #dc3232;
813
  }
814
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
  /**
816
  *
817
  * Form parts drawer
1165
  width: 47%;
1166
  }
1167
 
1168
+ .happyforms-nested-settings.happyforms-customize-controls-wrap--side-by-side {
1169
+ margin-top: 0;
1170
+ margin-bottom: 0;
1171
+ }
1172
+
1173
  /* Style view */
1174
  .happyforms-stack-view.happyforms-style-view {
1175
  padding: 0;
1297
  }
1298
 
1299
  .happyforms-range-control-wrap.has-unit-switch input[type=range] {
 
 
1300
  margin-left: 10px;
1301
  }
1302
 
core/assets/css/layout.css CHANGED
@@ -85,6 +85,10 @@ h3.happyforms-form__title {
85
  .happyforms-part--width-third {
86
  width: 33.333%;
87
  }
 
 
 
 
88
  }
89
 
90
  .happyforms-part--width-half,
@@ -631,17 +635,20 @@ h3.happyforms-form__title {
631
  }
632
 
633
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__el,
634
- .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__el {
 
635
  margin: 0 -1%;
636
  }
637
 
638
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
639
- .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option {
 
640
  padding: 0 1%;
641
  }
642
 
643
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option label,
644
- .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option label {
 
645
  margin-right: 0;
646
  }
647
 
@@ -653,9 +660,14 @@ h3.happyforms-form__title {
653
  width: 33.333%;
654
  }
655
 
 
 
 
 
656
  @media screen and (max-width: 800px) {
657
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
658
- .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option {
 
659
  width: 100%;
660
  }
661
  }
85
  .happyforms-part--width-third {
86
  width: 33.333%;
87
  }
88
+
89
+ .happyforms-part--width-quarter {
90
+ width: 25%;
91
+ }
92
  }
93
 
94
  .happyforms-part--width-half,
635
  }
636
 
637
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__el,
638
+ .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__el,
639
+ .happyforms-part--choice.happyforms-part-options-width--quarter .happyforms-part__el {
640
  margin: 0 -1%;
641
  }
642
 
643
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
644
+ .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option,
645
+ .happyforms-part--choice.happyforms-part-options-width--quarter .happyforms-part__option {
646
  padding: 0 1%;
647
  }
648
 
649
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option label,
650
+ .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option label,
651
+ .happyforms-part--choice.happyforms-part-options-width--quarter .happyforms-part__option label {
652
  margin-right: 0;
653
  }
654
 
660
  width: 33.333%;
661
  }
662
 
663
+ .happyforms-part--choice.happyforms-part-options-width--quarter .happyforms-part__option {
664
+ width: 25%;
665
+ }
666
+
667
  @media screen and (max-width: 800px) {
668
  .happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
669
+ .happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option,
670
+ .happyforms-part--choice.happyforms-part-options-width--quarter .happyforms-part__option {
671
  width: 100%;
672
  }
673
  }
core/assets/js/parts/part-checkbox.js CHANGED
@@ -465,6 +465,7 @@
465
  $part.removeClass( 'happyforms-part-options-width--auto' );
466
  $part.removeClass( 'happyforms-part-options-width--half' );
467
  $part.removeClass( 'happyforms-part-options-width--third' );
 
468
  $part.removeClass( 'happyforms-part-options-width--full' );
469
 
470
  $part.addClass( 'happyforms-part-options-width--' + part.get( 'options_width' ) );
465
  $part.removeClass( 'happyforms-part-options-width--auto' );
466
  $part.removeClass( 'happyforms-part-options-width--half' );
467
  $part.removeClass( 'happyforms-part-options-width--third' );
468
+ $part.removeClass( 'happyforms-part-options-width--quarter' );
469
  $part.removeClass( 'happyforms-part-options-width--full' );
470
 
471
  $part.addClass( 'happyforms-part-options-width--' + part.get( 'options_width' ) );
core/assets/js/parts/part-multi-line-text.js CHANGED
@@ -17,6 +17,7 @@
17
  happyForms.classes.views.Part.prototype.initialize.apply(this, arguments);
18
 
19
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
 
20
  this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
21
  this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
22
  },
@@ -38,6 +39,25 @@
38
  happyForms.previewSend( 'happyforms-part-dom-update', data );
39
  },
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  onCharacterLimitChange: function() {
42
  var model = this.model;
43
 
17
  happyForms.classes.views.Part.prototype.initialize.apply(this, arguments);
18
 
19
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
20
+ this.listenTo( this.model, 'change:limit_input', this.onLimitInputChange );
21
  this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
22
  this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
23
  },
39
  happyForms.previewSend( 'happyforms-part-dom-update', data );
40
  },
41
 
42
+ onLimitInputChange: function( model, value ) {
43
+ var $limitSettings = $( '.character-limit-settings', this.$el );
44
+
45
+ if ( value ) {
46
+ $limitSettings.show();
47
+ } else {
48
+ $limitSettings.hide();
49
+ }
50
+
51
+ model.fetchHtml( function( response ) {
52
+ var data = {
53
+ id: model.get( 'id' ),
54
+ html: response,
55
+ };
56
+
57
+ happyForms.previewSend( 'happyforms-form-part-refresh', data );
58
+ } );
59
+ },
60
+
61
  onCharacterLimitChange: function() {
62
  var model = this.model;
63
 
core/assets/js/parts/part-number.js CHANGED
@@ -25,6 +25,7 @@
25
  this.listenTo( this.model, 'change:mask_numeric_thousands_delimiter', this.onThousandsDelimiterChange );
26
  this.listenTo( this.model, 'change:mask_numeric_decimal_mark', this.onDecimalMarkChange );
27
  this.listenTo( this.model, 'change:mask_numeric_prefix', this.onPrefixChange );
 
28
  },
29
 
30
  onConfirmationChange: function( e ) {
@@ -127,7 +128,19 @@
127
  };
128
 
129
  happyForms.previewSend( 'happyforms-part-dom-update', data );
130
- }
 
 
 
 
 
 
 
 
 
 
 
 
131
  } );
132
 
133
  happyForms.previewer = _.extend( happyForms.previewer, {
25
  this.listenTo( this.model, 'change:mask_numeric_thousands_delimiter', this.onThousandsDelimiterChange );
26
  this.listenTo( this.model, 'change:mask_numeric_decimal_mark', this.onDecimalMarkChange );
27
  this.listenTo( this.model, 'change:mask_numeric_prefix', this.onPrefixChange );
28
+ this.listenTo( happyForms.form, 'save', this.onFormSave );
29
  },
30
 
31
  onConfirmationChange: function( e ) {
128
  };
129
 
130
  happyForms.previewSend( 'happyforms-part-dom-update', data );
131
+ },
132
+
133
+ onFormSave: function( form ) {
134
+ var part = _.findWhere( form.parts, {
135
+ id: this.model.get( 'id' )
136
+ } );
137
+
138
+ if ( ! part ) {
139
+ return;
140
+ }
141
+
142
+ $( '[data-bind="min_value"]', this.$el ).val( part.min_value );
143
+ },
144
  } );
145
 
146
  happyForms.previewer = _.extend( happyForms.previewer, {
core/assets/js/parts/part-radio.js CHANGED
@@ -447,6 +447,7 @@
447
  $part.removeClass( 'happyforms-part-options-width--auto' );
448
  $part.removeClass( 'happyforms-part-options-width--half' );
449
  $part.removeClass( 'happyforms-part-options-width--third' );
 
450
  $part.removeClass( 'happyforms-part-options-width--full' );
451
 
452
  $part.addClass( 'happyforms-part-options-width--' + part.get( 'options_width' ) );
447
  $part.removeClass( 'happyforms-part-options-width--auto' );
448
  $part.removeClass( 'happyforms-part-options-width--half' );
449
  $part.removeClass( 'happyforms-part-options-width--third' );
450
+ $part.removeClass( 'happyforms-part-options-width--quarter' );
451
  $part.removeClass( 'happyforms-part-options-width--full' );
452
 
453
  $part.addClass( 'happyforms-part-options-width--' + part.get( 'options_width' ) );
core/classes/class-form-controller.php CHANGED
@@ -569,6 +569,7 @@ class HappyForms_Form_Controller {
569
 
570
  foreach ( $parts_data as $part_data ) {
571
  $validated_part = $library->validate_part( $part_data );
 
572
 
573
  if ( ! is_wp_error( $validated_part ) ) {
574
  $part_id = $part_data['id'];
569
 
570
  foreach ( $parts_data as $part_data ) {
571
  $validated_part = $library->validate_part( $part_data );
572
+ $validated_part = apply_filters( 'happyforms_validate_part', $validated_part );
573
 
574
  if ( ! is_wp_error( $validated_part ) ) {
575
  $part_id = $part_data['id'];
core/classes/class-form-setup.php CHANGED
@@ -202,7 +202,7 @@ class HappyForms_Form_Setup {
202
  ),
203
  1202 => array(
204
  'type' => 'checkbox',
205
- 'label' => __( 'Hide form after completion', HAPPYFORMS_TEXT_DOMAIN ),
206
  'tooltip' => __( 'Hide all form parts and display just title and confirmation message on submit.', HAPPYFORMS_TEXT_DOMAIN ),
207
  'field' => 'form_hide_on_submit'
208
  ),
202
  ),
203
  1202 => array(
204
  'type' => 'checkbox',
205
+ 'label' => __( 'Hide form after submit', HAPPYFORMS_TEXT_DOMAIN ),
206
  'tooltip' => __( 'Hide all form parts and display just title and confirmation message on submit.', HAPPYFORMS_TEXT_DOMAIN ),
207
  'field' => 'form_hide_on_submit'
208
  ),
core/classes/class-form-styles.php CHANGED
@@ -54,12 +54,15 @@ class HappyForms_Form_Styles {
54
  ),
55
  'form_width' => array(
56
  'default' => 100,
57
- 'unit' => '%',
 
 
58
  'min' => 10,
59
  'max' => 100,
60
  'step' => 10,
61
  'target' => 'css_var',
62
  'variable' => '--happyforms-form-width',
 
63
  'sanitize' => 'sanitize_text_field'
64
  ),
65
  'form_padding' => array(
@@ -889,7 +892,7 @@ class HappyForms_Form_Styles {
889
  ),
890
  7200 => array(
891
  'type' => 'color',
892
- 'label' => __( 'Text focused', HAPPYFORMS_TEXT_DOMAIN ),
893
  'field' => 'color_submit_text_hover',
894
  ),
895
  );
54
  ),
55
  'form_width' => array(
56
  'default' => 100,
57
+ 'unit' => '',
58
+ 'include_unit_switch' => true,
59
+ 'units' => array( '%', 'px' ),
60
  'min' => 10,
61
  'max' => 100,
62
  'step' => 10,
63
  'target' => 'css_var',
64
  'variable' => '--happyforms-form-width',
65
+ 'extra_class' => 'form-width-control',
66
  'sanitize' => 'sanitize_text_field'
67
  ),
68
  'form_padding' => array(
892
  ),
893
  7200 => array(
894
  'type' => 'color',
895
+ 'label' => __( 'Text on focus', HAPPYFORMS_TEXT_DOMAIN ),
896
  'field' => 'color_submit_text_hover',
897
  ),
898
  );
core/classes/class-wp-customize-form-manager.php CHANGED
@@ -281,7 +281,6 @@ class HappyForms_WP_Customize_Form_Manager {
281
  'jquery',
282
  'jquery-ui-core',
283
  'jquery-effects-core',
284
- 'jquery-ui-accordion',
285
  'jquery-ui-sortable',
286
  'jquery-ui-slider',
287
  'jquery-ui-button',
281
  'jquery',
282
  'jquery-ui-core',
283
  'jquery-effects-core',
 
284
  'jquery-ui-sortable',
285
  'jquery-ui-slider',
286
  'jquery-ui-button',
core/classes/parts/class-part-multi-line-text.php CHANGED
@@ -50,6 +50,10 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
50
  'default' => '',
51
  'sanitize' => 'sanitize_text_field',
52
  ),
 
 
 
 
53
  'character_limit' => array(
54
  'default' => '',
55
  'sanitize' => 'sanitize_text_field',
@@ -163,7 +167,9 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
163
  $validated_value = new WP_Error( 'error', $form['required_part_label'] );
164
  }
165
 
 
166
  $character_limit = intval( $part['character_limit'] );
 
167
  $character_limit_mode = $part['character_limit_mode'];
168
 
169
  if ( $character_limit > 0 ) {
@@ -242,10 +248,13 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
242
  return $attrs;
243
  }
244
 
245
- if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
246
- $limit = intval( $part['character_limit'] );
 
 
 
247
  $mode = $this->get_limit_mode( $part );
248
- $attrs[] = "data-length=\"{$limit}\"";
249
  $attrs[] = "data-length-mode=\"{$mode}\"";
250
  }
251
 
@@ -257,12 +266,15 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
257
  return;
258
  }
259
 
260
- if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
261
- $limit = intval( $part['character_limit'] );
 
 
 
262
  $label = $this->get_limit_label( $part );
263
  ?>
264
- <div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && empty( $part['character_limit'] ) ) : ?>style="display: none;"<?php endif; ?>>
265
- <span>0</span>/<?php echo $limit; ?> <?php echo $label; ?>
266
  </div>
267
  <?php
268
  }
50
  'default' => '',
51
  'sanitize' => 'sanitize_text_field',
52
  ),
53
+ 'limit_input' => array(
54
+ 'default' => 0,
55
+ 'sanitize' => 'happyforms_sanitize_checkbox',
56
+ ),
57
  'character_limit' => array(
58
  'default' => '',
59
  'sanitize' => 'sanitize_text_field',
167
  $validated_value = new WP_Error( 'error', $form['required_part_label'] );
168
  }
169
 
170
+ $limit_input = intval( $part['limit_input'] );
171
  $character_limit = intval( $part['character_limit'] );
172
+ $character_limit = $limit_input ? $character_limit : 0;
173
  $character_limit_mode = $part['character_limit_mode'];
174
 
175
  if ( $character_limit > 0 ) {
248
  return $attrs;
249
  }
250
 
251
+ $limit_input = intval( $part['limit_input'] );
252
+ $character_limit = intval( $part['character_limit'] );
253
+ $character_limit = $limit_input ? $character_limit : 0;
254
+
255
+ if ( $character_limit || happyforms_is_preview() ) {
256
  $mode = $this->get_limit_mode( $part );
257
+ $attrs[] = "data-length=\"{$character_limit}\"";
258
  $attrs[] = "data-length-mode=\"{$mode}\"";
259
  }
260
 
266
  return;
267
  }
268
 
269
+ $limit_input = intval( $part['limit_input'] );
270
+ $character_limit = intval( $part['character_limit'] );
271
+ $character_limit = $limit_input ? $character_limit : 0;
272
+
273
+ if ( $character_limit || happyforms_is_preview() ) {
274
  $label = $this->get_limit_label( $part );
275
  ?>
276
+ <div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && ! $character_limit ) : ?>style="display: none;"<?php endif; ?>>
277
+ <span>0</span>/<?php echo $character_limit; ?> <?php echo $label; ?>
278
  </div>
279
  <?php
280
  }
core/classes/parts/class-part-number.php CHANGED
@@ -11,6 +11,7 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
11
  add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
12
  add_filter( 'happyforms_part_data_attributes', array( $this, 'html_part_data_attributes' ), 10, 3 );
13
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
 
14
  }
15
 
16
  /**
@@ -109,6 +110,23 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
109
  require_once( $template_path );
110
  }
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  /**
113
  * Get front end part template with parsed data.
114
  *
11
  add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
12
  add_filter( 'happyforms_part_data_attributes', array( $this, 'html_part_data_attributes' ), 10, 3 );
13
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
14
+ add_filter( 'happyforms_validate_part', array( $this, 'validate_part' ) );
15
  }
16
 
17
  /**
110
  require_once( $template_path );
111
  }
112
 
113
+ public function validate_part( $part_data ) {
114
+ if ( $this->type !== $part_data['type'] ) {
115
+ return $part_data;
116
+ }
117
+
118
+ $min_value = $part_data['min_value'];
119
+ $max_value = $part_data['max_value'];
120
+
121
+ $min_value = intval( $min_value );
122
+ $max_value = intval( $max_value );
123
+ $min_value = min( $min_value, $max_value );
124
+
125
+ $part_data['min_value'] = $min_value;
126
+
127
+ return $part_data;
128
+ }
129
+
130
  /**
131
  * Get front end part template with parsed data.
132
  *
core/helpers/helper-misc.php CHANGED
@@ -890,3 +890,27 @@ function happyforms_customize_part_logic() {
890
  }
891
 
892
  endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
890
  }
891
 
892
  endif;
893
+
894
+ if ( ! function_exists( 'happyforms_customize_part_width_control' ) ):
895
+
896
+ function happyforms_customize_part_width_control() {
897
+ ?>
898
+ <p>
899
+ <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
900
+ <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
901
+ <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
902
+ <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
903
+ <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
904
+ <option value="quarter"<%= (instance.width == 'quarter') ? ' selected' : '' %>><?php _e( 'Quarter', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
905
+ <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
906
+ </select>
907
+ </p>
908
+ <p class="width-options" style="display: none">
909
+ <label>
910
+ <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
911
+ </label>
912
+ </p>
913
+ <?php
914
+ }
915
+
916
+ endif;
core/templates/customize-controls/style/range.php CHANGED
@@ -1,16 +1,8 @@
1
  <li class="customize-control <?php echo esc_attr( 'happyforms-' . $control['type'] . '-control' ); ?>" data-target="<?php echo esc_attr( $field['target'] ); ?>" data-variable="<?php echo $field['variable']; ?>" data-unit="<?php echo $field['unit']; ?>" id="customize-control-<?php echo $control['field']; ?>">
2
  <label class="customize-control-title" for="<?php echo $control['field']; ?>"><?php echo $control['label']; ?></label>
3
- <?php
4
- /*<input type="number" name="<?php echo $control['field']; ?>" id="<?php echo $control['field']; ?>" min="<?php echo $field[ 'min' ]; ?>" max="<?php echo $field[ 'max' ]; ?>" step="<?php echo $field[ 'step' ]; ?>" value="<%= <?php echo $control['field']; ?> %>" data-attribute="<?php echo $control['field']; ?>">
5
-
6
- <div class="customize-control-content">
7
- <div class="happyforms-range-slider" data-slider-id="<?php echo $control['field']; ?>"></div>
8
- </div>*/
9
- ?>
10
  <div class="happyforms-range-control-wrap<?php echo ( isset( $field['include_unit_switch'] ) ) ? ' has-unit-switch': ''; ?>">
11
  <?php if ( isset( $field['include_unit_switch'] ) ) : ?>
12
  <div class="happyforms-range-control__unit">
13
- <label for="<?php echo $control['field']; ?>_unit"><?php _e( 'Unit', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
14
  <select name="<?php echo $control['field']; ?>_unit" id="<?php echo $control['field']; ?>_unit" class="happyforms-unit-switch">
15
  <?php if ( is_array( $field['units'] ) ) :
16
  foreach ( $field['units'] as $unit ) : ?>
1
  <li class="customize-control <?php echo esc_attr( 'happyforms-' . $control['type'] . '-control' ); ?>" data-target="<?php echo esc_attr( $field['target'] ); ?>" data-variable="<?php echo $field['variable']; ?>" data-unit="<?php echo $field['unit']; ?>" id="customize-control-<?php echo $control['field']; ?>">
2
  <label class="customize-control-title" for="<?php echo $control['field']; ?>"><?php echo $control['label']; ?></label>
 
 
 
 
 
 
 
3
  <div class="happyforms-range-control-wrap<?php echo ( isset( $field['include_unit_switch'] ) ) ? ' has-unit-switch': ''; ?>">
4
  <?php if ( isset( $field['include_unit_switch'] ) ) : ?>
5
  <div class="happyforms-range-control__unit">
 
6
  <select name="<?php echo $control['field']; ?>_unit" id="<?php echo $control['field']; ?>_unit" class="happyforms-unit-switch">
7
  <?php if ( is_array( $field['units'] ) ) :
8
  foreach ( $field['units'] as $unit ) : ?>
core/templates/parts/customize-checkbox.php CHANGED
@@ -77,6 +77,7 @@
77
  <option class="display-type--inline display-type--block" value="full"<%= (instance.options_width == 'full') ? ' selected' : '' %>><?php _e( 'Full', 'happyforms-upgrade' ); ?></option>
78
  <option class="display-type--inline" value="half" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'half') ? ' selected' : '' %>><?php _e( 'Half', 'happyforms-upgrade' ); ?></option>
79
  <option class="display-type--inline" value="third" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'third') ? ' selected' : '' %>><?php _e( 'Third', 'happyforms-upgrade' ); ?></option>
 
80
  <option class="display-type--inline display-type--block" value="auto"<%= (instance.options_width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', 'happyforms-upgrade' ); ?></option>
81
  </select>
82
  </p>
@@ -120,10 +121,6 @@
120
  <input type="text" class="widefat" name="label" value="<%= label %>">
121
  </label>
122
  <div class="happyforms-part-item-advanced">
123
- <label class="happyforms-part-item-description">
124
- <?php _e( 'Description', HAPPYFORMS_TEXT_DOMAIN ); ?>
125
- <input type="text" class="widefat" name="description" value="<%= (typeof description !== 'undefined') ? description : '' %>" data-option-attribute="description">
126
- </label>
127
  <label>
128
  <input type="checkbox" name="is_default" value="1" <% if (is_default == 1) { %> checked="checked"<% } %>> <?php _e( 'Checked by default', HAPPYFORMS_TEXT_DOMAIN ); ?>
129
  </label>
77
  <option class="display-type--inline display-type--block" value="full"<%= (instance.options_width == 'full') ? ' selected' : '' %>><?php _e( 'Full', 'happyforms-upgrade' ); ?></option>
78
  <option class="display-type--inline" value="half" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'half') ? ' selected' : '' %>><?php _e( 'Half', 'happyforms-upgrade' ); ?></option>
79
  <option class="display-type--inline" value="third" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'third') ? ' selected' : '' %>><?php _e( 'Third', 'happyforms-upgrade' ); ?></option>
80
+ <option class="display-type--inline" value="quarter" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'quarter') ? ' selected' : '' %>><?php _e( 'Quarter', 'happyforms-upgrade' ); ?></option>
81
  <option class="display-type--inline display-type--block" value="auto"<%= (instance.options_width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', 'happyforms-upgrade' ); ?></option>
82
  </select>
83
  </p>
121
  <input type="text" class="widefat" name="label" value="<%= label %>">
122
  </label>
123
  <div class="happyforms-part-item-advanced">
 
 
 
 
124
  <label>
125
  <input type="checkbox" name="is_default" value="1" <% if (is_default == 1) { %> checked="checked"<% } %>> <?php _e( 'Checked by default', HAPPYFORMS_TEXT_DOMAIN ); ?>
126
  </label>
core/templates/parts/customize-email.php CHANGED
@@ -60,20 +60,8 @@
60
  <input type="text" id="<%= instance.id %>_confirmation_field_label" class="widefat title" value="<%= instance.confirmation_field_label %>" data-bind="confirmation_field_label" />
61
  </p>
62
  </div>
63
- <p>
64
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
65
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
66
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
67
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
68
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
69
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
70
- </select>
71
- </p>
72
- <p class="width-options" style="display: none">
73
- <label>
74
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
75
- </label>
76
- </p>
77
 
78
  <?php do_action( 'happyforms_part_customize_email_after_advanced_options' ); ?>
79
 
60
  <input type="text" id="<%= instance.id %>_confirmation_field_label" class="widefat title" value="<%= instance.confirmation_field_label %>" data-bind="confirmation_field_label" />
61
  </p>
62
  </div>
63
+
64
+ <?php happyforms_customize_part_width_control(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  <?php do_action( 'happyforms_part_customize_email_after_advanced_options' ); ?>
67
 
core/templates/parts/customize-multi-line-text.php CHANGED
@@ -44,9 +44,17 @@
44
  <div class="happyforms-part-advanced-settings-wrap">
45
  <?php do_action( 'happyforms_part_customize_multi_line_text_before_advanced_options' ); ?>
46
 
47
- <div class="character-limit-settings">
48
- <label for="<%= instance.id %>_character_limit"><?php _e( 'Limit words/characters', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
49
- <input type="number" id="<%= instance.id %>_character_limit" class="widefat title" step="1" min="1" value="<%= instance.character_limit %>" data-bind="character_limit" />
 
 
 
 
 
 
 
 
50
  <select id="<%= instance.id %>_character_limit_mode" data-bind="character_limit_mode">
51
  <option value="word_max"<%= (instance.character_limit_mode == 'word_max') ? ' selected' : '' %>><?php _e( 'Words (max)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
52
  <option value="word_min"<%= (instance.character_limit_mode == 'word_min') ? ' selected' : '' %>><?php _e( 'Words (min)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
@@ -54,20 +62,8 @@
54
  <option value="character_min"<%= (instance.character_limit_mode == 'character_min') ? ' selected' : '' %>><?php _e( 'Characters (min)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
55
  </select>
56
  </div>
57
- <p>
58
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
59
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
60
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
61
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
62
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
63
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
64
- </select>
65
- </p>
66
- <p class="width-options" style="display: none">
67
- <label>
68
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
69
- </label>
70
- </p>
71
 
72
  <?php do_action( 'happyforms_part_customize_multi_line_text_after_advanced_options' ); ?>
73
 
44
  <div class="happyforms-part-advanced-settings-wrap">
45
  <?php do_action( 'happyforms_part_customize_multi_line_text_before_advanced_options' ); ?>
46
 
47
+ <p>
48
+ <label>
49
+ <input type="checkbox" class="checkbox" value="1" <% if ( instance.limit_input ) { %>checked="checked"<% } %> data-bind="limit_input" /> <?php _e( 'Limit words/characters', HAPPYFORMS_TEXT_DOMAIN ); ?>
50
+ </label>
51
+ </p>
52
+
53
+ <div class="happyforms-nested-settings character-limit-settings" <% if ( ! instance.limit_input ) { %>style="display: none;"<% } %>>
54
+ <p>
55
+ <label for="<%= instance.id %>_character_limit"><?php _e( 'Amount', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
56
+ <input type="number" id="<%= instance.id %>_character_limit" class="widefat title" step="1" min="1" value="<%= instance.character_limit %>" data-bind="character_limit" />
57
+ </p>
58
  <select id="<%= instance.id %>_character_limit_mode" data-bind="character_limit_mode">
59
  <option value="word_max"<%= (instance.character_limit_mode == 'word_max') ? ' selected' : '' %>><?php _e( 'Words (max)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
60
  <option value="word_min"<%= (instance.character_limit_mode == 'word_min') ? ' selected' : '' %>><?php _e( 'Words (min)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
62
  <option value="character_min"<%= (instance.character_limit_mode == 'character_min') ? ' selected' : '' %>><?php _e( 'Characters (min)', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
63
  </select>
64
  </div>
65
+
66
+ <?php happyforms_customize_part_width_control(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
  <?php do_action( 'happyforms_part_customize_multi_line_text_after_advanced_options' ); ?>
69
 
core/templates/parts/customize-number.php CHANGED
@@ -86,20 +86,9 @@
86
  <input type="text" id="<%= instance.id %>_confirmation_field_label" class="widefat title" value="<%= instance.confirmation_field_label %>" data-bind="confirmation_field_label" />
87
  </p>
88
  </div>
89
- <p>
90
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
91
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
92
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
93
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
94
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
95
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
96
- </select>
97
- </p>
98
- <p class="width-options" style="display: none">
99
- <label>
100
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
101
- </label>
102
- </p>
103
  <p>
104
  <label for="<%= instance.id %>_css_class"><?php _e( 'CSS classes', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
105
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
86
  <input type="text" id="<%= instance.id %>_confirmation_field_label" class="widefat title" value="<%= instance.confirmation_field_label %>" data-bind="confirmation_field_label" />
87
  </p>
88
  </div>
89
+
90
+ <?php happyforms_customize_part_width_control(); ?>
91
+
 
 
 
 
 
 
 
 
 
 
 
92
  <p>
93
  <label for="<%= instance.id %>_css_class"><?php _e( 'CSS classes', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
94
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
core/templates/parts/customize-radio.php CHANGED
@@ -72,23 +72,13 @@
72
  <option class="display-type--inline display-type--block" value="full"<%= (instance.options_width == 'full') ? ' selected' : '' %>><?php _e( 'Full', 'happyforms-upgrade' ); ?></option>
73
  <option class="display-type--inline" value="half" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'half') ? ' selected' : '' %>><?php _e( 'Half', 'happyforms-upgrade' ); ?></option>
74
  <option class="display-type--inline" value="third" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'third') ? ' selected' : '' %>><?php _e( 'Third', 'happyforms-upgrade' ); ?></option>
 
75
  <option class="display-type--inline display-type--block" value="auto"<%= (instance.options_width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', 'happyforms-upgrade' ); ?></option>
76
  </select>
77
  </p>
78
- <p>
79
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
80
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
81
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
82
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
83
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
84
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
85
- </select>
86
- </p>
87
- <p class="width-options" style="display: none">
88
- <label>
89
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
90
- </label>
91
- </p>
92
  <p>
93
  <label for="<%= instance.id %>_css_class"><?php _e( 'CSS classes', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
94
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
@@ -114,10 +104,6 @@
114
  <input type="text" class="widefat" name="label" value="<%= label %>" data-option-attribute="label">
115
  </label>
116
  <div class="happyforms-part-item-advanced">
117
- <label class="happyforms-part-item-description">
118
- <?php _e( 'Description', HAPPYFORMS_TEXT_DOMAIN ); ?>
119
- <input type="text" class="widefat" name="description" value="<%= (typeof description !== 'undefined') ? description : '' %>" data-option-attribute="description">
120
- </label>
121
  <label>
122
  <input type="checkbox" name="is_default" value="1" class="default-option-switch"<% if (is_default == 1) { %> checked="checked"<% } %>> <?php _e( 'Make this option default', HAPPYFORMS_TEXT_DOMAIN ); ?>
123
  </label>
72
  <option class="display-type--inline display-type--block" value="full"<%= (instance.options_width == 'full') ? ' selected' : '' %>><?php _e( 'Full', 'happyforms-upgrade' ); ?></option>
73
  <option class="display-type--inline" value="half" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'half') ? ' selected' : '' %>><?php _e( 'Half', 'happyforms-upgrade' ); ?></option>
74
  <option class="display-type--inline" value="third" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'third') ? ' selected' : '' %>><?php _e( 'Third', 'happyforms-upgrade' ); ?></option>
75
+ <option class="display-type--inline" value="quarter" style="display: <%= ( instance.display_type == 'inline' ) ? 'block' : 'none' %>" <%= (instance.options_width == 'quarter') ? ' selected' : '' %>><?php _e( 'Quarter', 'happyforms-upgrade' ); ?></option>
76
  <option class="display-type--inline display-type--block" value="auto"<%= (instance.options_width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', 'happyforms-upgrade' ); ?></option>
77
  </select>
78
  </p>
79
+
80
+ <?php happyforms_customize_part_width_control(); ?>
81
+
 
 
 
 
 
 
 
 
 
 
 
82
  <p>
83
  <label for="<%= instance.id %>_css_class"><?php _e( 'CSS classes', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
84
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
104
  <input type="text" class="widefat" name="label" value="<%= label %>" data-option-attribute="label">
105
  </label>
106
  <div class="happyforms-part-item-advanced">
 
 
 
 
107
  <label>
108
  <input type="checkbox" name="is_default" value="1" class="default-option-switch"<% if (is_default == 1) { %> checked="checked"<% } %>> <?php _e( 'Make this option default', HAPPYFORMS_TEXT_DOMAIN ); ?>
109
  </label>
core/templates/parts/customize-select.php CHANGED
@@ -68,20 +68,8 @@
68
  <input type="checkbox" class="checkbox" value="1" <% if ( instance.allow_search ) { %>checked="checked"<% } %> data-bind="allow_search" /> <?php _e( 'Make searchable', HAPPYFORMS_TEXT_DOMAIN ); ?>
69
  </label>
70
  </p>
71
- <p>
72
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
73
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
74
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
75
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
76
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
77
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
78
- </select>
79
- </p>
80
- <p class="width-options" style="display: none">
81
- <label>
82
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
83
- </label>
84
- </p>
85
 
86
  <?php do_action( 'happyforms_part_customize_select_after_advanced_options' ); ?>
87
 
@@ -114,7 +102,7 @@
114
  </div>
115
  <div class="option-actions">
116
  <a href="#" class="delete-option"><?php _e( 'Delete', HAPPYFORMS_TEXT_DOMAIN ); ?></a> |
117
- <a href="#" class="advanced-option"><?php _e( 'Advanced', HAPPYFORMS_TEXT_DOMAIN ); ?></a>
118
  </div>
119
  </div>
120
  </li>
68
  <input type="checkbox" class="checkbox" value="1" <% if ( instance.allow_search ) { %>checked="checked"<% } %> data-bind="allow_search" /> <?php _e( 'Make searchable', HAPPYFORMS_TEXT_DOMAIN ); ?>
69
  </label>
70
  </p>
71
+
72
+ <?php happyforms_customize_part_width_control(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
  <?php do_action( 'happyforms_part_customize_select_after_advanced_options' ); ?>
75
 
102
  </div>
103
  <div class="option-actions">
104
  <a href="#" class="delete-option"><?php _e( 'Delete', HAPPYFORMS_TEXT_DOMAIN ); ?></a> |
105
+ <a href="#" class="advanced-option"><?php _e( 'More', HAPPYFORMS_TEXT_DOMAIN ); ?></a>
106
  </div>
107
  </div>
108
  </li>
core/templates/parts/customize-single-line-text.php CHANGED
@@ -44,20 +44,7 @@
44
  <div class="happyforms-part-advanced-settings-wrap">
45
  <?php do_action( 'happyforms_part_customize_single_line_text_before_advanced_options' ); ?>
46
 
47
- <p>
48
- <label for="<%= instance.id %>_width"><?php _e( 'Width', HAPPYFORMS_TEXT_DOMAIN ); ?></label>
49
- <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
50
- <option value="full"<%= (instance.width == 'full') ? ' selected' : '' %>><?php _e( 'Full', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
51
- <option value="half"<%= (instance.width == 'half') ? ' selected' : '' %>><?php _e( 'Half', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
52
- <option value="third"<%= (instance.width == 'third') ? ' selected' : '' %>><?php _e( 'Third', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
53
- <option value="auto"<%= (instance.width == 'auto') ? ' selected' : '' %>><?php _e( 'Auto', HAPPYFORMS_TEXT_DOMAIN ); ?></option>
54
- </select>
55
- </p>
56
- <p class="width-options" style="display: none">
57
- <label>
58
- <input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all parts', HAPPYFORMS_TEXT_DOMAIN ); ?>
59
- </label>
60
- </p>
61
 
62
  <?php do_action( 'happyforms_part_customize_single_line_text_after_advanced_options' ); ?>
63
 
44
  <div class="happyforms-part-advanced-settings-wrap">
45
  <?php do_action( 'happyforms_part_customize_single_line_text_before_advanced_options' ); ?>
46
 
47
+ <?php happyforms_customize_part_width_control(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  <?php do_action( 'happyforms_part_customize_single_line_text_after_advanced_options' ); ?>
50
 
core/templates/parts/frontend-checkbox.php CHANGED
@@ -21,7 +21,13 @@
21
 
22
  foreach( $options as $o => $option ) : ?>
23
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
24
- <?php $checked = in_array( $o, $value ) ? 'checked="checked"' : ''; ?>
 
 
 
 
 
 
25
  <label class="option-label">
26
  <input type="checkbox" class="happyforms-visuallyhidden happyforms-checkbox" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo $o; ?>" data-serialize <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
27
  <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
21
 
22
  foreach( $options as $o => $option ) : ?>
23
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
24
+ <?php
25
+ $checked = in_array( $o, $value ) ? 'checked="checked"' : '';
26
+
27
+ if ( empty( $checked ) ) {
28
+ $checked = checked( 1, $option['is_default'] );
29
+ }
30
+ ?>
31
  <label class="option-label">
32
  <input type="checkbox" class="happyforms-visuallyhidden happyforms-checkbox" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo $o; ?>" data-serialize <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
33
  <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
core/templates/parts/frontend-radio.php CHANGED
@@ -16,6 +16,10 @@
16
  if ( is_string( $value ) ) {
17
  $checked = ! empty( $option['label'] ) ? checked( $value, $o, false ) : '';
18
  }
 
 
 
 
19
  ?>
20
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
21
  <label class="option-label">
16
  if ( is_string( $value ) ) {
17
  $checked = ! empty( $option['label'] ) ? checked( $value, $o, false ) : '';
18
  }
19
+
20
+ if ( ! $checked ) {
21
+ $checked = checked( 1, $option['is_default'] );
22
+ }
23
  ?>
24
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
25
  <label class="option-label">
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
- * Version: 1.9.0
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
@@ -13,7 +13,7 @@
13
  /**
14
  * The current version of the plugin.
15
  */
16
- define( 'HAPPYFORMS_VERSION', '1.9.0' );
17
  define( 'HAPPYFORMS_TEXT_DOMAIN', 'happyforms' );
18
 
19
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
+ * Version: 1.9.1
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
13
  /**
14
  * The current version of the plugin.
15
  */
16
+ define( 'HAPPYFORMS_VERSION', '1.9.1' );
17
  define( 'HAPPYFORMS_TEXT_DOMAIN', 'happyforms' );
18
 
19
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
inc/assets/js/customize.js CHANGED
@@ -56,8 +56,6 @@
56
  } ) );
57
 
58
  request.done( function( response ) {
59
- self.set( response.data );
60
-
61
  if ( self.isNew() ) {
62
  happyForms.updateFormID( response.ID );
63
  }
@@ -66,6 +64,8 @@
66
  api.previewer.refresh();
67
  }
68
 
 
 
69
  if ( options.success ) {
70
  options.success( response );
71
  }
@@ -598,51 +598,29 @@
598
  this.addViewPart( partModel );
599
  }, this );
600
 
601
- $( '.happyforms-form-widgets', this.$el ).accordion( {
602
- header: '> div > .happyforms-widget-top',
603
- active: ( -1 !== happyForms.savedStates.build.activePartIndex ) ? happyForms.savedStates.build.activePartIndex : false,
604
- collapsible: true,
605
- animate: 300,
606
- heightStyle: 'content',
607
- activate: function( e, ui ) {
608
- if ( ui.oldHeader ) {
609
- $( ui.oldHeader ).removeClass( 'happyforms-widget-expanded' );
610
- }
611
-
612
- if ( ui.newHeader ) {
613
- $( ui.newHeader ).addClass( 'happyforms-widget-expanded' );
614
- }
615
-
616
- $( ui.newPanel ).find( 'input[data-bind=label]' ).focus();
617
- happyForms.savedStates.build.activePartIndex = $( ui.newHeader ).parent().index();
618
- }
619
- } ).sortable( {
620
- items: '.happyforms-widget:not(.no-sortable)',
621
  handle: '.happyforms-part-widget-top',
 
 
622
 
623
  stop: function ( e, ui ) {
624
  this.trigger( 'sort-stop', e, ui );
625
  }.bind( this ),
626
  } );
627
 
628
- $( '.ui-accordion-content-active input[data-bind=label]', this.$el ).focus();
629
 
630
  this.drawer = new classes.views.PartsDrawer();
631
  $( '.wp-full-overlay' ).append( this.drawer.render().$el );
632
 
633
  if ( -1 === happyForms.savedStates.build.activePartIndex ) {
634
  $( '#happyforms-form-name', this.$el ).focus().select();
 
 
635
  }
636
  },
637
 
638
- refreshPartsAccordion: function() {
639
- var $widgetsWrap = $( '.happyforms-form-widgets', this.$el );
640
- var newItemIndex = $( '.happyforms-part-widget', $widgetsWrap ).length - 1;
641
-
642
- $widgetsWrap.accordion( 'refresh' );
643
- $widgetsWrap.accordion( 'option', 'active', newItemIndex );
644
- },
645
-
646
  onNameInputClick: function( e ) {
647
  var $input = $(e.target);
648
 
@@ -669,6 +647,8 @@
669
  { collection: this.model.get( 'parts' ) },
670
  );
671
 
 
 
672
  this.model.get( 'parts' ).add( partModel, options );
673
  this.model.trigger( 'change', this.model );
674
 
@@ -679,8 +659,6 @@
679
 
680
  happyForms.previewSend( 'happyforms-form-part-add', data );
681
  } );
682
-
683
- this.refreshPartsAccordion();
684
  },
685
 
686
  onPartDuplicate: function( part, options ) {
@@ -711,8 +689,6 @@
711
 
712
  happyForms.previewSend( 'happyforms-form-part-add', data );
713
  } );
714
-
715
- this.refreshPartsAccordion();
716
  },
717
 
718
  onPartModelAdd: function( partModel, partsCollection, options ) {
@@ -989,6 +965,10 @@
989
  this.listenTo( this.model, 'change:label_placement', this.onLabelPlacementChange );
990
  this.listenTo( this.model, 'change:css_class', this.onCSSClassChange );
991
  this.listenTo( this.model, 'change:focus_reveal_description', this.onFocusRevealDescriptionChange );
 
 
 
 
992
  },
993
 
994
  render: function() {
@@ -1082,6 +1062,45 @@
1082
  happyForms.previewSend( 'happyforms-part-dom-update', data );
1083
  },
1084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1085
  /**
1086
  * Remove part model from collection on "Delete" button click.
1087
  *
@@ -1467,8 +1486,7 @@
1467
  render: function() {
1468
  classes.views.FormSetup.prototype.render.apply( this, arguments );
1469
 
1470
- if ( this.model.get( 'save_entries' )
1471
- && this.model.get( 'allow_abandoned_resume' ) ) {
1472
  this.$el.addClass( 'allow-abandoned-resume' );
1473
  }
1474
 
@@ -1903,6 +1921,7 @@
1903
  $part.removeClass( 'happyforms-part--width-half' );
1904
  $part.removeClass( 'happyforms-part--width-full' );
1905
  $part.removeClass( 'happyforms-part--width-third' );
 
1906
  $part.removeClass( 'happyforms-part--width-auto' );
1907
  $part.addClass( 'happyforms-part--width-' + width );
1908
  },
56
  } ) );
57
 
58
  request.done( function( response ) {
 
 
59
  if ( self.isNew() ) {
60
  happyForms.updateFormID( response.ID );
61
  }
64
  api.previewer.refresh();
65
  }
66
 
67
+ self.trigger( 'save', response );
68
+
69
  if ( options.success ) {
70
  options.success( response );
71
  }
598
  this.addViewPart( partModel );
599
  }, this );
600
 
601
+ $( '.happyforms-form-widgets', this.$el ).sortable( {
602
+ items: '> .happyforms-widget:not(.no-sortable)',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
  handle: '.happyforms-part-widget-top',
604
+ axis: 'y',
605
+ tolerance: 'pointer',
606
 
607
  stop: function ( e, ui ) {
608
  this.trigger( 'sort-stop', e, ui );
609
  }.bind( this ),
610
  } );
611
 
612
+ $( '.happyforms-widget-expanded input[data-bind=label]', this.$el ).focus();
613
 
614
  this.drawer = new classes.views.PartsDrawer();
615
  $( '.wp-full-overlay' ).append( this.drawer.render().$el );
616
 
617
  if ( -1 === happyForms.savedStates.build.activePartIndex ) {
618
  $( '#happyforms-form-name', this.$el ).focus().select();
619
+ } else {
620
+ $( '.happyforms-widget:eq(' + happyForms.savedStates.build.activePartIndex + ')' ).addClass( 'happyforms-widget-expanded' );
621
  }
622
  },
623
 
 
 
 
 
 
 
 
 
624
  onNameInputClick: function( e ) {
625
  var $input = $(e.target);
626
 
647
  { collection: this.model.get( 'parts' ) },
648
  );
649
 
650
+ this.drawer.close();
651
+
652
  this.model.get( 'parts' ).add( partModel, options );
653
  this.model.trigger( 'change', this.model );
654
 
659
 
660
  happyForms.previewSend( 'happyforms-form-part-add', data );
661
  } );
 
 
662
  },
663
 
664
  onPartDuplicate: function( part, options ) {
689
 
690
  happyForms.previewSend( 'happyforms-form-part-add', data );
691
  } );
 
 
692
  },
693
 
694
  onPartModelAdd: function( partModel, partsCollection, options ) {
965
  this.listenTo( this.model, 'change:label_placement', this.onLabelPlacementChange );
966
  this.listenTo( this.model, 'change:css_class', this.onCSSClassChange );
967
  this.listenTo( this.model, 'change:focus_reveal_description', this.onFocusRevealDescriptionChange );
968
+
969
+ if ( options.expand ) {
970
+ this.listenTo( this, 'ready', this.expandToggle );
971
+ }
972
  },
973
 
974
  render: function() {
1062
  happyForms.previewSend( 'happyforms-part-dom-update', data );
1063
  },
1064
 
1065
+ /**
1066
+ * Slide toggle part view in the customize pane.
1067
+ *
1068
+ * @since 1.0.0.
1069
+ *
1070
+ * @return void
1071
+ */
1072
+ expandToggle: function() {
1073
+ var $el = this.$el;
1074
+
1075
+ this.closeOpenWidgets( $el );
1076
+
1077
+ $( '.happyforms-widget-content', this.$el ).slideToggle( 200, function() {
1078
+ $el.toggleClass( 'happyforms-widget-expanded' );
1079
+ } );
1080
+
1081
+ happyForms.savedStates.build.activePartIndex = $el.index();
1082
+ },
1083
+
1084
+ closeOpenWidgets: function( $currentElement ) {
1085
+ var $openWidgets = $( '.happyforms-widget-expanded' ).not( $currentElement );
1086
+
1087
+ $( '.happyforms-widget-content', $openWidgets ).slideUp( 200, function() {
1088
+ $openWidgets.removeClass( 'happyforms-widget-expanded' );
1089
+ } );
1090
+ },
1091
+
1092
+ /**
1093
+ * Call expandToggle method on toggle indicator click or 'Close' button click of the part view in Customize pane.
1094
+ *
1095
+ * @since 1.0.0.
1096
+ *
1097
+ * @return void
1098
+ */
1099
+ onWidgetToggle: function( e ) {
1100
+ e.preventDefault();
1101
+ this.expandToggle();
1102
+ },
1103
+
1104
  /**
1105
  * Remove part model from collection on "Delete" button click.
1106
  *
1486
  render: function() {
1487
  classes.views.FormSetup.prototype.render.apply( this, arguments );
1488
 
1489
+ if ( this.model.get( 'allow_abandoned_resume' ) ) {
 
1490
  this.$el.addClass( 'allow-abandoned-resume' );
1491
  }
1492
 
1921
  $part.removeClass( 'happyforms-part--width-half' );
1922
  $part.removeClass( 'happyforms-part--width-full' );
1923
  $part.removeClass( 'happyforms-part--width-third' );
1924
+ $part.removeClass( 'happyforms-part--width-quarter' );
1925
  $part.removeClass( 'happyforms-part--width-auto' );
1926
  $part.addClass( 'happyforms-part--width-' + width );
1927
  },
inc/classes/class-happyforms.php CHANGED
@@ -121,14 +121,6 @@ class HappyForms extends HappyForms_Core {
121
  'tooltip' => __( 'Generate a link that can be clicked to open an overlay window for this form.', HAPPYFORMS_TEXT_DOMAIN ),
122
  );
123
 
124
- $controls[1600] = array(
125
- 'type' => 'checkbox_dummy',
126
- 'dummy_id' => 'save_responses',
127
- 'label' => __( 'Save submissions', HAPPYFORMS_TEXT_DOMAIN ),
128
- 'tooltip' => __( 'Keep recipients responses stored in your WordPress database.', HAPPYFORMS_TEXT_DOMAIN ),
129
- 'field' => 'save_entries',
130
- );
131
-
132
  $controls[1660] = array(
133
  'type' => 'checkbox_dummy',
134
  'dummy_id' => 'save_abandoned_responses',
121
  'tooltip' => __( 'Generate a link that can be clicked to open an overlay window for this form.', HAPPYFORMS_TEXT_DOMAIN ),
122
  );
123
 
 
 
 
 
 
 
 
 
124
  $controls[1660] = array(
125
  'type' => 'checkbox_dummy',
126
  'dummy_id' => 'save_abandoned_responses',
languages/happyforms.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2019 The Theme Foundry
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: HappyForms 1.9.0\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2019-12-19 13:46:13+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: The Theme Foundry\n"
13
  "Language-Team: The Theme Foundry\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
@@ -204,7 +204,7 @@ msgstr ""
204
  msgid "(no title)"
205
  msgstr ""
206
 
207
- #: core/classes/class-form-controller.php:619
208
  msgid " Copy"
209
  msgstr ""
210
 
@@ -404,7 +404,7 @@ msgid "Add a unique HTML ID to your form. Write without a hash (#) character."
404
  msgstr ""
405
 
406
  #: core/classes/class-form-setup.php:205
407
- msgid "Hide form after completion"
408
  msgstr ""
409
 
410
  #: core/classes/class-form-setup.php:206
@@ -429,39 +429,39 @@ msgstr ""
429
  msgid "Right-to-left"
430
  msgstr ""
431
 
432
- #: core/classes/class-form-styles.php:68 core/classes/class-form-styles.php:142
433
- #: core/classes/class-form-styles.php:152
434
- #: core/classes/class-form-styles.php:255
435
- #: core/classes/class-form-styles.php:265
436
  msgid "Default"
437
  msgstr ""
438
 
439
- #: core/classes/class-form-styles.php:69 core/classes/class-form-styles.php:141
440
- #: core/classes/class-form-styles.php:151
441
- #: core/classes/class-form-styles.php:264
442
  msgid "Narrow"
443
  msgstr ""
444
 
445
- #: core/classes/class-form-styles.php:70 core/classes/class-form-styles.php:143
446
- #: core/classes/class-form-styles.php:153
447
- #: core/classes/class-form-styles.php:266
448
  msgid "Wide"
449
  msgstr ""
450
 
451
- #: core/classes/class-form-styles.php:84 core/classes/class-form-styles.php:113
452
- #: core/classes/class-form-styles.php:236
453
  msgid "Show"
454
  msgstr ""
455
 
456
- #: core/classes/class-form-styles.php:85 core/classes/class-form-styles.php:114
457
- #: core/classes/class-form-styles.php:237
458
  msgid "Hide"
459
  msgstr ""
460
 
461
- #: core/classes/class-form-styles.php:93 core/classes/class-form-styles.php:167
462
- #: core/classes/class-form-styles.php:196
463
- #: core/classes/class-form-styles.php:216
464
- #: core/classes/class-form-styles.php:293
465
  #: core/templates/parts/customize-checkbox.php:12
466
  #: core/templates/parts/customize-email.php:12
467
  #: core/templates/parts/customize-multi-line-text.php:12
@@ -472,233 +472,227 @@ msgstr ""
472
  msgid "Left"
473
  msgstr ""
474
 
475
- #: core/classes/class-form-styles.php:94 core/classes/class-form-styles.php:168
476
- #: core/classes/class-form-styles.php:197
477
- #: core/classes/class-form-styles.php:217
478
- #: core/classes/class-form-styles.php:294
479
  msgid "Center"
480
  msgstr ""
481
 
482
- #: core/classes/class-form-styles.php:95 core/classes/class-form-styles.php:169
483
- #: core/classes/class-form-styles.php:198
484
- #: core/classes/class-form-styles.php:218
485
- #: core/classes/class-form-styles.php:295
486
  msgid "Right"
487
  msgstr ""
488
 
489
- #: core/classes/class-form-styles.php:122
490
  msgid "All sides"
491
  msgstr ""
492
 
493
- #: core/classes/class-form-styles.php:123
494
  msgid "Bottom only"
495
  msgstr ""
496
 
497
- #: core/classes/class-form-styles.php:131
498
- #: core/classes/class-form-styles.php:245
499
  msgid "Square"
500
  msgstr ""
501
 
502
- #: core/classes/class-form-styles.php:132
503
- #: core/classes/class-form-styles.php:246
504
  msgid "Round"
505
  msgstr ""
506
 
507
- #: core/classes/class-form-styles.php:133
508
- #: core/classes/class-form-styles.php:247
509
  msgid "Pill"
510
  msgstr ""
511
 
512
- #: core/classes/class-form-styles.php:187
513
- #: core/classes/class-form-styles.php:284
514
  msgid "Normal"
515
  msgstr ""
516
 
517
- #: core/classes/class-form-styles.php:188
518
- #: core/classes/class-form-styles.php:285
519
  msgid "Bold"
520
  msgstr ""
521
 
522
- #: core/classes/class-form-styles.php:256
523
  msgid "Full width"
524
  msgstr ""
525
 
526
- #: core/classes/class-form-styles.php:507
527
  msgid "Above form"
528
  msgstr ""
529
 
530
- #: core/classes/class-form-styles.php:508
531
  msgid "Below form"
532
  msgstr ""
533
 
534
- #: core/classes/class-form-styles.php:522
535
  msgid "General"
536
  msgstr ""
537
 
538
- #: core/classes/class-form-styles.php:527
539
- #: core/classes/class-form-styles.php:837
540
- #: core/templates/parts/customize-checkbox.php:84
541
- #: core/templates/parts/customize-email.php:64
542
- #: core/templates/parts/customize-multi-line-text.php:58
543
- #: core/templates/parts/customize-number.php:90
544
- #: core/templates/parts/customize-radio.php:79
545
- #: core/templates/parts/customize-select.php:72
546
- #: core/templates/parts/customize-single-line-text.php:48
547
  msgid "Width"
548
  msgstr ""
549
 
550
- #: core/classes/class-form-styles.php:532
551
- #: core/classes/class-form-styles.php:842
552
  msgid "Padding"
553
  msgstr ""
554
 
555
- #: core/classes/class-form-styles.php:537
556
  msgid "Direction"
557
  msgstr ""
558
 
559
- #: core/classes/class-form-styles.php:542
560
  msgid "Display notices"
561
  msgstr ""
562
 
563
- #: core/classes/class-form-styles.php:548
564
- #: core/classes/class-form-styles.php:633
565
- #: core/classes/class-form-styles.php:703
566
- #: core/classes/class-form-styles.php:868
567
  msgid "Colors"
568
  msgstr ""
569
 
570
- #: core/classes/class-form-styles.php:552
571
  msgid "Primary"
572
  msgstr ""
573
 
574
- #: core/classes/class-form-styles.php:557
575
  msgid "Success notice"
576
  msgstr ""
577
 
578
- #: core/classes/class-form-styles.php:562
579
  msgid "Success notice text"
580
  msgstr ""
581
 
582
- #: core/classes/class-form-styles.php:567
583
  msgid "Error"
584
  msgstr ""
585
 
586
- #: core/classes/class-form-styles.php:572
587
  msgid "Error notice"
588
  msgstr ""
589
 
590
- #: core/classes/class-form-styles.php:577
591
  msgid "Error notice text"
592
  msgstr ""
593
 
594
- #: core/classes/class-form-styles.php:582
595
- #: core/classes/class-form-styles.php:707
596
  #: core/templates/customize-form-build.php:4
597
  #: inc/classes/parts/class-part-title-dummy.php:8
598
  msgid "Title"
599
  msgstr ""
600
 
601
- #: core/classes/class-form-styles.php:587
602
  msgid "Display"
603
  msgstr ""
604
 
605
- #: core/classes/class-form-styles.php:592
606
- #: core/classes/class-form-styles.php:857
607
  msgid "Alignment"
608
  msgstr ""
609
 
610
- #: core/classes/class-form-styles.php:597
611
- #: core/classes/class-form-styles.php:847
612
  msgid "Font size"
613
  msgstr ""
614
 
615
- #: core/classes/class-form-styles.php:602
616
  msgid "Part borders & spacing"
617
  msgstr ""
618
 
619
- #: core/classes/class-form-styles.php:607
620
- #: core/classes/class-form-styles.php:637
621
- #: core/classes/class-form-styles.php:827
622
- #: core/classes/class-form-styles.php:882
623
  msgid "Border"
624
  msgstr ""
625
 
626
- #: core/classes/class-form-styles.php:612
627
  msgid "Border location"
628
  msgstr ""
629
 
630
- #: core/classes/class-form-styles.php:617
631
- #: core/classes/class-form-styles.php:832
632
  msgid "Border radius"
633
  msgstr ""
634
 
635
- #: core/classes/class-form-styles.php:622
636
  msgid "Outer spacing"
637
  msgstr ""
638
 
639
- #: core/classes/class-form-styles.php:627
640
  msgid "Inner spacing"
641
  msgstr ""
642
 
643
- #: core/classes/class-form-styles.php:642
644
  msgid "Border on focus"
645
  msgstr ""
646
 
647
- #: core/classes/class-form-styles.php:647
648
- #: core/classes/class-form-styles.php:732
649
- #: core/classes/class-form-styles.php:757
650
- #: core/classes/class-form-styles.php:872
651
  msgid "Background"
652
  msgstr ""
653
 
654
- #: core/classes/class-form-styles.php:652
655
- #: core/classes/class-form-styles.php:742
656
- #: core/classes/class-form-styles.php:762
657
- #: core/classes/class-form-styles.php:877
658
  msgid "Background on focus"
659
  msgstr ""
660
 
661
- #: core/classes/class-form-styles.php:657
662
  msgid "Part labels & text"
663
  msgstr ""
664
 
665
- #: core/classes/class-form-styles.php:662
666
  msgid "Toggle placeholder on part focus"
667
  msgstr ""
668
 
669
- #: core/classes/class-form-styles.php:667
670
  msgid "Title alignment"
671
  msgstr ""
672
 
673
- #: core/classes/class-form-styles.php:672
674
  msgid "Title font size"
675
  msgstr ""
676
 
677
- #: core/classes/class-form-styles.php:677
678
  msgid "Title font weight"
679
  msgstr ""
680
 
681
- #: core/classes/class-form-styles.php:682
682
  msgid "Description alignment"
683
  msgstr ""
684
 
685
- #: core/classes/class-form-styles.php:687
686
  msgid "Description font size"
687
  msgstr ""
688
 
689
- #: core/classes/class-form-styles.php:692
690
  msgid "Placeholder &amp; value alignment"
691
  msgstr ""
692
 
693
- #: core/classes/class-form-styles.php:697
694
  msgid "Value font size"
695
  msgstr ""
696
 
697
- #: core/classes/class-form-styles.php:712
698
  msgid "Value"
699
  msgstr ""
700
 
701
- #: core/classes/class-form-styles.php:717
702
  #: core/templates/parts/customize-email.php:30
703
  #: core/templates/parts/customize-multi-line-text.php:30
704
  #: core/templates/parts/customize-number.php:30
@@ -708,85 +702,88 @@ msgstr ""
708
  msgid "Placeholder"
709
  msgstr ""
710
 
711
- #: core/classes/class-form-styles.php:722
712
  msgid "Dropdowns"
713
  msgstr ""
714
 
715
- #: core/classes/class-form-styles.php:728
716
  msgid "Items"
717
  msgstr ""
718
 
719
- #: core/classes/class-form-styles.php:737
720
- #: core/classes/class-form-styles.php:887
721
  msgid "Text"
722
  msgstr ""
723
 
724
- #: core/classes/class-form-styles.php:747
725
- #: core/classes/class-form-styles.php:892
726
  msgid "Text focused"
727
  msgstr ""
728
 
729
- #: core/classes/class-form-styles.php:752
730
  msgid "Checkboxes & Radios"
731
  msgstr ""
732
 
733
- #: core/classes/class-form-styles.php:767
734
  msgid "Checkmark"
735
  msgstr ""
736
 
737
- #: core/classes/class-form-styles.php:772
738
  #: inc/classes/parts/class-part-rating-dummy.php:8
739
  msgid "Rating"
740
  msgstr ""
741
 
742
- #: core/classes/class-form-styles.php:777
743
  msgid "Rating star color"
744
  msgstr ""
745
 
746
- #: core/classes/class-form-styles.php:782
747
  msgid "Rating star color on hover"
748
  msgstr ""
749
 
750
- #: core/classes/class-form-styles.php:787
751
  msgid "Item background"
752
  msgstr ""
753
 
754
- #: core/classes/class-form-styles.php:792
755
  msgid "Item background on hover"
756
  msgstr ""
757
 
758
- #: core/classes/class-form-styles.php:797
759
  msgid "Tables"
760
  msgstr ""
761
 
762
- #: core/classes/class-form-styles.php:802
763
  msgid "Odd row primary"
764
  msgstr ""
765
 
766
- #: core/classes/class-form-styles.php:807
767
  msgid "Odd row secondary"
768
  msgstr ""
769
 
770
- #: core/classes/class-form-styles.php:812
771
  msgid "Even row primary"
772
  msgstr ""
773
 
774
- #: core/classes/class-form-styles.php:817
775
  msgid "Even row secondary"
776
  msgstr ""
777
 
778
- #: core/classes/class-form-styles.php:822
779
  msgid "Submit button"
780
  msgstr ""
781
 
782
- #: core/classes/class-form-styles.php:852
783
  msgid "Font weight"
784
  msgstr ""
785
 
786
- #: core/classes/class-form-styles.php:862
787
  msgid "Make button a part of last input"
788
  msgstr ""
789
 
 
 
 
 
790
  #: core/classes/class-happyforms-core.php:163
791
  msgid "HappyForms Index"
792
  msgstr ""
@@ -949,8 +946,8 @@ msgstr ""
949
  #: core/classes/parts/class-part-email.php:31
950
  #: core/classes/parts/class-part-email.php:55
951
  #: core/classes/parts/class-part-multi-line-text.php:34
952
- #: core/classes/parts/class-part-number.php:30
953
- #: core/classes/parts/class-part-number.php:86
954
  #: core/classes/parts/class-part-radio.php:40
955
  #: core/classes/parts/class-part-select.php:31
956
  #: core/classes/parts/class-part-single-line-text.php:29
@@ -986,29 +983,29 @@ msgstr ""
986
  msgid "For paragraph text fields."
987
  msgstr ""
988
 
989
- #: core/classes/parts/class-part-multi-line-text.php:174
990
- #: core/classes/parts/class-part-multi-line-text.php:178
991
  msgid "Submitted value is too long."
992
  msgstr ""
993
 
994
- #: core/classes/parts/class-part-multi-line-text.php:176
995
- #: core/classes/parts/class-part-multi-line-text.php:180
996
  msgid "Submitted value is too short."
997
  msgstr ""
998
 
999
- #: core/classes/parts/class-part-multi-line-text.php:224
1000
  msgid "characters (min.)"
1001
  msgstr ""
1002
 
1003
- #: core/classes/parts/class-part-multi-line-text.php:227
1004
  msgid "characters (max.)"
1005
  msgstr ""
1006
 
1007
- #: core/classes/parts/class-part-multi-line-text.php:230
1008
  msgid "words (min.)"
1009
  msgstr ""
1010
 
1011
- #: core/classes/parts/class-part-multi-line-text.php:233
1012
  msgid "words (max.)"
1013
  msgstr ""
1014
 
@@ -1020,11 +1017,11 @@ msgstr ""
1020
  msgid "For numeric fields."
1021
  msgstr ""
1022
 
1023
- #: core/classes/parts/class-part-number.php:193
1024
  msgid "This field does not match minimum and maximum allowed value."
1025
  msgstr ""
1026
 
1027
- #: core/classes/parts/class-part-number.php:201
1028
  msgid "Number and confirmation number are not matching."
1029
  msgstr ""
1030
 
@@ -2738,6 +2735,45 @@ msgstr ""
2738
  msgid "Yoruba"
2739
  msgstr ""
2740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2741
  #: core/templates/admin-form-modal.php:5
2742
  msgid "Choose a form"
2743
  msgstr ""
@@ -2780,10 +2816,6 @@ msgstr ""
2780
  msgid "You are customizing"
2781
  msgstr ""
2782
 
2783
- #: core/templates/customize-controls/style/range.php:13
2784
- msgid "Unit"
2785
- msgstr ""
2786
-
2787
  #: core/templates/customize-form-build.php:5
2788
  msgid "Add title"
2789
  msgstr ""
@@ -2812,9 +2844,9 @@ msgstr ""
2812
 
2813
  #: core/templates/customize-form-item.php:33
2814
  #: core/templates/customize-form-part-footer.php:3
2815
- #: core/templates/parts/customize-checkbox.php:132
2816
- #: core/templates/parts/customize-radio.php:126
2817
- #: core/templates/parts/customize-select.php:116
2818
  msgid "Delete"
2819
  msgstr ""
2820
 
@@ -2823,8 +2855,9 @@ msgid "Preview"
2823
  msgstr ""
2824
 
2825
  #: core/templates/customize-form-part-footer.php:5
2826
- #: core/templates/parts/customize-checkbox.php:133
2827
- #: core/templates/parts/customize-radio.php:127
 
2828
  msgid "More"
2829
  msgstr ""
2830
 
@@ -2847,7 +2880,7 @@ msgid "Clear Results"
2847
  msgstr ""
2848
 
2849
  #: core/templates/customize-form-parts-drawer.php:30
2850
- #: inc/classes/class-happyforms.php:242
2851
  #: inc/templates/customize-controls/checkbox_dummy.php:7
2852
  msgid "Upgrade"
2853
  msgstr ""
@@ -2885,16 +2918,16 @@ msgid "Close"
2885
  msgstr ""
2886
 
2887
  #: core/templates/parts/customize-checkbox.php:4
2888
- #: core/templates/parts/customize-checkbox.php:119
2889
  #: core/templates/parts/customize-email.php:4
2890
  #: core/templates/parts/customize-email.php:59
2891
  #: core/templates/parts/customize-multi-line-text.php:4
2892
  #: core/templates/parts/customize-number.php:4
2893
  #: core/templates/parts/customize-number.php:85
2894
  #: core/templates/parts/customize-radio.php:4
2895
- #: core/templates/parts/customize-radio.php:113
2896
  #: core/templates/parts/customize-select.php:4
2897
- #: core/templates/parts/customize-select.php:107
2898
  #: core/templates/parts/customize-single-line-text.php:4
2899
  msgid "Label"
2900
  msgstr ""
@@ -2939,12 +2972,10 @@ msgid "Hidden"
2939
  msgstr ""
2940
 
2941
  #: core/templates/parts/customize-checkbox.php:17
2942
- #: core/templates/parts/customize-checkbox.php:124
2943
  #: core/templates/parts/customize-email.php:18
2944
  #: core/templates/parts/customize-multi-line-text.php:18
2945
  #: core/templates/parts/customize-number.php:18
2946
  #: core/templates/parts/customize-radio.php:17
2947
- #: core/templates/parts/customize-radio.php:118
2948
  #: core/templates/parts/customize-select.php:17
2949
  #: core/templates/parts/customize-single-line-text.php:18
2950
  msgid "Description"
@@ -3059,75 +3090,17 @@ msgstr ""
3059
  msgid "Choices width"
3060
  msgstr ""
3061
 
3062
- #: core/templates/parts/customize-checkbox.php:77
3063
- #: core/templates/parts/customize-checkbox.php:86
3064
- #: core/templates/parts/customize-email.php:66
3065
- #: core/templates/parts/customize-multi-line-text.php:60
3066
- #: core/templates/parts/customize-number.php:92
3067
- #: core/templates/parts/customize-radio.php:72
3068
- #: core/templates/parts/customize-radio.php:81
3069
- #: core/templates/parts/customize-select.php:74
3070
- #: core/templates/parts/customize-single-line-text.php:50
3071
- msgid "Full"
3072
- msgstr ""
3073
-
3074
- #: core/templates/parts/customize-checkbox.php:78
3075
- #: core/templates/parts/customize-checkbox.php:87
3076
- #: core/templates/parts/customize-email.php:67
3077
- #: core/templates/parts/customize-multi-line-text.php:61
3078
  #: core/templates/parts/customize-number.php:93
3079
- #: core/templates/parts/customize-radio.php:73
3080
- #: core/templates/parts/customize-radio.php:82
3081
- #: core/templates/parts/customize-select.php:75
3082
- #: core/templates/parts/customize-single-line-text.php:51
3083
- msgid "Half"
3084
- msgstr ""
3085
-
3086
- #: core/templates/parts/customize-checkbox.php:79
3087
- #: core/templates/parts/customize-checkbox.php:88
3088
- #: core/templates/parts/customize-email.php:68
3089
- #: core/templates/parts/customize-multi-line-text.php:62
3090
- #: core/templates/parts/customize-number.php:94
3091
- #: core/templates/parts/customize-radio.php:74
3092
  #: core/templates/parts/customize-radio.php:83
3093
- #: core/templates/parts/customize-select.php:76
3094
- #: core/templates/parts/customize-single-line-text.php:52
3095
- msgid "Third"
3096
- msgstr ""
3097
-
3098
- #: core/templates/parts/customize-checkbox.php:80
3099
- #: core/templates/parts/customize-checkbox.php:89
3100
- #: core/templates/parts/customize-email.php:69
3101
- #: core/templates/parts/customize-multi-line-text.php:63
3102
- #: core/templates/parts/customize-number.php:95
3103
- #: core/templates/parts/customize-radio.php:75
3104
- #: core/templates/parts/customize-radio.php:84
3105
  #: core/templates/parts/customize-select.php:77
3106
- #: core/templates/parts/customize-single-line-text.php:53
3107
- msgid "Auto"
3108
- msgstr ""
3109
-
3110
- #: core/templates/parts/customize-checkbox.php:94
3111
- #: core/templates/parts/customize-email.php:74
3112
- #: core/templates/parts/customize-multi-line-text.php:68
3113
- #: core/templates/parts/customize-number.php:100
3114
- #: core/templates/parts/customize-radio.php:89
3115
- #: core/templates/parts/customize-select.php:82
3116
- #: core/templates/parts/customize-single-line-text.php:58
3117
- msgid "Apply to all parts"
3118
- msgstr ""
3119
-
3120
- #: core/templates/parts/customize-checkbox.php:101
3121
- #: core/templates/parts/customize-email.php:81
3122
- #: core/templates/parts/customize-multi-line-text.php:75
3123
- #: core/templates/parts/customize-number.php:104
3124
- #: core/templates/parts/customize-radio.php:93
3125
- #: core/templates/parts/customize-select.php:89
3126
- #: core/templates/parts/customize-single-line-text.php:65
3127
  msgid "CSS classes"
3128
  msgstr ""
3129
 
3130
- #: core/templates/parts/customize-checkbox.php:128
3131
  msgid "Checked by default"
3132
  msgstr ""
3133
 
@@ -3158,23 +3131,27 @@ msgstr ""
3158
  msgid "Require confirmation"
3159
  msgstr ""
3160
 
3161
- #: core/templates/parts/customize-multi-line-text.php:48
3162
  msgid "Limit words/characters"
3163
  msgstr ""
3164
 
3165
- #: core/templates/parts/customize-multi-line-text.php:51
 
 
 
 
3166
  msgid "Words (max)"
3167
  msgstr ""
3168
 
3169
- #: core/templates/parts/customize-multi-line-text.php:52
3170
  msgid "Words (min)"
3171
  msgstr ""
3172
 
3173
- #: core/templates/parts/customize-multi-line-text.php:53
3174
  msgid "Characters (max)"
3175
  msgstr ""
3176
 
3177
- #: core/templates/parts/customize-multi-line-text.php:54
3178
  msgid "Characters (min)"
3179
  msgstr ""
3180
 
@@ -3202,8 +3179,8 @@ msgstr ""
3202
  msgid "Prefix"
3203
  msgstr ""
3204
 
3205
- #: core/templates/parts/customize-radio.php:122
3206
- #: core/templates/parts/customize-select.php:112
3207
  msgid "Make this option default"
3208
  msgstr ""
3209
 
@@ -3211,10 +3188,6 @@ msgstr ""
3211
  msgid "Make searchable"
3212
  msgstr ""
3213
 
3214
- #: core/templates/parts/customize-select.php:117
3215
- msgid "Advanced"
3216
- msgstr ""
3217
-
3218
  #: core/templates/parts/frontend-checkbox.php:13
3219
  msgid "Select all"
3220
  msgstr ""
@@ -3274,114 +3247,106 @@ msgid "Generate a link that can be clicked to open an overlay window for this fo
3274
  msgstr ""
3275
 
3276
  #: inc/classes/class-happyforms.php:127
3277
- msgid "Save submissions"
3278
- msgstr ""
3279
-
3280
- #: inc/classes/class-happyforms.php:128
3281
- msgid "Keep recipients responses stored in your WordPress database."
3282
- msgstr ""
3283
-
3284
- #: inc/classes/class-happyforms.php:135
3285
  msgid "Save abandoned submission"
3286
  msgstr ""
3287
 
3288
- #: inc/classes/class-happyforms.php:136
3289
  msgid "Keep incomplete recipients responses stored in your WordPress database."
3290
  msgstr ""
3291
 
3292
- #: inc/classes/class-happyforms.php:142
3293
  msgid "Give each submission an ID number"
3294
  msgstr ""
3295
 
3296
- #: inc/classes/class-happyforms.php:143
3297
  msgid "Tag responses with a unique, incremental identifier."
3298
  msgstr ""
3299
 
3300
- #: inc/classes/class-happyforms.php:149
3301
  msgid "Preview values before submission"
3302
  msgstr ""
3303
 
3304
- #: inc/classes/class-happyforms.php:150
3305
  msgid "Let your users review their submission before confirming it."
3306
  msgstr ""
3307
 
3308
- #: inc/classes/class-happyforms.php:156
3309
  msgid "Fade submit button until valid"
3310
  msgstr ""
3311
 
3312
- #: inc/classes/class-happyforms.php:157
3313
  msgid ""
3314
  "Reduce the opacity of the submit button until all required form parts are "
3315
  "valid."
3316
  msgstr ""
3317
 
3318
- #: inc/classes/class-happyforms.php:163
3319
  msgid "Limit submissions"
3320
  msgstr ""
3321
 
3322
- #: inc/classes/class-happyforms.php:164
3323
  msgid "Set limit on number of allowed form submission in general or per user."
3324
  msgstr ""
3325
 
3326
- #: inc/classes/class-happyforms.php:170
3327
  msgid "Schedule visibility"
3328
  msgstr ""
3329
 
3330
- #: inc/classes/class-happyforms.php:171
3331
  msgid ""
3332
  "Show or hide this form during a chosen time and day. Go to Settings > "
3333
  "Timezone to set your city offset."
3334
  msgstr ""
3335
 
3336
- #: inc/classes/class-happyforms.php:181
3337
  msgid "Include mark and reply link"
3338
  msgstr ""
3339
 
3340
- #: inc/classes/class-happyforms.php:182
3341
  msgid "Reply to your users and mark their submission as read in one click."
3342
  msgstr ""
3343
 
3344
- #: inc/classes/class-happyforms.php:188
3345
  msgid "Link to attachments in email"
3346
  msgstr ""
3347
 
3348
- #: inc/classes/class-happyforms.php:189
3349
  msgid "Show attachments as links instead of a simple counter."
3350
  msgstr ""
3351
 
3352
- #: inc/classes/class-happyforms.php:195
3353
  msgid "Hide Placeholder parts in email"
3354
  msgstr ""
3355
 
3356
- #: inc/classes/class-happyforms.php:201
3357
  msgid "Include referral link"
3358
  msgstr ""
3359
 
3360
- #: inc/classes/class-happyforms.php:202
3361
  msgid "Include the page link your form was submitted from."
3362
  msgstr ""
3363
 
3364
- #: inc/classes/class-happyforms.php:208
3365
  msgid "Attach PDF to confirmation email"
3366
  msgstr ""
3367
 
3368
- #: inc/classes/class-happyforms.php:209
3369
  msgid "Attach a PDF to the recipient's confirmation email."
3370
  msgstr ""
3371
 
3372
- #: inc/classes/class-happyforms.php:215
3373
  msgid "Send abandonment email"
3374
  msgstr ""
3375
 
3376
- #: inc/classes/class-happyforms.php:216
3377
  msgid "Notify recipients when they abandon your form before submitting it."
3378
  msgstr ""
3379
 
3380
- #: inc/classes/class-happyforms.php:241
3381
  msgid "HappyForms Upgrade"
3382
  msgstr ""
3383
 
3384
- #: inc/classes/class-happyforms.php:366
3385
  msgid ""
3386
  "<p>Can we ask a favor?</p><p>You created your first form %s days ago — how "
3387
  "time flies! Since then, we’ve answered hundreds of community emails and "
@@ -3524,7 +3489,7 @@ msgid "For displaying personal honorifics."
3524
  msgstr ""
3525
 
3526
  #: inc/classes/parts/class-part-website-url-dummy.php:8
3527
- msgid "Website Link"
3528
  msgstr ""
3529
 
3530
  #: inc/classes/parts/class-part-website-url-dummy.php:9
1
+ # Copyright (C) 2020 The Theme Foundry
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.9.1\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2020-01-10 07:56:10+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: The Theme Foundry\n"
13
  "Language-Team: The Theme Foundry\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
204
  msgid "(no title)"
205
  msgstr ""
206
 
207
+ #: core/classes/class-form-controller.php:620
208
  msgid " Copy"
209
  msgstr ""
210
 
404
  msgstr ""
405
 
406
  #: core/classes/class-form-setup.php:205
407
+ msgid "Hide form after submit"
408
  msgstr ""
409
 
410
  #: core/classes/class-form-setup.php:206
429
  msgid "Right-to-left"
430
  msgstr ""
431
 
432
+ #: core/classes/class-form-styles.php:71 core/classes/class-form-styles.php:145
433
+ #: core/classes/class-form-styles.php:155
434
+ #: core/classes/class-form-styles.php:258
435
+ #: core/classes/class-form-styles.php:268
436
  msgid "Default"
437
  msgstr ""
438
 
439
+ #: core/classes/class-form-styles.php:72 core/classes/class-form-styles.php:144
440
+ #: core/classes/class-form-styles.php:154
441
+ #: core/classes/class-form-styles.php:267
442
  msgid "Narrow"
443
  msgstr ""
444
 
445
+ #: core/classes/class-form-styles.php:73 core/classes/class-form-styles.php:146
446
+ #: core/classes/class-form-styles.php:156
447
+ #: core/classes/class-form-styles.php:269
448
  msgid "Wide"
449
  msgstr ""
450
 
451
+ #: core/classes/class-form-styles.php:87 core/classes/class-form-styles.php:116
452
+ #: core/classes/class-form-styles.php:239
453
  msgid "Show"
454
  msgstr ""
455
 
456
+ #: core/classes/class-form-styles.php:88 core/classes/class-form-styles.php:117
457
+ #: core/classes/class-form-styles.php:240
458
  msgid "Hide"
459
  msgstr ""
460
 
461
+ #: core/classes/class-form-styles.php:96 core/classes/class-form-styles.php:170
462
+ #: core/classes/class-form-styles.php:199
463
+ #: core/classes/class-form-styles.php:219
464
+ #: core/classes/class-form-styles.php:296
465
  #: core/templates/parts/customize-checkbox.php:12
466
  #: core/templates/parts/customize-email.php:12
467
  #: core/templates/parts/customize-multi-line-text.php:12
472
  msgid "Left"
473
  msgstr ""
474
 
475
+ #: core/classes/class-form-styles.php:97 core/classes/class-form-styles.php:171
476
+ #: core/classes/class-form-styles.php:200
477
+ #: core/classes/class-form-styles.php:220
478
+ #: core/classes/class-form-styles.php:297
479
  msgid "Center"
480
  msgstr ""
481
 
482
+ #: core/classes/class-form-styles.php:98 core/classes/class-form-styles.php:172
483
+ #: core/classes/class-form-styles.php:201
484
+ #: core/classes/class-form-styles.php:221
485
+ #: core/classes/class-form-styles.php:298
486
  msgid "Right"
487
  msgstr ""
488
 
489
+ #: core/classes/class-form-styles.php:125
490
  msgid "All sides"
491
  msgstr ""
492
 
493
+ #: core/classes/class-form-styles.php:126
494
  msgid "Bottom only"
495
  msgstr ""
496
 
497
+ #: core/classes/class-form-styles.php:134
498
+ #: core/classes/class-form-styles.php:248
499
  msgid "Square"
500
  msgstr ""
501
 
502
+ #: core/classes/class-form-styles.php:135
503
+ #: core/classes/class-form-styles.php:249
504
  msgid "Round"
505
  msgstr ""
506
 
507
+ #: core/classes/class-form-styles.php:136
508
+ #: core/classes/class-form-styles.php:250
509
  msgid "Pill"
510
  msgstr ""
511
 
512
+ #: core/classes/class-form-styles.php:190
513
+ #: core/classes/class-form-styles.php:287
514
  msgid "Normal"
515
  msgstr ""
516
 
517
+ #: core/classes/class-form-styles.php:191
518
+ #: core/classes/class-form-styles.php:288
519
  msgid "Bold"
520
  msgstr ""
521
 
522
+ #: core/classes/class-form-styles.php:259
523
  msgid "Full width"
524
  msgstr ""
525
 
526
+ #: core/classes/class-form-styles.php:510
527
  msgid "Above form"
528
  msgstr ""
529
 
530
+ #: core/classes/class-form-styles.php:511
531
  msgid "Below form"
532
  msgstr ""
533
 
534
+ #: core/classes/class-form-styles.php:525
535
  msgid "General"
536
  msgstr ""
537
 
538
+ #: core/classes/class-form-styles.php:530
539
+ #: core/classes/class-form-styles.php:840 core/helpers/helper-misc.php:899
540
+ #: core/templates/parts/customize-checkbox.php:85
 
 
 
 
 
 
541
  msgid "Width"
542
  msgstr ""
543
 
544
+ #: core/classes/class-form-styles.php:535
545
+ #: core/classes/class-form-styles.php:845
546
  msgid "Padding"
547
  msgstr ""
548
 
549
+ #: core/classes/class-form-styles.php:540
550
  msgid "Direction"
551
  msgstr ""
552
 
553
+ #: core/classes/class-form-styles.php:545
554
  msgid "Display notices"
555
  msgstr ""
556
 
557
+ #: core/classes/class-form-styles.php:551
558
+ #: core/classes/class-form-styles.php:636
559
+ #: core/classes/class-form-styles.php:706
560
+ #: core/classes/class-form-styles.php:871
561
  msgid "Colors"
562
  msgstr ""
563
 
564
+ #: core/classes/class-form-styles.php:555
565
  msgid "Primary"
566
  msgstr ""
567
 
568
+ #: core/classes/class-form-styles.php:560
569
  msgid "Success notice"
570
  msgstr ""
571
 
572
+ #: core/classes/class-form-styles.php:565
573
  msgid "Success notice text"
574
  msgstr ""
575
 
576
+ #: core/classes/class-form-styles.php:570
577
  msgid "Error"
578
  msgstr ""
579
 
580
+ #: core/classes/class-form-styles.php:575
581
  msgid "Error notice"
582
  msgstr ""
583
 
584
+ #: core/classes/class-form-styles.php:580
585
  msgid "Error notice text"
586
  msgstr ""
587
 
588
+ #: core/classes/class-form-styles.php:585
589
+ #: core/classes/class-form-styles.php:710
590
  #: core/templates/customize-form-build.php:4
591
  #: inc/classes/parts/class-part-title-dummy.php:8
592
  msgid "Title"
593
  msgstr ""
594
 
595
+ #: core/classes/class-form-styles.php:590
596
  msgid "Display"
597
  msgstr ""
598
 
599
+ #: core/classes/class-form-styles.php:595
600
+ #: core/classes/class-form-styles.php:860
601
  msgid "Alignment"
602
  msgstr ""
603
 
604
+ #: core/classes/class-form-styles.php:600
605
+ #: core/classes/class-form-styles.php:850
606
  msgid "Font size"
607
  msgstr ""
608
 
609
+ #: core/classes/class-form-styles.php:605
610
  msgid "Part borders & spacing"
611
  msgstr ""
612
 
613
+ #: core/classes/class-form-styles.php:610
614
+ #: core/classes/class-form-styles.php:640
615
+ #: core/classes/class-form-styles.php:830
616
+ #: core/classes/class-form-styles.php:885
617
  msgid "Border"
618
  msgstr ""
619
 
620
+ #: core/classes/class-form-styles.php:615
621
  msgid "Border location"
622
  msgstr ""
623
 
624
+ #: core/classes/class-form-styles.php:620
625
+ #: core/classes/class-form-styles.php:835
626
  msgid "Border radius"
627
  msgstr ""
628
 
629
+ #: core/classes/class-form-styles.php:625
630
  msgid "Outer spacing"
631
  msgstr ""
632
 
633
+ #: core/classes/class-form-styles.php:630
634
  msgid "Inner spacing"
635
  msgstr ""
636
 
637
+ #: core/classes/class-form-styles.php:645
638
  msgid "Border on focus"
639
  msgstr ""
640
 
641
+ #: core/classes/class-form-styles.php:650
642
+ #: core/classes/class-form-styles.php:735
643
+ #: core/classes/class-form-styles.php:760
644
+ #: core/classes/class-form-styles.php:875
645
  msgid "Background"
646
  msgstr ""
647
 
648
+ #: core/classes/class-form-styles.php:655
649
+ #: core/classes/class-form-styles.php:745
650
+ #: core/classes/class-form-styles.php:765
651
+ #: core/classes/class-form-styles.php:880
652
  msgid "Background on focus"
653
  msgstr ""
654
 
655
+ #: core/classes/class-form-styles.php:660
656
  msgid "Part labels & text"
657
  msgstr ""
658
 
659
+ #: core/classes/class-form-styles.php:665
660
  msgid "Toggle placeholder on part focus"
661
  msgstr ""
662
 
663
+ #: core/classes/class-form-styles.php:670
664
  msgid "Title alignment"
665
  msgstr ""
666
 
667
+ #: core/classes/class-form-styles.php:675
668
  msgid "Title font size"
669
  msgstr ""
670
 
671
+ #: core/classes/class-form-styles.php:680
672
  msgid "Title font weight"
673
  msgstr ""
674
 
675
+ #: core/classes/class-form-styles.php:685
676
  msgid "Description alignment"
677
  msgstr ""
678
 
679
+ #: core/classes/class-form-styles.php:690
680
  msgid "Description font size"
681
  msgstr ""
682
 
683
+ #: core/classes/class-form-styles.php:695
684
  msgid "Placeholder &amp; value alignment"
685
  msgstr ""
686
 
687
+ #: core/classes/class-form-styles.php:700
688
  msgid "Value font size"
689
  msgstr ""
690
 
691
+ #: core/classes/class-form-styles.php:715
692
  msgid "Value"
693
  msgstr ""
694
 
695
+ #: core/classes/class-form-styles.php:720
696
  #: core/templates/parts/customize-email.php:30
697
  #: core/templates/parts/customize-multi-line-text.php:30
698
  #: core/templates/parts/customize-number.php:30
702
  msgid "Placeholder"
703
  msgstr ""
704
 
705
+ #: core/classes/class-form-styles.php:725
706
  msgid "Dropdowns"
707
  msgstr ""
708
 
709
+ #: core/classes/class-form-styles.php:731
710
  msgid "Items"
711
  msgstr ""
712
 
713
+ #: core/classes/class-form-styles.php:740
714
+ #: core/classes/class-form-styles.php:890
715
  msgid "Text"
716
  msgstr ""
717
 
718
+ #: core/classes/class-form-styles.php:750
 
719
  msgid "Text focused"
720
  msgstr ""
721
 
722
+ #: core/classes/class-form-styles.php:755
723
  msgid "Checkboxes & Radios"
724
  msgstr ""
725
 
726
+ #: core/classes/class-form-styles.php:770
727
  msgid "Checkmark"
728
  msgstr ""
729
 
730
+ #: core/classes/class-form-styles.php:775
731
  #: inc/classes/parts/class-part-rating-dummy.php:8
732
  msgid "Rating"
733
  msgstr ""
734
 
735
+ #: core/classes/class-form-styles.php:780
736
  msgid "Rating star color"
737
  msgstr ""
738
 
739
+ #: core/classes/class-form-styles.php:785
740
  msgid "Rating star color on hover"
741
  msgstr ""
742
 
743
+ #: core/classes/class-form-styles.php:790
744
  msgid "Item background"
745
  msgstr ""
746
 
747
+ #: core/classes/class-form-styles.php:795
748
  msgid "Item background on hover"
749
  msgstr ""
750
 
751
+ #: core/classes/class-form-styles.php:800
752
  msgid "Tables"
753
  msgstr ""
754
 
755
+ #: core/classes/class-form-styles.php:805
756
  msgid "Odd row primary"
757
  msgstr ""
758
 
759
+ #: core/classes/class-form-styles.php:810
760
  msgid "Odd row secondary"
761
  msgstr ""
762
 
763
+ #: core/classes/class-form-styles.php:815
764
  msgid "Even row primary"
765
  msgstr ""
766
 
767
+ #: core/classes/class-form-styles.php:820
768
  msgid "Even row secondary"
769
  msgstr ""
770
 
771
+ #: core/classes/class-form-styles.php:825
772
  msgid "Submit button"
773
  msgstr ""
774
 
775
+ #: core/classes/class-form-styles.php:855
776
  msgid "Font weight"
777
  msgstr ""
778
 
779
+ #: core/classes/class-form-styles.php:865
780
  msgid "Make button a part of last input"
781
  msgstr ""
782
 
783
+ #: core/classes/class-form-styles.php:895
784
+ msgid "Text on focus"
785
+ msgstr ""
786
+
787
  #: core/classes/class-happyforms-core.php:163
788
  msgid "HappyForms Index"
789
  msgstr ""
946
  #: core/classes/parts/class-part-email.php:31
947
  #: core/classes/parts/class-part-email.php:55
948
  #: core/classes/parts/class-part-multi-line-text.php:34
949
+ #: core/classes/parts/class-part-number.php:31
950
+ #: core/classes/parts/class-part-number.php:87
951
  #: core/classes/parts/class-part-radio.php:40
952
  #: core/classes/parts/class-part-select.php:31
953
  #: core/classes/parts/class-part-single-line-text.php:29
983
  msgid "For paragraph text fields."
984
  msgstr ""
985
 
986
+ #: core/classes/parts/class-part-multi-line-text.php:180
987
+ #: core/classes/parts/class-part-multi-line-text.php:184
988
  msgid "Submitted value is too long."
989
  msgstr ""
990
 
991
+ #: core/classes/parts/class-part-multi-line-text.php:182
992
+ #: core/classes/parts/class-part-multi-line-text.php:186
993
  msgid "Submitted value is too short."
994
  msgstr ""
995
 
996
+ #: core/classes/parts/class-part-multi-line-text.php:230
997
  msgid "characters (min.)"
998
  msgstr ""
999
 
1000
+ #: core/classes/parts/class-part-multi-line-text.php:233
1001
  msgid "characters (max.)"
1002
  msgstr ""
1003
 
1004
+ #: core/classes/parts/class-part-multi-line-text.php:236
1005
  msgid "words (min.)"
1006
  msgstr ""
1007
 
1008
+ #: core/classes/parts/class-part-multi-line-text.php:239
1009
  msgid "words (max.)"
1010
  msgstr ""
1011
 
1017
  msgid "For numeric fields."
1018
  msgstr ""
1019
 
1020
+ #: core/classes/parts/class-part-number.php:211
1021
  msgid "This field does not match minimum and maximum allowed value."
1022
  msgstr ""
1023
 
1024
+ #: core/classes/parts/class-part-number.php:219
1025
  msgid "Number and confirmation number are not matching."
1026
  msgstr ""
1027
 
2735
  msgid "Yoruba"
2736
  msgstr ""
2737
 
2738
+ #: core/helpers/helper-misc.php:901
2739
+ #: core/templates/parts/customize-checkbox.php:77
2740
+ #: core/templates/parts/customize-checkbox.php:87
2741
+ #: core/templates/parts/customize-radio.php:72
2742
+ msgid "Full"
2743
+ msgstr ""
2744
+
2745
+ #: core/helpers/helper-misc.php:902
2746
+ #: core/templates/parts/customize-checkbox.php:78
2747
+ #: core/templates/parts/customize-checkbox.php:88
2748
+ #: core/templates/parts/customize-radio.php:73
2749
+ msgid "Half"
2750
+ msgstr ""
2751
+
2752
+ #: core/helpers/helper-misc.php:903
2753
+ #: core/templates/parts/customize-checkbox.php:79
2754
+ #: core/templates/parts/customize-checkbox.php:89
2755
+ #: core/templates/parts/customize-radio.php:74
2756
+ msgid "Third"
2757
+ msgstr ""
2758
+
2759
+ #: core/helpers/helper-misc.php:904
2760
+ #: core/templates/parts/customize-checkbox.php:80
2761
+ #: core/templates/parts/customize-radio.php:75
2762
+ msgid "Quarter"
2763
+ msgstr ""
2764
+
2765
+ #: core/helpers/helper-misc.php:905
2766
+ #: core/templates/parts/customize-checkbox.php:81
2767
+ #: core/templates/parts/customize-checkbox.php:90
2768
+ #: core/templates/parts/customize-radio.php:76
2769
+ msgid "Auto"
2770
+ msgstr ""
2771
+
2772
+ #: core/helpers/helper-misc.php:910
2773
+ #: core/templates/parts/customize-checkbox.php:95
2774
+ msgid "Apply to all parts"
2775
+ msgstr ""
2776
+
2777
  #: core/templates/admin-form-modal.php:5
2778
  msgid "Choose a form"
2779
  msgstr ""
2816
  msgid "You are customizing"
2817
  msgstr ""
2818
 
 
 
 
 
2819
  #: core/templates/customize-form-build.php:5
2820
  msgid "Add title"
2821
  msgstr ""
2844
 
2845
  #: core/templates/customize-form-item.php:33
2846
  #: core/templates/customize-form-part-footer.php:3
2847
+ #: core/templates/parts/customize-checkbox.php:129
2848
+ #: core/templates/parts/customize-radio.php:112
2849
+ #: core/templates/parts/customize-select.php:104
2850
  msgid "Delete"
2851
  msgstr ""
2852
 
2855
  msgstr ""
2856
 
2857
  #: core/templates/customize-form-part-footer.php:5
2858
+ #: core/templates/parts/customize-checkbox.php:130
2859
+ #: core/templates/parts/customize-radio.php:113
2860
+ #: core/templates/parts/customize-select.php:105
2861
  msgid "More"
2862
  msgstr ""
2863
 
2880
  msgstr ""
2881
 
2882
  #: core/templates/customize-form-parts-drawer.php:30
2883
+ #: inc/classes/class-happyforms.php:234
2884
  #: inc/templates/customize-controls/checkbox_dummy.php:7
2885
  msgid "Upgrade"
2886
  msgstr ""
2918
  msgstr ""
2919
 
2920
  #: core/templates/parts/customize-checkbox.php:4
2921
+ #: core/templates/parts/customize-checkbox.php:120
2922
  #: core/templates/parts/customize-email.php:4
2923
  #: core/templates/parts/customize-email.php:59
2924
  #: core/templates/parts/customize-multi-line-text.php:4
2925
  #: core/templates/parts/customize-number.php:4
2926
  #: core/templates/parts/customize-number.php:85
2927
  #: core/templates/parts/customize-radio.php:4
2928
+ #: core/templates/parts/customize-radio.php:103
2929
  #: core/templates/parts/customize-select.php:4
2930
+ #: core/templates/parts/customize-select.php:95
2931
  #: core/templates/parts/customize-single-line-text.php:4
2932
  msgid "Label"
2933
  msgstr ""
2972
  msgstr ""
2973
 
2974
  #: core/templates/parts/customize-checkbox.php:17
 
2975
  #: core/templates/parts/customize-email.php:18
2976
  #: core/templates/parts/customize-multi-line-text.php:18
2977
  #: core/templates/parts/customize-number.php:18
2978
  #: core/templates/parts/customize-radio.php:17
 
2979
  #: core/templates/parts/customize-select.php:17
2980
  #: core/templates/parts/customize-single-line-text.php:18
2981
  msgid "Description"
3090
  msgid "Choices width"
3091
  msgstr ""
3092
 
3093
+ #: core/templates/parts/customize-checkbox.php:102
3094
+ #: core/templates/parts/customize-email.php:69
3095
+ #: core/templates/parts/customize-multi-line-text.php:71
 
 
 
 
 
 
 
 
 
 
 
 
 
3096
  #: core/templates/parts/customize-number.php:93
 
 
 
 
 
 
 
 
 
 
 
 
 
3097
  #: core/templates/parts/customize-radio.php:83
 
 
 
 
 
 
 
 
 
 
 
 
3098
  #: core/templates/parts/customize-select.php:77
3099
+ #: core/templates/parts/customize-single-line-text.php:52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3100
  msgid "CSS classes"
3101
  msgstr ""
3102
 
3103
+ #: core/templates/parts/customize-checkbox.php:125
3104
  msgid "Checked by default"
3105
  msgstr ""
3106
 
3131
  msgid "Require confirmation"
3132
  msgstr ""
3133
 
3134
+ #: core/templates/parts/customize-multi-line-text.php:49
3135
  msgid "Limit words/characters"
3136
  msgstr ""
3137
 
3138
+ #: core/templates/parts/customize-multi-line-text.php:55
3139
+ msgid "Amount"
3140
+ msgstr ""
3141
+
3142
+ #: core/templates/parts/customize-multi-line-text.php:59
3143
  msgid "Words (max)"
3144
  msgstr ""
3145
 
3146
+ #: core/templates/parts/customize-multi-line-text.php:60
3147
  msgid "Words (min)"
3148
  msgstr ""
3149
 
3150
+ #: core/templates/parts/customize-multi-line-text.php:61
3151
  msgid "Characters (max)"
3152
  msgstr ""
3153
 
3154
+ #: core/templates/parts/customize-multi-line-text.php:62
3155
  msgid "Characters (min)"
3156
  msgstr ""
3157
 
3179
  msgid "Prefix"
3180
  msgstr ""
3181
 
3182
+ #: core/templates/parts/customize-radio.php:108
3183
+ #: core/templates/parts/customize-select.php:100
3184
  msgid "Make this option default"
3185
  msgstr ""
3186
 
3188
  msgid "Make searchable"
3189
  msgstr ""
3190
 
 
 
 
 
3191
  #: core/templates/parts/frontend-checkbox.php:13
3192
  msgid "Select all"
3193
  msgstr ""
3247
  msgstr ""
3248
 
3249
  #: inc/classes/class-happyforms.php:127
 
 
 
 
 
 
 
 
3250
  msgid "Save abandoned submission"
3251
  msgstr ""
3252
 
3253
+ #: inc/classes/class-happyforms.php:128
3254
  msgid "Keep incomplete recipients responses stored in your WordPress database."
3255
  msgstr ""
3256
 
3257
+ #: inc/classes/class-happyforms.php:134
3258
  msgid "Give each submission an ID number"
3259
  msgstr ""
3260
 
3261
+ #: inc/classes/class-happyforms.php:135
3262
  msgid "Tag responses with a unique, incremental identifier."
3263
  msgstr ""
3264
 
3265
+ #: inc/classes/class-happyforms.php:141
3266
  msgid "Preview values before submission"
3267
  msgstr ""
3268
 
3269
+ #: inc/classes/class-happyforms.php:142
3270
  msgid "Let your users review their submission before confirming it."
3271
  msgstr ""
3272
 
3273
+ #: inc/classes/class-happyforms.php:148
3274
  msgid "Fade submit button until valid"
3275
  msgstr ""
3276
 
3277
+ #: inc/classes/class-happyforms.php:149
3278
  msgid ""
3279
  "Reduce the opacity of the submit button until all required form parts are "
3280
  "valid."
3281
  msgstr ""
3282
 
3283
+ #: inc/classes/class-happyforms.php:155
3284
  msgid "Limit submissions"
3285
  msgstr ""
3286
 
3287
+ #: inc/classes/class-happyforms.php:156
3288
  msgid "Set limit on number of allowed form submission in general or per user."
3289
  msgstr ""
3290
 
3291
+ #: inc/classes/class-happyforms.php:162
3292
  msgid "Schedule visibility"
3293
  msgstr ""
3294
 
3295
+ #: inc/classes/class-happyforms.php:163
3296
  msgid ""
3297
  "Show or hide this form during a chosen time and day. Go to Settings > "
3298
  "Timezone to set your city offset."
3299
  msgstr ""
3300
 
3301
+ #: inc/classes/class-happyforms.php:173
3302
  msgid "Include mark and reply link"
3303
  msgstr ""
3304
 
3305
+ #: inc/classes/class-happyforms.php:174
3306
  msgid "Reply to your users and mark their submission as read in one click."
3307
  msgstr ""
3308
 
3309
+ #: inc/classes/class-happyforms.php:180
3310
  msgid "Link to attachments in email"
3311
  msgstr ""
3312
 
3313
+ #: inc/classes/class-happyforms.php:181
3314
  msgid "Show attachments as links instead of a simple counter."
3315
  msgstr ""
3316
 
3317
+ #: inc/classes/class-happyforms.php:187
3318
  msgid "Hide Placeholder parts in email"
3319
  msgstr ""
3320
 
3321
+ #: inc/classes/class-happyforms.php:193
3322
  msgid "Include referral link"
3323
  msgstr ""
3324
 
3325
+ #: inc/classes/class-happyforms.php:194
3326
  msgid "Include the page link your form was submitted from."
3327
  msgstr ""
3328
 
3329
+ #: inc/classes/class-happyforms.php:200
3330
  msgid "Attach PDF to confirmation email"
3331
  msgstr ""
3332
 
3333
+ #: inc/classes/class-happyforms.php:201
3334
  msgid "Attach a PDF to the recipient's confirmation email."
3335
  msgstr ""
3336
 
3337
+ #: inc/classes/class-happyforms.php:207
3338
  msgid "Send abandonment email"
3339
  msgstr ""
3340
 
3341
+ #: inc/classes/class-happyforms.php:208
3342
  msgid "Notify recipients when they abandon your form before submitting it."
3343
  msgstr ""
3344
 
3345
+ #: inc/classes/class-happyforms.php:233
3346
  msgid "HappyForms Upgrade"
3347
  msgstr ""
3348
 
3349
+ #: inc/classes/class-happyforms.php:358
3350
  msgid ""
3351
  "<p>Can we ask a favor?</p><p>You created your first form %s days ago — how "
3352
  "time flies! Since then, we’ve answered hundreds of community emails and "
3489
  msgstr ""
3490
 
3491
  #: inc/classes/parts/class-part-website-url-dummy.php:8
3492
+ msgid "Site Address"
3493
  msgstr ""
3494
 
3495
  #: inc/classes/parts/class-part-website-url-dummy.php:9
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: contact, contact form, email, feedback form, form, form builder, custom fo
5
  Requires at least: 4.8
6
  Tested up to: 5.3
7
  Requires PHP: 5.3
8
- Stable tag: 1.9.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -97,6 +97,12 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more yo
97
 
98
  == Changelog ==
99
 
 
 
 
 
 
 
100
  = 1.9.0 =
101
  * New feature: Date filter on All Forms screen now allows you to filter forms by date added.
102
  * Improvement: Email controls are now grouped in a dedicated step.
@@ -559,6 +565,9 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more yo
559
 
560
  == Upgrade Notice ==
561
 
 
 
 
562
  = 1.9.0 =
563
  * New Email step, various improvements to form builder UI.
564
 
5
  Requires at least: 4.8
6
  Tested up to: 5.3
7
  Requires PHP: 5.3
8
+ Stable tag: 1.9.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
97
 
98
  == Changelog ==
99
 
100
+ = 1.9.1 =
101
+ * New feature: Quarter width setting for parts and part choices.
102
+ * Improvement: Various improvements to HappyForms UI styles.
103
+ * Improvement: Improved compatibility of form part styles with some themes.
104
+ * Bugfix: Fixed choice parts not saving "Checked by default" setting.
105
+
106
  = 1.9.0 =
107
  * New feature: Date filter on All Forms screen now allows you to filter forms by date added.
108
  * Improvement: Email controls are now grouped in a dedicated step.
565
 
566
  == Upgrade Notice ==
567
 
568
+ = 1.9.1 =
569
+ * Quarter width for parts and part choices. Various improvements to UI and part styles.
570
+
571
  = 1.9.0 =
572
  * New Email step, various improvements to form builder UI.
573