From fd8ab3d4f28b7cadf1e0ab2d7c6d7db5add71e4c Mon Sep 17 00:00:00 2001 From: Luis Godinho Date: Fri, 22 Jan 2016 19:41:52 +0000 Subject: [PATCH 01/38] Fixed: When sorting recent entries disappeared from the view. HS 4608 --- includes/class-common.php | 8 ++++++++ .../widgets/search-widget/class-search-widget.php | 12 ++++++++++-- readme.txt | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/includes/class-common.php b/includes/class-common.php index a66991277e..647ab854a9 100644 --- a/includes/class-common.php +++ b/includes/class-common.php @@ -437,8 +437,16 @@ public static function calculate_get_entries_criteria( $passed_criteria = array( */ $filter['operator'] = apply_filters( 'gravityview_search_operator', $filter['operator'], $filter ); } + + // don't send just the [mode] without any field filter. + if( count( $criteria['search_criteria']['field_filters'] ) === 1 && array_key_exists( 'mode' , $criteria['search_criteria']['field_filters'] ) ) { + unset( $criteria['search_criteria']['field_filters']['mode'] ); + } + } + + /** * Prepare date formats to be in Gravity Forms DB format; * $passed_criteria may include date formats incompatible with Gravity Forms. diff --git a/includes/widgets/search-widget/class-search-widget.php b/includes/widgets/search-widget/class-search-widget.php index e76a86f219..162dfafe77 100644 --- a/includes/widgets/search-widget/class-search-widget.php +++ b/includes/widgets/search-widget/class-search-widget.php @@ -394,10 +394,18 @@ public function filter_entries( $search_criteria ) { * @param[in] string $context Where the filter is being called from. `search` in this case. */ $adjust_tz = apply_filters( 'gravityview_date_created_adjust_timezone', true, 'search' ); - $search_criteria['start_date'] = ( $adjust_tz && !empty( $curr_start ) ) ? get_gmt_from_date( $curr_start ) : $curr_start; - $search_criteria['end_date'] = ( $adjust_tz && !empty( $curr_end ) ) ? get_gmt_from_date( $curr_end ) : $curr_end; + /** + * Don't set $search_criteria['start_date'] if start_date is empty as it may lead to bad query results (GFAPI::get_entries) + */ + if( !empty( $curr_start ) ) { + $search_criteria['start_date'] = $adjust_tz ? get_gmt_from_date( $curr_start ) : $curr_start; + } + if( !empty( $curr_end ) ) { + $search_criteria['end_date'] = $adjust_tz ? get_gmt_from_date( $curr_end ) : $curr_end; + } + // search for a specific entry ID if ( ! empty( $_GET[ 'gv_id' ] ) ) { $search_criteria['field_filters'][] = array( diff --git a/readme.txt b/readme.txt index 7fe838ec35..2e88f25251 100644 --- a/readme.txt +++ b/readme.txt @@ -20,6 +20,10 @@ Beautifully display your Gravity Forms entries. Learn more on [gravityview.co](h == Changelog == += 1.16.2 = + +* Fixed: When sorting recent entries disappeared from the view. + = 1.16.1 on January 21 = * Fixed: GravityView prevented Gravity Forms translations from loading From 05baeb9739cd7d14dafa958bd68b8bbb10b77113 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Fri, 22 Jan 2016 13:11:30 -0700 Subject: [PATCH 02/38] Fix filter docBlock structure --- templates/fields/textarea.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/fields/textarea.php b/templates/fields/textarea.php index a9617e33be..38456f534b 100644 --- a/templates/fields/textarea.php +++ b/templates/fields/textarea.php @@ -15,7 +15,7 @@ if( !empty( $field_settings['trim_words'] ) ) { /** - * Modify the "Read more" link used when "Maximum Words" setting is enabled and the output is truncated + * @filter `gravityview_excerpt_more` Modify the "Read more" link used when "Maximum Words" setting is enabled and the output is truncated * @since 1.16.1 * @param string $excerpt_more Default: ` ...` */ From e064bfeb6b00692f6d7532221dbd586385766ce7 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Fri, 22 Jan 2016 14:43:00 -0700 Subject: [PATCH 03/38] Fixed: Address fields displayed hidden inputs When address fields had inputs turned off, they would still appear if they had default values (like Country in United States configurations). Fields would show "United States" instead of blank. This fixes that. See https://secure.helpscout.net/conversation/159046228/4596/ --- readme.txt | 2 ++ templates/fields/address.php | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/readme.txt b/readme.txt index 7fe838ec35..2a29f501c4 100644 --- a/readme.txt +++ b/readme.txt @@ -20,6 +20,8 @@ Beautifully display your Gravity Forms entries. Learn more on [gravityview.co](h == Changelog == +* Fixed: Address fields displayed hidden inputs + = 1.16.1 on January 21 = * Fixed: GravityView prevented Gravity Forms translations from loading diff --git a/templates/fields/address.php b/templates/fields/address.php index eb42501c00..9bbed45b42 100644 --- a/templates/fields/address.php +++ b/templates/fields/address.php @@ -14,6 +14,16 @@ // If it's the full address if( floor( $field_id ) === floatval( $field_id ) ) { + /** + * Make sure we're only showing enabled inputs. + * @since 1.16.2 + */ + foreach( $field->inputs as $input ) { + if( ! empty( $input['isHidden'] ) ) { + unset( $value["{$input['id']}"] ); + } + } + // @todo Implement the `gform_disable_address_map_link` filter (boolean) added in GF 1.9 to enable/disable map link // Use Gravity Forms' method to get the full address. // Pass the `text` parameter so the map link isn't added like when passing `html` From 3ecdd0cc1042072d9f2d385074e7cfbe823b89f6 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Tue, 26 Jan 2016 12:04:02 -0700 Subject: [PATCH 04/38] Docblocks --- includes/class-frontend-views.php | 9 ++++++++- .../class-gravityview-field-payment-date.php | 1 + includes/fields/class-gravityview-field.php | 1 - includes/fields/class-gravityview-fields.php | 4 ++-- .../search-widget/class-search-widget.php | 19 +++++++------------ 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/includes/class-frontend-views.php b/includes/class-frontend-views.php index d3b43c3fe3..8a27d0058e 100644 --- a/includes/class-frontend-views.php +++ b/includes/class-frontend-views.php @@ -657,9 +657,16 @@ public function render_view( $passed_args ) { do_action( 'gravityview_log_debug', '[render_view] Entry does not exist. This may be because of View filters limiting access.' ); /** + * @filter `gravityview/render/entry/not_visible` Modify the message shown to users when the entry doesn't exist or they aren't allowed to view it. * @since 1.6 + * @param string $message Default: "You have attempted to view an entry that is not visible or may not exist." */ - echo esc_attr( apply_filters( 'gravityview/render/entry/not_visible', __( 'You have attempted to view an entry that is not visible or may not exist.', 'gravityview' ) ) ); + $message = apply_filters( 'gravityview/render/entry/not_visible', __( 'You have attempted to view an entry that is not visible or may not exist.', 'gravityview' ) ); + + /** + * @since 1.6 + */ + echo esc_attr( $message ); return null; } diff --git a/includes/fields/class-gravityview-field-payment-date.php b/includes/fields/class-gravityview-field-payment-date.php index 358ee7b4fc..8f064904fa 100644 --- a/includes/fields/class-gravityview-field-payment-date.php +++ b/includes/fields/class-gravityview-field-payment-date.php @@ -23,6 +23,7 @@ class GravityView_Field_Payment_Date extends GravityView_Field_Date_Created { */ public function __construct() { + // Constructor before the variables because the class extends Date_Created parent::__construct(); $this->label = esc_html__( 'Payment Date', 'gravityview' ); diff --git a/includes/fields/class-gravityview-field.php b/includes/fields/class-gravityview-field.php index 63a8fdeaf0..86406fe88d 100644 --- a/includes/fields/class-gravityview-field.php +++ b/includes/fields/class-gravityview-field.php @@ -32,7 +32,6 @@ abstract class GravityView_Field { /** * `standard`, `advanced`, `post`, `pricing`, `meta`, `gravityview` - * @internal Not yet implemented * @since 1.15.2 * @type string The group belongs to this field in the field picker */ diff --git a/includes/fields/class-gravityview-fields.php b/includes/fields/class-gravityview-fields.php index 2396594166..64919b5c91 100644 --- a/includes/fields/class-gravityview-fields.php +++ b/includes/fields/class-gravityview-fields.php @@ -68,7 +68,7 @@ public static function exists( $field_name ) { /** * @param string $field_name * - * @return GravityView_Field + * @return GravityView_Field|false */ public static function get_instance( $field_name ) { return isset( self::$_fields[ $field_name ] ) ? self::$_fields[ $field_name ] : false; @@ -79,7 +79,7 @@ public static function get_instance( $field_name ) { * * @param $field_name * - * @return GravityView_Field + * @return GravityView_Field|false */ public static function get( $field_name ) { return self::get_instance( $field_name ); diff --git a/includes/widgets/search-widget/class-search-widget.php b/includes/widgets/search-widget/class-search-widget.php index e76a86f219..ba0f625478 100644 --- a/includes/widgets/search-widget/class-search-widget.php +++ b/includes/widgets/search-widget/class-search-widget.php @@ -272,7 +272,7 @@ public static function render_searchable_fields( $form_id = null, $current = '' * @see admin-search-widget.js * * @param int $id Gravity Forms field ID - * @param string $field_type Gravity Forms field type + * @param string $field_type Gravity Forms field type (also the `name` parameter of GravityView_Field classes) * * @return string GV field search input type ('multi', 'boolean', 'select', 'date', 'text') */ @@ -280,29 +280,24 @@ public static function get_search_input_types( $id = '', $field_type = null ) { // @todo - This needs to be improved - many fields have . including products and addresses if ( false !== strpos( (string) $id, '.' ) && in_array( $field_type, array( 'checkbox' ) ) || in_array( $id, array( 'is_fulfilled' ) ) ) { - // on/off checkbox - $input_type = 'boolean'; + $input_type = 'boolean'; // on/off checkbox } elseif ( in_array( $field_type, array( 'checkbox', 'post_category', 'multiselect' ) ) ) { - //multiselect - $input_type = 'multi'; - + $input_type = 'multi'; //multiselect } elseif ( in_array( $field_type, array( 'select', 'radio' ) ) ) { - //single select $input_type = 'select'; - } elseif ( in_array( $field_type, array( 'date' ) ) || in_array( $id, array( 'payment_date' ) ) ) { - // date $input_type = 'date'; + } elseif ( in_array( $field_type, array( 'number' ) ) || in_array( $id, array( 'payment_amount' ) ) ) { + $input_type = 'number'; } else { - // input type = text $input_type = 'text'; } /** * @filter `gravityview/extension/search/input_type` Modify the search form input type based on field type - * @param string $input_type Assign an input type according to the form field type - * @param string $field_type Gravity Forms field type * @since 1.2 + * @param string $input_type Assign an input type according to the form field type. Defaults: `boolean`, `multi`, `select`, `date`, `text` + * @param string $field_type Gravity Forms field type (also the `name` parameter of GravityView_Field classes) */ $input_type = apply_filters( 'gravityview/extension/search/input_type', $input_type, $field_type ); From ba774198f2c9f570746f1ee106165a8d3e387a7b Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 27 Jan 2016 16:32:43 -0700 Subject: [PATCH 05/38] Add filter for widget container
Fixes #615 - thanks for the suggestion, @m-e-h! --- includes/class-template.php | 13 ++++++++++++- readme.txt | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/includes/class-template.php b/includes/class-template.php index dd8025bf65..611ad38f47 100644 --- a/includes/class-template.php +++ b/includes/class-template.php @@ -822,9 +822,20 @@ public function render_widget_hooks( $view_id ) { // TODO: Move to sep. method, use an action instead wp_enqueue_style( 'gravityview_default_style' ); + /** + * @filter `gravityview/widget/wrapper_css_class` The CSS class applied to the widget container `
`. + * @since 1.16.2 + * @param string $css_class Default: `gv-grid gv-widgets-{zone}` where `{zone}` is replaced by the current `$zone` value + * @param string $zone Current widget zone, either `header` or `footer` + * @param array $widgets Array of widget configurations for the current zone, as set by `gravityview_get_current_view_data()['widgets']` + */ + $css_class = apply_filters('gravityview/widget/wrapper_css_class', 'gv-grid gv-widgets-' . $zone, $zone, $widgets ); + + $css_class = gravityview_sanitize_html_class( $css_class ); + // TODO Convert to partials ?> -
+
$areas ) { diff --git a/readme.txt b/readme.txt index 2a29f501c4..24ceee45ee 100644 --- a/readme.txt +++ b/readme.txt @@ -22,13 +22,18 @@ Beautifully display your Gravity Forms entries. Learn more on [gravityview.co](h * Fixed: Address fields displayed hidden inputs +__Developer Notes:__ + +* Added: `gravityview/widget/wrapper_css_class` filter to modify widget container `
` CSS class + - Added `gv-widgets-{zone}` class to wrapper (`{zone}` will be either `header` or `footer`) + = 1.16.1 on January 21 = * Fixed: GravityView prevented Gravity Forms translations from loading * Fixed: Field Width setting was visible in Edit Entry * Fixed: Don't display embedded Gravity Forms forms when editing an entry in GravityView -**__Developer Notes:__** +__Developer Notes:__ * Added: `gravityview_excerpt_more` filter. Modify the "Read more" link used when "Maximum Words" setting is enabled and the output is truncated. * Removed: `excerpt_more` filter on `textarea.php` - many themes use permalink values to generate links. From bcc27a9add35922b433c8ecd479da923e8805c57 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 3 Feb 2016 14:01:40 -0700 Subject: [PATCH 06/38] Fix merge tag dropdown list width See https://secure.helpscout.net/conversation/166245239/4819/ --- assets/css/admin-views.css | 2 +- assets/css/scss/admin-merge-tags.scss | 1 + readme.txt | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/css/admin-views.css b/assets/css/admin-views.css index ddc1207a76..5988bc7d56 100644 --- a/assets/css/admin-views.css +++ b/assets/css/admin-views.css @@ -1 +1 @@ -.widgets-php .gv-overlay{display:none;}#gv-widget-search-settings-link{display:none;text-align:center;font-size:110%;}#gv-widget-search-settings-link .dashicons{margin-right:5px;line-height:20px !important;height:20px !important;font-size:20px !important;}#gv-widget-search-settings-link a{text-decoration:none;text-align:center;}.merge-tag-support{max-width:95%;}.all-merge-tags{position:relative;display:-moz-inline-stack;display:inline-block;zoom:1;}.all-merge-tags.textarea{position:absolute;margin-top:1px;}.all-merge-tags a.open-list{text-indent:-999em;width:16px;height:16px;background:url(images/icon-drop-list.png);background-repeat:no-repeat;cursor:pointer;margin-left:5px;display:-moz-inline-stack;display:inline-block;zoom:1;}.all-merge-tags a.open-list:focus{outline:0 !important;}ul#gf_merge_tag_list{padding:0;max-height:200px;min-width:200px;overflow:auto;position:absolute;background-color:#F8F8F8;border:1px solid #CCC;z-index:999;text-indent:0;-moz-box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);-webkit-box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);}ul#gf_merge_tag_list li:nth-child(even){background-color:#EEE;}.right ul#gf_merge_tag_list{right:0;}ul#gf_merge_tag_list li{margin:0;line-height:1.4em;padding:0 !important;border-bottom:1px dotted #ccc;}ul#gf_merge_tag_list li:last-child{border-bottom:none;}ul#gf_merge_tag_list li.group-header{font-weight:bold;padding:5px !important;}ul#gf_merge_tag_list li.group-header:hover{background-color:transparent;}ul#gf_merge_tag_list a{display:block;padding:5px;cursor:pointer;}ul#gf_merge_tag_list a:hover{background-color:#EEE;}.mt-gform_notification_message{float:right;position:relative;right:10px;top:90px;}#wp-gform_notification_message-wrap{margin-right:12px;}body .ui-tooltip{padding:8px;position:absolute;width:400px;max-width:100%;z-index:999999 !important;background:#eee;border:4px solid #999;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}body .ui-tooltip br{display:none;}* html .ui-tooltip{background-image:none;}.ui-tooltip-content{padding:0 10px;max-height:325px;overflow-y:auto;}.ui-tooltip-content:after{content:"";display:table;clear:both;}.ui-tooltip-content .close{position:absolute;padding:5px;top:-25px;left:-25px;cursor:pointer;}.ui-tooltip-content .close i{font-size:25px;color:#555;}.ui-tooltip-content .close i:hover,.ui-tooltip-content .close i:active{color:#000;}.ui-tooltip-content .gv-field-controls{display:none;}.ui-tooltip-content .gv-fields{cursor:pointer;padding:0.5em 0.75em;}.ui-tooltip-content .gv-fields.gv-child-field{width:95%;margin-left:5%;}.ui-tooltip-content .gv-fields h5{float:none;width:100%;}.top .ui-tooltip-content::after{bottom:-14px;left:48%;border-color:#999 transparent;border-width:10px 10px 0;}.gv-dialog .ui-dialog-titlebar-close:before{content:'';}#gravityview_settings{padding:0;display:none;}#gravityview_settings #gravityview-metabox-content-container{max-height:442px;overflow-y:auto;background:white;float:left;width:80%;border-left:1px solid #eee;box-sizing:border-box;}#gravityview_settings #gravityview-metabox-content-container.ui-tabs-panel{max-height:none;overflow-y:visible;}#side-sortables #gravityview_settings #gravityview-metabox-content-container{width:100%;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th,#side-sortables #gravityview_settings #gravityview-metabox-content-container td{*zoom:1;display:block;padding:10px 10px 3px;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th:before,#side-sortables #gravityview_settings #gravityview-metabox-content-container th:after,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:before,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:after{content:" ";display:table;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th:after,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:after{clear:both;}#gravityview_settings #gravityview-metabox-content-container .form-table{margin-top:0;padding-top:0;}#gravityview_settings #gravityview-metabox-content-container .form-table caption{text-align:left;font-size:14px;padding:8px 10px;margin:0;line-height:1.4;font-weight:600;}.rtl #gravityview_settings #gravityview-metabox-content-container .form-table caption{text-align:right;}#gravityview_settings #gravityview-metabox-content-container .form-table label .howto{margin-top:5px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel{*zoom:1;box-sizing:border-box;padding:0;border:none;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:before,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:after{content:" ";display:table;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:after{clear:both;}#side-sortables #gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel{margin-top:1px;border-top:2px solid #ccc;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel p{margin:9px 0 9px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel p.form-field,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel fieldset.form-field{padding:5px 20px 5px 162px !important;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel div+input{margin-top:5px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel select{margin:0;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea[type="checkbox"],#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input[type="checkbox"],#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel select[type="checkbox"]{margin-top:-4px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea{vertical-align:top;height:3.5em;line-height:1.5em;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input.button{width:auto;margin-left:8px;}#gravityview_settings .gform-field-filter{clear:both;padding:0.5em 0 0;}#gravityview_settings .inside{padding:0;margin:0;background:#fafafa;*zoom:1;}#gravityview_settings .inside:before,#gravityview_settings .inside:after{content:" ";display:table;}#gravityview_settings .inside:after{clear:both;}#gravityview_settings ul.ui-tabs-nav{line-height:1em;float:left;width:20%;margin:0;position:relative;padding:0 0 30px;background-color:#fafafa;box-sizing:border-box;}#side-sortables #gravityview_settings ul.ui-tabs-nav{width:100%;padding-bottom:0;border:none;}#gravityview_settings ul.ui-tabs-nav li{display:block;padding:0;margin:0;width:100%;}#gravityview_settings ul.ui-tabs-nav li.ui-state-disabled{display:none;}#gravityview_settings ul.ui-tabs-nav li a{box-sizing:border-box;padding:10px;line-height:20px !important;margin:0;display:block;width:100%;text-decoration:none;border:none;outline:none;box-shadow:none;border-bottom:1px solid #eee;background:none;transition-duration:0;text-overflow:ellipsis;overflow-x:hidden;}#gravityview_settings ul.ui-tabs-nav li:first-child a{border-top:0 !important;}#gravityview_settings ul.ui-tabs-nav li.ui-state-active a{position:relative;background-color:#eee;color:#555;}.ui-tooltip .gv-fields .gv-field-info span.gv-sublabel:after,.ui-tooltip .gv-fields .gv-field-info span:last-child:after,.gv-dialog-options:after,.gv-dialog-options .gv-setting-container:after{content:"";display:table;clear:both;}.gv-grid{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:2em;}.gv-grid:before,.gv-grid:after{content:" ";display:table;}.gv-grid:after{clear:both;}.gv-grid-pad{padding:1em 0 0 1em;}.gv-grid-pad>[class*='gv-grid-col-']{padding-right:1em;}.gv-grid-border{border:1px solid #999;}[class*='gv-grid-col-']{float:left;padding-right:1em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-grid-col-1-3{width:33.33%;}.gv-grid-col-1-4{width:25%;}.gv-grid-col-1-2{width:50%;}.gv-grid-col-1-8{width:12.5%;}.gv-grid-col-2-3{width:66.66%;}.gv-grid-col-1-1{width:100%;}.gv-grid-col-1-1+.gv-grid-col-1-3+.gv-grid-col-2-3+.gv-grid-col-1-2,.gv-grid-col-1-1+.gv-grid-col-2-3+.gv-grid-col-1-3+.gv-grid-col-1-2{clear:left;}.gv-section:before,.gv-section:after{content:" ";display:table;}.gv-section:after{clear:both;}.gv-section h4{font-size:14px;font-weight:bold;}.gv-section h4 span{font-size:14px;float:right;color:#999;font-weight:normal;}.gv-view-types-module{padding:1em;margin-bottom:1em;background:#eee;position:relative;border:2px solid transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-view-types-module:hover .gv-view-types-hover{display:block;}.gv-view-types-module img{display:block;width:100%;height:auto;margin:0;padding:0;}.gv-view-types-module h5{white-space:nowrap;margin:0.5em 0;padding:0;font-size:18px;}.gv-view-types-module .description{margin:0;padding:0;height:3em;overflow:hidden;}.gv-view-types-module.gv-selected{border:2px solid #1e8cbe;}.gv-view-types-hover{display:none;background:rgba(0, 0, 0, 0.6);position:absolute;top:0;left:0;right:0;height:100%;}.gv-view-types-hover .gv-site-preview{color:#fff;text-decoration:none;}.gv-view-types-hover .dashicons{font-size:24px;width:24px;height:24px;position:absolute;top:5px;right:5px;opacity:0.5;}.gv-view-types-hover .dashicons:hover{opacity:1;}.gv-view-types-hover>div{padding-top:31%;margin-top:-15px;}.gv-view-types-hover>div p{margin:0.5em 0 1.5em;padding:0;text-align:center;}.gv-view-types-hover>div p a{display:inline-block;width:60%;}.button-primary.button-buy-now{background:#2ecc37;border-color:#00a213;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.5),0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.5),0 1px 0 rgba(0, 0, 0, 0.15);}.button-primary.button-buy-now.focus,.button-primary.button-buy-now:focus,.button-primary.button-buy-now.hover,.button-primary.button-buy-now:hover{border-color:#00a213;background:#1ebe41;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6);}.button-primary.button-buy-now.focus,.button-primary.button-buy-now:focus{border-color:#0e5025;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6),1px 1px 2px rgba(0, 0, 0, 0.4);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6),1px 1px 2px rgba(0, 0, 0, 0.4);}.button-primary.button-buy-now.active,.button-primary.button-buy-now.active:hover,.button-primary.button-buy-now.active:focus,.button-primary.button-buy-now:active{border-color:#00842d;background:#1ebe41;}#gravityview_select_form .handlediv{display:none;}.gv-form-links{color:#ddd;font-weight:normal;padding:0 0 0 10px;}.metabox-prefs .gv-form-links{display:none;}.gv-form-links .row-actions{visibility:visible;padding:0;left:auto;}.gv-form-links .gv-form-title{display:none;}#gv_switch_view_button{display:inline-block;}#gravityview_select_template{display:none;}#gravityview_select_template .inside{max-height:450px;overflow-x:auto;}#gravityview_select_template .gv-grid-col-1-3{max-width:250px;min-width:200px;}.gv-template-preview{display:none;width:90%;}#gravityview_settings th{white-space:nowrap;font-weight:normal;max-width:200px;width:auto;margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle;}#gravityview_sort_filter,#gravityview_view_config{display:none;}.gv-wait{cursor:wait;}.ui-front{z-index:10001;}.ui-tabs{position:relative;padding:0.1em;zoom:1;margin-top:1em;}.ui-tabs .ui-tabs-nav{margin:0;padding:0.1em 0.1em 0;-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:2px;margin:0 0.2em 1px 0;border-bottom:0;padding:0;white-space:nowrap;outline:none;}.ui-tabs .ui-tabs-nav li .nav-tab{float:left;padding:0.5em 1em;text-decoration:none;font-size:14px;font-weight:400;}.ui-tabs .ui-tabs-nav li .nav-tab:link,.ui-tabs .ui-tabs-nav li .nav-tab:visited,.ui-tabs .ui-tabs-nav li .nav-tab:hover,.ui-tabs .ui-tabs-nav li .nav-tab:active,.ui-tabs .ui-tabs-nav li .nav-tab:focus{outline:none;-webkit-box-shadow:none;}.ui-tabs .ui-tabs-nav li .dashicons{color:#aaa;}.ui-tabs .ui-tabs-nav li.ui-state-active a,.ui-tabs .ui-tabs-nav li.ui-state-active.ui-state-hover a{background-color:#fff;border-bottom:1px solid #fff;}.ui-tabs .ui-tabs-nav li.ui-state-active .dashicons,.ui-tabs .ui-tabs-nav li.ui-state-active.ui-state-hover .dashicons{color:#666;}.ui-tabs .ui-tabs-nav li.ui-state-hover .dashicons{color:#999;}.ui-tabs .ui-tabs-panel{display:block;padding:1em;background:#fff;border:1px solid #ddd;}.ui-tabs .ui-tabs-hide{display:none !important;}.gv-dialog{z-index:10001;}.gv-overlay{cursor:pointer;position:fixed;z-index:10000;background:transparent;background:rgba(225, 225, 225, 0.4);width:100%;height:100%;overflow:hidden;}hr{border:0;height:0;border-bottom:1px solid #ddd;margin:2em 0 2em 0;}.gv-droppable-area{border:1px solid #ccc;margin-bottom:1em;}.gv-droppable-area .gv-droppable-area-action{background:#eee;padding:0.5em;}.gv-droppable-area .gv-droppable-area-action:before,.gv-droppable-area .gv-droppable-area-action:after{content:" ";display:table;}.gv-droppable-area .gv-droppable-area-action:after{clear:both;}.gv-droppable-area .gv-droppable-area-title{margin:0;padding:0;}.gv-droppable-area .gv-droppable-area-subtitle{margin:0.25em 0 0 0;padding:0;font-size:12px;color:#999;}.gv-droppable-area .button-secondary{float:right;}.active-drop{padding:3px 7px;min-height:44px;position:relative;}.active-drop .drop-message{color:#bbb;margin:0;display:block;text-align:center;width:90%;padding:0 5%;z-index:1;min-height:40px;font-size:13px;position:absolute;top:50%;margin-top:-8px;line-height:16px;}.gv-grid-col-1-2 .drop-message{padding-top:0;padding-bottom:0;}.fields-placeholder{margin:5px 2px;height:32px;border:1px dashed #ccc;}.gv-fields{cursor:move;border:1px solid #ddd;background:#f7f7f7;overflow:hidden;padding:0.5em 0.75em;margin:5px 0;width:100%;z-index:100;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields h5{float:left;width:100%;font-weight:600;font-size:14px;margin:0;padding:0 0 0 0.25em;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields h5 small{color:#777;font-weight:600;}.gv-fields span.gv-field-controls{padding-left:0.33em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields:hover{background:#fefefe;}.gv-fields:hover .gv-field-controls .dashicons{color:#136cb9;}.gv-fields:hover h5 small,.gv-fields:hover .gv-field-info{color:#666;}.gv-fields .gv-field-controls .dashicons{width:24px;font-size:18px;line-height:20px;}.gv-fields .gv-field-controls .dashicons:hover,.gv-fields .gv-field-controls .dashicons:active{color:#2ea2cc;}.gv-fields .gv-field-controls .dashicons.dashicons-dismiss{float:right;color:#999;}.gv-fields .gv-field-controls .dashicons.dashicons-dismiss:hover,.gv-fields .gv-field-controls .dashicons.dashicons-dismiss:active{color:#d03a3a;}.gv-fields .gv-field-controls .dashicons.dashicons-admin-links{color:#aaa;width:20px;font-size:16px;line-height:20px;cursor:default;}.gv-fields .gv-field-info{display:none;}.ui-tooltip .gv-fields .gv-field-info{display:block;font-weight:normal;color:#999;text-shadow:none;}.ui-tooltip .gv-fields .gv-field-info span:after{content:", ";}.ui-dialog-content,.ui-dialog{cursor:default;}.post-type-gravityview .ui-dialog-content{overflow:inherit;padding:0;}.ui-draggable-dragging{max-width:400px !important;}#directory-available-fields .gv-fields h5,#directory-available-widgets .gv-fields h5,#single-available-fields .gv-fields h5{padding:0 !important;}#directory-available-fields .gv-fields span.gv-field-controls,#directory-available-widgets .gv-fields span.gv-field-controls,#single-available-fields .gv-fields span.gv-field-controls{display:none !important;}.gv-sublabel{font-size:0.9em;display:block;}.ui-dialog-titlebar{min-height:1.25em;line-height:1.25;padding:10px;height:auto;}.gv-dialog-options{display:none;width:90%;padding:10px 0 !important;}.gv-dialog-options .subtitle{margin:0 15px 0.8em;padding:0.5em 0 0.8em;border-bottom:1px solid #eee;}.gv-dialog-options.gv-dialog-warning p{font-size:1.1em;margin:0 !important;padding:1.5em !important;}.gv-dialog-options.gv-dialog-warning .dashicons{font-size:70px;width:70px;height:70px;line-height:0.8;float:right;text-align:right;color:#ddd;}.gv-dialog-options .gv-setting-container{margin:0;padding:0.4em 15px 0.8em;display:block;font-size:1.1em;clear:left;}.gv-dialog-options .gv-setting-container.gv-setting-container-search_mode{display:none;}.gv-dialog-options .gv-setting-container:last-child{padding-bottom:0.5em;}.gv-dialog-options .gv-setting-container label{margin:0;font-weight:normal;display:inline-block;padding-right:0.75em;max-width:100%;}.gv-dialog-options .gv-setting-container .howto{margin:0 0 0.25em;}.gv-dialog-options .gv-setting-container code{font-style:normal !important;}.gv-dialog-options input[type="text"]{display:block;display:inline-block;clear:left;}.gv-dialog-options table,.gv-dialog-options table select{width:95%;margin:0 auto;}.gv-widget-search-fields table,.postbox .gv-dialog-options table{padding-bottom:15px;margin:0.5em auto;}.gv-widget-search-fields table td,.gv-widget-search-fields table th,.postbox .gv-dialog-options table td,.postbox .gv-dialog-options table th{text-align:left;padding:10px 5px;}.gv-widget-search-fields table .no-search-fields td,.postbox .gv-dialog-options table .no-search-fields td{text-align:center;font-size:15px;padding:15px 0;}.gv-widget-search-fields table .cell-sort,.postbox .gv-dialog-options table .cell-sort{cursor:ns-resize;}.gv-widget-search-fields table .cell-sort.no-sort,.postbox .gv-dialog-options table .cell-sort.no-sort{cursor:default;}.gv-widget-search-fields table .gv-search-fields,.gv-widget-search-fields table .gv-search-inputs,.postbox .gv-dialog-options table .gv-search-fields,.postbox .gv-dialog-options table .gv-search-inputs{width:100%;}.gv-widget-search-fields table .cell-sort a,.gv-widget-search-fields table .cell-add-remove a,.postbox .gv-dialog-options table .cell-sort a,.postbox .gv-dialog-options table .cell-add-remove a{font-size:18px;}.gv-widget-search-fields table .cell-sort a.dashicons,.gv-widget-search-fields table .cell-add-remove a.dashicons,.postbox .gv-dialog-options table .cell-sort a.dashicons,.postbox .gv-dialog-options table .cell-add-remove a.dashicons{opacity:0.8;}.gv-widget-search-fields table .cell-sort a.dashicons:hover,.gv-widget-search-fields table .cell-add-remove a.dashicons:hover,.postbox .gv-dialog-options table .cell-sort a.dashicons:hover,.postbox .gv-dialog-options table .cell-add-remove a.dashicons:hover{opacity:1;}.gv-widget-search-fields table .cell-sort a.dashicons-plus-alt,.gv-widget-search-fields table .cell-add-remove a.dashicons-plus-alt,.postbox .gv-dialog-options table .cell-sort a.dashicons-plus-alt,.postbox .gv-dialog-options table .cell-add-remove a.dashicons-plus-alt{color:green;}.gv-widget-search-fields table .cell-sort a.dashicons-dismiss,.gv-widget-search-fields table .cell-add-remove a.dashicons-dismiss,.postbox .gv-dialog-options table .cell-sort a.dashicons-dismiss,.postbox .gv-dialog-options table .cell-add-remove a.dashicons-dismiss{color:#d03a3a;}.gv-widget-search-fields table .cell-sort,.postbox .gv-dialog-options table .cell-sort{width:24px;}.gv-widget-search-fields table .cell-add-remove,.postbox .gv-dialog-options table .cell-add-remove{width:50px;}.post-type-gravityview input.merge-tag-support,.widgets-php input.merge-tag-support{width:90%;}.post-type-gravityview #gravityview_sort_field,.widgets-php #gravityview_sort_field{max-width:300px;}.post-type-gravityview #gv-loading,.widgets-php #gv-loading{text-align:center;font-size:16px;line-height:20px;padding:0 40px;display:block;}.post-type-gravityview #gv-loading .spinner,.widgets-php #gv-loading .spinner{display:inline-block;margin-top:-3px;float:none;}.gv-label{display:inline-block;clear:right;margin-bottom:0.1em;}.gv-label-checkbox{padding-right:1em;display:block;width:100%;}.gv-label-textarea,.gv-label-text{float:left;clear:both;width:100%;display:block;margin-bottom:0.5em;}.gv-shortcode .dashicons-editor-code{color:#888;left:-1px;font-size:20px;line-height:1;} \ No newline at end of file +.widgets-php .gv-overlay{display:none;}#gv-widget-search-settings-link{display:none;text-align:center;font-size:110%;}#gv-widget-search-settings-link .dashicons{margin-right:5px;line-height:20px !important;height:20px !important;font-size:20px !important;}#gv-widget-search-settings-link a{text-decoration:none;text-align:center;}.merge-tag-support{max-width:95%;}.all-merge-tags{position:relative;display:-moz-inline-stack;display:inline-block;zoom:1;}.all-merge-tags.textarea{position:absolute;margin-top:1px;}.all-merge-tags a.open-list{text-indent:-999em;width:16px;height:16px;background:url(images/icon-drop-list.png);background-repeat:no-repeat;cursor:pointer;margin-left:5px;display:-moz-inline-stack;display:inline-block;zoom:1;}.all-merge-tags a.open-list:focus{outline:0 !important;}ul#gf_merge_tag_list{padding:0;max-height:200px;min-width:200px;max-width:500px;overflow:auto;position:absolute;background-color:#F8F8F8;border:1px solid #CCC;z-index:999;text-indent:0;-moz-box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);-webkit-box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);box-shadow:0 8px 6px -6px rgba(68, 68, 68, 0.4);}ul#gf_merge_tag_list li:nth-child(even){background-color:#EEE;}.right ul#gf_merge_tag_list{right:0;}ul#gf_merge_tag_list li{margin:0;line-height:1.4em;padding:0 !important;border-bottom:1px dotted #ccc;}ul#gf_merge_tag_list li:last-child{border-bottom:none;}ul#gf_merge_tag_list li.group-header{font-weight:bold;padding:5px !important;}ul#gf_merge_tag_list li.group-header:hover{background-color:transparent;}ul#gf_merge_tag_list a{display:block;padding:5px;cursor:pointer;}ul#gf_merge_tag_list a:hover{background-color:#EEE;}.mt-gform_notification_message{float:right;position:relative;right:10px;top:90px;}#wp-gform_notification_message-wrap{margin-right:12px;}body .ui-tooltip{padding:8px;position:absolute;width:400px;max-width:100%;z-index:999999 !important;background:#eee;border:4px solid #999;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}body .ui-tooltip br{display:none;}* html .ui-tooltip{background-image:none;}.ui-tooltip-content{padding:0 10px;max-height:325px;overflow-y:auto;}.ui-tooltip-content:after{content:"";display:table;clear:both;}.ui-tooltip-content .close{position:absolute;padding:5px;top:-25px;left:-25px;cursor:pointer;}.ui-tooltip-content .close i{font-size:25px;color:#555;}.ui-tooltip-content .close i:hover,.ui-tooltip-content .close i:active{color:#000;}.ui-tooltip-content .gv-field-controls{display:none;}.ui-tooltip-content .gv-fields{cursor:pointer;padding:0.5em 0.75em;}.ui-tooltip-content .gv-fields.gv-child-field{width:95%;margin-left:5%;}.ui-tooltip-content .gv-fields h5{float:none;width:100%;}.top .ui-tooltip-content::after{bottom:-14px;left:48%;border-color:#999 transparent;border-width:10px 10px 0;}.gv-dialog .ui-dialog-titlebar-close:before{content:'';}#gravityview_settings{padding:0;display:none;}#gravityview_settings #gravityview-metabox-content-container{max-height:442px;overflow-y:auto;background:white;float:left;width:80%;border-left:1px solid #eee;box-sizing:border-box;}#gravityview_settings #gravityview-metabox-content-container.ui-tabs-panel{max-height:none;overflow-y:visible;}#side-sortables #gravityview_settings #gravityview-metabox-content-container{width:100%;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th,#side-sortables #gravityview_settings #gravityview-metabox-content-container td{*zoom:1;display:block;padding:10px 10px 3px;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th:before,#side-sortables #gravityview_settings #gravityview-metabox-content-container th:after,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:before,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:after{content:" ";display:table;}#side-sortables #gravityview_settings #gravityview-metabox-content-container th:after,#side-sortables #gravityview_settings #gravityview-metabox-content-container td:after{clear:both;}#gravityview_settings #gravityview-metabox-content-container .form-table{margin-top:0;padding-top:0;}#gravityview_settings #gravityview-metabox-content-container .form-table caption{text-align:left;font-size:14px;padding:8px 10px;margin:0;line-height:1.4;font-weight:600;}.rtl #gravityview_settings #gravityview-metabox-content-container .form-table caption{text-align:right;}#gravityview_settings #gravityview-metabox-content-container .form-table label .howto{margin-top:5px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel{*zoom:1;box-sizing:border-box;padding:0;border:none;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:before,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:after{content:" ";display:table;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel:after{clear:both;}#side-sortables #gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel{margin-top:1px;border-top:2px solid #ccc;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel p{margin:9px 0 9px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel p.form-field,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel fieldset.form-field{padding:5px 20px 5px 162px !important;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel div+input{margin-top:5px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input,#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel select{margin:0;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea[type="checkbox"],#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input[type="checkbox"],#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel select[type="checkbox"]{margin-top:-4px;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel textarea{vertical-align:top;height:3.5em;line-height:1.5em;}#gravityview_settings #gravityview-metabox-content-container .ui-tabs-panel input.button{width:auto;margin-left:8px;}#gravityview_settings .gform-field-filter{clear:both;padding:0.5em 0 0;}#gravityview_settings .inside{padding:0;margin:0;background:#fafafa;*zoom:1;}#gravityview_settings .inside:before,#gravityview_settings .inside:after{content:" ";display:table;}#gravityview_settings .inside:after{clear:both;}#gravityview_settings ul.ui-tabs-nav{line-height:1em;float:left;width:20%;margin:0;position:relative;padding:0 0 30px;background-color:#fafafa;box-sizing:border-box;}#side-sortables #gravityview_settings ul.ui-tabs-nav{width:100%;padding-bottom:0;border:none;}#gravityview_settings ul.ui-tabs-nav li{display:block;padding:0;margin:0;width:100%;}#gravityview_settings ul.ui-tabs-nav li.ui-state-disabled{display:none;}#gravityview_settings ul.ui-tabs-nav li a{box-sizing:border-box;padding:10px;line-height:20px !important;margin:0;display:block;width:100%;text-decoration:none;border:none;outline:none;box-shadow:none;border-bottom:1px solid #eee;background:none;transition-duration:0;text-overflow:ellipsis;overflow-x:hidden;}#gravityview_settings ul.ui-tabs-nav li:first-child a{border-top:0 !important;}#gravityview_settings ul.ui-tabs-nav li.ui-state-active a{position:relative;background-color:#eee;color:#555;}.ui-tooltip .gv-fields .gv-field-info span.gv-sublabel:after,.ui-tooltip .gv-fields .gv-field-info span:last-child:after,.gv-dialog-options:after,.gv-dialog-options .gv-setting-container:after{content:"";display:table;clear:both;}.gv-grid{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:2em;}.gv-grid:before,.gv-grid:after{content:" ";display:table;}.gv-grid:after{clear:both;}.gv-grid-pad{padding:1em 0 0 1em;}.gv-grid-pad>[class*='gv-grid-col-']{padding-right:1em;}.gv-grid-border{border:1px solid #999;}[class*='gv-grid-col-']{float:left;padding-right:1em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-grid-col-1-3{width:33.33%;}.gv-grid-col-1-4{width:25%;}.gv-grid-col-1-2{width:50%;}.gv-grid-col-1-8{width:12.5%;}.gv-grid-col-2-3{width:66.66%;}.gv-grid-col-1-1{width:100%;}.gv-grid-col-1-1+.gv-grid-col-1-3+.gv-grid-col-2-3+.gv-grid-col-1-2,.gv-grid-col-1-1+.gv-grid-col-2-3+.gv-grid-col-1-3+.gv-grid-col-1-2{clear:left;}.gv-section:before,.gv-section:after{content:" ";display:table;}.gv-section:after{clear:both;}.gv-section h4{font-size:14px;font-weight:bold;}.gv-section h4 span{font-size:14px;float:right;color:#999;font-weight:normal;}.gv-view-types-module{padding:1em;margin-bottom:1em;background:#eee;position:relative;border:2px solid transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-view-types-module:hover .gv-view-types-hover{display:block;}.gv-view-types-module img{display:block;width:100%;height:auto;margin:0;padding:0;}.gv-view-types-module h5{white-space:nowrap;margin:0.5em 0;padding:0;font-size:18px;}.gv-view-types-module .description{margin:0;padding:0;height:3em;overflow:hidden;}.gv-view-types-module.gv-selected{border:2px solid #1e8cbe;}.gv-view-types-hover{display:none;background:rgba(0, 0, 0, 0.6);position:absolute;top:0;left:0;right:0;height:100%;}.gv-view-types-hover .gv-site-preview{color:#fff;text-decoration:none;}.gv-view-types-hover .dashicons{font-size:24px;width:24px;height:24px;position:absolute;top:5px;right:5px;opacity:0.5;}.gv-view-types-hover .dashicons:hover{opacity:1;}.gv-view-types-hover>div{padding-top:31%;margin-top:-15px;}.gv-view-types-hover>div p{margin:0.5em 0 1.5em;padding:0;text-align:center;}.gv-view-types-hover>div p a{display:inline-block;width:60%;}.button-primary.button-buy-now{background:#2ecc37;border-color:#00a213;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.5),0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.5),0 1px 0 rgba(0, 0, 0, 0.15);}.button-primary.button-buy-now.focus,.button-primary.button-buy-now:focus,.button-primary.button-buy-now.hover,.button-primary.button-buy-now:hover{border-color:#00a213;background:#1ebe41;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6);}.button-primary.button-buy-now.focus,.button-primary.button-buy-now:focus{border-color:#0e5025;-webkit-box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6),1px 1px 2px rgba(0, 0, 0, 0.4);box-shadow:inset 0 1px 0 rgba(120, 230, 129, 0.6),1px 1px 2px rgba(0, 0, 0, 0.4);}.button-primary.button-buy-now.active,.button-primary.button-buy-now.active:hover,.button-primary.button-buy-now.active:focus,.button-primary.button-buy-now:active{border-color:#00842d;background:#1ebe41;}#gravityview_select_form .handlediv{display:none;}.gv-form-links{color:#ddd;font-weight:normal;padding:0 0 0 10px;}.metabox-prefs .gv-form-links{display:none;}.gv-form-links .row-actions{visibility:visible;padding:0;left:auto;}.gv-form-links .gv-form-title{display:none;}#gv_switch_view_button{display:inline-block;}#gravityview_select_template{display:none;}#gravityview_select_template .inside{max-height:450px;overflow-x:auto;}#gravityview_select_template .gv-grid-col-1-3{max-width:250px;min-width:200px;}.gv-template-preview{display:none;width:90%;}#gravityview_settings th{white-space:nowrap;font-weight:normal;max-width:200px;width:auto;margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle;}#gravityview_sort_filter,#gravityview_view_config{display:none;}.gv-wait{cursor:wait;}.ui-front{z-index:10001;}.ui-tabs{position:relative;padding:0.1em;zoom:1;margin-top:1em;}.ui-tabs .ui-tabs-nav{margin:0;padding:0.1em 0.1em 0;-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0;-webkit-padding-start:0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:2px;margin:0 0.2em 1px 0;border-bottom:0;padding:0;white-space:nowrap;outline:none;}.ui-tabs .ui-tabs-nav li .nav-tab{float:left;padding:0.5em 1em;text-decoration:none;font-size:14px;font-weight:400;}.ui-tabs .ui-tabs-nav li .nav-tab:link,.ui-tabs .ui-tabs-nav li .nav-tab:visited,.ui-tabs .ui-tabs-nav li .nav-tab:hover,.ui-tabs .ui-tabs-nav li .nav-tab:active,.ui-tabs .ui-tabs-nav li .nav-tab:focus{outline:none;-webkit-box-shadow:none;}.ui-tabs .ui-tabs-nav li .dashicons{color:#aaa;}.ui-tabs .ui-tabs-nav li.ui-state-active a,.ui-tabs .ui-tabs-nav li.ui-state-active.ui-state-hover a{background-color:#fff;border-bottom:1px solid #fff;}.ui-tabs .ui-tabs-nav li.ui-state-active .dashicons,.ui-tabs .ui-tabs-nav li.ui-state-active.ui-state-hover .dashicons{color:#666;}.ui-tabs .ui-tabs-nav li.ui-state-hover .dashicons{color:#999;}.ui-tabs .ui-tabs-panel{display:block;padding:1em;background:#fff;border:1px solid #ddd;}.ui-tabs .ui-tabs-hide{display:none !important;}.gv-dialog{z-index:10001;}.gv-overlay{cursor:pointer;position:fixed;z-index:10000;background:transparent;background:rgba(225, 225, 225, 0.4);width:100%;height:100%;overflow:hidden;}hr{border:0;height:0;border-bottom:1px solid #ddd;margin:2em 0 2em 0;}.gv-droppable-area{border:1px solid #ccc;margin-bottom:1em;}.gv-droppable-area .gv-droppable-area-action{background:#eee;padding:0.5em;}.gv-droppable-area .gv-droppable-area-action:before,.gv-droppable-area .gv-droppable-area-action:after{content:" ";display:table;}.gv-droppable-area .gv-droppable-area-action:after{clear:both;}.gv-droppable-area .gv-droppable-area-title{margin:0;padding:0;}.gv-droppable-area .gv-droppable-area-subtitle{margin:0.25em 0 0 0;padding:0;font-size:12px;color:#999;}.gv-droppable-area .button-secondary{float:right;}.active-drop{padding:3px 7px;min-height:44px;position:relative;}.active-drop .drop-message{color:#bbb;margin:0;display:block;text-align:center;width:90%;padding:0 5%;z-index:1;min-height:40px;font-size:13px;position:absolute;top:50%;margin-top:-8px;line-height:16px;}.gv-grid-col-1-2 .drop-message{padding-top:0;padding-bottom:0;}.fields-placeholder{margin:5px 2px;height:32px;border:1px dashed #ccc;}.gv-fields{cursor:move;border:1px solid #ddd;background:#f7f7f7;overflow:hidden;padding:0.5em 0.75em;margin:5px 0;width:100%;z-index:100;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields h5{float:left;width:100%;font-weight:600;font-size:14px;margin:0;padding:0 0 0 0.25em;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields h5 small{color:#777;font-weight:600;}.gv-fields span.gv-field-controls{padding-left:0.33em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-fields:hover{background:#fefefe;}.gv-fields:hover .gv-field-controls .dashicons{color:#136cb9;}.gv-fields:hover h5 small,.gv-fields:hover .gv-field-info{color:#666;}.gv-fields .gv-field-controls .dashicons{width:24px;font-size:18px;line-height:20px;}.gv-fields .gv-field-controls .dashicons:hover,.gv-fields .gv-field-controls .dashicons:active{color:#2ea2cc;}.gv-fields .gv-field-controls .dashicons.dashicons-dismiss{float:right;color:#999;}.gv-fields .gv-field-controls .dashicons.dashicons-dismiss:hover,.gv-fields .gv-field-controls .dashicons.dashicons-dismiss:active{color:#d03a3a;}.gv-fields .gv-field-controls .dashicons.dashicons-admin-links{color:#aaa;width:20px;font-size:16px;line-height:20px;cursor:default;}.gv-fields .gv-field-info{display:none;}.ui-tooltip .gv-fields .gv-field-info{display:block;font-weight:normal;color:#999;text-shadow:none;}.ui-tooltip .gv-fields .gv-field-info span:after{content:", ";}.ui-dialog-content,.ui-dialog{cursor:default;}.post-type-gravityview .ui-dialog-content{overflow:inherit;padding:0;}.ui-draggable-dragging{max-width:400px !important;}#directory-available-fields .gv-fields h5,#directory-available-widgets .gv-fields h5,#single-available-fields .gv-fields h5{padding:0 !important;}#directory-available-fields .gv-fields span.gv-field-controls,#directory-available-widgets .gv-fields span.gv-field-controls,#single-available-fields .gv-fields span.gv-field-controls{display:none !important;}.gv-sublabel{font-size:0.9em;display:block;}.ui-dialog-titlebar{min-height:1.25em;line-height:1.25;padding:10px;height:auto;}.gv-dialog-options{display:none;width:90%;padding:10px 0 !important;}.gv-dialog-options .subtitle{margin:0 15px 0.8em;padding:0.5em 0 0.8em;border-bottom:1px solid #eee;}.gv-dialog-options.gv-dialog-warning p{font-size:1.1em;margin:0 !important;padding:1.5em !important;}.gv-dialog-options.gv-dialog-warning .dashicons{font-size:70px;width:70px;height:70px;line-height:0.8;float:right;text-align:right;color:#ddd;}.gv-dialog-options .gv-setting-container{margin:0;padding:0.4em 15px 0.8em;display:block;font-size:1.1em;clear:left;}.gv-dialog-options .gv-setting-container.gv-setting-container-search_mode{display:none;}.gv-dialog-options .gv-setting-container:last-child{padding-bottom:0.5em;}.gv-dialog-options .gv-setting-container label{margin:0;font-weight:normal;display:inline-block;padding-right:0.75em;max-width:100%;}.gv-dialog-options .gv-setting-container .howto{margin:0 0 0.25em;}.gv-dialog-options .gv-setting-container code{font-style:normal !important;}.gv-dialog-options input[type="text"]{display:block;display:inline-block;clear:left;}.gv-dialog-options table,.gv-dialog-options table select{width:95%;margin:0 auto;}.gv-widget-search-fields table,.postbox .gv-dialog-options table{padding-bottom:15px;margin:0.5em auto;}.gv-widget-search-fields table td,.gv-widget-search-fields table th,.postbox .gv-dialog-options table td,.postbox .gv-dialog-options table th{text-align:left;padding:10px 5px;}.gv-widget-search-fields table .no-search-fields td,.postbox .gv-dialog-options table .no-search-fields td{text-align:center;font-size:15px;padding:15px 0;}.gv-widget-search-fields table .cell-sort,.postbox .gv-dialog-options table .cell-sort{cursor:ns-resize;}.gv-widget-search-fields table .cell-sort.no-sort,.postbox .gv-dialog-options table .cell-sort.no-sort{cursor:default;}.gv-widget-search-fields table .gv-search-fields,.gv-widget-search-fields table .gv-search-inputs,.postbox .gv-dialog-options table .gv-search-fields,.postbox .gv-dialog-options table .gv-search-inputs{width:100%;}.gv-widget-search-fields table .cell-sort a,.gv-widget-search-fields table .cell-add-remove a,.postbox .gv-dialog-options table .cell-sort a,.postbox .gv-dialog-options table .cell-add-remove a{font-size:18px;}.gv-widget-search-fields table .cell-sort a.dashicons,.gv-widget-search-fields table .cell-add-remove a.dashicons,.postbox .gv-dialog-options table .cell-sort a.dashicons,.postbox .gv-dialog-options table .cell-add-remove a.dashicons{opacity:0.8;}.gv-widget-search-fields table .cell-sort a.dashicons:hover,.gv-widget-search-fields table .cell-add-remove a.dashicons:hover,.postbox .gv-dialog-options table .cell-sort a.dashicons:hover,.postbox .gv-dialog-options table .cell-add-remove a.dashicons:hover{opacity:1;}.gv-widget-search-fields table .cell-sort a.dashicons-plus-alt,.gv-widget-search-fields table .cell-add-remove a.dashicons-plus-alt,.postbox .gv-dialog-options table .cell-sort a.dashicons-plus-alt,.postbox .gv-dialog-options table .cell-add-remove a.dashicons-plus-alt{color:green;}.gv-widget-search-fields table .cell-sort a.dashicons-dismiss,.gv-widget-search-fields table .cell-add-remove a.dashicons-dismiss,.postbox .gv-dialog-options table .cell-sort a.dashicons-dismiss,.postbox .gv-dialog-options table .cell-add-remove a.dashicons-dismiss{color:#d03a3a;}.gv-widget-search-fields table .cell-sort,.postbox .gv-dialog-options table .cell-sort{width:24px;}.gv-widget-search-fields table .cell-add-remove,.postbox .gv-dialog-options table .cell-add-remove{width:50px;}.post-type-gravityview input.merge-tag-support,.widgets-php input.merge-tag-support{width:90%;}.post-type-gravityview #gravityview_sort_field,.widgets-php #gravityview_sort_field{max-width:300px;}.post-type-gravityview #gv-loading,.widgets-php #gv-loading{text-align:center;font-size:16px;line-height:20px;padding:0 40px;display:block;}.post-type-gravityview #gv-loading .spinner,.widgets-php #gv-loading .spinner{display:inline-block;margin-top:-3px;float:none;}.gv-label{display:inline-block;clear:right;margin-bottom:0.1em;}.gv-label-checkbox{padding-right:1em;display:block;width:100%;}.gv-label-textarea,.gv-label-text{float:left;clear:both;width:100%;display:block;margin-bottom:0.5em;}.gv-shortcode .dashicons-editor-code{color:#888;left:-1px;font-size:20px;line-height:1;} \ No newline at end of file diff --git a/assets/css/scss/admin-merge-tags.scss b/assets/css/scss/admin-merge-tags.scss index b6edc5295a..ea218ee6e3 100644 --- a/assets/css/scss/admin-merge-tags.scss +++ b/assets/css/scss/admin-merge-tags.scss @@ -37,6 +37,7 @@ ul#gf_merge_tag_list { padding: 0; max-height: 200px; min-width: 200px; + max-width: 500px; overflow: auto; position: absolute; background-color: #F8F8F8; diff --git a/readme.txt b/readme.txt index 24ceee45ee..8420e97d12 100644 --- a/readme.txt +++ b/readme.txt @@ -21,6 +21,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravityview.co](h == Changelog == * Fixed: Address fields displayed hidden inputs +* Fixed: Merge Tag dropdown list can be too wide when field names are long __Developer Notes:__ From 70fbe4d0657a32874e8b66e887b7ff2baf6a9c41 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 3 Feb 2016 14:05:27 -0700 Subject: [PATCH 07/38] Update readme to be mergeable --- readme.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index 2e88f25251..d7ea13fc44 100644 --- a/readme.txt +++ b/readme.txt @@ -20,17 +20,22 @@ Beautifully display your Gravity Forms entries. Learn more on [gravityview.co](h == Changelog == -= 1.16.2 = - +* Fixed: Address fields displayed hidden inputs +* Fixed: Merge Tag dropdown list can be too wide when field names are long * Fixed: When sorting recent entries disappeared from the view. +__Developer Notes:__ + +* Added: `gravityview/widget/wrapper_css_class` filter to modify widget container `
` CSS class + - Added `gv-widgets-{zone}` class to wrapper (`{zone}` will be either `header` or `footer`) + = 1.16.1 on January 21 = * Fixed: GravityView prevented Gravity Forms translations from loading * Fixed: Field Width setting was visible in Edit Entry * Fixed: Don't display embedded Gravity Forms forms when editing an entry in GravityView -**__Developer Notes:__** +__Developer Notes:__ * Added: `gravityview_excerpt_more` filter. Modify the "Read more" link used when "Maximum Words" setting is enabled and the output is truncated. * Removed: `excerpt_more` filter on `textarea.php` - many themes use permalink values to generate links. From 895ba8b798c55d8d43ff3bb75751f8286c2fc8e6 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 3 Feb 2016 14:22:57 -0700 Subject: [PATCH 08/38] Removed `icon` CSS class name Caused conflict with theme CSS. See https://secure.helpscout.net/conversation/167507494/4847/ --- includes/class-frontend-views.php | 2 +- readme.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/class-frontend-views.php b/includes/class-frontend-views.php index 8a27d0058e..b741017958 100644 --- a/includes/class-frontend-views.php +++ b/includes/class-frontend-views.php @@ -1340,7 +1340,7 @@ public function add_columns_sort_links( $label = '', $field, $form ) { $sorting = GravityView_View::getInstance()->getSorting(); - $class = 'gv-sort icon'; + $class = 'gv-sort'; $sort_field_id = self::_override_sorting_id_by_field_type( $field['id'], $form['id'] ); diff --git a/readme.txt b/readme.txt index d7ea13fc44..06c20633ac 100644 --- a/readme.txt +++ b/readme.txt @@ -28,6 +28,7 @@ __Developer Notes:__ * Added: `gravityview/widget/wrapper_css_class` filter to modify widget container `
` CSS class - Added `gv-widgets-{zone}` class to wrapper (`{zone}` will be either `header` or `footer`) +* Fixed: Removed `icon` CSS class name from the table sorting icon links. Now just `gv-icon` instead of `icon gv-icon`. = 1.16.1 on January 21 = From 363d85ceb653ec09c80bd34860d9275da952d440 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 3 Feb 2016 14:33:38 -0700 Subject: [PATCH 09/38] Fixed: "Clear" search link inline-block Fixes #618 --- readme.txt | 1 + templates/css/gv-default-styles.css | 2 +- templates/css/source/search.scss | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 06c20633ac..3b274c578c 100644 --- a/readme.txt +++ b/readme.txt @@ -29,6 +29,7 @@ __Developer Notes:__ * Added: `gravityview/widget/wrapper_css_class` filter to modify widget container `
` CSS class - Added `gv-widgets-{zone}` class to wrapper (`{zone}` will be either `header` or `footer`) * Fixed: Removed `icon` CSS class name from the table sorting icon links. Now just `gv-icon` instead of `icon gv-icon`. +* Fixed: "Clear" search link now set to `display: inline-block` instead of `display: block` = 1.16.1 on January 21 = diff --git a/templates/css/gv-default-styles.css b/templates/css/gv-default-styles.css index f41a78e931..d3b6aade22 100644 --- a/templates/css/gv-default-styles.css +++ b/templates/css/gv-default-styles.css @@ -1 +1 @@ -.gv-search-horizontal{display:table;width:100%;}.gv-search-horizontal .gv-search-box{padding-right:0.5em;display:table-cell;height:100%;vertical-align:top;}.gv-search-horizontal .gv-search-box p{display:block;}.gv-search-horizontal .gv-search-box input,.gv-search-horizontal .gv-search-box select{display:block;}.gv-search-horizontal .gv-search-box select{width:100%;max-width:15em;}.gv-search-horizontal .gv-search-box.gv-search-date{max-width:10em;}.gv-search-horizontal .gv-search-box.gv-search-date input{width:48%;float:left;margin-right:2%;}.gv-search-horizontal .gv-search-box.gv-search-date input{display:inline-block;}.gv-search-horizontal .gv-search-box.gv-search-box-submit{vertical-align:middle;}.gv-search-horizontal .gv-search-box.gv-search-box-submit .gv-search-clear{float:left;margin-right:5px;}.gv-widget-search label.gv-check-radio{display:inline-block;margin-right:1em;}.gv-widget-search label.gv-check-radio input{display:inline;}.gv-widget-search.gv-search-vertical label.gv-check-radio{display:block;margin-bottom:1em;}.gv-widget-search .gv-search-box-links .active{font-weight:bold;}.gv-search-clear{display:none;}.gv-is-search .gv-search-clear{display:block;}.gv-list-container .gv-section,.gv-list-single-container .gv-section{margin:1em 0 1.5em;}.gv-list-container .gv-section .gv-field-label,.gv-list-single-container .gv-section .gv-field-label{border-bottom:1px solid #ccc;display:block;}.gv-image-caption{font-style:italic;}.gv-notice{padding:0.5em 0.75em;margin:1em 0;background-color:#ffffcc;border:1px solid #ddd;}.gv-notice.gv-error{padding:0.75em;border-color:#fd9ca1;background-color:#ffdfe0;}.gv-notice p{margin:0;padding:0;}.gv-edit-entry-wrapper .dashicons{font-size:0.925em;padding:0 0.2em;width:1em;height:1em;line-height:1em;margin-left:0.5em;}.gv-edit-entry-wrapper .dashicons-dismiss{color:#a10013;}.gv-edit-entry-wrapper .dashicons-dismiss:hover{color:#e20012;}.gv-edit-entry-wrapper .dashicons-download{color:#406e20;}.gv-edit-entry-wrapper .dashicons-download:hover{color:#469416;}.gv-notice{padding:0.5em 0.75em;margin:1em 0;background-color:#ffffcc;border:1px solid #ddd;}.gv-notice.gv-error{padding:0.75em;border-color:#fd9ca1;background-color:#ffdfe0;}.gv-notice p{margin:0;padding:0;}.gravityview-oembed .gv-back-link{display:none;}.gv-grid{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-grid:before,.gv-grid:after{content:" ";display:table;}.gv-grid:after{clear:both;}[class*='gv-grid-col-']{float:left;padding-right:1em;min-height:1px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}@media screen and (max-width: 320px){[class*='gv-grid-col-']{width:100% !important;float:none;}}@media screen and (max-width: 480px){[class*='gv-grid-col-']{width:100% !important;float:none;}}.gv-grid-col-1-1{width:100%;}.gv-grid-col-1-3{width:33.3333333333%;}.gv-grid-col-2-3{width:66.6666666667%;}.gv-grid-col-1-2{width:50%;}.gv-grid-col-1-4{width:25%;}.gv-grid-col-1-6{width:16.6666666667%;}.gv-grid-col-1-8{width:12.5%;}.gv-right{text-align:right;display:block;}.gv-right .gv-right>div{float:right;}.gv-left{text-align:left;display:block;}.gv-left .gv-right>div{float:left;}@media screen and (max-width: 480px){[class*='gv-grid-col-']{width:100%;}.gv-right,.gv-left,.gv-right>div,.gv-left>div{float:none;text-align:left;}}body .gv-widget-page-links ul,body .gv-widget-page-links li{list-style:none;margin:0;padding:0;}body .gv-widget-page-links li{display:inline;display:inline-block;}body .gv-widget-page-links li .page-numbers{display:inline-block;padding:0.4em 0.5em;}.gv-container img{display:block;margin:0;padding:0;max-width:100%;max-height:100%;}.gv-no-results{text-align:center;vertical-align:middle;padding:0.5em;}#TB_window img{max-height:100%;max-width:100%;}.gv-field-label{padding-right:0.25em;}a.gv-sort{text-decoration:none;border-bottom:none;}.gv-gallery .gv-field-file-uploads{margin:0;padding:0;}.gv-gallery .gv-field-file-uploads li{list-style:none;display:inline-block;max-width:200px;margin-right:1em;margin-bottom:0.5em;}.gv-gallery .gv-field-file-uploads li img{max-width:none;}.hidden{display:none;} \ No newline at end of file +.gv-search-horizontal{display:table;width:100%;}.gv-search-horizontal .gv-search-box{padding-right:0.5em;display:table-cell;height:100%;vertical-align:top;}.gv-search-horizontal .gv-search-box p{display:block;}.gv-search-horizontal .gv-search-box input,.gv-search-horizontal .gv-search-box select{display:block;}.gv-search-horizontal .gv-search-box select{width:100%;max-width:15em;}.gv-search-horizontal .gv-search-box.gv-search-date{max-width:10em;}.gv-search-horizontal .gv-search-box.gv-search-date input{width:48%;float:left;margin-right:2%;}.gv-search-horizontal .gv-search-box.gv-search-date input{display:inline-block;}.gv-search-horizontal .gv-search-box.gv-search-box-submit{vertical-align:middle;}.gv-search-horizontal .gv-search-box.gv-search-box-submit .gv-search-clear{float:left;margin-right:5px;}.gv-widget-search label.gv-check-radio{display:inline-block;margin-right:1em;}.gv-widget-search label.gv-check-radio input{display:inline;}.gv-widget-search.gv-search-vertical label.gv-check-radio{display:block;margin-bottom:1em;}.gv-widget-search .gv-search-box-links .active{font-weight:bold;}.gv-search-clear{display:none;}.gv-is-search .gv-search-clear{display:inline-block;}.gv-list-container .gv-section,.gv-list-single-container .gv-section{margin:1em 0 1.5em;}.gv-list-container .gv-section .gv-field-label,.gv-list-single-container .gv-section .gv-field-label{border-bottom:1px solid #ccc;display:block;}.gv-image-caption{font-style:italic;}.gv-notice{padding:0.5em 0.75em;margin:1em 0;background-color:#ffffcc;border:1px solid #ddd;}.gv-notice.gv-error{padding:0.75em;border-color:#fd9ca1;background-color:#ffdfe0;}.gv-notice p{margin:0;padding:0;}.gv-edit-entry-wrapper .dashicons{font-size:0.925em;padding:0 0.2em;width:1em;height:1em;line-height:1em;margin-left:0.5em;}.gv-edit-entry-wrapper .dashicons-dismiss{color:#a10013;}.gv-edit-entry-wrapper .dashicons-dismiss:hover{color:#e20012;}.gv-edit-entry-wrapper .dashicons-download{color:#406e20;}.gv-edit-entry-wrapper .dashicons-download:hover{color:#469416;}.gv-notice{padding:0.5em 0.75em;margin:1em 0;background-color:#ffffcc;border:1px solid #ddd;}.gv-notice.gv-error{padding:0.75em;border-color:#fd9ca1;background-color:#ffdfe0;}.gv-notice p{margin:0;padding:0;}.gravityview-oembed .gv-back-link{display:none;}.gv-grid{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.gv-grid:before,.gv-grid:after{content:" ";display:table;}.gv-grid:after{clear:both;}[class*='gv-grid-col-']{float:left;padding-right:1em;min-height:1px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}@media screen and (max-width: 320px){[class*='gv-grid-col-']{width:100% !important;float:none;}}@media screen and (max-width: 480px){[class*='gv-grid-col-']{width:100% !important;float:none;}}.gv-grid-col-1-1{width:100%;}.gv-grid-col-1-3{width:33.3333333333%;}.gv-grid-col-2-3{width:66.6666666667%;}.gv-grid-col-1-2{width:50%;}.gv-grid-col-1-4{width:25%;}.gv-grid-col-1-6{width:16.6666666667%;}.gv-grid-col-1-8{width:12.5%;}.gv-right{text-align:right;display:block;}.gv-right .gv-right>div{float:right;}.gv-left{text-align:left;display:block;}.gv-left .gv-right>div{float:left;}@media screen and (max-width: 480px){[class*='gv-grid-col-']{width:100%;}.gv-right,.gv-left,.gv-right>div,.gv-left>div{float:none;text-align:left;}}body .gv-widget-page-links ul,body .gv-widget-page-links li{list-style:none;margin:0;padding:0;}body .gv-widget-page-links li{display:inline;display:inline-block;}body .gv-widget-page-links li .page-numbers{display:inline-block;padding:0.4em 0.5em;}.gv-container img{display:block;margin:0;padding:0;max-width:100%;max-height:100%;}.gv-no-results{text-align:center;vertical-align:middle;padding:0.5em;}#TB_window img{max-height:100%;max-width:100%;}.gv-field-label{padding-right:0.25em;}a.gv-sort{text-decoration:none;border-bottom:none;}.gv-gallery .gv-field-file-uploads{margin:0;padding:0;}.gv-gallery .gv-field-file-uploads li{list-style:none;display:inline-block;max-width:200px;margin-right:1em;margin-bottom:0.5em;}.gv-gallery .gv-field-file-uploads li img{max-width:none;}.hidden{display:none;} \ No newline at end of file diff --git a/templates/css/source/search.scss b/templates/css/source/search.scss index 5861e2f5ef..9e9e0a7c23 100644 --- a/templates/css/source/search.scss +++ b/templates/css/source/search.scss @@ -87,6 +87,6 @@ display: none; .gv-is-search & { - display: block; + display: inline-block; } } \ No newline at end of file From c287399bd0e50caf93ad0d9af3c40a9cb03131e9 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Fri, 5 Feb 2016 09:43:04 -0700 Subject: [PATCH 10/38] wp_editor is working, but lots of other stuff isn't! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @luistinygod Sorry for not committing at the time… --- .../edit-entry/class-edit-entry-render.php | 299 +++++++++++------- .../class-gravityview-field-post-content.php | 48 +++ includes/fields/class-gravityview-fields.php | 20 ++ 3 files changed, 248 insertions(+), 119 deletions(-) diff --git a/includes/extensions/edit-entry/class-edit-entry-render.php b/includes/extensions/edit-entry/class-edit-entry-render.php index cb20e921ed..b7d88f389d 100644 --- a/includes/extensions/edit-entry/class-edit-entry-render.php +++ b/includes/extensions/edit-entry/class-edit-entry-render.php @@ -16,6 +16,9 @@ class GravityView_Edit_Entry_Render { + /** + * @var GravityView_Edit_Entry + */ protected $loader; /** @@ -375,28 +378,30 @@ function maybe_update_post_fields( $form ) { // Get the value of the field, including $_POSTed value $value = RGFormsModel::get_field_value( $field ); - // Convert the field object in 1.9 to an array for backward compatibility - $field_array = GVCommon::get_field_array( $field ); + # var_dump( $this->entry ); + # die(); - switch( $field_array['type'] ) { + switch( $field->type ) { case 'post_title': case 'post_content': case 'post_excerpt': - $updated_post->{$field_array['type']} = $value; + $updated_post->{$field->type} = $value; break; case 'post_tags': wp_set_post_tags( $post_id, $value, false ); break; case 'post_category': + echo 'value'; + var_dump( $value ); $categories = is_array( $value ) ? array_values( $value ) : (array)$value; $categories = array_filter( $categories ); - wp_set_post_categories( $post_id, $categories, false ); + echo 'categories'; + var_dump( $categories ); - // prepare value to be saved in the entry - $field = GFCommon::add_categories_as_choices( $field, '' ); + wp_set_post_categories( $post_id, $categories, false ); // if post_category is type checkbox, then value is an array of inputs if( isset( $value[ strval( $field_id ) ] ) ) { @@ -413,11 +418,20 @@ function maybe_update_post_fields( $form ) { case 'post_custom_field': $input_type = RGFormsModel::get_input_type( $field ); - $custom_field_name = $field_array['postCustomFieldName']; + $custom_field_name = $field->postCustomFieldName; // Only certain custom field types are supported - if( !in_array( $input_type, array( 'list', 'fileupload' ) ) ) { - update_post_meta( $post_id, $custom_field_name, $value ); + switch( $input_type ) { + case 'fileupload': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'list': + if( ! is_string( $value ) ) { + $value = function_exists('wp_json_encode') ? wp_json_encode( $value ) : json_encode( $value ); + } + var_dump( $value ); + // break; left intentionally out + default: + update_post_meta( $post_id, $custom_field_name, $value ); } break; @@ -460,9 +474,10 @@ function maybe_update_post_fields( $form ) { $return_post = wp_update_post( $updated_post, true ); if( is_wp_error( $return_post ) ) { + $return_post->add_data( $updated_post, '$updated_post' ); do_action( 'gravityview_log_error', 'Updating the post content failed', $return_post ); } else { - do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded' ); + do_action( 'gravityview_log_debug', 'Updating the post content for post #'.$post_id.' succeeded', $updated_post ); } } @@ -503,8 +518,6 @@ function after_update() { */ public function edit_entry_form() { - $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) ); - ?>
- is_valid ){ - - // Keeping this compatible with Gravity Forms. - $validation_message = "
" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "
"; - $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form); - - echo GVCommon::generate_notice( $message , 'gv-error' ); - - } else { - $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '', '' ); - - /** - * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link) - * @since 1.5.4 - * @param string $entry_updated_message Existing message - * @param int $view_id View ID - * @param array $entry Gravity Forms entry array - * @param string $back_link URL to return to the original entry. @since 1.6 - */ - $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link ); - - echo GVCommon::generate_notice( $message ); - } - - } - - ?> + maybe_print_message(); ?> @@ -574,29 +556,57 @@ public function edit_entry_form() { wp_nonce_field( self::$nonce_field, self::$nonce_field, false ); - // Most of this is needed for GFFormDisplay::validate(), but `gform_unique_id` is needed for file cleanup. + // Print the actual form HTML + $this->render_edit_form(); ?> + +
- render_edit_form(); + if( rgpost('action') === 'update' ) { - //echo $this->render_form_buttons(); + $back_link = esc_url( remove_query_arg( array( 'page', 'view', 'edit' ) ) ); - ?> - + if( ! $this->is_valid ){ -
+ // Keeping this compatible with Gravity Forms. + $validation_message = "
" . __('There was a problem with your submission.', 'gravityview') . " " . __('Errors have been highlighted below.', 'gravityview') . "
"; + $message = apply_filters("gform_validation_message_{$this->form['id']}", apply_filters("gform_validation_message", $validation_message, $this->form), $this->form); - ', '' ); + + /** + * @filter `gravityview/edit_entry/success` Modify the edit entry success message (including the anchor link) + * @since 1.5.4 + * @param string $entry_updated_message Existing message + * @param int $view_id View ID + * @param array $entry Gravity Forms entry array + * @param string $back_link URL to return to the original entry. @since 1.6 + */ + $message = apply_filters( 'gravityview/edit_entry/success', $entry_updated_message , $this->view_id, $this->entry, $back_link ); + + echo GVCommon::generate_notice( $message ); + } + + } } /** @@ -615,6 +625,8 @@ private function render_edit_form() { add_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields'), 5000, 3 ); add_filter( 'gform_submit_button', array( $this, 'render_form_buttons') ); add_filter( 'gform_disable_view_counter', '__return_true' ); + + add_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5, 5 ); add_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10, 5 ); // We need to remove the fake $_GET['page'] arg to avoid rendering form as if in admin. @@ -631,6 +643,7 @@ private function render_edit_form() { remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 ); remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) ); remove_filter( 'gform_disable_view_counter', '__return_true' ); + remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 ); remove_filter( 'gform_field_input', array( $this, 'modify_edit_field_input' ), 10 ); echo $html; @@ -678,12 +691,55 @@ public function filter_modify_form_fields( $form, $ajax = false, $field_values = return $form; } + /** + * When displaying a field, check if it's a Post Field, and if so, make sure the post exists and current user has edit rights. + * + * @since TODO + * + * @param string $field_content Always empty. Returning not-empty overrides the input. + * @param GF_Field $field + * @param string|array $value If array, it's a field with multiple inputs. If string, single input. + * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter. + * @param int $form_id Form ID + * + * @return string If error, the error message. If no error, blank string (modify_edit_field_input() runs next) + */ + function verify_user_can_edit_post( $field_content = '', $field, $value, $lead_id = 0, $form_id ) { + + if( GFCommon::is_post_field( $field ) ) { + + $message = null; + + // First, make sure they have the capability to edit the post. + if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) { + + /** + * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post + * @param string $message The existing "You don't have permission..." text + */ + $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don’t have permission to edit this post.', 'gravityview') ); + + } elseif( null === get_post( $this->entry['post_id'] ) ) { + /** + * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists + * @param string $message The existing "This field is not editable; the post no longer exists." text + */ + $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) ); + } + + if( $message ) { + $field_content = sprintf('
%s
', wpautop( $message ) ); + } + } + + return $field_content; + } /** * * Fill-in the saved values into the form inputs * - * @param string $field_content Always empty. + * @param string $field_content Always empty. Returning not-empty overrides the input. * @param GF_Field $field * @param string|array $value If array, it's a field with multiple inputs. If string, single input. * @param int $lead_id Lead ID. Always 0 for the `gform_field_input` filter. @@ -693,11 +749,15 @@ public function filter_modify_form_fields( $form, $ajax = false, $field_values = */ function modify_edit_field_input( $field_content = '', $field, $value, $lead_id = 0, $form_id ) { + $gv_field = GravityView_Fields::get_associated_field( $field ); + // If the form has been submitted, then we don't need to pre-fill the values, - // Except for fileupload type - run always!! + // Except for fileupload type and when a field input is overridden- run always!! if( - $this->is_edit_entry_submission() && 'fileupload' !== $field->type - || GFCommon::is_product_field( $field->type ) // Prevent product fields from appearing editable + ( $this->is_edit_entry_submission() && 'fileupload' !== $field->type ) + && false === ( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) + || ! empty( $field_content ) + || GFCommon::is_product_field( $field->type ) // Prevent product fields from appearing editable ) { return $field_content; } @@ -715,6 +775,51 @@ function modify_edit_field_input( $field_content = '', $field, $value, $lead_id $field = GFCommon::add_categories_as_choices( $field, $value ); } + $field_value = $this->get_field_value( $field ); + + /** + * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed + * @since 1.11 + * @param mixed $field_value field value used to populate the input + * @param object $field Gravity Forms field object ( Class GF_Field ) + */ + $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field ); + + // Prevent any PHP warnings, like undefined index + ob_start(); + + if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) { + $return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field ); + } else { + $return = $field->get_field_input( $this->form, $field_value, $this->entry ); + } + + // If there was output, it's an error + $warnings = ob_get_clean(); + + if( !empty( $warnings ) ) { + do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value ); + } + + /** + * Unset hack $_GET['page'] = 'gf_entries' + * We need the fileupload html field to render with the proper id + * (
  • ) + */ + unset( $_GET['page'] ); + + return $return; + } + + /** + * Modify the value for the current field input + * + * @param GF_Field $field + * + * @return array|mixed|string|void + */ + private function get_field_value( $field ) { + /** * @filter `gravityview/edit_entry/pre_populate/override` Allow the pre-populated value to override saved value in Edit Entry form. By default, pre-populate mechanism only kicks on empty fields. * @param boolean True: override saved values; False: don't override (default) @@ -731,9 +836,9 @@ function modify_edit_field_input( $field_content = '', $field, $value, $lead_id // only accept pre-populated values if the field doesn't have any choice selected. $allow_pre_populated = $field->allowsPrepopulate; - foreach ( (array)$field->inputs as $input ) { + foreach ( (array)$field->inputs as $input ) { - $input_id = strval( $input['id'] ); + $input_id = strval( $input['id'] ); if ( ! empty( $this->entry[ $input_id ] ) ) { $field_value[ $input_id ] = 'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ]; @@ -744,7 +849,7 @@ function modify_edit_field_input( $field_content = '', $field, $value, $lead_id $pre_value = $field->get_value_submission( array(), false ); - $field_value = ! $allow_pre_populated && ! ( $override_saved_value && !empty( $pre_value ) ) ? $field_value : $pre_value; + $field_value = ( ! $allow_pre_populated && ! ( $override_saved_value && !empty( $pre_value ) ) ) ? $field_value : $pre_value; } else { @@ -771,60 +876,10 @@ function modify_edit_field_input( $field_content = '', $field, $value, $lead_id // if value is empty get the default value if defined $field_value = $field->get_value_default_if_empty( $field_value ); - /** - * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed - * @since 1.11 - * @param mixed $field_value field value used to populate the input - * @param object $field Gravity Forms field object ( Class GF_Field ) - */ - $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field ); - - // Prevent any PHP warnings, like undefined index - ob_start(); - - $return = $field->get_field_input( $this->form, $field_value, $this->entry ); - - // If there was output, it's an error - $warnings = ob_get_clean(); - - if( !empty( $warnings ) ) { - do_action( 'gravityview_log_error', __METHOD__ . $warnings, $field_value ); - } - - /** - * Unset hack $_GET['page'] = 'gf_entries' - * We need the fileupload html field to render with the proper id - * (
  • ) - */ - unset( $_GET['page'] ); - - return $return; + return $field_value; } - /** - * Get the posted values from the edit form submission - * - * @hack - * @uses GFFormsModel::get_field_value() - * @param mixed $value Existing field value, before edit - * @param array $lead Gravity Forms entry array - * @param array $field Gravity Forms field array - * @return string [description] - */ - public function get_field_value( $value, $lead, $field ) { - - // The form's not being edited; use the original value - if( ! $this->is_edit_entry_submission() ) { - return $value; - } - - return GFFormsModel::get_field_value( $field, $lead, true ); - } - - - - // ---- Entry validation /** @@ -897,7 +952,6 @@ function gform_pre_validation( $form ) { // If there are fresh uploads, process and merge them. // Otherwise, use the passed values, which should be json-encoded array of URLs if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) { - $value = empty( $value ) ? '[]' : $value; $value = stripslashes_deep( $value ); $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array()); @@ -911,6 +965,14 @@ function gform_pre_validation( $form ) { } + $this->entry[ $input_name ] = $value; + echo 'pre-valudiat'; + var_dump( $value ); + echo 'updloated files'; + var_dump( GFFormsModel::$uploaded_files ); + echo '$prepared_value'; + $prepared_value = GFFormsModel::get_prepared_input_value( $form, $field, $entry, $field->id ); + var_dump( $prepared_value ); $_POST[ $input_name ] = $value; break; @@ -1008,7 +1070,7 @@ function custom_validation( $validation_results ) { } // validate if multi file upload reached max number of files [maxFiles] => 2 - if( rgar( $field, 'maxFiles') && rgar( $field, 'multipleFiles') ) { + if( rgobj( $field, 'maxFiles') && rgobj( $field, 'multipleFiles') ) { $input_name = 'input_' . $field->id; //uploaded @@ -1364,7 +1426,6 @@ function manage_conditional_logic( $has_conditional_logic, $form ) { } return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form ); - } diff --git a/includes/fields/class-gravityview-field-post-content.php b/includes/fields/class-gravityview-field-post-content.php index 89692824b9..6b886a3b54 100644 --- a/includes/fields/class-gravityview-field-post-content.php +++ b/includes/fields/class-gravityview-field-post-content.php @@ -33,6 +33,54 @@ function field_options( $field_options, $template_id, $field_id, $context, $inpu return $field_options; } + /** + * Returns the field inner markup. + * + * @param array $form The Form Object currently being processed. + * @param string|array $value The field value. From default/dynamic population, $_POST, or a resumed incomplete submission. + * @param null|array $entry Null or the Entry Object currently being edited. + * + * @return string + */ + public function get_field_input( $form, $value = '', $entry = null, GF_Field_Post_Content $field ) { + + $id = (int) $field->id; + $input_name = "input_{$id}"; + $class = esc_attr( $field->size ); + $tabindex = $field->get_tabindex(); + + $editor_settings = array( + 'editor_class' => "textarea {$class}", + 'textarea_name' => $input_name, + 'textarea_rows' => 15, + 'tabindex' => $tabindex, + 'media_buttons' => false, + 'quicktags' => false, + 'logic_event' => $field->get_conditional_logic_event( 'keyup' ), + 'placeholder' => $field->get_field_placeholder_attribute(), + ); + + /** + * @filter `gravityview/edit_entry/post_content/wp_editor_settings` Modify the settings passed to the Post Content wp_editor() + * @see wp_editor() For the options available + * @since 1.7 + * @param array $editor_settings Array of settings to be passed to wp_editor(). Note: there are also two additional values in the array: `logic_event` and `placehodler`, added to the textarea HTML by GravityView. + */ + $editor_settings = apply_filters( 'gravityview/edit_entry/post_content/wp_editor_settings', $editor_settings ); + + ob_start(); + wp_editor( $value, $input_name, $editor_settings ); + $editor = ob_get_clean(); + + $logic_event = rgar( $editor_settings, 'logic_event' ); + $placeholder = rgar( $editor_settings, 'placeholder' ); + + /** @internal Instead of using `add_filter('the_editor')` and doing the same thing, it's cleaner here. */ + $editor = str_replace( '