From 381ac166f97ecb9e2ec4cd0f189a51d37d9b06fd Mon Sep 17 00:00:00 2001 From: omarkasem Date: Tue, 13 Aug 2024 06:58:20 +0300 Subject: [PATCH 01/36] Removes the filter that removed gf max files validation --- .../edit-entry/class-edit-entry-render.php | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/includes/extensions/edit-entry/class-edit-entry-render.php b/includes/extensions/edit-entry/class-edit-entry-render.php index ede0618fe3..15b8035884 100644 --- a/includes/extensions/edit-entry/class-edit-entry-render.php +++ b/includes/extensions/edit-entry/class-edit-entry-render.php @@ -156,9 +156,6 @@ function load() { // Disable conditional logic if needed (since 1.9) add_filter( 'gform_has_conditional_logic', array( $this, 'manage_conditional_logic' ), 10, 2 ); - // Make sure GF doesn't validate max files (since 1.9) - add_filter( 'gform_plupload_settings', array( $this, 'modify_fileupload_settings' ), 10, 3 ); - // Add fields expected by GFFormDisplay::validate() add_filter( 'gform_pre_validation', array( $this, 'gform_pre_validation' ) ); @@ -635,26 +632,6 @@ public function save_field_value( $value = '', $entry = array(), $field = null, return $value; } - /** - * Remove max_files validation (done on gravityforms.js) to avoid conflicts with GravityView - * Late validation done on self::custom_validation - * - * @param $plupload_init array Plupload settings - * @param $form_id - * @param $instance - * @return mixed - */ - public function modify_fileupload_settings( $plupload_init, $form_id, $instance ) { - if ( ! $this->is_edit_entry() ) { - return $plupload_init; - } - - $plupload_init['gf_vars']['max_files'] = 0; - - return $plupload_init; - } - - /** * Set visibility to visible and convert field input key to string * From 6101805be5ee6f2124eb7733329922d21f1d385c Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 14 Aug 2024 17:57:03 -0400 Subject: [PATCH 02/36] Fix deprecated filter notice with GravityView Maps 3.1.0+ --- .../class-gravityview-plugin-hooks-gravitymaps.php | 6 ++++-- readme.txt | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php b/includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php index 4c49900701..d1f0592a50 100644 --- a/includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php +++ b/includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php @@ -12,6 +12,9 @@ class GravityView_Plugin_Hooks_GravityMaps extends GravityView_Plugin_and_Theme_ * @inheritDoc */ public function add_hooks() { + $google_maps_api_key_filter = defined( 'GRAVITYVIEW_MAPS_VERSION' ) && version_compare( GRAVITYVIEW_MAPS_VERSION, '3.1.0', '<' ) + ? 'gravityview/maps/render/google_api_key' + : 'gk/gravitymaps/map-services/google-maps/api_key'; /** * Temporarily keep maps working on the front-end when running new GV and old Maps. @@ -19,9 +22,8 @@ public function add_hooks() { * @since 2.16 */ add_filter( - 'gravityview/maps/render/google_api_key', + $google_maps_api_key_filter, function ( $api_key ) { - if ( ! empty( $api_key ) ) { return $api_key; } diff --git a/readme.txt b/readme.txt index f82d5d00e8..be256bbe86 100644 --- a/readme.txt +++ b/readme.txt @@ -21,6 +21,10 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h == Changelog == += develop = + +* Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. + = 2.27.1 on August 14, 2024 = This release fixes an issue with adding fields in the View editor's Edit Entry layout when the Multiple Forms extension is enabled. From 2f321fe1c183ae389f1f9a5ad74c39f4faffb0aa Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 14 Aug 2024 18:45:17 -0400 Subject: [PATCH 03/36] Fix PHP 8.2 deprecation notice --- includes/admin/field-types/type_textarea.php | 2 +- readme.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/admin/field-types/type_textarea.php b/includes/admin/field-types/type_textarea.php index 64c2fad07f..4aed49a880 100644 --- a/includes/admin/field-types/type_textarea.php +++ b/includes/admin/field-types/type_textarea.php @@ -61,7 +61,7 @@ function render_input( $override_input = null ) { class="" rows="" data-codemirror="get_codemirror_config() ); ?>" - >value ); ?> + >value ? esc_textarea( $this->value ) : $this->value; ?> Date: Thu, 15 Aug 2024 22:33:35 -0400 Subject: [PATCH 04/36] Update changelog [ci skip] --- readme.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.txt b/readme.txt index 18db6b052a..4a922ab0e9 100644 --- a/readme.txt +++ b/readme.txt @@ -25,6 +25,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. * Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()`. +* Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. = 2.27.1 on August 14, 2024 = From 6ab7c3904eb339276c82f7a64a1c7c90c188a98d Mon Sep 17 00:00:00 2001 From: omarkasem Date: Sun, 18 Aug 2024 09:22:20 +0300 Subject: [PATCH 05/36] Add placeholder --- includes/widgets/search-widget/class-search-widget.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/widgets/search-widget/class-search-widget.php b/includes/widgets/search-widget/class-search-widget.php index 21a707fcb8..e94bb7bbb8 100644 --- a/includes/widgets/search-widget/class-search-widget.php +++ b/includes/widgets/search-widget/class-search-widget.php @@ -456,7 +456,7 @@ public static function render_searchable_fields( $form_id = null, $current = '' $types = self::get_search_input_types( $id, $field['type'] ); - $output .= ''; + $output .= ''; } } From cd0027cf8fc7ad20e41f4407e1fe920b37ddce63 Mon Sep 17 00:00:00 2001 From: omarkasem Date: Sun, 18 Aug 2024 11:17:22 +0300 Subject: [PATCH 06/36] Check if value has start and end dates --- .../search-widget/templates/search-field-date_range.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/widgets/search-widget/templates/search-field-date_range.php b/includes/widgets/search-widget/templates/search-field-date_range.php index c1a22e6ef7..f80e26f3cf 100644 --- a/includes/widgets/search-widget/templates/search-field-date_range.php +++ b/includes/widgets/search-widget/templates/search-field-date_range.php @@ -17,7 +17,7 @@

- - + +

\ No newline at end of file From 19cba745bea2149c7772d1c6d5213684753e501e Mon Sep 17 00:00:00 2001 From: Vlad Date: Mon, 19 Aug 2024 09:46:55 -0400 Subject: [PATCH 07/36] Do not set a value to an undeclared class property --- includes/widgets/search-widget/class-search-widget.php | 9 +++++++-- .../search-widget/templates/search-field-date.php | 2 +- .../search-widget/templates/search-field-date_range.php | 4 ++-- .../search-widget/templates/search-field-entry_date.php | 4 ++-- readme.txt | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/includes/widgets/search-widget/class-search-widget.php b/includes/widgets/search-widget/class-search-widget.php index 21a707fcb8..df96801738 100644 --- a/includes/widgets/search-widget/class-search-widget.php +++ b/includes/widgets/search-widget/class-search-widget.php @@ -2320,7 +2320,7 @@ private function maybe_enqueue_flexibility() { /** * Enqueue the datepicker script * - * It sets the $gravityview->datepicker_class parameter + * It sets the $gravityview->atts['datepicker_class'] parameter * * @todo Use own datepicker javascript instead of GF datepicker.js - that way, we can localize the settings and not require the changeMonth and changeYear pickers. * @return void @@ -2351,7 +2351,12 @@ public function enqueue_datepicker() { */ $datepicker_class = apply_filters( 'gravityview_search_datepicker_class', 'gv-datepicker datepicker ' . $this->get_datepicker_format() ); - $gravityview_view->datepicker_class = $datepicker_class; + $gravityview_view->setAtts( + array_merge( + $gravityview_view->atts, + [ 'datepicker_class' => $datepicker_class ] + ) + ); } /** diff --git a/includes/widgets/search-widget/templates/search-field-date.php b/includes/widgets/search-widget/templates/search-field-date.php index 1a081ac7c2..e083bc16ce 100644 --- a/includes/widgets/search-widget/templates/search-field-date.php +++ b/includes/widgets/search-widget/templates/search-field-date.php @@ -15,6 +15,6 @@

- +

\ No newline at end of file diff --git a/includes/widgets/search-widget/templates/search-field-date_range.php b/includes/widgets/search-widget/templates/search-field-date_range.php index c1a22e6ef7..ba9a9c87f2 100644 --- a/includes/widgets/search-widget/templates/search-field-date_range.php +++ b/includes/widgets/search-widget/templates/search-field-date_range.php @@ -17,7 +17,7 @@

- - + +

\ No newline at end of file diff --git a/includes/widgets/search-widget/templates/search-field-entry_date.php b/includes/widgets/search-widget/templates/search-field-entry_date.php index c4758cf6c1..1b83c8dfb9 100644 --- a/includes/widgets/search-widget/templates/search-field-entry_date.php +++ b/includes/widgets/search-widget/templates/search-field-entry_date.php @@ -17,7 +17,7 @@

- - + +

\ No newline at end of file diff --git a/readme.txt b/readme.txt index 4a922ab0e9..b2e3eb688b 100644 --- a/readme.txt +++ b/readme.txt @@ -24,7 +24,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h = develop = * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. -* Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()`. +* Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. * Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. = 2.27.1 on August 14, 2024 = From fd80f29b3189120feb255b7bfef99b95cf4ebc2a Mon Sep 17 00:00:00 2001 From: Vlad Date: Mon, 19 Aug 2024 09:56:36 -0400 Subject: [PATCH 08/36] Simplify conditional check --- .../search-widget/templates/search-field-date_range.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/includes/widgets/search-widget/templates/search-field-date_range.php b/includes/widgets/search-widget/templates/search-field-date_range.php index 68a08e1c4b..b7b9b9a972 100644 --- a/includes/widgets/search-widget/templates/search-field-date_range.php +++ b/includes/widgets/search-widget/templates/search-field-date_range.php @@ -14,10 +14,10 @@ \ No newline at end of file From d06e59a91174181fb06139b37d91b979e172ca4e Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 21 Aug 2024 13:13:22 -0400 Subject: [PATCH 09/36] Sort Name field using the First and Last name inputs (#2121) --- future/includes/class-gv-view.php | 23 ++++++++++++++--------- includes/class-frontend-views.php | 9 ++++++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/future/includes/class-gv-view.php b/future/includes/class-gv-view.php index 864a1e4a5d..26cfc7edfd 100644 --- a/future/includes/class-gv-view.php +++ b/future/includes/class-gv-view.php @@ -1077,9 +1077,15 @@ public function get_entries( $request = null ) { * Apply multisort. */ if ( ! empty( $has_multisort ) ) { + // Clear ordering that was set when initializing the query since we're going to set it from scratch. + ( function () { + $this->order = []; + } )->bindTo( $query, $query )(); + $atts = $this->settings->as_atts(); $view_setting_sort_field_ids = \GV\Utils::get( $atts, 'sort_field', array() ); + $view_setting_sort_directions = \GV\Utils::get( $atts, 'sort_direction', array() ); $has_sort_query_param = ! empty( $_GET['sort'] ) && is_array( $_GET['sort'] ); @@ -1096,21 +1102,20 @@ public function get_entries( $request = null ) { $sort_directions = $view_setting_sort_directions; } - $skip_first = false; - foreach ( (array) $sort_field_ids as $key => $sort_field_id ) { + $sort_field_id = \GravityView_frontend::_override_sorting_id_by_field_type( $sort_field_id, $this->form->ID ); + $sort_direction = strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ); - if ( ! $skip_first && ! $has_sort_query_param ) { - $skip_first = true; // Skip the first one, it's already in the query + if ( empty( $sort_field_id ) ) { continue; } - $sort_field_id = \GravityView_frontend::_override_sorting_id_by_field_type( $sort_field_id, $this->form->ID ); - $sort_direction = strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ); + $sort_field_id = explode( '|', $sort_field_id ); + + foreach ( $sort_field_id as $id ) { + $order = new \GF_Query_Column( $id, $this->form->ID ); - if ( ! empty( $sort_field_id ) ) { - $order = new \GF_Query_Column( $sort_field_id, $this->form->ID ); - if ( 'id' !== $sort_field_id && \GVCommon::is_field_numeric( $this->form->ID, $sort_field_id ) ) { + if ( 'id' !== $id && \GVCommon::is_field_numeric( $this->form->ID, $id ) ) { $order = \GF_Query_Call::CAST( $order, defined( 'GF_Query::TYPE_DECIMAL' ) ? \GF_Query::TYPE_DECIMAL : \GF_Query::TYPE_SIGNED ); } diff --git a/includes/class-frontend-views.php b/includes/class-frontend-views.php index 3fd2a0d84b..b930516c87 100644 --- a/includes/class-frontend-views.php +++ b/includes/class-frontend-views.php @@ -1416,17 +1416,20 @@ public static function _override_sorting_id_by_field_type( $sort_field_id, $form * Override how to sort when sorting full name. * * @since 1.7.4 + * @since TBD Default sorting is set to first and last name. * - * @param string $name_part Sort by `first` or `last` (default: `first`) + * @param string $name_part Sort by `first`, `last` or `first-last` (default: `first-last`) * @param string $sort_field_id Field used for sorting * @param int $form_id GF Form ID */ - $name_part = apply_filters( 'gravityview/sorting/full-name', 'first', $sort_field_id, $form_id ); + $name_part = apply_filters( 'gravityview/sorting/full-name', 'first-last', $sort_field_id, $form_id ); if ( 'last' === strtolower( $name_part ) ) { $sort_field_id .= '.6'; - } else { + } elseif ( 'first' === strtolower( $name_part ) ) { $sort_field_id .= '.3'; + } elseif ( 'first-last' === strtolower( $name_part ) ) { + $sort_field_id = "{$sort_field_id}.3|{$sort_field_id}.6"; } } break; From 4d46f308d41c8dae8755853eb6dbb696b927f51d Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 21 Aug 2024 13:26:13 -0400 Subject: [PATCH 10/36] Force merge tags in Source URL field settings --- includes/fields/class-gravityview-field-source-url.php | 2 +- readme.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/fields/class-gravityview-field-source-url.php b/includes/fields/class-gravityview-field-source-url.php index 69d95c76bc..8a896fd7e1 100644 --- a/includes/fields/class-gravityview-field-source-url.php +++ b/includes/fields/class-gravityview-field-source-url.php @@ -48,7 +48,7 @@ public function field_options( $field_options, $template_id, $field_id, $context 'label' => __( 'Link Text:', 'gk-gravityview' ), 'desc' => __( 'Customize the link text. If empty, the link text will be the URL.', 'gk-gravityview' ), 'value' => null, - 'merge_tags' => true, + 'merge_tags' => 'force', 'requires' => 'link_to_source', ); diff --git a/readme.txt b/readme.txt index b2e3eb688b..56cd456ff3 100644 --- a/readme.txt +++ b/readme.txt @@ -23,6 +23,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h = develop = +* Fixed: Merge tag support in the Source URL "Link Text" field setting * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. * Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. * Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. From e3fa752f9bb58a54974d2f8843744844a0c7365b Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Wed, 21 Aug 2024 13:26:29 -0400 Subject: [PATCH 11/36] Improve appearance of Link Text field in Source URL --- includes/fields/class-gravityview-field-source-url.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/fields/class-gravityview-field-source-url.php b/includes/fields/class-gravityview-field-source-url.php index 8a896fd7e1..9ce3c1a357 100644 --- a/includes/fields/class-gravityview-field-source-url.php +++ b/includes/fields/class-gravityview-field-source-url.php @@ -50,6 +50,7 @@ public function field_options( $field_options, $template_id, $field_id, $context 'value' => null, 'merge_tags' => 'force', 'requires' => 'link_to_source', + 'class' => 'widefat', ); return $add_options + $field_options; From ceb6104ecb68e47da579039b32b0c019117c66c3 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 21 Aug 2024 14:00:47 -0400 Subject: [PATCH 12/36] Fix sorting icon not appearing for Name field When sorting by the Name field, the up/down caret icon indicating the sort direction would not appear. --- future/includes/class-gv-template-view-table.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/future/includes/class-gv-template-view-table.php b/future/includes/class-gv-template-view-table.php index 1067fe24a6..89c01cb6cd 100644 --- a/future/includes/class-gv-template-view-table.php +++ b/future/includes/class-gv-template-view-table.php @@ -90,15 +90,13 @@ public static function add_columns_sort_links( $column_label, $context = null ) $class = 'gv-sort'; - $sort_field_id = \GravityView_frontend::_override_sorting_id_by_field_type( $context->field->ID, $context->view->form->ID ); - $sort_args = array( sprintf( 'sort[%s]', $context->field->ID ), 'asc', ); // If we are already sorting by the current field... - if ( ! empty( $sorting['key'] ) && (string) $sort_field_id === (string) $sorting['key'] ) { + if ( ! empty( $sorting['key'] ) && (string) $context->field->ID === (string) $sorting['key'] ) { switch ( $sorting['direction'] ) { // No sort From 8cd5a57a0290b48998c7eacb6f10198dce601baf Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 21 Aug 2024 14:09:13 -0400 Subject: [PATCH 13/36] Update changelog [ci skip] --- readme.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.txt b/readme.txt index b2e3eb688b..abb59d86ae 100644 --- a/readme.txt +++ b/readme.txt @@ -26,6 +26,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. * Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. * Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. +* Fixed: Sorting the View by the Name field would yield incorrect results. = 2.27.1 on August 14, 2024 = From 6fa315f6045e8d3dea4b93a45fb6d01355dededb Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 22 Aug 2024 10:44:24 -0400 Subject: [PATCH 14/36] Simplify conditional check [ci skip] --- includes/widgets/search-widget/class-search-widget.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/widgets/search-widget/class-search-widget.php b/includes/widgets/search-widget/class-search-widget.php index e94bb7bbb8..91841118c2 100644 --- a/includes/widgets/search-widget/class-search-widget.php +++ b/includes/widgets/search-widget/class-search-widget.php @@ -456,7 +456,7 @@ public static function render_searchable_fields( $form_id = null, $current = '' $types = self::get_search_input_types( $id, $field['type'] ); - $output .= ''; + $output .= ''; } } From 56b88d1c0118dfcb7db988da92fac82697f4b4a3 Mon Sep 17 00:00:00 2001 From: Vlad Date: Sat, 24 Aug 2024 08:58:36 -0400 Subject: [PATCH 15/36] Update link to Foundation in pubic composer.json [ci skip] --- composer_public.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer_public.json b/composer_public.json index 943472aba4..ca501abda0 100644 --- a/composer_public.json +++ b/composer_public.json @@ -21,9 +21,9 @@ "type": "package", "package": { "name": "gravitykit/foundation", - "version": "1.2.12", + "version": "1.2.17", "dist": { - "url": "https://www.dropbox.com/scl/fi/9ymdlep3stwsobdxa3fvm/foundation-1.2.12-987da1e.zip?rlkey=tt6zethqhk1f574ygoi1xdnlm&dl=1", + "url": "https://www.dropbox.com/scl/fi/b3p6jtt7673iij218pm11/foundation-1.2.17-0852c84.zip?rlkey=6hs3qrxzl7ucqu57dfz7cycuq&dl=1", "type": "zip" } } @@ -33,7 +33,7 @@ "php": ">=7.2.0", "ext-json": "*", "ext-openssl": "*", - "gravitykit/foundation": "1.2.12" + "gravitykit/foundation": "1.2.17" }, "require-dev": { "phpunit/phpunit": "^8.5", From 4cf25ab607477ed356fd07366a538469d000b31d Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Mon, 26 Aug 2024 14:37:47 -0400 Subject: [PATCH 16/36] Add PHP version compatibility checker --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 288b4a5733..0e61f79043 100644 --- a/composer.json +++ b/composer.json @@ -94,7 +94,8 @@ "@prefix_vendor", "@post_update_install", "composer dump-autoload -o" - ] + ], + "compat": "./vendor/bin/phpcs -p ./ ./gravityview.php ./tests --standard=PHPCompatibilityWP --extensions=php --runtime-set testVersion 7.2- --ignore=vendor/*,vendor_prefixed/*,node_modules/*" }, "config": { "platform-check": false, From 89527747ab5315b5b31be76edf79f4fe4f966bef Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Mon, 26 Aug 2024 14:38:15 -0400 Subject: [PATCH 17/36] Fix PHP 7.2 compatibility issues --- future/_mocks.php | 11 +++++++---- future/includes/class-gv-shortcode-gvlogic.php | 2 +- includes/admin/metaboxes/views/placeholder.php | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/future/_mocks.php b/future/_mocks.php index c6d8468376..4665b548d6 100644 --- a/future/_mocks.php +++ b/future/_mocks.php @@ -155,8 +155,10 @@ function ( $e ) { * @return null|string The value of a field in an entry. */ function GravityView_API_field_value( $entry, $field_settings, $format ) { + $original_args = func_get_args(); + if ( empty( $entry['form_id'] ) || empty( $field_settings['id'] ) ) { - gravityview()->log->error( 'No entry or field_settings[id] supplied', array( 'data' => array( func_get_args() ) ) ); + gravityview()->log->error( 'No entry or field_settings[id] supplied', array( 'data' => array( $original_args ) ) ); return null; } @@ -202,7 +204,7 @@ function GravityView_API_field_value( $entry, $field_settings, $format ) { /** An unidentified backend. */ default: - gravityview()->log->error( 'Could not determine source for entry', array( 'data' => array( func_get_args() ) ) ); + gravityview()->log->error( 'Could not determine source for entry', array( 'data' => array( $original_args ) ) ); return null; endswitch; @@ -235,6 +237,7 @@ function GravityView_API_field_value( $entry, $field_settings, $format ) { * @return string The label of a field in an entry. */ function GravityView_API_field_label( $form, $field_settings, $entry, $force_show_label = false ) { + $original_args = func_get_args(); /** A bail condition. */ $bail = function ( $label, $field_settings, $entry, $force_show_label, $form ) { @@ -280,7 +283,7 @@ function GravityView_API_field_label( $form, $field_settings, $entry, $force_sho } if ( empty( $entry['form_id'] ) || empty( $field_settings['id'] ) ) { - gravityview()->log->error( 'No entry or field_settings[id] supplied', array( 'data' => array( func_get_args() ) ) ); + gravityview()->log->error( 'No entry or field_settings[id] supplied', array( 'data' => array( $original_args ) ) ); return $bail( $label, $field_settings, $entry, $force_show_label, $form ); } @@ -333,7 +336,7 @@ function GravityView_API_field_label( $form, $field_settings, $entry, $force_sho /** An unidentified backend. */ default: - gravityview()->log->error( 'Could not determine source for entry. Using empty field.', array( 'data' => array( func_get_args() ) ) ); + gravityview()->log->error( 'Could not determine source for entry. Using empty field.', array( 'data' => array( $original_args ) ) ); $field = new \GV\Field(); break; endswitch; diff --git a/future/includes/class-gv-shortcode-gvlogic.php b/future/includes/class-gv-shortcode-gvlogic.php index b10c711f31..2af99c2b4d 100644 --- a/future/includes/class-gv-shortcode-gvlogic.php +++ b/future/includes/class-gv-shortcode-gvlogic.php @@ -208,7 +208,7 @@ private function get_output( $match, $atts, $content ) { break; // No more shortcodes } - list( $_, $before_shortcode, $shortcode, $_, $after_shortcode ) = $matches; + list( $_, $before_shortcode, $shortcode, $__, $after_shortcode ) = $matches; if ( ! $found ) { // We're still iffing. $if .= $before_shortcode; diff --git a/includes/admin/metaboxes/views/placeholder.php b/includes/admin/metaboxes/views/placeholder.php index 8d364fc499..f4957acd26 100644 --- a/includes/admin/metaboxes/views/placeholder.php +++ b/includes/admin/metaboxes/views/placeholder.php @@ -54,7 +54,7 @@ class="gk-gravityview-placeholder-container gk-gravityview-placeholder-container '%2$s', esc_url( $button_href ), esc_html( $button_text ), - implode( ' ', $attributes ), + implode( ' ', $attributes ) ); } else { printf( From 37ae127bb5c8933db8aec1d9689befd1769bb7ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 18:40:29 +0000 Subject: [PATCH 18/36] Bump axios from 1.6.7 to 1.7.5 in /future/includes/gutenberg Bumps [axios](https://github.com/axios/axios) from 1.6.7 to 1.7.5. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.6.7...v1.7.5) --- updated-dependencies: - dependency-name: axios dependency-type: indirect ... Signed-off-by: dependabot[bot] --- future/includes/gutenberg/package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/future/includes/gutenberg/package-lock.json b/future/includes/gutenberg/package-lock.json index 7c2f2ada48..39277042cb 100644 --- a/future/includes/gutenberg/package-lock.json +++ b/future/includes/gutenberg/package-lock.json @@ -5740,12 +5740,12 @@ } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -23361,12 +23361,12 @@ "dev": true }, "axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "dev": true, "requires": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } From 5565cca143c357c38caffec8d978caf7e536bb8f Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 09:33:52 -0400 Subject: [PATCH 19/36] Add `:url` modifier for entry moderation merge tags (#219) --- includes/class-gravityview-entry-approval-merge-tags.php | 6 +++--- readme.txt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/includes/class-gravityview-entry-approval-merge-tags.php b/includes/class-gravityview-entry-approval-merge-tags.php index 074947e5a7..1ec293b0b9 100644 --- a/includes/class-gravityview-entry-approval-merge-tags.php +++ b/includes/class-gravityview-entry-approval-merge-tags.php @@ -157,7 +157,7 @@ public function _filter_gform_custom_merge_tags( $custom_merge_tags = array(), $ public function _filter_gform_replace_merge_tags( $text, $form = array(), $entry = array(), $url_encode = false, $esc_html = false ) { $matches = array(); - preg_match_all( '/{gv_((?:dis|un)?approve)_entry:?(?:(\d+)([d|h|m|s]))?:?(public)?}/', $text, $matches, PREG_SET_ORDER ); + preg_match_all( '/{gv_((?:dis|un)?approve)_entry:?(?:(\d+)([d|h|m|s]))?:?(public)?:?(url)?}/', $text, $matches, PREG_SET_ORDER ); // If there are no matches, return original text if ( empty( $matches ) ) { @@ -233,8 +233,8 @@ protected function replace_merge_tag( $matches = array(), $text = '', $form = ar 'text' => $approval_link_text, 'form_id' => (int) $form['id'], 'action' => $action, - 'format' => 'html', - 'atts' => [] + 'format' => isset( $match[5] ) ? 'text' : 'html', + 'atts' => [], ]; /** diff --git a/readme.txt b/readme.txt index 2147a65d18..114db032df 100644 --- a/readme.txt +++ b/readme.txt @@ -23,6 +23,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h = develop = +* Added: Modifier for entry moderation merge tags to output plain-text URLs (e.g., `{gv_approve_entry:url}`). * Fixed: Merge tag support in the Source URL "Link Text" field setting * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. * Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. From 226aebfe416143d9a00bea03ead745c9db83e235 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 09:45:16 -0400 Subject: [PATCH 20/36] Bump minimum PHP version to 7.4 (#2118) --- .circleci/config.yml | 8 ++++---- composer.json | 2 +- composer_public.json | 2 +- gravityview.php | 7 ++++++- readme.txt | 2 ++ 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5301267ece..88e79d2695 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,15 +61,15 @@ jobs: paths: - . - run_php_72_unit_tests: + run_php_74_unit_tests: <<: *default_job_config steps: - attach_workspace: at: /home/circleci - run: - name: Running PHP 7.2 unit tests + name: Running PHP 7.4 unit tests command: | - /home/circleci/tooling/docker-unit-tests/docker-unit-tests.sh test_72 + /home/circleci/tooling/docker-unit-tests/docker-unit-tests.sh test_74 run_php_80_unit_tests: <<: *default_job_config @@ -135,6 +135,6 @@ workflows: - build_package_release: <<: *context requires: - - run_php_72_unit_tests + - run_php_74_unit_tests - run_php_80_unit_tests # - run_acceptance_tests diff --git a/composer.json b/composer.json index 0e61f79043..be87b51e5a 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ } ], "require": { - "php": ">=7.2.0", + "php": ">=7.4.0", "ext-json": "*", "ext-openssl": "*", "gravitykit/foundation": "dev-main" diff --git a/composer_public.json b/composer_public.json index ca501abda0..db043b2878 100644 --- a/composer_public.json +++ b/composer_public.json @@ -30,7 +30,7 @@ } ], "require": { - "php": ">=7.2.0", + "php": ">=7.4.0", "ext-json": "*", "ext-openssl": "*", "gravitykit/foundation": "1.2.17" diff --git a/gravityview.php b/gravityview.php index e72ed9bd6d..491a9cb606 100644 --- a/gravityview.php +++ b/gravityview.php @@ -22,6 +22,11 @@ return; } +if ( ! GravityKit\GravityView\Foundation\meets_min_php_version_requirement( __FILE__, '7.4.0' ) ) { + return; +} + + /** Constants */ /** @@ -77,7 +82,7 @@ * @since 1.19.2 * @var string|false */ -define( 'GV_FUTURE_MIN_PHP_VERSION', '7.4.0' ); +define( 'GV_FUTURE_MIN_PHP_VERSION', '8.0.0' ); /** * The future is here and now. diff --git a/readme.txt b/readme.txt index 114db032df..19fe61a496 100644 --- a/readme.txt +++ b/readme.txt @@ -23,6 +23,8 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h = develop = +**Note: GravityView now requires PHP 7.4 or newer** + * Added: Modifier for entry moderation merge tags to output plain-text URLs (e.g., `{gv_approve_entry:url}`). * Fixed: Merge tag support in the Source URL "Link Text" field setting * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. From 2d3f7d73c7862d7c09b6f5ea4189e936c7a3de3b Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 11:50:11 -0400 Subject: [PATCH 21/36] Add filter to control sorting in View entries query (#1759) This allows for more granular control of sorting parameters for each when fetching View entries. --- future/includes/class-gv-view.php | 57 +++++++++++++++++++++---------- readme.txt | 3 ++ 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/future/includes/class-gv-view.php b/future/includes/class-gv-view.php index 26cfc7edfd..7d1a756ad5 100644 --- a/future/includes/class-gv-view.php +++ b/future/includes/class-gv-view.php @@ -7,6 +7,8 @@ use GravityKitFoundation; use GravityView_Compatibility; use GravityView_Cache; +use GravityView_frontend; +use GVCommon; /** If this file is called directly, abort. */ if ( ! defined( 'GRAVITYVIEW_DIR' ) ) { @@ -327,7 +329,7 @@ public static function content( $content ) { * This View has no data source. There's nothing to show really. * ...apart from a nice message if the user can do anything about it. */ - if ( \GVCommon::has_cap( array( 'edit_gravityviews', 'edit_gravityview' ), $view->ID ) ) { + if ( GVCommon::has_cap( array( 'edit_gravityviews', 'edit_gravityview' ), $view->ID ) ) { $title = sprintf( __( 'This View is not configured properly. Start by selecting a form.', 'gk-gravityview' ), esc_url( get_edit_post_link( $view->ID, false ) ) ); @@ -335,7 +337,7 @@ public static function content( $content ) { $image = sprintf( '%s', esc_attr__( 'Data Source', 'gk-gravityview' ), esc_url( plugins_url( 'assets/images/screenshots/data-source.png', GRAVITYVIEW_FILE ) ) ); - return \GVCommon::generate_notice( '

' . $title . '

' . wpautop( $message . $image ), 'notice' ); + return GVCommon::generate_notice( '

' . $title . '

' . wpautop( $message . $image ), 'notice' ); } break; case 'in_trash': @@ -357,7 +359,7 @@ public static function content( $content ) { return $content; } - $is_admin_and_can_view = $view->settings->get( 'admin_show_all_statuses' ) && \GVCommon::has_cap( 'gravityview_moderate_entries', $view->ID ); + $is_admin_and_can_view = $view->settings->get( 'admin_show_all_statuses' ) && GVCommon::has_cap( 'gravityview_moderate_entries', $view->ID ); /** * Editing a single entry. @@ -414,7 +416,7 @@ public static function content( $content ) { } } - $error = \GVCommon::check_entry_display( $e->as_entry(), $view ); + $error = GVCommon::check_entry_display( $e->as_entry(), $view ); if ( is_wp_error( $error ) ) { gravityview()->log->error( @@ -535,7 +537,7 @@ public function can_render( $context = null, $request = null ) { * Is this View an embed-only View? If so, don't allow rendering here, * as this is a direct request. */ - if ( $this->settings->get( 'embed_only' ) && ! \GVCommon::has_cap( 'read_private_gravityviews' ) ) { + if ( $this->settings->get( 'embed_only' ) && ! GVCommon::has_cap( 'read_private_gravityviews' ) ) { return new \WP_Error( 'gravityview/embed_only' ); } } @@ -546,7 +548,7 @@ public function can_render( $context = null, $request = null ) { /** Private, pending, draft, etc. */ $public_states = get_post_stati( array( 'public' => true ) ); - if ( ! in_array( $this->post_status, $public_states, true ) && ! \GVCommon::has_cap( 'read_gravityview', $this->ID ) ) { + if ( ! in_array( $this->post_status, $public_states, true ) && ! GVCommon::has_cap( 'read_gravityview', $this->ID ) ) { gravityview()->log->notice( 'The current user cannot access this View #{view_id}', array( 'view_id' => $this->ID ) ); return new \WP_Error( 'gravityview/not_public' ); } @@ -1018,10 +1020,10 @@ public function get_entries( $request = null ) { /** * @todo: Stop using _frontend and use something like $request->get_search_criteria() instead */ - $parameters = \GravityView_frontend::get_view_entries_parameters( $parameters, $this->form->ID ); + $parameters = GravityView_frontend::get_view_entries_parameters( $parameters, $this->form->ID ); $parameters['context_view_id'] = $this->ID; - $parameters = \GVCommon::calculate_get_entries_criteria( $parameters, $this->form->ID ); + $parameters = GVCommon::calculate_get_entries_criteria( $parameters, $this->form->ID ); if ( ! is_array( $parameters ) ) { $parameters = array(); @@ -1102,24 +1104,43 @@ public function get_entries( $request = null ) { $sort_directions = $view_setting_sort_directions; } - foreach ( (array) $sort_field_ids as $key => $sort_field_id ) { - $sort_field_id = \GravityView_frontend::_override_sorting_id_by_field_type( $sort_field_id, $this->form->ID ); - $sort_direction = strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ); + $sorting_parameters = []; - if ( empty( $sort_field_id ) ) { + foreach ( $sort_field_ids as $key => $id ) { + $sorting_parameters[ $id ] = [ + 'id' => GravityView_frontend::_override_sorting_id_by_field_type( $id, $this->form->ID ), + 'type' => GVCommon::is_field_numeric( $this->form->ID, $id ) ? 'numeric' : 'string', + 'direction' => strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ), + ]; + } + + /** + * Modifies the sorting parameters applied during the retrieval of View entries. + * + * @filter `gk/gravityview/view/entries/query/sorting-parameters` + * + * @since TBD + * + * @param array $sorting_parameters The array of sorting parameters, including field IDs, directions, and casting types. + * @param View $this The View instance. + */ + $sorting_parameters = apply_filters( 'gk/gravityview/view/entries/query/sorting-parameters', $sorting_parameters, $this ); + + foreach ( $sorting_parameters as $field ) { + if ( empty( $field['id'] ) ) { continue; } - $sort_field_id = explode( '|', $sort_field_id ); + $sort_field_ids = explode( '|', $field['id'] ); - foreach ( $sort_field_id as $id ) { - $order = new \GF_Query_Column( $id, $this->form->ID ); + foreach ( $sort_field_ids as $field_id ) { + $order = new \GF_Query_Column( $field_id, $this->form->ID ); - if ( 'id' !== $id && \GVCommon::is_field_numeric( $this->form->ID, $id ) ) { + if ( 'id' !== $field_id && 'numeric' === $field['type'] ) { $order = \GF_Query_Call::CAST( $order, defined( 'GF_Query::TYPE_DECIMAL' ) ? \GF_Query::TYPE_DECIMAL : \GF_Query::TYPE_SIGNED ); } - $query->order( $order, $sort_direction ); + $query->order( $order, $field['direction'] ); } } } @@ -1816,7 +1837,7 @@ protected function apply_legacy_join_is_approved_query_conditions( \GF_Query $qu return; } - $is_admin_and_can_view = $this->settings->get( 'admin_show_all_statuses' ) && \GVCommon::has_cap( 'gravityview_moderate_entries', $this->ID ); + $is_admin_and_can_view = $this->settings->get( 'admin_show_all_statuses' ) && GVCommon::has_cap( 'gravityview_moderate_entries', $this->ID ); if ( $is_admin_and_can_view ) { return; diff --git a/readme.txt b/readme.txt index 19fe61a496..772f222cc3 100644 --- a/readme.txt +++ b/readme.txt @@ -32,6 +32,9 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h * Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. * Fixed: Sorting the View by the Name field would yield incorrect results. +#### πŸ’» Developer Updates +* Added `gk/gravityview/view/entries/query/sorting-parameters` filter to modify the sorting parameters applied during the retrieval of View entries. + = 2.27.1 on August 14, 2024 = This release fixes an issue with adding fields in the View editor's Edit Entry layout when the Multiple Forms extension is enabled. From 6ad768ec4715586b0fe56cdf6f6519eafed28ccb Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 12:00:30 -0400 Subject: [PATCH 22/36] Trigger build From eae0cf26403919e27f108e938126db78fdb83ce0 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 12:01:28 -0400 Subject: [PATCH 23/36] Fix CircleCI config [ci skip] --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 88e79d2695..c79e67b93a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -126,7 +126,7 @@ workflows: jobs: - prepare_test_and_build_environment: <<: *context - - run_php_72_unit_tests: + - run_php_74_unit_tests: <<: *test_job_config - run_php_80_unit_tests: <<: *test_job_config From 2b34a457686d2fe8c16704088a032e49815060cd Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 27 Aug 2024 16:12:38 -0400 Subject: [PATCH 24/36] Fix fatal error related to a capabilities check (#2127) When the user lacks the necessary capabilities to install products, Foundation's `ProductManager` class is not initialized, so attempting to get a list of products on a `null` object triggers a fatal error. --- .../class-gravityview-object-placeholder.php | 2 +- readme.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/plugin-and-theme-hooks/class-gravityview-object-placeholder.php b/includes/plugin-and-theme-hooks/class-gravityview-object-placeholder.php index ddd10cabd6..e63b2309f2 100644 --- a/includes/plugin-and-theme-hooks/class-gravityview-object-placeholder.php +++ b/includes/plugin-and-theme-hooks/class-gravityview-object-placeholder.php @@ -175,7 +175,7 @@ private function is_included(): bool { * @var $product_manager \GravityKit\GravityView\Foundation\Licenses\ProductManager */ $product_manager = GravityKitFoundation::licenses()->product_manager(); - $products = $product_manager->get_products_data(); + $products = $product_manager ? $product_manager->get_products_data() : []; $product = $products[ $this->text_domain ] ?? null; if ( ! $product ) { diff --git a/readme.txt b/readme.txt index 19fe61a496..9bd1373db1 100644 --- a/readme.txt +++ b/readme.txt @@ -26,6 +26,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h **Note: GravityView now requires PHP 7.4 or newer** * Added: Modifier for entry moderation merge tags to output plain-text URLs (e.g., `{gv_approve_entry:url}`). +* Fixed: Fatal error in the View editor when the user does not have the necessary capabilities to install plugins. * Fixed: Merge tag support in the Source URL "Link Text" field setting * Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. * Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. From 81ec95f0e8047af72be159012eb0df4e91639b6b Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Tue, 27 Aug 2024 21:19:03 -0400 Subject: [PATCH 25/36] Prevents PHP warning Only sets the `post_id` attribute if $post->ID exists. This is an unlikely situation, but it happened inside the DataViews layout REST request. --- .../fields/class-gravityview-field-gravityview_view.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/fields/class-gravityview-field-gravityview_view.php b/includes/fields/class-gravityview-field-gravityview_view.php index 93083d509d..10bcf112fe 100644 --- a/includes/fields/class-gravityview-field-gravityview_view.php +++ b/includes/fields/class-gravityview-field-gravityview_view.php @@ -164,7 +164,11 @@ public static function render_frontend( $field_settings, $context ) { return; } - $attributes = [ 'post_id' => $post->ID ]; + $attributes = []; + + if ( ! empty( $post->ID ) ) { + $attributes = [ 'post_id' => $post->ID ]; + } $page_size_value = \GV\Utils::get( $field_settings, 'page_size', 'default' ); if ( 'default' !== $page_size_value ) { From b92c7b483aba890f9dbc574173b3aeb753a905a5 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Tue, 27 Aug 2024 21:34:20 -0400 Subject: [PATCH 26/36] Fixes deprecated use of "parent" in callables ( ! ) Deprecated: Use of "parent" in callables is deprecated in /wp-content/plugins/GravityView/includes/class-gravityview-gfformsmodel.php on line 20 --- includes/class-gravityview-gfformsmodel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class-gravityview-gfformsmodel.php b/includes/class-gravityview-gfformsmodel.php index fd536a8f47..911276addf 100644 --- a/includes/class-gravityview-gfformsmodel.php +++ b/includes/class-gravityview-gfformsmodel.php @@ -17,7 +17,7 @@ class GravityView_GFFormsModel extends GFFormsModel { */ public static function get_database_version() { - if ( is_callable( 'parent::get_database_version' ) ) { + if ( is_callable( 'GFFormsModel::get_database_version' ) ) { return parent::get_database_version(); } From e003d7d8dafcd2e7a7f047b1282620d42f72dec7 Mon Sep 17 00:00:00 2001 From: Zack Katz Date: Tue, 27 Aug 2024 21:36:16 -0400 Subject: [PATCH 27/36] Fixes PHP warning when no SQL results for Sequence Warning: foreach() argument must be of type array|object, null given in /wp-content/plugins/GravityView/includes/fields/class-gravityview-field-sequence.php on line 261 --- includes/fields/class-gravityview-field-sequence.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/includes/fields/class-gravityview-field-sequence.php b/includes/fields/class-gravityview-field-sequence.php index 7c60b401b6..57112bc4cd 100644 --- a/includes/fields/class-gravityview-field-sequence.php +++ b/includes/fields/class-gravityview-field-sequence.php @@ -258,7 +258,13 @@ public function get_sequence( $context ) { global $wpdb; - foreach ( $wpdb->get_results( implode( ' ', $sql_query ), ARRAY_A ) as $n => $result ) { + $results = $wpdb->get_results( implode( ' ', $sql_query ), ARRAY_A ); + + if ( is_null( $results ) ) { + return 0; + } + + foreach ( $results as $n => $result ) { if ( in_array( $entry->ID, $result ) ) { return $context->field->reverse ? ( $total - $n ) : ( $n + 1 ); } From 0b6cc9892436e4c0060b3627c844aa177f16dedc Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 09:57:21 -0400 Subject: [PATCH 28/36] Refactor the sorting parameters code --- future/includes/class-gv-view.php | 38 ++++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/future/includes/class-gv-view.php b/future/includes/class-gv-view.php index 7d1a756ad5..faf5bf5bd4 100644 --- a/future/includes/class-gv-view.php +++ b/future/includes/class-gv-view.php @@ -1107,11 +1107,21 @@ public function get_entries( $request = null ) { $sorting_parameters = []; foreach ( $sort_field_ids as $key => $id ) { - $sorting_parameters[ $id ] = [ - 'id' => GravityView_frontend::_override_sorting_id_by_field_type( $id, $this->form->ID ), - 'type' => GVCommon::is_field_numeric( $this->form->ID, $id ) ? 'numeric' : 'string', - 'direction' => strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ), - ]; + // The original field ID can be overridden for certain fields, including the Name field + // where a single ID becomes multiple field input IDs joined by a pipe (e.g., "3.3|3.6"). + $id_overrides = explode( + '|', + GravityView_frontend::_override_sorting_id_by_field_type( $id, $this->form->ID ) + ); + + foreach ( $id_overrides as $id_override ) { + $sorting_parameters[] = [ + '_original_id' => $id, + 'id' => $id_override, + 'is_numeric' => GVCommon::is_field_numeric( $this->form->ID, $id ), + 'direction' => strtoupper( \GV\Utils::get( $sort_directions, $key, 'ASC' ) ), + ]; + } } /** @@ -1121,8 +1131,8 @@ public function get_entries( $request = null ) { * * @since TBD * - * @param array $sorting_parameters The array of sorting parameters, including field IDs, directions, and casting types. - * @param View $this The View instance. + * @param array $sorting_parameters The array of sorting parameters, including field ID, field type (direction, and casting types. + * @param View $this The View instance. */ $sorting_parameters = apply_filters( 'gk/gravityview/view/entries/query/sorting-parameters', $sorting_parameters, $this ); @@ -1131,17 +1141,13 @@ public function get_entries( $request = null ) { continue; } - $sort_field_ids = explode( '|', $field['id'] ); - - foreach ( $sort_field_ids as $field_id ) { - $order = new \GF_Query_Column( $field_id, $this->form->ID ); + $order = new \GF_Query_Column( $field['id'], $this->form->ID ); - if ( 'id' !== $field_id && 'numeric' === $field['type'] ) { - $order = \GF_Query_Call::CAST( $order, defined( 'GF_Query::TYPE_DECIMAL' ) ? \GF_Query::TYPE_DECIMAL : \GF_Query::TYPE_SIGNED ); - } - - $query->order( $order, $field['direction'] ); + if ( 'id' !== $field['id'] && (int) $field['is_numeric'] ) { + $order = \GF_Query_Call::CAST( $order, defined( 'GF_Query::TYPE_DECIMAL' ) ? \GF_Query::TYPE_DECIMAL : \GF_Query::TYPE_SIGNED ); } + + $query->order( $order, $field['direction'] ); } } From 4c750b65e5f90564c788d140fab051511782a516 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 10:50:49 -0400 Subject: [PATCH 29/36] Fix "text domain not found" error when creating a View Ref: https://github.com/GravityKit/GravityView/issues/2110 --- includes/admin/metaboxes/views/select-template.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/metaboxes/views/select-template.php b/includes/admin/metaboxes/views/select-template.php index fc13faa60d..65a823663a 100644 --- a/includes/admin/metaboxes/views/select-template.php +++ b/includes/admin/metaboxes/views/select-template.php @@ -63,8 +63,8 @@ static function ( array $mapping, string $key ) use ( $templates ) { $selected = ( $id == $directory_template ) ? ' gv-selected' : ''; $placeholder = ! empty( $template['buy_source'] ); $is_included = ! empty( $template['included'] ); - $plugin_data = GravityKit\GravityView\Foundation\Helpers\Core::get_installed_plugin_by_text_domain( $template['textdomain'] ?? '' ) ?: array(); - $plugin_text_domain = $plugin_data['text_domain'] ?? ''; + $plugin_data = GravityKit\GravityView\Foundation\Helpers\Core::get_installed_plugin_by_text_domain( $template['textdomain'] ?? '' ) ?? []; + $plugin_text_domain = $plugin_data['text_domain'] ?? $template['textdomain'] ?? ''; $button_text = empty( $plugin_data ) ? esc_html__( 'Install', 'gk-gravityview' ) : esc_html__( 'Activate & Select', 'gk-gravityview' ); $button_class = 'gv-layout-' . ( empty( $plugin_data ) ? 'install' : 'activate' ); $base_type = $base_template_mapping[ $template['slug'] ?? 'table' ] ?? 'default_table'; From 92bd6627553aa4cd422104e54332a912705d4e46 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 10:56:23 -0400 Subject: [PATCH 30/36] Use the correct text domain in the UI This finishes cherry-picking from https://github.com/GravityKit/GravityView/pull/2112 --- assets/js/admin-views.js | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/js/admin-views.js b/assets/js/admin-views.js index 971f2fae4d..5fdb07f60f 100644 --- a/assets/js/admin-views.js +++ b/assets/js/admin-views.js @@ -1722,6 +1722,7 @@ $.when( vcfg.server_request( 'install_product', { id: $link.attr( 'data-download-id' ), + text_domain: $link.attr( 'data-template-text-domain' ), activate: true, } ) ) .then( on_success ) From 7b2600aee7a5b359c8d6c1b8015e0e80bf0e1fb9 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 11:42:31 -0400 Subject: [PATCH 31/36] Update Foundation to ada291c Ref: https://github.com/GravityKit/Foundation/commit/ada291cc355f669f142935a11cb99a8ba60f29d8 --- assets/js/admin-views.min.js | 2 +- composer.lock | 30 +-- translations.pot | 412 ++++++++++++++--------------------- 3 files changed, 181 insertions(+), 263 deletions(-) diff --git a/assets/js/admin-views.min.js b/assets/js/admin-views.min.js index b73e4b90ee..9519458bc0 100644 --- a/assets/js/admin-views.min.js +++ b/assets/js/admin-views.min.js @@ -1 +1 @@ -!function($){var viewConfiguration,viewGeneralSettings;$.widget.bridge("gvTooltip",$.ui.tooltip),viewConfiguration={startFreshStatus:!1,hasUnsavedChanges:!1,altKey:!1,dialogWidth:750,performingAjaxAction:!1,init:function(){var vcfg=viewConfiguration;vcfg.gvSelectForm=$("#gravityview_form_id"),vcfg.gvSwitchView=$("#gv_switch_view_button"),vcfg.currentFormId=vcfg.gvSelectForm.val(),vcfg.currentDirectoryTemplate=$("#gravityview_directory_template").val(),vcfg.currentSingletemplate=$("#gravityview_single_template").val(),vcfg.directAccessSelect=$("#gv-direct-access-select"),vcfg.toggleInitialVisibility(vcfg),$(document.body).on("keydown keyup",vcfg.altKeyListener).on("change","#gravityview_form_id",vcfg.formChange).on("click",'a[href="#gv_start_fresh"]',vcfg.startFresh).on("click","#publish, #save-post",vcfg.processFormSubmit).on("submit","#post",vcfg.processFormSubmit).on("click",".gv-view-types-hover",vcfg.selectTemplateHover).on("click","a[rel*=external]",vcfg.openExternalLinks).on("click mouseup keyup",vcfg.closeTooltips).on("click",'.gv-field-filter-form span[role="button"]',vcfg.switchTooltipLayout).on("click","#gv_switch_view_button",vcfg.switchView).on("click",".clear-all-fields",vcfg.removeAllFields).on("click",".gv_select_template",vcfg.selectTemplate).on("change","select[data-view-dropdown]",vcfg.selectTemplate).on("click",".ui-tooltip-content .gv-fields",vcfg.startAddField).on("click",".gv-add-field-before",function(){$(this).closest(".active-drop-container").find("a.gv-add-field").trigger("click",{before:$(this).closest(".gv-fields")})}).on("click",".gv-field-duplicate",vcfg.duplicateField).on("click","#gv-direct-access .edit-direct-access",vcfg.editDirectAccess).on("click","#gv-direct-access-select .cancel-direct-access",vcfg.cancelDirectAccess).on("click","#gv-direct-access-select .save-direct-access",vcfg.updateDirectAccess).on("gravityview_form_change",vcfg.updateFormLinks).on("gravityview_form_change",vcfg.updateWidgetFormIds).on("change",".gv-dialog-options input[name*=show_as_link]",vcfg.toggleShowAsEntry).on("change",".gv-dialog-options input[name*=only_loggedin]",vcfg.toggleCustomVisibility).on("change",".gv-dialog-options [name*=allow_edit_cap]",vcfg.toggleCustomVisibility).on("click",".gv-field-controls .gv-remove-field",vcfg.removeField).on("click",".gv-field-controls .gv-field-settings",vcfg.openFieldSettings).on("dblclick",".gv-fields:not(.gv-nonexistent-form-field)",vcfg.openFieldSettings).on("change","#gravityview_settings",vcfg.zebraStripeSettings).on("click",".gv-field-details--toggle",function(e){var $dialog=$(this).parents(".ui-dialog"),was_closed=$(".gv-field-details",$dialog).hasClass("gv-field-details--closed");return viewConfiguration.toggleFieldDetails($dialog,was_closed),$.cookie("gv-field-details-expanded",was_closed,{path:gvGlobals.admin_cookiepath}),!1}).on("search keydown keyup",".gv-field-filter-form input:visible",vcfg.setupFieldFilters).on("click",".gv-section .is-dismissible .notice-dismiss",function(e){var warning_name=$(this).parents(".gv-section").attr("id")+"-"+$("#post_ID").val();$.cookie("warning-dismissed-"+warning_name,1,{path:gvGlobals.admin_cookiepath}),$(document.body).trigger("gravityview/tabs-ready")}).on("gravityview/loaded gravityview/tabs-ready gravityview/field-added gravityview/field-removed gravityview/all-fields-removed gravityview/show-as-entry gravityview/view-config-updated",vcfg.toggleTabConfigurationWarnings).on("gravityview/loaded gravityview/tabs-ready gravityview/field-added gravityview/field-removed gravityview/all-fields-removed gravityview/show-as-entry gravityview/view-config-updated",vcfg.toggleRemoveAllFields).on("search keydown keyup",".gv-field-filter-form input:visible",vcfg.setupFieldFilters).on("gravityview/loaded",function(){$(".gv-setting-list, #gravityview_settings").on("change",vcfg.toggleCheckboxes).trigger("change")}).on("change",".gv-dialog-options",vcfg.toggleCheckboxes).on("focus",".gv-add-field",function(e){$(this).parent(".gv-fields").addClass("trigger--hover")}).on("blur",".gv-add-field",function(e){$(this).parent(".gv-fields").removeClass("trigger--hover")}).on("keydown",".gv-add-field",function(e){return 13!==e.keyCode&&32!==e.keyCode||void $(this).parent(".gv-fields").addClass("trigger--active")}).on("keyup",".gv-add-field",function(e){return 13!==e.keyCode&&32!==e.keyCode||void $(this).parent(".gv-fields").removeClass("trigger--active")}).on("gravityview/dropdown/activate gravityview/dropdown/install",vcfg.enableLockedTemplate),$(window).resize(function(){var $open_dialog=$(".ui-dialog:visible").find(".ui-dialog-content");$open_dialog.dialog("option","position",{my:"center",at:"center",of:window});var window_width=vcfg.dialogWidth,ninety_five_per=.95*$(window).width();vcfg.dialogWidth>ninety_five_per&&(window_width=ninety_five_per),$open_dialog.dialog("option","width",window_width)}),window.addEventListener("beforeunload",event=>{vcfg.hasUnsavedChanges&&event.preventDefault()}),gvGlobals.passed_form_id&&vcfg.gvSelectForm.trigger("change");var _sendToEditor=window.send_to_editor;window.send_to_editor=function(val){var cursorPosition=$("#"+window.wpActiveEditor);if(!cursorPosition.hasClass("codemirror")&&_sendToEditor)return _sendToEditor(val);var codeMirror=cursorPosition.next(".CodeMirror")[0].CodeMirror,cursorPosition=codeMirror.getCursor();codeMirror.replaceRange(val,window.wp.CodeMirror.Pos(cursorPosition.line,cursorPosition.ch))},$("div .gform-dropdown__trigger").on("click.gravityforms",vcfg.sendMergeTagValueToCodemirrorEditor)},getCookieVal:function(cookie){return!(!cookie||"undefined"===cookie||"false"===cookie)&&cookie},toggleTabConfigurationWarnings:function(e){var tabs={single:{configured:$(".gv-dialog-options input[name*=show_as_link]:checked","#directory-active-fields").length||$('[data-fieldid="entry_link"]',"#directory-active-fields").length,icon:"dashicons-media-default"},edit:{configured:$('.gv-fields .field-key[value="edit_link"]').length,icon:"dashicons-welcome-write-blog"}};$.each(tabs,function(index,value){var show_warning=index+"-fields-"+$("#post_ID").val(),dismissed_warning=viewConfiguration.getCookieVal($.cookie("warning-dismissed-"+show_warning));const $fields_section=$("#"+index+"-fields");show_warning=$fields_section.find(".active-drop .gv-fields").length,show_warning=!dismissed_warning&&0===value.configured&&0vcfg.dialogWidth?vcfg.dialogWidth:$(window).width()-10},open:function(){return $('
').prependTo("#wpwrap"),vcfg.toggleCheckboxes(thisDialog),vcfg.setupFieldDetails(thisDialog),vcfg.refresh_merge_tags(thisDialog,function(){vcfg.setupCodeMirror(thisDialog)}),$sortableEls=$('.ui-widget-content[aria-hidden="false"]').find(".active-drop-widget, .active-drop-field"),$sortableEls.length&&$sortableEls.each((i,el)=>{$(el).hasClass("ui-sortable")&&$(el).sortable("disable")}),!0},close:function(e){e.preventDefault(),$("textarea.code",thisDialog).each(function(){$CodeMirror=$(this).next(".CodeMirror"),0!==$CodeMirror.length&&$CodeMirror[0].hasOwnProperty("CodeMirror")&&$CodeMirror[0].CodeMirror.toTextArea()}),thisDialog.find(".merge-tag-support").removeClass("merge-tag-support").addClass("gv-merge-tag-support"),$(".gv-field-settings.active","#gravityview_view_config").removeClass("active"),vcfg.setCustomLabel(thisDialog),$("#wpwrap").find("> .gv-overlay").fadeOut("fast",function(){$(this).remove()}),$sortableEls=$('.ui-widget-content[aria-hidden="false"]').find(".active-drop-widget, .active-drop-field"),$sortableEls.length&&$sortableEls.each((i,el)=>{$(el).hasClass("ui-sortable")&&$(el).sortable("enable")}),vcfg._restoreValue(),$(document.body).trigger("gravityview/dialog-closed",thisDialog)},closeOnEscape:!0,buttons:buttons})},setupCodeMirror:function(dialog){var vcfg=viewConfiguration;$("textarea.code:visible",dialog).each(function(){const codemirrorConfig=$.extend(!0,{},wp.codeEditor.defaultSettings);var $textarea,editorId,mergeTag,initialEditorCursorPos,$autocompleteEl,closeAutocompletion,mergeTags=$(this).data("codemirror");mergeTags&&(codemirrorConfig.codemirror=$.extend({},codemirrorConfig.codemirror,mergeTags));let editor=wp.codeEditor.initialize($(this),codemirrorConfig);($(this).hasClass("merge-tag-support")||$(this).hasClass("gv-merge-tag-support"))&&(editor.codemirror.setSize("95%"),$textarea=$(this),editorId=$textarea.attr("id"),mergeTags=window.gfMergeTags.getAutoCompleteMergeTags($textarea),mergeTag="",initialEditorCursorPos=editor.codemirror.getCursor(),$textarea.parent().find(".all-merge-tags").detach().insertBefore($textarea),$textarea.parent().find("div .gform-dropdown__trigger").on("click.gravityforms",vcfg.sendMergeTagValueToCodemirrorEditor),$textarea.autocomplete({appendTo:$textarea.parent(),minLength:1,position:{my:"center top",at:"center bottom",collision:"none"},source:mergeTags,select:function(event,currentEditorCursorPos){var val=currentEditorCursorPos.item.value.replace(/^{|}$/gm,""),currentEditorCursorPos=editor.codemirror.getCursor();editor.codemirror.replaceRange(val,initialEditorCursorPos,window.wp.CodeMirror.Pos(currentEditorCursorPos.line,currentEditorCursorPos.ch)),editor.codemirror.focus(),editor.codemirror.setCursor(window.wp.CodeMirror.Pos(currentEditorCursorPos.line,currentEditorCursorPos.ch+val.length+1))}}),$autocompleteEl=$textarea.parent().find("ul.ui-autocomplete"),closeAutocompletion=function(){$("#"+editorId).autocomplete("close")},$(document.body).on("keyup",function(e){$autocompleteEl.is(":visible")&&27===e.which&&(e.preventDefault(),closeAutocompletion(),$textarea.focus())}),editor.codemirror.on("mousedown",function(){closeAutocompletion()}),editor.codemirror.on("keydown",function(el,e){$autocompleteEl.is(":visible")&&(38!==e.which&&40!==e.which&&13!==e.which||($autocompleteEl.not(":focus")&&$autocompleteEl.focus(),e.preventDefault()))}),editor.codemirror.on("change",function(e,currentEditorCursorPos){"{}"===currentEditorCursorPos.text[0]&&(initialEditorCursorPos=editor.codemirror.getCursor());currentEditorCursorPos=editor.codemirror.getCursor();"{"!==(mergeTag=editor.codemirror.getRange({ch:initialEditorCursorPos.ch-1,line:initialEditorCursorPos.line},currentEditorCursorPos))[0]?closeAutocompletion():$("#"+editorId).autocomplete("search",mergeTag)}))})},sendMergeTagValueToCodemirrorEditor:function(e){var _activeEditorBackup=window.wpActiveEditor;window.wpActiveEditor=$(e.currentTarget).parentsUntil(".gv-setting-container").find("textarea").attr("id"),window.wpActiveEditor&&window.send_to_editor($(this).data("value")),window.wpActiveEditor=_activeEditorBackup},setupFieldDetails:function(dialog){$(".gv-field-details--container",dialog).insertAfter(".ui-dialog-title:visible");var show_details=$.cookie("gv-field-details-expanded"),show_details=viewConfiguration.getCookieVal(show_details);viewConfiguration.toggleFieldDetails(dialog,show_details),viewConfiguration.migrateSurveyScore(dialog)},migrateSurveyScore:function($dialog){var $score;0===$dialog.parents('[data-inputtype="survey"]').length||($score=$dialog.find(".gv-setting-container-score input"))&&0!=+$score.val()&&$dialog.find('.gv-setting-container-choice_display input[value="score"]').trigger("click").trigger("focus")},toggleFieldDetails:function($dialog,show_details){$parent=$dialog.parent(),$parent.find(".gv-field-details").toggleClass("gv-field-details--closed",!show_details).end().find(".gv-field-details--toggle .dashicons").toggleClass("dashicons-arrow-down",!!show_details).toggleClass("dashicons-arrow-right",!show_details).end()},setCustomLabel:function($label){var custom_label_text=$("[name*=admin_label]",$label),custom_label_text=custom_label_text.length&&custom_label_text.val()?custom_label_text:$("[name*=custom_label]",$label),$label=$label.parents(".gv-fields").find(".gv-field-label-text-container");custom_label_text.length&&(0<(custom_label_text=custom_label_text.val().trim()).length?$label.html(custom_label_text):$label.html($label.attr("data-original-title")))},getSortableFields:function(context,id){return new Promise((resolve,reject)=>{var vcfg=viewConfiguration;$(".gravityview_sort_field").prop("disabled","disabled").empty().append("");var data={action:"gv_sortable_fields_form",nonce:gvGlobals.nonce};void 0!==context&&"preset"===context?data.template_id=id:data.form_id=vcfg.gvSelectForm.val(),$.post(ajaxurl,data,function(response){"false"!==response&&"0"!==response&&$(".gravityview_sort_field").empty().append(response).prop("disabled",null),resolve()})})},hideViewConfig:function(){$("#gravityview_view_config").slideUp(150),$(document).trigger("gv_admin_views_hideViewConfig")},showViewConfig:function(){$("#gravityview_view_config").slideDown(150),viewGeneralSettings.metaboxObj.show(),viewConfiguration.toggleDropMessage(),viewConfiguration.init_tooltips(),$(document).trigger("gv_admin_views_showViewConfig")},switchView:function(vcfg){vcfg.preventDefault(),vcfg.stopImmediatePropagation();vcfg=viewConfiguration;vcfg.templateFilter("custom"),vcfg.toggleViewTypeMetabox()},templateFilter:function(templateType){$(".gv-view-types-module").each(function(){$(this).attr("data-filter")===templateType?$(this).parent().show():$(this).parent().hide()})},_isViewDropDown:function(){return viewConfiguration.wantedTemplate&&void 0!==viewConfiguration.wantedTemplate.data("view-data")},_getCurrentTemplateId(){var section=this._getTemplateSection();return null===section||"directory"===section?this.currentDirectoryTemplate:"single"===section?this.currentSingletemplate:""},_setCurrentTemplateId(template_id){var section=this._getTemplateSection();null!==section&&"directory"!==section||(this.currentDirectoryTemplate=template_id),null!==section&&"single"!==section||(this.currentSingletemplate=template_id)},_getTemplateId:function(use_base_template=!1){if(!viewConfiguration.wantedTemplate)return"";let template_id=viewConfiguration.wantedTemplate.data(use_base_template?"base-template":"templateid");return viewConfiguration._isViewDropDown()&&(template_id=viewConfiguration.wantedTemplate.val()),template_id},_getTemplateSection:function(){let section=null;return viewConfiguration._isViewDropDown()&&(section=viewConfiguration.wantedTemplate.data("section")),section},_restoreValue:function(){viewConfiguration._isViewDropDown()&&viewConfiguration.wantedTemplate.data("view-data").restoreValue()},_storeValue:function(){viewConfiguration.wantedTemplate&&(viewConfiguration._isViewDropDown()?viewConfiguration.wantedTemplate.data("view-data").storeValue():$("select[data-view-dropdown]").each(function(){$(this).data("view-data").storeValue()}),this._setCurrentTemplateId(this._getTemplateId()))},selectTemplate:function(slugmatch,currentTemplate){var selectedTemplateId,regexMatch,vcfg=viewConfiguration;void 0!==currentTemplate&&null===currentTemplate.section||(slugmatch.preventDefault(),slugmatch.stopImmediatePropagation(),vcfg.wantedTemplate=$(this),selectedTemplateId=vcfg._getTemplateId(),regexMatch=/(.*?)_(.*?)$/i,slugmatch=(currentTemplate=vcfg._getCurrentTemplateId()).replace(regexMatch,"$2"),slugmatch=selectedTemplateId.replace(regexMatch,"$2")===slugmatch,currentTemplate&&!slugmatch&&vcfg.getConfiguredFields().length?currentTemplate!==selectedTemplateId?vcfg.getConfiguredFields().length?vcfg.showDialog("#gravityview_switch_template_dialog"):(vcfg.toggleViewTypeMetabox(),vcfg.selectTemplateContinue(slugmatch)):(vcfg.toggleViewTypeMetabox(),vcfg.showViewConfig()):($("#gravityview_select_template").slideUp(150),vcfg.selectTemplateContinue(slugmatch),vcfg._storeValue()))},selectTemplateContinue:function(slugmatch){var vcfg=viewConfiguration,selectedTemplateId=vcfg._getTemplateId(),selectedFormId=vcfg.gvSelectForm.val(),changeAllSection=!vcfg._getTemplateSection();changeAllSection&&($parent=vcfg._getTemplateId(!0),$("#gravityview_directory_template").val($parent).trigger("change",{section:null}),$("#gravityview_single_template").val($parent).trigger("change",{section:null}));var $parent=vcfg.wantedTemplate.parents(".gv-view-types-module");$parent.parents(".gv-grid").find(".gv-view-types-module").removeClass("gv-selected"),$parent.addClass("gv-selected"),vcfg.waiting("start"),vcfg.startFreshStatus?Promise.all([vcfg.getAvailableFields("preset",selectedTemplateId),vcfg.getPresetFields(selectedTemplateId),vcfg.getSortableFields("preset",selectedTemplateId)]).then(function(){$(".ui-tabs-panel").each(function(){vcfg.init_droppables(this)})}):(!slugmatch||changeAllSection?vcfg.updateActiveAreas(selectedTemplateId,+selectedFormId):vcfg.waiting("stop"),changeAllSection&&(vcfg.gvSwitchView.fadeIn(150),vcfg.toggleViewTypeMetabox())),vcfg.currentTemplateId=selectedTemplateId,vcfg.setUnsavedChanges(!0)},server_request:(ajaxRoute,payload)=>{const defer=$.Deferred();viewConfiguration.performingAjaxAction=!0,$(".gv-view-template-notice").hide();var{_wpNonce:nonce,_wpAjaxAction:action,_wpAjaxUrl:url,ajaxRouter,frontendFoundationVersion}=window.gvGlobals.foundation_licenses_router;return $.post(url,{nonce:nonce,action:action,ajaxRouter:ajaxRouter,ajaxRoute:ajaxRoute,frontendFoundationVersion:frontendFoundationVersion,payload:payload}).fail(response=>defer.reject(response.responseText)).done(response=>{response.success?(viewConfiguration.performingAjaxAction=!1,defer.resolve(response)):defer.reject(response.data)}),defer.promise()},selectTemplateHover:function(on_success){const vcfg=viewConfiguration,$link=$(on_success.target),$parent=$link.parents(".gv-view-types-module");if($link.is("[rel=internal]")&&!$link.hasClass("gv-layout-activate")&&!$link.hasClass("gv-layout-install"))return!0;on_success.preventDefault(),on_success.stopImmediatePropagation();var on_fail=error=>{$(".gv-view-template-notice").show().find("p").html(error),document.querySelector(".gv-view-template-notice").scrollIntoView({behavior:"smooth"})},do_always=()=>{vcfg.performingAjaxAction=!1,$link.removeClass("disabled")},on_success=()=>{$parent.find(".gv-view-types-hover > div:eq(0)").hide(),$parent.find(".gv-view-types-hover > div:eq(1)").removeClass("hidden"),$parent.removeClass("gv-view-template-placeholder"),$parent.find("a.gv_select_template").attr("data-templateid",$link.data("templateid")).trigger("click")};return $link.hasClass("gv-layout-activate")?vcfg.performingAjaxAction?void 0:($link.addClass("disabled"),void $.when(vcfg.server_request("activate_product",{text_domain:$link.attr("data-template-text-domain")})).then(on_success).always(do_always).fail(on_fail)):$link.hasClass("gv-layout-install")?vcfg.performingAjaxAction?void 0:void $.when(vcfg.server_request("install_product",{id:$link.attr("data-download-id"),activate:!0})).then(on_success).always(do_always).fail(on_fail):void $(this).find(".gv_select_template").trigger("click")},enableLockedTemplate:function(e,data){const $option=$(data?.option)||null;var action=data?.action||null,payload={text_domain:$option.data("template-text-domain"),activate:!0},$spinner=$('');if("{}"!==JSON.stringify(payload)){const $pill=$(e.target),$item=$pill.closest(".view-dropdown-list-item");$pill.addClass("is-idle").html($spinner),$item.addClass("is-idle"),$.when(viewConfiguration.server_request(action+"_product",payload)).then(()=>{$pill.removeClass("has-failed");const $view_selectors=$("[data-view-dropdown]"),$options=$view_selectors.find('option[value="'+$option.val()+'"]');$options.attr("disabled",!1),$options.val($option.data("template-id")),$view_selectors.each((_,el)=>{const dropdown=$(el).viewDropdown();dropdown.renderOptions()}),data?.dropdown?.focusActive()}).fail(error=>{$pill.addClass("has-failed").text("Error"),console.log(error)}).always(()=>{$pill.removeClass("is-idle"),$item.removeClass("is-idle")})}},openExternalLinks:function(){return window.Beacon&&($(this).is("[data-beacon-article]")||$(this).is("[data-beacon-article-modal]")||$(this).is("[data-beacon-article-sidebar]")||$(this).is("[data-beacon-article-inline]"))||window.open(this.href),!1},previewTemplate:function(e){e.preventDefault(),e.stopImmediatePropagation();var parent=$(e.currentTarget).parents(".gv-view-types-module");parent.find(".gv-template-preview").dialog({dialogClass:"wp-dialog gv-dialog",appendTo:$("#gravityview_select_template"),width:viewConfiguration.dialogWidth,open:function(){$('
').prependTo("#wpwrap")},close:function(){$(this).dialog("option","appendTo",parent),$("#wpwrap").find("> .gv-overlay").fadeOut("fast",function(){$(this).remove()})},closeOnEscape:!0,buttons:[{text:gvGlobals.label_close,click:function(){$(this).dialog("close")}}]})},updateActiveAreas:function(template,data){var vcfg=viewConfiguration,data={action:"gv_get_active_areas",template_id:template,form_id:data,nonce:gvGlobals.nonce};return vcfg.updateViewConfig(data)},getPresetFields:function(data){var vcfg=viewConfiguration;$("#directory-active-fields, #single-active-fields").children().remove();data={action:"gv_get_preset_fields",template_id:data,nonce:gvGlobals.nonce};return vcfg.updateViewConfig(data)},updateViewConfig:function(data){return new Promise((resolve,reject)=>{const vcfg=viewConfiguration,section=vcfg._getTemplateSection(),update_directory="directory"===section||null===section,update_single="single"===section||null===section;update_directory&&$("#directory-active-fields").children().remove(),update_single&&$("#single-active-fields").children().remove(),$.post(ajaxurl,data,function(content){content&&(content=JSON.parse(content),update_directory&&($("#directory-header-widgets").html(content.header),$("#directory-footer-widgets").html(content.footer),$("#directory-active-fields").append(content.directory)),update_single&&$("#single-active-fields").append(content.single),vcfg.showViewConfig(),vcfg.waiting("stop"),$(document.body).trigger("gravityview/view-config-updated",content,section)),resolve()}),vcfg.setUnsavedChanges(!0)})},waiting:function(action){$containers=$("#wpwrap,.gv-fields"),"start"===action?$containers.addClass("gv-wait"):$containers.removeClass("gv-wait")},remove_tooltips:function(el){$(el||".gv-add-field").is(":ui-tooltip")&&$(".gv-add-field").gvTooltip("destroy").off("click")},init_tooltips:function(el){0!==$(el||".gv-add-field","#post").not(":ui-tooltip").length&&$(el||".gv-add-field","#post").gvTooltip({show:150,hide:200,content:function(){var context=$(this).attr("data-context"),formId=$(this).attr("data-formid")||$("#gravityview_form_id").val(),templateId=$("#gravityview_directory_template").val();switch($(this).attr("data-objecttype")){case"field":return $("#"+context+"-available-fields-"+(formId||templateId)).html();case"widget":return $("#directory-available-widgets").html()}},close:function(){$(this).attr("data-tooltip",null)},open:function(event,tooltip){$(this).attr("data-tooltip","active").attr("data-tooltip-id",$(this).attr("aria-describedby")),$focus_item=$("input[type=search]",tooltip.tooltip),$focus_item.length||($focus_item=$(tooltip.tooltip).find(".close").first());var activate_layout="list";$(tooltip).find(".gv-items-picker-container[data-layout]").length?activate_layout=$(tooltip).find(".gv-items-picker-container[data-layout]").attr("data-layout"):(layout_cookie=$.cookie("gv-items-picker-layout"),viewConfiguration.getCookieVal(layout_cookie)&&(activate_layout=layout_cookie)),viewConfiguration.setTooltipLayout(activate_layout),$focus_item.trigger("focus")},closeOnEscape:!0,disabled:!0,position:{my:"center bottom",at:"center top-12"},tooltipClass:"gravityview-item-picker-tooltip top"}).attr("title","").on("mouseout focusout",function(e){e.stopImmediatePropagation()}).on("click",function(e,data){$(this).attr("title",""),$(this).data("before",null),data?.before&&$(this).data("before",data.before),e.preventDefault(),$(this).gvTooltip("open")})},setupFieldFilters:function(e){var input=$(this).val().trim(),$tooltip=$(this).parents(".ui-tooltip-content"),$resultsNotFound=$tooltip.find(".gv-no-results");"keydown"!==e.type?($tooltip.find(".gv-fields").show().filter(function(){var match_title=$(this).find(".gv-field-label").attr("data-original-title").match(new RegExp(input,"i")),match_id=$(this).attr("data-fieldid").match(new RegExp(input,"i")),match_parent=!!$(this).attr("data-parent-label")&&$(this).attr("data-parent-label").match(new RegExp(input,"i"));return!match_title&&!match_id&&!match_parent}).hide(),$tooltip.find(".gv-fields:visible").length?$resultsNotFound.hide():$resultsNotFound.show()):$(this).attr("data-has-search",0{var vcfg=viewConfiguration;vcfg.toggleDropMessage(),vcfg.getConfiguredFields().remove();var data={action:"gv_available_fields",nonce:gvGlobals.nonce};data.form_preset_ids=void 0!==preset&&"preset"===preset?[templateid]:[vcfg.gvSelectForm.val()],$("#directory-available-fields-"+data.form_preset_ids[0]).length||$.post(ajaxurl,data,function(response){response.success||response.data||resolve(),$.each(response.data,function(context,markup){$("#"+context+"-fields").append(markup)}),resolve()})})},startAddField:function(e){$(this).has(".field-id-all-fields").length?viewConfiguration.addAllFields($(this)):viewConfiguration.addField($(this),e)},addAllFields:function(clicked){const fields=clicked.siblings(".gv-fields").filter(function(){var field_id=$(this).data("fieldid");return+field_id===parseInt(field_id,10)});!async function(){for(let i=0;inew Promise((resolve,reject)=>{$(document.body).one("gravityview/field-added",function(){resolve()}),$(el).trigger("click")}))(fields[i]);$("a.gv-add-field[data-tooltip='active']").gvTooltip("close")}()},addField:function(clicked,$before){$before.preventDefault();$before=clicked.closest(".ui-tooltip").attr("id");const $addButton=$('.gv-add-field[data-tooltip-id="'+$before+'"]');$before=$addButton.data("before");viewConfiguration.placeField(clicked,$addButton,$before,!!$before)},placeField:function($field,$addButton,$anchor,add_before_anchor=!1){const vcfg=viewConfiguration,$newField=$field.clone().hide();var data={action:"gv_field_options",template:$addButton.attr("data-templateid")??$addButton.parents(".gv-section").find(".view-template-select select").val()??$("#gravityview_directory_template").val(),area:$addButton.attr("data-areaid"),context:$addButton.attr("data-context"),field_id:$newField.attr("data-fieldid"),field_label:$newField.find(".gv-field-label").attr("data-original-title"),field_type:$addButton.attr("data-objecttype"),input_type:$newField.attr("data-inputtype"),form_id:parseInt($field.attr("data-formid"),10)||vcfg.currentFormId,nonce:gvGlobals.nonce};$.ajax({type:"POST",url:ajaxurl,data:data,async:!0,beforeSend:function(){vcfg.disable_publish()},complete:function(){vcfg.enable_publish()}}).done(function(response){var insert_method=/[^\[]+\[[^\]]+\]\[([^\]]+)\].*/i;if(0<$field.find("input.field-key").length){$newField.find(".gv-dialog, .gv-dialog-options").remove();const oldId=$field.find("input.field-key").attr("name").replace(insert_method,"$1"),newId=response.match(insert_method,"$1")[1]??null;response=$(response),$field.find(".gv-dialog-options :input").each(function(i,el){if($(el).attr("name")){const $fields=response.find('[name="'+$(el).attr("name").replaceAll(""+oldId,""+newId)+'"]');1===$fields.length?$fields.val($(el).val()):2===$fields.length&&$(el).is(":checked")&&$fields.prop("checked",!0)}})}$newField.append(response),$(".ui-tabs-panel").each(function(){vcfg.init_droppables(this)}),0<$(".gv-dialog-options",$newField).length&&$(".gv-field-settings",$newField).removeClass("hide-if-js"),$anchor?(insert_method=add_before_anchor?"insertBefore":"insertAfter",$newField[insert_method]($anchor)):$addButton.closest(".gv-droppable-area").find(".active-drop").append($newField),$(document.body).trigger("gravityview/field-added",$newField),$newField.fadeIn(100),vcfg.refreshGFtooltips()}).fail(function(jqXHR){vcfg.enable_publish(),alert(gvGlobals.field_loaderror),console.log(jqXHR)}).always(function(){vcfg.toggleDropMessage(),vcfg.setUnsavedChanges(!0)})},duplicateField:function($field){$field.preventDefault();$field=$(this).closest(".gv-fields");viewConfiguration.placeField($field,$(this).closest(".active-drop-container").find("a.gv-add-field"),$field)},refresh_merge_tags:function($source,onRefresh){let $merge_tag_supported=$source?$(".gv-merge-tag-support,.merge-tag-support",$source):$(".gv-merge-tag-support:visible");if($merge_tag_supported.removeClass("gv-merge-tag-support mt-initialized").addClass("merge-tag-support"),window.gform?.instances?.mergeTags)return $(".all-merge-tags",$source).remove(),document.dispatchEvent(new Event("DOMContentLoaded")),void setTimeout(function(){$merge_tag_supported.removeClass("merge-tag-support").addClass("gv-merge-tag-support"),onRefresh&&onRefresh()},300);"undefined"!=typeof form&&$(document.body).not(".gv-form-changed")&&0<=$merge_tag_supported.length&&(window.gfMergeTags&&($(".all-merge-tags:visible").remove(),gfMergeTags.hasOwnProperty("destroy")?$merge_tag_supported.each(function(){new gfMergeTagsObj(form,$(this))}):window.gfMergeTags=new gfMergeTagsObj(form)),$merge_tag_supported.removeClass("merge-tag-support").addClass("gv-merge-tag-support"),onRefresh&&onRefresh())},enable_publish:function(){$(document).trigger("autosave-enable-buttons.edit-post"),$("#publishing-action").find("#publish").prop("disabled",null).removeClass("button-primary-disabled")},disable_publish:function(){$(document).trigger("autosave-disable-buttons.edit-post"),$("#publishing-action").find("#publish").prop("disabled","disabled").addClass("button-primary-disabled")},init_droppables:function(panel){var vcfg;$(panel).find(".active-drop-field").sortable("instance")||(vcfg=viewConfiguration,$(panel).find(".active-drop-widget").sortable({placeholder:"fields-placeholder",items:"> .gv-fields",distance:2,revert:75,connectWith:".active-drop-widget",start:function(event,ui){$("#directory-fields, #single-fields").find(".active-drop-container-widget").addClass("is-receivable")},stop:function(event,ui){$("#directory-fields, #single-fields").find(".active-drop-container-widget").removeClass("is-receivable")},change:function(event,ui){vcfg.setUnsavedChanges(!0)},receive:function(event,ui){var sender_area=ui.sender.attr("data-areaid"),receiver_area=$(this).attr("data-areaid");ui.item.find('[name^="widgets['+sender_area+']"]').each(function(){var name=$(this).attr("name");$(this).attr("name",name.replace(sender_area,receiver_area))}),vcfg.toggleDropMessage()}}),$(panel).find(".active-drop-field").sortable({placeholder:"fields-placeholder",items:"> .gv-fields",distance:2,revert:75,connectWith:".active-drop-field",start:function(event,ui){$(panel).find(".active-drop-container-field").addClass("is-receivable")},stop:function(event,ui){$(panel).find(".active-drop-container-field").removeClass("is-receivable")},change:function(event,ui){vcfg.setUnsavedChanges(!0)},receive:function(event,ui){var sender_area,receiver_area;0",{name:"gv_fields",value:serialized_data,type:"hidden"})),setTimeout(function(){$post.data("gv-valid",!0),"click"===e.type?$(e.target).trigger("click"):$post.trigger("submit")},101),!1)},createPresetForm:function(e,data){var vcfg=viewConfiguration,$target=$(e.target);e.stopPropagation();data={action:"gv_set_preset_form",template_id:data,nonce:gvGlobals.nonce};return $.ajax({type:"POST",url:ajaxurl,data:data,async:!1,success:function(response){"false"!==response&&"0"!==response?(vcfg.startFreshStatus=!1,vcfg.gvSelectForm.find("option:selected").removeAttr("selected").end().append(response),"click"===e.type?$target.trigger("click"):$("#post").trigger("submit")):$target.before('

'+gvGlobals.label_publisherror+"

")}}),!1}},viewGeneralSettings={templateId:null,metaboxObj:null,init:function(){viewGeneralSettings.metaboxObj=$("#gravityview_settings"),viewGeneralSettings.initTabs(),$("#gravityview_directory_template").on("change",viewGeneralSettings.updateSettingsDisplay),$(document.body).on("gravityview/settings/tab/enable",viewGeneralSettings.enableSettingTab).on("gravityview/settings/tab/disable",viewGeneralSettings.disableSettingTab)},updateSettingsDisplay:function(){viewGeneralSettings.templateId=$(this).val(),$("tr[data-show-if]").each(viewGeneralSettings.toggleSetting)},toggleSetting:function(){var row=$(this),templates=row.attr("data-show-if");templates.length<1||!viewGeneralSettings.templateId||(0');$(document).on("click",".gk-gravityview-placeholder-actions [data-action]",function(payload){var action;payload.preventDefault(),viewConfiguration.hasUnsavedChanges&&!window.confirm(gvGlobals.discard_unsaved_changes)||$(this).hasClass("is-idle")||($(this).addClass("is-idle").html($spinner),action=$(this).data("action")+"_product",payload={text_domain:$(this).data("text-domain"),activate:!0},$.when(viewConfiguration.server_request(action,payload)).then(response=>{if(console.log(response),!response.success)throw new Error;document.location=document.location}).fail(()=>$(this).removeClass("is-idle").addClass("is-error").text("Try again")))})})}(jQuery); \ No newline at end of file +!function($){var viewConfiguration,viewGeneralSettings;$.widget.bridge("gvTooltip",$.ui.tooltip),viewConfiguration={startFreshStatus:!1,hasUnsavedChanges:!1,altKey:!1,dialogWidth:750,performingAjaxAction:!1,init:function(){var vcfg=viewConfiguration;vcfg.gvSelectForm=$("#gravityview_form_id"),vcfg.gvSwitchView=$("#gv_switch_view_button"),vcfg.currentFormId=vcfg.gvSelectForm.val(),vcfg.currentDirectoryTemplate=$("#gravityview_directory_template").val(),vcfg.currentSingletemplate=$("#gravityview_single_template").val(),vcfg.directAccessSelect=$("#gv-direct-access-select"),vcfg.toggleInitialVisibility(vcfg),$(document.body).on("keydown keyup",vcfg.altKeyListener).on("change","#gravityview_form_id",vcfg.formChange).on("click",'a[href="#gv_start_fresh"]',vcfg.startFresh).on("click","#publish, #save-post",vcfg.processFormSubmit).on("submit","#post",vcfg.processFormSubmit).on("click",".gv-view-types-hover",vcfg.selectTemplateHover).on("click","a[rel*=external]",vcfg.openExternalLinks).on("click mouseup keyup",vcfg.closeTooltips).on("click",'.gv-field-filter-form span[role="button"]',vcfg.switchTooltipLayout).on("click","#gv_switch_view_button",vcfg.switchView).on("click",".clear-all-fields",vcfg.removeAllFields).on("click",".gv_select_template",vcfg.selectTemplate).on("change","select[data-view-dropdown]",vcfg.selectTemplate).on("click",".ui-tooltip-content .gv-fields",vcfg.startAddField).on("click",".gv-add-field-before",function(){$(this).closest(".active-drop-container").find("a.gv-add-field").trigger("click",{before:$(this).closest(".gv-fields")})}).on("click",".gv-field-duplicate",vcfg.duplicateField).on("click","#gv-direct-access .edit-direct-access",vcfg.editDirectAccess).on("click","#gv-direct-access-select .cancel-direct-access",vcfg.cancelDirectAccess).on("click","#gv-direct-access-select .save-direct-access",vcfg.updateDirectAccess).on("gravityview_form_change",vcfg.updateFormLinks).on("gravityview_form_change",vcfg.updateWidgetFormIds).on("change",".gv-dialog-options input[name*=show_as_link]",vcfg.toggleShowAsEntry).on("change",".gv-dialog-options input[name*=only_loggedin]",vcfg.toggleCustomVisibility).on("change",".gv-dialog-options [name*=allow_edit_cap]",vcfg.toggleCustomVisibility).on("click",".gv-field-controls .gv-remove-field",vcfg.removeField).on("click",".gv-field-controls .gv-field-settings",vcfg.openFieldSettings).on("dblclick",".gv-fields:not(.gv-nonexistent-form-field)",vcfg.openFieldSettings).on("change","#gravityview_settings",vcfg.zebraStripeSettings).on("click",".gv-field-details--toggle",function(e){var $dialog=$(this).parents(".ui-dialog"),was_closed=$(".gv-field-details",$dialog).hasClass("gv-field-details--closed");return viewConfiguration.toggleFieldDetails($dialog,was_closed),$.cookie("gv-field-details-expanded",was_closed,{path:gvGlobals.admin_cookiepath}),!1}).on("search keydown keyup",".gv-field-filter-form input:visible",vcfg.setupFieldFilters).on("click",".gv-section .is-dismissible .notice-dismiss",function(e){var warning_name=$(this).parents(".gv-section").attr("id")+"-"+$("#post_ID").val();$.cookie("warning-dismissed-"+warning_name,1,{path:gvGlobals.admin_cookiepath}),$(document.body).trigger("gravityview/tabs-ready")}).on("gravityview/loaded gravityview/tabs-ready gravityview/field-added gravityview/field-removed gravityview/all-fields-removed gravityview/show-as-entry gravityview/view-config-updated",vcfg.toggleTabConfigurationWarnings).on("gravityview/loaded gravityview/tabs-ready gravityview/field-added gravityview/field-removed gravityview/all-fields-removed gravityview/show-as-entry gravityview/view-config-updated",vcfg.toggleRemoveAllFields).on("search keydown keyup",".gv-field-filter-form input:visible",vcfg.setupFieldFilters).on("gravityview/loaded",function(){$(".gv-setting-list, #gravityview_settings").on("change",vcfg.toggleCheckboxes).trigger("change")}).on("change",".gv-dialog-options",vcfg.toggleCheckboxes).on("focus",".gv-add-field",function(e){$(this).parent(".gv-fields").addClass("trigger--hover")}).on("blur",".gv-add-field",function(e){$(this).parent(".gv-fields").removeClass("trigger--hover")}).on("keydown",".gv-add-field",function(e){return 13!==e.keyCode&&32!==e.keyCode||void $(this).parent(".gv-fields").addClass("trigger--active")}).on("keyup",".gv-add-field",function(e){return 13!==e.keyCode&&32!==e.keyCode||void $(this).parent(".gv-fields").removeClass("trigger--active")}).on("gravityview/dropdown/activate gravityview/dropdown/install",vcfg.enableLockedTemplate),$(window).resize(function(){var $open_dialog=$(".ui-dialog:visible").find(".ui-dialog-content");$open_dialog.dialog("option","position",{my:"center",at:"center",of:window});var window_width=vcfg.dialogWidth,ninety_five_per=.95*$(window).width();vcfg.dialogWidth>ninety_five_per&&(window_width=ninety_five_per),$open_dialog.dialog("option","width",window_width)}),window.addEventListener("beforeunload",event=>{vcfg.hasUnsavedChanges&&event.preventDefault()}),gvGlobals.passed_form_id&&vcfg.gvSelectForm.trigger("change");var _sendToEditor=window.send_to_editor;window.send_to_editor=function(val){var cursorPosition=$("#"+window.wpActiveEditor);if(!cursorPosition.hasClass("codemirror")&&_sendToEditor)return _sendToEditor(val);var codeMirror=cursorPosition.next(".CodeMirror")[0].CodeMirror,cursorPosition=codeMirror.getCursor();codeMirror.replaceRange(val,window.wp.CodeMirror.Pos(cursorPosition.line,cursorPosition.ch))},$("div .gform-dropdown__trigger").on("click.gravityforms",vcfg.sendMergeTagValueToCodemirrorEditor)},getCookieVal:function(cookie){return!(!cookie||"undefined"===cookie||"false"===cookie)&&cookie},toggleTabConfigurationWarnings:function(e){var tabs={single:{configured:$(".gv-dialog-options input[name*=show_as_link]:checked","#directory-active-fields").length||$('[data-fieldid="entry_link"]',"#directory-active-fields").length,icon:"dashicons-media-default"},edit:{configured:$('.gv-fields .field-key[value="edit_link"]').length,icon:"dashicons-welcome-write-blog"}};$.each(tabs,function(index,value){var show_warning=index+"-fields-"+$("#post_ID").val(),dismissed_warning=viewConfiguration.getCookieVal($.cookie("warning-dismissed-"+show_warning));const $fields_section=$("#"+index+"-fields");show_warning=$fields_section.find(".active-drop .gv-fields").length,show_warning=!dismissed_warning&&0===value.configured&&0vcfg.dialogWidth?vcfg.dialogWidth:$(window).width()-10},open:function(){return $('
').prependTo("#wpwrap"),vcfg.toggleCheckboxes(thisDialog),vcfg.setupFieldDetails(thisDialog),vcfg.refresh_merge_tags(thisDialog,function(){vcfg.setupCodeMirror(thisDialog)}),$sortableEls=$('.ui-widget-content[aria-hidden="false"]').find(".active-drop-widget, .active-drop-field"),$sortableEls.length&&$sortableEls.each((i,el)=>{$(el).hasClass("ui-sortable")&&$(el).sortable("disable")}),!0},close:function(e){e.preventDefault(),$("textarea.code",thisDialog).each(function(){$CodeMirror=$(this).next(".CodeMirror"),0!==$CodeMirror.length&&$CodeMirror[0].hasOwnProperty("CodeMirror")&&$CodeMirror[0].CodeMirror.toTextArea()}),thisDialog.find(".merge-tag-support").removeClass("merge-tag-support").addClass("gv-merge-tag-support"),$(".gv-field-settings.active","#gravityview_view_config").removeClass("active"),vcfg.setCustomLabel(thisDialog),$("#wpwrap").find("> .gv-overlay").fadeOut("fast",function(){$(this).remove()}),$sortableEls=$('.ui-widget-content[aria-hidden="false"]').find(".active-drop-widget, .active-drop-field"),$sortableEls.length&&$sortableEls.each((i,el)=>{$(el).hasClass("ui-sortable")&&$(el).sortable("enable")}),vcfg._restoreValue(),$(document.body).trigger("gravityview/dialog-closed",thisDialog)},closeOnEscape:!0,buttons:buttons})},setupCodeMirror:function(dialog){var vcfg=viewConfiguration;$("textarea.code:visible",dialog).each(function(){const codemirrorConfig=$.extend(!0,{},wp.codeEditor.defaultSettings);var $textarea,editorId,mergeTag,initialEditorCursorPos,$autocompleteEl,closeAutocompletion,mergeTags=$(this).data("codemirror");mergeTags&&(codemirrorConfig.codemirror=$.extend({},codemirrorConfig.codemirror,mergeTags));let editor=wp.codeEditor.initialize($(this),codemirrorConfig);($(this).hasClass("merge-tag-support")||$(this).hasClass("gv-merge-tag-support"))&&(editor.codemirror.setSize("95%"),$textarea=$(this),editorId=$textarea.attr("id"),mergeTags=window.gfMergeTags.getAutoCompleteMergeTags($textarea),mergeTag="",initialEditorCursorPos=editor.codemirror.getCursor(),$textarea.parent().find(".all-merge-tags").detach().insertBefore($textarea),$textarea.parent().find("div .gform-dropdown__trigger").on("click.gravityforms",vcfg.sendMergeTagValueToCodemirrorEditor),$textarea.autocomplete({appendTo:$textarea.parent(),minLength:1,position:{my:"center top",at:"center bottom",collision:"none"},source:mergeTags,select:function(event,currentEditorCursorPos){var val=currentEditorCursorPos.item.value.replace(/^{|}$/gm,""),currentEditorCursorPos=editor.codemirror.getCursor();editor.codemirror.replaceRange(val,initialEditorCursorPos,window.wp.CodeMirror.Pos(currentEditorCursorPos.line,currentEditorCursorPos.ch)),editor.codemirror.focus(),editor.codemirror.setCursor(window.wp.CodeMirror.Pos(currentEditorCursorPos.line,currentEditorCursorPos.ch+val.length+1))}}),$autocompleteEl=$textarea.parent().find("ul.ui-autocomplete"),closeAutocompletion=function(){$("#"+editorId).autocomplete("close")},$(document.body).on("keyup",function(e){$autocompleteEl.is(":visible")&&27===e.which&&(e.preventDefault(),closeAutocompletion(),$textarea.focus())}),editor.codemirror.on("mousedown",function(){closeAutocompletion()}),editor.codemirror.on("keydown",function(el,e){$autocompleteEl.is(":visible")&&(38!==e.which&&40!==e.which&&13!==e.which||($autocompleteEl.not(":focus")&&$autocompleteEl.focus(),e.preventDefault()))}),editor.codemirror.on("change",function(e,currentEditorCursorPos){"{}"===currentEditorCursorPos.text[0]&&(initialEditorCursorPos=editor.codemirror.getCursor());currentEditorCursorPos=editor.codemirror.getCursor();"{"!==(mergeTag=editor.codemirror.getRange({ch:initialEditorCursorPos.ch-1,line:initialEditorCursorPos.line},currentEditorCursorPos))[0]?closeAutocompletion():$("#"+editorId).autocomplete("search",mergeTag)}))})},sendMergeTagValueToCodemirrorEditor:function(e){var _activeEditorBackup=window.wpActiveEditor;window.wpActiveEditor=$(e.currentTarget).parentsUntil(".gv-setting-container").find("textarea").attr("id"),window.wpActiveEditor&&window.send_to_editor($(this).data("value")),window.wpActiveEditor=_activeEditorBackup},setupFieldDetails:function(dialog){$(".gv-field-details--container",dialog).insertAfter(".ui-dialog-title:visible");var show_details=$.cookie("gv-field-details-expanded"),show_details=viewConfiguration.getCookieVal(show_details);viewConfiguration.toggleFieldDetails(dialog,show_details),viewConfiguration.migrateSurveyScore(dialog)},migrateSurveyScore:function($dialog){var $score;0===$dialog.parents('[data-inputtype="survey"]').length||($score=$dialog.find(".gv-setting-container-score input"))&&0!=+$score.val()&&$dialog.find('.gv-setting-container-choice_display input[value="score"]').trigger("click").trigger("focus")},toggleFieldDetails:function($dialog,show_details){$parent=$dialog.parent(),$parent.find(".gv-field-details").toggleClass("gv-field-details--closed",!show_details).end().find(".gv-field-details--toggle .dashicons").toggleClass("dashicons-arrow-down",!!show_details).toggleClass("dashicons-arrow-right",!show_details).end()},setCustomLabel:function($label){var custom_label_text=$("[name*=admin_label]",$label),custom_label_text=custom_label_text.length&&custom_label_text.val()?custom_label_text:$("[name*=custom_label]",$label),$label=$label.parents(".gv-fields").find(".gv-field-label-text-container");custom_label_text.length&&(0<(custom_label_text=custom_label_text.val().trim()).length?$label.html(custom_label_text):$label.html($label.attr("data-original-title")))},getSortableFields:function(context,id){return new Promise((resolve,reject)=>{var vcfg=viewConfiguration;$(".gravityview_sort_field").prop("disabled","disabled").empty().append("");var data={action:"gv_sortable_fields_form",nonce:gvGlobals.nonce};void 0!==context&&"preset"===context?data.template_id=id:data.form_id=vcfg.gvSelectForm.val(),$.post(ajaxurl,data,function(response){"false"!==response&&"0"!==response&&$(".gravityview_sort_field").empty().append(response).prop("disabled",null),resolve()})})},hideViewConfig:function(){$("#gravityview_view_config").slideUp(150),$(document).trigger("gv_admin_views_hideViewConfig")},showViewConfig:function(){$("#gravityview_view_config").slideDown(150),viewGeneralSettings.metaboxObj.show(),viewConfiguration.toggleDropMessage(),viewConfiguration.init_tooltips(),$(document).trigger("gv_admin_views_showViewConfig")},switchView:function(vcfg){vcfg.preventDefault(),vcfg.stopImmediatePropagation();vcfg=viewConfiguration;vcfg.templateFilter("custom"),vcfg.toggleViewTypeMetabox()},templateFilter:function(templateType){$(".gv-view-types-module").each(function(){$(this).attr("data-filter")===templateType?$(this).parent().show():$(this).parent().hide()})},_isViewDropDown:function(){return viewConfiguration.wantedTemplate&&void 0!==viewConfiguration.wantedTemplate.data("view-data")},_getCurrentTemplateId(){var section=this._getTemplateSection();return null===section||"directory"===section?this.currentDirectoryTemplate:"single"===section?this.currentSingletemplate:""},_setCurrentTemplateId(template_id){var section=this._getTemplateSection();null!==section&&"directory"!==section||(this.currentDirectoryTemplate=template_id),null!==section&&"single"!==section||(this.currentSingletemplate=template_id)},_getTemplateId:function(use_base_template=!1){if(!viewConfiguration.wantedTemplate)return"";let template_id=viewConfiguration.wantedTemplate.data(use_base_template?"base-template":"templateid");return viewConfiguration._isViewDropDown()&&(template_id=viewConfiguration.wantedTemplate.val()),template_id},_getTemplateSection:function(){let section=null;return viewConfiguration._isViewDropDown()&&(section=viewConfiguration.wantedTemplate.data("section")),section},_restoreValue:function(){viewConfiguration._isViewDropDown()&&viewConfiguration.wantedTemplate.data("view-data").restoreValue()},_storeValue:function(){viewConfiguration.wantedTemplate&&(viewConfiguration._isViewDropDown()?viewConfiguration.wantedTemplate.data("view-data").storeValue():$("select[data-view-dropdown]").each(function(){$(this).data("view-data").storeValue()}),this._setCurrentTemplateId(this._getTemplateId()))},selectTemplate:function(slugmatch,currentTemplate){var selectedTemplateId,regexMatch,vcfg=viewConfiguration;void 0!==currentTemplate&&null===currentTemplate.section||(slugmatch.preventDefault(),slugmatch.stopImmediatePropagation(),vcfg.wantedTemplate=$(this),selectedTemplateId=vcfg._getTemplateId(),regexMatch=/(.*?)_(.*?)$/i,slugmatch=(currentTemplate=vcfg._getCurrentTemplateId()).replace(regexMatch,"$2"),slugmatch=selectedTemplateId.replace(regexMatch,"$2")===slugmatch,currentTemplate&&!slugmatch&&vcfg.getConfiguredFields().length?currentTemplate!==selectedTemplateId?vcfg.getConfiguredFields().length?vcfg.showDialog("#gravityview_switch_template_dialog"):(vcfg.toggleViewTypeMetabox(),vcfg.selectTemplateContinue(slugmatch)):(vcfg.toggleViewTypeMetabox(),vcfg.showViewConfig()):($("#gravityview_select_template").slideUp(150),vcfg.selectTemplateContinue(slugmatch),vcfg._storeValue()))},selectTemplateContinue:function(slugmatch){var vcfg=viewConfiguration,selectedTemplateId=vcfg._getTemplateId(),selectedFormId=vcfg.gvSelectForm.val(),changeAllSection=!vcfg._getTemplateSection();changeAllSection&&($parent=vcfg._getTemplateId(!0),$("#gravityview_directory_template").val($parent).trigger("change",{section:null}),$("#gravityview_single_template").val($parent).trigger("change",{section:null}));var $parent=vcfg.wantedTemplate.parents(".gv-view-types-module");$parent.parents(".gv-grid").find(".gv-view-types-module").removeClass("gv-selected"),$parent.addClass("gv-selected"),vcfg.waiting("start"),vcfg.startFreshStatus?Promise.all([vcfg.getAvailableFields("preset",selectedTemplateId),vcfg.getPresetFields(selectedTemplateId),vcfg.getSortableFields("preset",selectedTemplateId)]).then(function(){$(".ui-tabs-panel").each(function(){vcfg.init_droppables(this)})}):(!slugmatch||changeAllSection?vcfg.updateActiveAreas(selectedTemplateId,+selectedFormId):vcfg.waiting("stop"),changeAllSection&&(vcfg.gvSwitchView.fadeIn(150),vcfg.toggleViewTypeMetabox())),vcfg.currentTemplateId=selectedTemplateId,vcfg.setUnsavedChanges(!0)},server_request:(ajaxRoute,payload)=>{const defer=$.Deferred();viewConfiguration.performingAjaxAction=!0,$(".gv-view-template-notice").hide();var{_wpNonce:nonce,_wpAjaxAction:action,_wpAjaxUrl:url,ajaxRouter,frontendFoundationVersion}=window.gvGlobals.foundation_licenses_router;return $.post(url,{nonce:nonce,action:action,ajaxRouter:ajaxRouter,ajaxRoute:ajaxRoute,frontendFoundationVersion:frontendFoundationVersion,payload:payload}).fail(response=>defer.reject(response.responseText)).done(response=>{response.success?(viewConfiguration.performingAjaxAction=!1,defer.resolve(response)):defer.reject(response.data)}),defer.promise()},selectTemplateHover:function(on_success){const vcfg=viewConfiguration,$link=$(on_success.target),$parent=$link.parents(".gv-view-types-module");if($link.is("[rel=internal]")&&!$link.hasClass("gv-layout-activate")&&!$link.hasClass("gv-layout-install"))return!0;on_success.preventDefault(),on_success.stopImmediatePropagation();var on_fail=error=>{$(".gv-view-template-notice").show().find("p").html(error),document.querySelector(".gv-view-template-notice").scrollIntoView({behavior:"smooth"})},do_always=()=>{vcfg.performingAjaxAction=!1,$link.removeClass("disabled")},on_success=()=>{$parent.find(".gv-view-types-hover > div:eq(0)").hide(),$parent.find(".gv-view-types-hover > div:eq(1)").removeClass("hidden"),$parent.removeClass("gv-view-template-placeholder"),$parent.find("a.gv_select_template").attr("data-templateid",$link.data("templateid")).trigger("click")};return $link.hasClass("gv-layout-activate")?vcfg.performingAjaxAction?void 0:($link.addClass("disabled"),void $.when(vcfg.server_request("activate_product",{text_domain:$link.attr("data-template-text-domain")})).then(on_success).always(do_always).fail(on_fail)):$link.hasClass("gv-layout-install")?vcfg.performingAjaxAction?void 0:void $.when(vcfg.server_request("install_product",{id:$link.attr("data-download-id"),text_domain:$link.attr("data-template-text-domain"),activate:!0})).then(on_success).always(do_always).fail(on_fail):void $(this).find(".gv_select_template").trigger("click")},enableLockedTemplate:function(e,data){const $option=$(data?.option)||null;var action=data?.action||null,payload={text_domain:$option.data("template-text-domain"),activate:!0},$spinner=$('');if("{}"!==JSON.stringify(payload)){const $pill=$(e.target),$item=$pill.closest(".view-dropdown-list-item");$pill.addClass("is-idle").html($spinner),$item.addClass("is-idle"),$.when(viewConfiguration.server_request(action+"_product",payload)).then(()=>{$pill.removeClass("has-failed");const $view_selectors=$("[data-view-dropdown]"),$options=$view_selectors.find('option[value="'+$option.val()+'"]');$options.attr("disabled",!1),$options.val($option.data("template-id")),$view_selectors.each((_,el)=>{const dropdown=$(el).viewDropdown();dropdown.renderOptions()}),data?.dropdown?.focusActive()}).fail(error=>{$pill.addClass("has-failed").text("Error"),console.log(error)}).always(()=>{$pill.removeClass("is-idle"),$item.removeClass("is-idle")})}},openExternalLinks:function(){return window.Beacon&&($(this).is("[data-beacon-article]")||$(this).is("[data-beacon-article-modal]")||$(this).is("[data-beacon-article-sidebar]")||$(this).is("[data-beacon-article-inline]"))||window.open(this.href),!1},previewTemplate:function(e){e.preventDefault(),e.stopImmediatePropagation();var parent=$(e.currentTarget).parents(".gv-view-types-module");parent.find(".gv-template-preview").dialog({dialogClass:"wp-dialog gv-dialog",appendTo:$("#gravityview_select_template"),width:viewConfiguration.dialogWidth,open:function(){$('
').prependTo("#wpwrap")},close:function(){$(this).dialog("option","appendTo",parent),$("#wpwrap").find("> .gv-overlay").fadeOut("fast",function(){$(this).remove()})},closeOnEscape:!0,buttons:[{text:gvGlobals.label_close,click:function(){$(this).dialog("close")}}]})},updateActiveAreas:function(template,data){var vcfg=viewConfiguration,data={action:"gv_get_active_areas",template_id:template,form_id:data,nonce:gvGlobals.nonce};return vcfg.updateViewConfig(data)},getPresetFields:function(data){var vcfg=viewConfiguration;$("#directory-active-fields, #single-active-fields").children().remove();data={action:"gv_get_preset_fields",template_id:data,nonce:gvGlobals.nonce};return vcfg.updateViewConfig(data)},updateViewConfig:function(data){return new Promise((resolve,reject)=>{const vcfg=viewConfiguration,section=vcfg._getTemplateSection(),update_directory="directory"===section||null===section,update_single="single"===section||null===section;update_directory&&$("#directory-active-fields").children().remove(),update_single&&$("#single-active-fields").children().remove(),$.post(ajaxurl,data,function(content){content&&(content=JSON.parse(content),update_directory&&($("#directory-header-widgets").html(content.header),$("#directory-footer-widgets").html(content.footer),$("#directory-active-fields").append(content.directory)),update_single&&$("#single-active-fields").append(content.single),vcfg.showViewConfig(),vcfg.waiting("stop"),$(document.body).trigger("gravityview/view-config-updated",content,section)),resolve()}),vcfg.setUnsavedChanges(!0)})},waiting:function(action){$containers=$("#wpwrap,.gv-fields"),"start"===action?$containers.addClass("gv-wait"):$containers.removeClass("gv-wait")},remove_tooltips:function(el){$(el||".gv-add-field").is(":ui-tooltip")&&$(".gv-add-field").gvTooltip("destroy").off("click")},init_tooltips:function(el){0!==$(el||".gv-add-field","#post").not(":ui-tooltip").length&&$(el||".gv-add-field","#post").gvTooltip({show:150,hide:200,content:function(){var context=$(this).attr("data-context"),formId=$(this).attr("data-formid")||$("#gravityview_form_id").val(),templateId=$("#gravityview_directory_template").val();switch($(this).attr("data-objecttype")){case"field":return $("#"+context+"-available-fields-"+(formId||templateId)).html();case"widget":return $("#directory-available-widgets").html()}},close:function(){$(this).attr("data-tooltip",null)},open:function(event,tooltip){$(this).attr("data-tooltip","active").attr("data-tooltip-id",$(this).attr("aria-describedby")),$focus_item=$("input[type=search]",tooltip.tooltip),$focus_item.length||($focus_item=$(tooltip.tooltip).find(".close").first());var activate_layout="list";$(tooltip).find(".gv-items-picker-container[data-layout]").length?activate_layout=$(tooltip).find(".gv-items-picker-container[data-layout]").attr("data-layout"):(layout_cookie=$.cookie("gv-items-picker-layout"),viewConfiguration.getCookieVal(layout_cookie)&&(activate_layout=layout_cookie)),viewConfiguration.setTooltipLayout(activate_layout),$focus_item.trigger("focus")},closeOnEscape:!0,disabled:!0,position:{my:"center bottom",at:"center top-12"},tooltipClass:"gravityview-item-picker-tooltip top"}).attr("title","").on("mouseout focusout",function(e){e.stopImmediatePropagation()}).on("click",function(e,data){$(this).attr("title",""),$(this).data("before",null),data?.before&&$(this).data("before",data.before),e.preventDefault(),$(this).gvTooltip("open")})},setupFieldFilters:function(e){var input=$(this).val().trim(),$tooltip=$(this).parents(".ui-tooltip-content"),$resultsNotFound=$tooltip.find(".gv-no-results");"keydown"!==e.type?($tooltip.find(".gv-fields").show().filter(function(){var match_title=$(this).find(".gv-field-label").attr("data-original-title").match(new RegExp(input,"i")),match_id=$(this).attr("data-fieldid").match(new RegExp(input,"i")),match_parent=!!$(this).attr("data-parent-label")&&$(this).attr("data-parent-label").match(new RegExp(input,"i"));return!match_title&&!match_id&&!match_parent}).hide(),$tooltip.find(".gv-fields:visible").length?$resultsNotFound.hide():$resultsNotFound.show()):$(this).attr("data-has-search",0{var vcfg=viewConfiguration;vcfg.toggleDropMessage(),vcfg.getConfiguredFields().remove();var data={action:"gv_available_fields",nonce:gvGlobals.nonce};data.form_preset_ids=void 0!==preset&&"preset"===preset?[templateid]:[vcfg.gvSelectForm.val()],$("#directory-available-fields-"+data.form_preset_ids[0]).length||$.post(ajaxurl,data,function(response){response.success||response.data||resolve(),$.each(response.data,function(context,markup){$("#"+context+"-fields").append(markup)}),resolve()})})},startAddField:function(e){$(this).has(".field-id-all-fields").length?viewConfiguration.addAllFields($(this)):viewConfiguration.addField($(this),e)},addAllFields:function(clicked){const fields=clicked.siblings(".gv-fields").filter(function(){var field_id=$(this).data("fieldid");return+field_id===parseInt(field_id,10)});!async function(){for(let i=0;inew Promise((resolve,reject)=>{$(document.body).one("gravityview/field-added",function(){resolve()}),$(el).trigger("click")}))(fields[i]);$("a.gv-add-field[data-tooltip='active']").gvTooltip("close")}()},addField:function(clicked,$before){$before.preventDefault();$before=clicked.closest(".ui-tooltip").attr("id");const $addButton=$('.gv-add-field[data-tooltip-id="'+$before+'"]');$before=$addButton.data("before");viewConfiguration.placeField(clicked,$addButton,$before,!!$before)},placeField:function($field,$addButton,$anchor,add_before_anchor=!1){const vcfg=viewConfiguration,$newField=$field.clone().hide();var data={action:"gv_field_options",template:$addButton.attr("data-templateid")??$addButton.parents(".gv-section").find(".view-template-select select").val()??$("#gravityview_directory_template").val(),area:$addButton.attr("data-areaid"),context:$addButton.attr("data-context"),field_id:$newField.attr("data-fieldid"),field_label:$newField.find(".gv-field-label").attr("data-original-title"),field_type:$addButton.attr("data-objecttype"),input_type:$newField.attr("data-inputtype"),form_id:parseInt($field.attr("data-formid"),10)||vcfg.currentFormId,nonce:gvGlobals.nonce};$.ajax({type:"POST",url:ajaxurl,data:data,async:!0,beforeSend:function(){vcfg.disable_publish()},complete:function(){vcfg.enable_publish()}}).done(function(response){var insert_method=/[^\[]+\[[^\]]+\]\[([^\]]+)\].*/i;if(0<$field.find("input.field-key").length){$newField.find(".gv-dialog, .gv-dialog-options").remove();const oldId=$field.find("input.field-key").attr("name").replace(insert_method,"$1"),newId=response.match(insert_method,"$1")[1]??null;response=$(response),$field.find(".gv-dialog-options :input").each(function(i,el){if($(el).attr("name")){const $fields=response.find('[name="'+$(el).attr("name").replaceAll(""+oldId,""+newId)+'"]');1===$fields.length?$fields.val($(el).val()):2===$fields.length&&$(el).is(":checked")&&$fields.prop("checked",!0)}})}$newField.append(response),$(".ui-tabs-panel").each(function(){vcfg.init_droppables(this)}),0<$(".gv-dialog-options",$newField).length&&$(".gv-field-settings",$newField).removeClass("hide-if-js"),$anchor?(insert_method=add_before_anchor?"insertBefore":"insertAfter",$newField[insert_method]($anchor)):$addButton.closest(".gv-droppable-area").find(".active-drop").append($newField),$(document.body).trigger("gravityview/field-added",$newField),$newField.fadeIn(100),vcfg.refreshGFtooltips()}).fail(function(jqXHR){vcfg.enable_publish(),alert(gvGlobals.field_loaderror),console.log(jqXHR)}).always(function(){vcfg.toggleDropMessage(),vcfg.setUnsavedChanges(!0)})},duplicateField:function($field){$field.preventDefault();$field=$(this).closest(".gv-fields");viewConfiguration.placeField($field,$(this).closest(".active-drop-container").find("a.gv-add-field"),$field)},refresh_merge_tags:function($source,onRefresh){let $merge_tag_supported=$source?$(".gv-merge-tag-support,.merge-tag-support",$source):$(".gv-merge-tag-support:visible");if($merge_tag_supported.removeClass("gv-merge-tag-support mt-initialized").addClass("merge-tag-support"),window.gform?.instances?.mergeTags)return $(".all-merge-tags",$source).remove(),document.dispatchEvent(new Event("DOMContentLoaded")),void setTimeout(function(){$merge_tag_supported.removeClass("merge-tag-support").addClass("gv-merge-tag-support"),onRefresh&&onRefresh()},300);"undefined"!=typeof form&&$(document.body).not(".gv-form-changed")&&0<=$merge_tag_supported.length&&(window.gfMergeTags&&($(".all-merge-tags:visible").remove(),gfMergeTags.hasOwnProperty("destroy")?$merge_tag_supported.each(function(){new gfMergeTagsObj(form,$(this))}):window.gfMergeTags=new gfMergeTagsObj(form)),$merge_tag_supported.removeClass("merge-tag-support").addClass("gv-merge-tag-support"),onRefresh&&onRefresh())},enable_publish:function(){$(document).trigger("autosave-enable-buttons.edit-post"),$("#publishing-action").find("#publish").prop("disabled",null).removeClass("button-primary-disabled")},disable_publish:function(){$(document).trigger("autosave-disable-buttons.edit-post"),$("#publishing-action").find("#publish").prop("disabled","disabled").addClass("button-primary-disabled")},init_droppables:function(panel){var vcfg;$(panel).find(".active-drop-field").sortable("instance")||(vcfg=viewConfiguration,$(panel).find(".active-drop-widget").sortable({placeholder:"fields-placeholder",items:"> .gv-fields",distance:2,revert:75,connectWith:".active-drop-widget",start:function(event,ui){$("#directory-fields, #single-fields").find(".active-drop-container-widget").addClass("is-receivable")},stop:function(event,ui){$("#directory-fields, #single-fields").find(".active-drop-container-widget").removeClass("is-receivable")},change:function(event,ui){vcfg.setUnsavedChanges(!0)},receive:function(event,ui){var sender_area=ui.sender.attr("data-areaid"),receiver_area=$(this).attr("data-areaid");ui.item.find('[name^="widgets['+sender_area+']"]').each(function(){var name=$(this).attr("name");$(this).attr("name",name.replace(sender_area,receiver_area))}),vcfg.toggleDropMessage()}}),$(panel).find(".active-drop-field").sortable({placeholder:"fields-placeholder",items:"> .gv-fields",distance:2,revert:75,connectWith:".active-drop-field",start:function(event,ui){$(panel).find(".active-drop-container-field").addClass("is-receivable")},stop:function(event,ui){$(panel).find(".active-drop-container-field").removeClass("is-receivable")},change:function(event,ui){vcfg.setUnsavedChanges(!0)},receive:function(event,ui){var sender_area,receiver_area;0",{name:"gv_fields",value:serialized_data,type:"hidden"})),setTimeout(function(){$post.data("gv-valid",!0),"click"===e.type?$(e.target).trigger("click"):$post.trigger("submit")},101),!1)},createPresetForm:function(e,data){var vcfg=viewConfiguration,$target=$(e.target);e.stopPropagation();data={action:"gv_set_preset_form",template_id:data,nonce:gvGlobals.nonce};return $.ajax({type:"POST",url:ajaxurl,data:data,async:!1,success:function(response){"false"!==response&&"0"!==response?(vcfg.startFreshStatus=!1,vcfg.gvSelectForm.find("option:selected").removeAttr("selected").end().append(response),"click"===e.type?$target.trigger("click"):$("#post").trigger("submit")):$target.before('

'+gvGlobals.label_publisherror+"

")}}),!1}},viewGeneralSettings={templateId:null,metaboxObj:null,init:function(){viewGeneralSettings.metaboxObj=$("#gravityview_settings"),viewGeneralSettings.initTabs(),$("#gravityview_directory_template").on("change",viewGeneralSettings.updateSettingsDisplay),$(document.body).on("gravityview/settings/tab/enable",viewGeneralSettings.enableSettingTab).on("gravityview/settings/tab/disable",viewGeneralSettings.disableSettingTab)},updateSettingsDisplay:function(){viewGeneralSettings.templateId=$(this).val(),$("tr[data-show-if]").each(viewGeneralSettings.toggleSetting)},toggleSetting:function(){var row=$(this),templates=row.attr("data-show-if");templates.length<1||!viewGeneralSettings.templateId||(0');$(document).on("click",".gk-gravityview-placeholder-actions [data-action]",function(payload){var action;payload.preventDefault(),viewConfiguration.hasUnsavedChanges&&!window.confirm(gvGlobals.discard_unsaved_changes)||$(this).hasClass("is-idle")||($(this).addClass("is-idle").html($spinner),action=$(this).data("action")+"_product",payload={text_domain:$(this).data("text-domain"),activate:!0},$.when(viewConfiguration.server_request(action,payload)).then(response=>{if(console.log(response),!response.success)throw new Error;document.location=document.location}).fail(()=>$(this).removeClass("is-idle").addClass("is-error").text("Try again")))})})}(jQuery); \ No newline at end of file diff --git a/composer.lock b/composer.lock index 0de440b77f..d25a327332 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "604d558ca30260f2d1f1d62d8bd13600", + "content-hash": "e56545ec20e762d9f700ff2434772a3c", "packages": [ { "name": "doctrine/inflector", @@ -237,12 +237,12 @@ "source": { "type": "git", "url": "git@github.com:GravityKit/Foundation.git", - "reference": "bc93c59a099e9b367cb6e3e562b25dbaec64a924" + "reference": "ada291cc355f669f142935a11cb99a8ba60f29d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GravityKit/Foundation/zipball/bc93c59a099e9b367cb6e3e562b25dbaec64a924", - "reference": "bc93c59a099e9b367cb6e3e562b25dbaec64a924", + "url": "https://api.github.com/repos/GravityKit/Foundation/zipball/ada291cc355f669f142935a11cb99a8ba60f29d8", + "reference": "ada291cc355f669f142935a11cb99a8ba60f29d8", "shasum": "" }, "require": { @@ -263,7 +263,6 @@ "phpcompatibility/phpcompatibility-wp": "*", "wp-coding-standards/wpcs": "^2.3" }, - "default-branch": true, "type": "library", "extra": { "strauss": { @@ -299,6 +298,9 @@ "prefix_vendor": [ "@php tools/strauss.phar" ], + "test:unit": [ + "vendor/bin/pest --group=unit" + ], "post_update_install": [ "./composer_post_update_install.sh" ], @@ -323,10 +325,10 @@ } ], "support": { - "source": "https://github.com/GravityKit/Foundation/tree/v1.2.17", + "source": "https://github.com/GravityKit/Foundation/tree/develop", "issues": "https://github.com/GravityKit/Foundation/issues" }, - "time": "2024-07-22T23:20:16+00:00" + "time": "2024-08-28T15:11:21+00:00" }, { "name": "illuminate/container", @@ -1106,16 +1108,16 @@ }, { "name": "trustedlogin/client", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/trustedlogin/client.git", - "reference": "3ba476906afe0b98f551f080ee0cd92d5d9c8830" + "reference": "b913058ae57b512a7766f449ab8d55952500fe72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/trustedlogin/client/zipball/3ba476906afe0b98f551f080ee0cd92d5d9c8830", - "reference": "3ba476906afe0b98f551f080ee0cd92d5d9c8830", + "url": "https://api.github.com/repos/trustedlogin/client/zipball/b913058ae57b512a7766f449ab8d55952500fe72", + "reference": "b913058ae57b512a7766f449ab8d55952500fe72", "shasum": "" }, "require-dev": { @@ -1159,9 +1161,9 @@ ], "support": { "issues": "https://github.com/trustedlogin/client/issues", - "source": "https://github.com/trustedlogin/client/tree/v1.8.0" + "source": "https://github.com/trustedlogin/client/tree/v1.9.0" }, - "time": "2024-07-18T15:45:05+00:00" + "time": "2024-08-26T01:13:42+00:00" } ], "packages-dev": [ @@ -9466,7 +9468,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.2.0", + "php": ">=7.4.0", "ext-json": "*", "ext-openssl": "*" }, diff --git a/translations.pot b/translations.pot index 5d99f26023..bab45a287c 100644 --- a/translations.pot +++ b/translations.pot @@ -9,14 +9,13 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2024-08-14T12:16:03+00:00\n" +"POT-Creation-Date: 2024-08-28T15:42:07+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.10.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Domain: gk-gravityview\n" #. Plugin Name of the plugin -#: gravityview.php #: future/includes/gutenberg/class-gv-gutenberg-blocks.php:165 #: includes/class-gravityview-admin-bar.php:60 #: includes/class-gravityview-roles-capabilities.php:149 @@ -26,17 +25,14 @@ msgstr "" #. Plugin URI of the plugin #. Author URI of the plugin -#: gravityview.php msgid "https://www.gravitykit.com" msgstr "" #. Description of the plugin -#: gravityview.php msgid "The best, easiest way to display Gravity Forms entries on your website." msgstr "" #. Author of the plugin -#: gravityview.php #: vendor_prefixed/gravitykit/foundation/src/Licenses/WP/PluginsPage.php:402 #: vendor_prefixed/gravitykit/foundation/src/WP/AdminMenu.php:163 #: vendor_prefixed/gravitykit/foundation/src/WP/AdminMenu.php:164 @@ -71,14 +67,14 @@ msgstr "" #: future/includes/class-gv-shortcode-gravityview.php:267 #: future/includes/class-gv-shortcode-gravityview.php:273 #: future/includes/class-gv-shortcode-gravityview.php:287 -#: future/includes/class-gv-view.php:354 -#: future/includes/class-gv-view.php:368 -#: future/includes/class-gv-view.php:373 -#: future/includes/class-gv-view.php:379 -#: future/includes/class-gv-view.php:402 -#: future/includes/class-gv-view.php:407 -#: future/includes/class-gv-view.php:413 -#: future/includes/class-gv-view.php:427 +#: future/includes/class-gv-view.php:356 +#: future/includes/class-gv-view.php:370 +#: future/includes/class-gv-view.php:375 +#: future/includes/class-gv-view.php:381 +#: future/includes/class-gv-view.php:404 +#: future/includes/class-gv-view.php:409 +#: future/includes/class-gv-view.php:415 +#: future/includes/class-gv-view.php:429 #: includes/class-frontend-views.php:818 msgid "You are not allowed to view this content." msgstr "" @@ -111,13 +107,13 @@ msgstr "" #: future/includes/class-gv-plugin.php:705 #: future/includes/class-gv-plugin.php:706 -#: future/includes/class-gv-view.php:166 +#: future/includes/class-gv-view.php:168 msgid "All Views" msgstr "" #: future/includes/class-gv-plugin.php:717 #: future/includes/class-gv-plugin.php:718 -#: future/includes/class-gv-view.php:169 +#: future/includes/class-gv-view.php:171 msgid "New View" msgstr "" @@ -183,7 +179,7 @@ msgstr "" #: future/includes/class-gv-renderer.php:258 #: future/includes/class-gv-renderer.php:333 #: future/includes/class-gv-renderer.php:390 -#: future/includes/class-gv-view.php:334 +#: future/includes/class-gv-view.php:336 #: includes/class-frontend-views.php:696 msgid "You can only see this message because you are able to edit this View." msgstr "" @@ -197,7 +193,7 @@ msgstr "" #: includes/class-frontend-views.php:685 #: includes/class-gravityview-admin-bar.php:111 #: includes/class-gravityview-entry-link-shortcode.php:250 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1131 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1108 #: includes/extensions/edit-entry/fields/edit_link.php:14 #: includes/fields/class-gravityview-field-edit-link.php:54 #: templates/fields/field-edit_link-html.php:38 @@ -269,7 +265,7 @@ msgstr "" #: includes/class-gravityview-entry-approval-merge-tags.php:92 #: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravity-forms-advanced-post-creation.php:123 #: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-lifterlms.php:81 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1312 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1319 msgid "(This link opens in a new window.)" msgstr "" @@ -788,7 +784,7 @@ msgid "Update Button Text" msgstr "" #: future/includes/class-gv-settings-view.php:524 -#: includes/extensions/edit-entry/class-edit-entry-render.php:2584 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2561 msgctxt "Button to update an entry the user is editing" msgid "Update" msgstr "" @@ -798,7 +794,7 @@ msgid "Cancel Link Text" msgstr "" #: future/includes/class-gv-settings-view.php:532 -#: includes/extensions/edit-entry/class-edit-entry-render.php:2583 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2560 msgctxt "Shown when the user decides not to edit an entry" msgid "Cancel" msgstr "" @@ -918,7 +914,7 @@ msgstr "" #: future/includes/class-gv-shortcode-gravityview.php:166 #: future/includes/class-gv-shortcode-gventry.php:147 #: future/includes/class-gv-shortcode-gvfield.php:151 -#: future/includes/class-gv-view.php:332 +#: future/includes/class-gv-view.php:334 msgid "This View is not configured properly. Start by selecting a form." msgstr "" @@ -935,35 +931,35 @@ msgstr "" msgid "%1$s: Invalid View secret provided. Update the shortcode with the secret: %2$s" msgstr "" -#: future/includes/class-gv-view.php:162 +#: future/includes/class-gv-view.php:164 msgctxt "Post Type General Name" msgid "Views" msgstr "" -#: future/includes/class-gv-view.php:163 +#: future/includes/class-gv-view.php:165 msgctxt "Post Type Singular Name" msgid "View" msgstr "" -#: future/includes/class-gv-view.php:164 +#: future/includes/class-gv-view.php:166 msgctxt "Menu name" msgid "Views" msgstr "" -#: future/includes/class-gv-view.php:165 +#: future/includes/class-gv-view.php:167 msgid "Parent View:" msgstr "" -#: future/includes/class-gv-view.php:167 +#: future/includes/class-gv-view.php:169 msgctxt "View Item" msgid "View" msgstr "" -#: future/includes/class-gv-view.php:168 +#: future/includes/class-gv-view.php:170 msgid "Add New View" msgstr "" -#: future/includes/class-gv-view.php:170 +#: future/includes/class-gv-view.php:172 #: includes/class-gravityview-admin-bar.php:156 #: future/includes/gutenberg/build/entry-field.js:1 #: future/includes/gutenberg/build/entry-link.js:1 @@ -974,64 +970,64 @@ msgstr "" msgid "Edit View" msgstr "" -#: future/includes/class-gv-view.php:171 +#: future/includes/class-gv-view.php:173 msgid "Update View" msgstr "" -#: future/includes/class-gv-view.php:172 +#: future/includes/class-gv-view.php:174 msgid "Search Views" msgstr "" -#: future/includes/class-gv-view.php:174 +#: future/includes/class-gv-view.php:176 #: includes/class-admin.php:59 msgid "No Views found in Trash" msgstr "" -#: future/includes/class-gv-view.php:175 +#: future/includes/class-gv-view.php:177 msgid "Filter Views list" msgstr "" -#: future/includes/class-gv-view.php:176 +#: future/includes/class-gv-view.php:178 msgid "Views list navigation" msgstr "" -#: future/includes/class-gv-view.php:177 +#: future/includes/class-gv-view.php:179 msgid "Views list" msgstr "" -#: future/includes/class-gv-view.php:178 +#: future/includes/class-gv-view.php:180 msgid "See Views" msgstr "" -#: future/includes/class-gv-view.php:179 +#: future/includes/class-gv-view.php:181 msgid "View Attributes" msgstr "" -#: future/includes/class-gv-view.php:180 +#: future/includes/class-gv-view.php:182 msgid "View updated." msgstr "" -#: future/includes/class-gv-view.php:181 +#: future/includes/class-gv-view.php:183 msgid "View published." msgstr "" -#: future/includes/class-gv-view.php:182 +#: future/includes/class-gv-view.php:184 msgid "View reverted to draft." msgstr "" -#: future/includes/class-gv-view.php:183 +#: future/includes/class-gv-view.php:185 msgid "View scheduled." msgstr "" -#: future/includes/class-gv-view.php:187 +#: future/includes/class-gv-view.php:189 msgid "view" msgstr "" -#: future/includes/class-gv-view.php:188 +#: future/includes/class-gv-view.php:190 msgid "Create views based on a Gravity Forms form" msgstr "" -#: future/includes/class-gv-view.php:336 +#: future/includes/class-gv-view.php:338 #: includes/admin/metaboxes/class-gravityview-admin-metaboxes.php:228 #: includes/admin/metaboxes/class-gravityview-admin-metaboxes.php:268 #: includes/class-admin-views.php:624 @@ -1485,10 +1481,10 @@ msgstr "" #: includes/class-admin-add-shortcode.php:140 #: includes/class-admin-views.php:1557 #: includes/extensions/edit-entry/class-edit-entry-locking.php:283 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1192 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1325 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1169 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1302 #: vendor_prefixed/gravitykit/foundation/src/translations.js.php:99 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1305 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1312 msgid "Cancel" msgstr "" @@ -1553,7 +1549,7 @@ msgstr "" #: includes/admin/metaboxes/views/shortcode-hint.php:20 #: includes/class-admin-views.php:516 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1309 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1316 msgid "Copied!" msgstr "" @@ -1632,7 +1628,7 @@ msgstr "" #: includes/extensions/lightbox/fancybox/class-gravityview-lightbox-provider-fancybox.php:74 #: vendor_prefixed/gravitykit/foundation/src/Integrations/HelpScout.php:216 #: vendor_prefixed/gravitykit/foundation/src/translations.js.php:24 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1304 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1311 msgid "Close" msgstr "" @@ -1921,7 +1917,7 @@ msgid "Continue" msgstr "" #: includes/class-admin-views.php:1559 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1301 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1308 msgid "Ok" msgstr "" @@ -2179,12 +2175,12 @@ msgstr "" msgid "The ID is already a View." msgstr "" -#: includes/class-frontend-views.php:1615 +#: includes/class-frontend-views.php:1618 msgctxt "Clear all data from the form" msgid "Clear" msgstr "" -#: includes/class-frontend-views.php:1616 +#: includes/class-frontend-views.php:1619 msgctxt "Reset the search form to the state that existed on page load" msgid "Reset" msgstr "" @@ -2266,7 +2262,7 @@ msgstr "" #: includes/class-gravityview-change-entry-creator.php:164 #: includes/extensions/edit-entry/class-edit-entry-locking.php:288 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1457 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1464 msgid "Error" msgstr "" @@ -2516,7 +2512,7 @@ msgid "The request was invalid. Refresh the page and try again." msgstr "" #: includes/class-gravityview-entry-approval.php:189 -#: includes/extensions/edit-entry/class-edit-entry-render.php:2434 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2411 msgid "You do not have permission to edit this entry." msgstr "" @@ -2749,86 +2745,86 @@ msgstr "" msgid "Your request was rejected" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1193 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1326 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1170 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1303 #: vendor_prefixed/gravitykit/foundation/src/translations.js.php:70 msgid "Update" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1194 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1327 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1171 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1304 #: includes/extensions/lightbox/fancybox/class-gravityview-lightbox-provider-fancybox.php:75 #: vendor_prefixed/gravitykit/foundation/src/Integrations/HelpScout.php:262 msgid "Next" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1195 -#: includes/extensions/edit-entry/class-edit-entry-render.php:1328 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1172 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1305 #: includes/extensions/lightbox/fancybox/class-gravityview-lightbox-provider-fancybox.php:76 msgid "Previous" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1218 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1195 msgid "There was a problem with your submission." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1218 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1195 msgid "Errors have been highlighted below." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1225 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1202 msgid "Entry Updated." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1247 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1224 msgctxt "Replacements are HTML" msgid "Entry Updated. %1$sReturning to Entry%2$s" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1252 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1229 msgctxt "Replacement 1 is HTML. Replacement 2 is the title of the page where the user will be taken. Replacement 3 is HTML." msgid "Entry Updated. %1$sReturning to %2$s%3$s" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1258 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1235 msgctxt "Replacement 1 is HTML. Replacement 2 is the URL where the user will be taken. Replacement 3 is HTML." msgid "Entry Updated. %1$sRedirecting to %2$s%3$s" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1263 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1240 msgid "Entry Updated. %1$sReturn to Entry%2$s" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1484 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1461 msgid "This field is not editable; the post no longer exists." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1491 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1468 msgid "You don’t have permission to edit this post." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1832 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1809 msgid "This field is required." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:1868 +#: includes/extensions/edit-entry/class-edit-entry-render.php:1845 msgid "Maximum number of files reached" msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:2429 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2406 msgid "The link to edit this entry is not valid; it may have expired." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:2438 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2415 msgid "You cannot edit the entry; it is in the trash." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:2454 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2431 msgctxt "Link shown when invalid Edit Entry link is clicked" msgid "Go back." msgstr "" -#: includes/extensions/edit-entry/class-edit-entry-render.php:2479 +#: includes/extensions/edit-entry/class-edit-entry-render.php:2456 msgid "You do not have permission to edit this field." msgstr "" @@ -4248,20 +4244,20 @@ msgstr "" msgid "Displays either Passed or Failed based on the Pass/Fail settings configured in the Quiz Settings." msgstr "" -#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:49 +#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:51 msgid "Plugin update required." msgstr "" -#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:50 +#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:52 msgctxt "Placeholders inside [] are not to be translated." msgid "You are using [plugin] [version] that is incompatible with the current version of GravityView. Please [link]update [plugin][/link] to the latest version." msgstr "" -#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:130 +#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:132 msgid "Maps Layout" msgstr "" -#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:131 +#: includes/plugin-and-theme-hooks/class-gravityview-plugin-hooks-gravitymaps.php:133 msgid "Display entries in a Map View, where entries are displayed as β€œpins” on a map, like on Yelp.com. Also, add map widgets and fields to all GravityView layouts." msgstr "" @@ -5888,8 +5884,8 @@ msgstr "" #. translators: %1$s is the vendor title. #: vendor_prefixed/gravitykit/foundation/src/translations.js.php:41 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1308 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1488 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1315 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1495 msgid "Copy" msgstr "" @@ -6408,7 +6404,7 @@ msgstr "" #: vendor_prefixed/trustedlogin/client/src/Admin.php:226 #: vendor_prefixed/trustedlogin/client/src/Admin.php:267 -#: vendor_prefixed/trustedlogin/client/src/Form.php:275 +#: vendor_prefixed/trustedlogin/client/src/Form.php:280 msgid "Revoke Access" msgstr "" @@ -6416,11 +6412,11 @@ msgstr "" msgid "You are logged in as a support user. Click to permanently revoke access." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Ajax.php:108 +#: vendor_prefixed/trustedlogin/client/src/Ajax.php:103 msgid "Verification issue: Request could not be verified. Please reload the page." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Ajax.php:114 +#: vendor_prefixed/trustedlogin/client/src/Ajax.php:109 msgid "You do not have the ability to create users." msgstr "" @@ -6433,360 +6429,360 @@ msgstr "" msgid "The support user was not deleted." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Encryption.php:342 +#: vendor_prefixed/trustedlogin/client/src/Encryption.php:343 msgid "Encryption key could not be fetched, Vendor site returned 404." msgstr "" #. translators: %s is the ID of the user who created the support session. The user can't be found; only the User ID is known. -#: vendor_prefixed/trustedlogin/client/src/Form.php:262 +#: vendor_prefixed/trustedlogin/client/src/Form.php:267 msgid "Unknown (User #%d)" msgstr "" #. translators: %s is the display name of the user who granted access. -#: vendor_prefixed/trustedlogin/client/src/Form.php:277 +#: vendor_prefixed/trustedlogin/client/src/Form.php:282 msgid "Created %1$s ago by %2$s" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:303 -#: vendor_prefixed/trustedlogin/client/src/Form.php:1224 +#: vendor_prefixed/trustedlogin/client/src/Form.php:309 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1231 msgid "Secured by TrustedLogin" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:397 +#: vendor_prefixed/trustedlogin/client/src/Form.php:403 msgid "Terms of Service" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:413 +#: vendor_prefixed/trustedlogin/client/src/Form.php:419 msgid "By granting access, you agree to the {{tos_link}}." msgstr "" #. translators: %s is the reference ID. -#: vendor_prefixed/trustedlogin/client/src/Form.php:454 +#: vendor_prefixed/trustedlogin/client/src/Form.php:460 msgid "Reference #%s" msgstr "" #. translators: %1$s is replaced with the name of the software developer (e.g. "Acme Widgets"). %2$s is the amount of time remaining for access ("1 week"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:476 +#: vendor_prefixed/trustedlogin/client/src/Form.php:482 msgid "%1$s has site access that expires in %2$s." msgstr "" #. translators: %1$s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:484 +#: vendor_prefixed/trustedlogin/client/src/Form.php:490 msgid "%1$s would like support access to this site." msgstr "" #. translators: %1$s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:487 +#: vendor_prefixed/trustedlogin/client/src/Form.php:493 msgid "Grant %1$s access to this site." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:565 +#: vendor_prefixed/trustedlogin/client/src/Form.php:571 msgid "Include a message for support?" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:580 +#: vendor_prefixed/trustedlogin/client/src/Form.php:586 msgid "Please describe the issue you are having." msgstr "" #. translators: %s is replaced with the of time that the login will be active for (e.g. "1 week"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:607 +#: vendor_prefixed/trustedlogin/client/src/Form.php:613 msgid "Access this site for %s." msgstr "" #. translators: %s is replaced by the amount of time that the login will be active for (e.g. "1 week"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:610 +#: vendor_prefixed/trustedlogin/client/src/Form.php:616 msgid "Access auto-expires in %s. You may revoke access at any time." msgstr "" #. translators: %s is replaced with the name of the role (e.g. "Administrator"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:617 +#: vendor_prefixed/trustedlogin/client/src/Form.php:623 msgid "Create a user with a role based on %s." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:620 +#: vendor_prefixed/trustedlogin/client/src/Form.php:626 msgid "View modified role capabilities" msgstr "" #. translators: %s is replaced with the name of the role (e.g. "Administrator"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:625 +#: vendor_prefixed/trustedlogin/client/src/Form.php:631 msgid "Create a user with a role of %s." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:656 +#: vendor_prefixed/trustedlogin/client/src/Form.php:662 msgid "Include the [link]Site Health[/link] troubleshooting report" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:682 +#: vendor_prefixed/trustedlogin/client/src/Form.php:688 msgid "Additional capabilities:" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:683 +#: vendor_prefixed/trustedlogin/client/src/Form.php:689 msgid "Removed capabilities:" msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:753 +#: vendor_prefixed/trustedlogin/client/src/Form.php:759 msgid "%s support may not be able to access this site." msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:754 +#: vendor_prefixed/trustedlogin/client/src/Form.php:760 msgid "This website is running in a local development environment. To provide support, we must be able to access your site using a publicly-accessible URL." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:756 +#: vendor_prefixed/trustedlogin/client/src/Form.php:762 msgid "Learn more." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:809 +#: vendor_prefixed/trustedlogin/client/src/Form.php:815 msgid "Learn about TrustedLogin" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:866 +#: vendor_prefixed/trustedlogin/client/src/Form.php:872 msgid "TrustedLogin Status" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:866 +#: vendor_prefixed/trustedlogin/client/src/Form.php:872 msgid "Offline" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:866 +#: vendor_prefixed/trustedlogin/client/src/Form.php:872 msgid "Online" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:867 +#: vendor_prefixed/trustedlogin/client/src/Form.php:873 msgid "API Key" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:868 +#: vendor_prefixed/trustedlogin/client/src/Form.php:874 msgid "License Key" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:869 +#: vendor_prefixed/trustedlogin/client/src/Form.php:875 msgid "Log URL" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:869 +#: vendor_prefixed/trustedlogin/client/src/Form.php:875 msgid "Download the log" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:870 +#: vendor_prefixed/trustedlogin/client/src/Form.php:876 msgid "Log Level" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:870 +#: vendor_prefixed/trustedlogin/client/src/Form.php:876 msgid "(Default)" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:871 +#: vendor_prefixed/trustedlogin/client/src/Form.php:877 msgid "Webhook URL" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:872 +#: vendor_prefixed/trustedlogin/client/src/Form.php:878 msgid "Vendor Public Key" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:872 +#: vendor_prefixed/trustedlogin/client/src/Form.php:878 msgid "Verify key" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:892 +#: vendor_prefixed/trustedlogin/client/src/Form.php:898 msgid "Debugging Info" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:894 +#: vendor_prefixed/trustedlogin/client/src/Form.php:900 msgid "TrustedLogin Config" msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1163 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1170 msgid "Grant %s Access" msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1165 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1172 msgid "Extend %s Access" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1278 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1285 msgid "Could not create TrustedLogin access." msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1287 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1294 msgid "The user details could not be sent to %1$s automatically." msgstr "" #. translators: %1$s is the vendor support url and %2$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1292 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1299 msgid "Please click here to go to the %2$s support site" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1300 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1307 msgid "Confirm" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1303 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1310 msgid "Go to %1$s support site" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1307 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1314 msgid "Revoke %1$s support access" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1313 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1320 msgid "The access key has been copied to your clipboard." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1317 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1324 msgid "Support access granted" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1320 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1327 msgid "A temporary support user has been created, and sent to %1$s support." msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1326 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1333 msgid "Generating & encrypting secure support access for %1$s" msgstr "" #. translators: %1$s is the vendor title and %2$s is the human-readable expiration time (for example, "1 week"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1330 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1337 msgid "Extending support access for %1$s by %2$s" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1334 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1341 msgid "Sending encrypted access to %1$s." msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1338 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1345 msgid "Error syncing support user to %1$s" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1352 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1359 msgid "Action Cancelled" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1355 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1362 msgid "A support account for %1$s was not created." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1360 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1367 msgid "Support Access Was Not Granted" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1361 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1368 msgid "There was an error granting access: " msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1364 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1371 msgid "Your authorized session has expired. Please refresh the page." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1367 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1374 msgid "TrustedLogin Key Created" msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1370 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1377 msgid "Share this TrustedLogin Key with %1$s to give them secure access:" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1376 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1383 msgid "The TrustedLogin vendor could not be found." msgstr "" #. translators: %1$s is the vendor title. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1382 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1389 msgid "%1$s Support user already exists" msgstr "" #. translators: %1$s is the vendor title, %2$s is the URL to the users list page. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1388 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1395 msgid "A support user for %1$s already exists. You may revoke this support access from your Users list." msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1431 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1438 msgid "No %s users exist." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1461 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1468 msgid "There was an error returning the access key." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1482 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1489 msgid "Site access key:" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1484 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1491 msgid "Access Key" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1492 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1499 msgid "Copy the access key to your clipboard" msgstr "" #. translators: %s is the display name of the TrustedLogin support user. -#: vendor_prefixed/trustedlogin/client/src/Form.php:1495 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1502 msgid "The access key is not a password; only %1$s will be able to access your site using this code. You may share this access key on support forums." msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). -#: vendor_prefixed/trustedlogin/client/src/Form.php:1529 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1536 msgid "%s access revoked." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Form.php:1533 +#: vendor_prefixed/trustedlogin/client/src/Form.php:1540 msgid "You may safely close this window." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:269 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:287 msgid "Unable to verify Pause Mode." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:272 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:290 msgid "Authentication failed." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:275 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:293 msgid "TrustedLogin account issue." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:278 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:296 msgid "Invalid tokens." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:282 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:300 msgid "The TrustedLogin vendor was not found." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:292 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:310 msgid "The TrustedLogin site is not currently online." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:298 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:316 msgid "The TrustedLogin site is not currently available." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:302 -#: vendor_prefixed/trustedlogin/client/src/Remote.php:347 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:320 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:365 msgid "Invalid response." msgstr "" -#: vendor_prefixed/trustedlogin/client/src/Remote.php:341 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:359 msgid "The response was invalid." msgstr "" #. translators: %s is the name of the missing data from the server. -#: vendor_prefixed/trustedlogin/client/src/Remote.php:365 +#: vendor_prefixed/trustedlogin/client/src/Remote.php:383 msgid "Invalid response. Missing key: %s" msgstr "" @@ -6809,11 +6805,11 @@ msgstr "" #. translators: %s is replaced with the name of the software developer (e.g. "Acme Widgets"). #: vendor_prefixed/trustedlogin/client/src/SupportRole.php:271 -#: vendor_prefixed/trustedlogin/client/src/SupportUser.php:270 +#: vendor_prefixed/trustedlogin/client/src/SupportUser.php:268 msgid "%s Support" msgstr "" -#: vendor_prefixed/trustedlogin/client/src/SupportUser.php:233 +#: vendor_prefixed/trustedlogin/client/src/SupportUser.php:231 msgid "User not created; User with that email already exists" msgstr "" @@ -7161,83 +7157,3 @@ msgstr "" #: future/includes/gutenberg/shared/js/sort-selector.js:75 msgid "No Sorting Fields found" msgstr "" - -#: future/includes/gutenberg/blocks/entry-field/block.json -msgctxt "block title" -msgid "GravityView Entry Field" -msgstr "" - -#: future/includes/gutenberg/blocks/entry-field/block.json -msgctxt "block description" -msgid "Display an entry field value." -msgstr "" - -#: future/includes/gutenberg/blocks/entry-field/block.json -#: future/includes/gutenberg/blocks/entry-link/block.json -#: future/includes/gutenberg/blocks/entry/block.json -#: future/includes/gutenberg/blocks/view-details/block.json -#: future/includes/gutenberg/blocks/view/block.json -msgctxt "block keyword" -msgid "GravityView" -msgstr "" - -#: future/includes/gutenberg/blocks/entry-field/block.json -#: future/includes/gutenberg/blocks/entry-link/block.json -#: future/includes/gutenberg/blocks/entry/block.json -#: future/includes/gutenberg/blocks/view-details/block.json -msgctxt "block keyword" -msgid "form entry" -msgstr "" - -#: future/includes/gutenberg/blocks/entry-field/block.json -#: future/includes/gutenberg/blocks/entry-link/block.json -#: future/includes/gutenberg/blocks/entry/block.json -#: future/includes/gutenberg/blocks/view-details/block.json -msgctxt "block keyword" -msgid "entry" -msgstr "" - -#: future/includes/gutenberg/blocks/entry-link/block.json -msgctxt "block title" -msgid "GravityView Entry Link" -msgstr "" - -#: future/includes/gutenberg/blocks/entry-link/block.json -msgctxt "block description" -msgid "Display a link to the GravityView entry." -msgstr "" - -#: future/includes/gutenberg/blocks/entry/block.json -msgctxt "block title" -msgid "GravityView Entry" -msgstr "" - -#: future/includes/gutenberg/blocks/entry/block.json -msgctxt "block description" -msgid "Display a GravityView entry." -msgstr "" - -#: future/includes/gutenberg/blocks/view-details/block.json -msgctxt "block title" -msgid "GravityView View Details" -msgstr "" - -#: future/includes/gutenberg/blocks/view-details/block.json -msgctxt "block description" -msgid "Display specific information about a GravityView View." -msgstr "" - -#: future/includes/gutenberg/blocks/view/block.json -msgctxt "block title" -msgid "GravityView View" -msgstr "" - -#: future/includes/gutenberg/blocks/view/block.json -msgctxt "block description" -msgid "Display a GravityView View." -msgstr "" - -#: future/includes/gutenberg/blocks/view/block.json -msgctxt "block keyword" -msgid "view" -msgstr "" From ce55f9bccbe7b77c95079d2efa02d0fd37d486d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:43:48 +0000 Subject: [PATCH 32/36] Bump webpack from 5.90.3 to 5.94.0 in /future/includes/gutenberg Bumps [webpack](https://github.com/webpack/webpack) from 5.90.3 to 5.94.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.90.3...v5.94.0) --- updated-dependencies: - dependency-name: webpack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- future/includes/gutenberg/package-lock.json | 282 +++++++++----------- 1 file changed, 132 insertions(+), 150 deletions(-) diff --git a/future/includes/gutenberg/package-lock.json b/future/includes/gutenberg/package-lock.json index 39277042cb..45f56799bf 100644 --- a/future/includes/gutenberg/package-lock.json +++ b/future/includes/gutenberg/package-lock.json @@ -3867,21 +3867,13 @@ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -4575,9 +4567,9 @@ "dev": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -4597,9 +4589,9 @@ "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { @@ -4620,15 +4612,15 @@ "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { @@ -4656,28 +4648,28 @@ "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -4685,24 +4677,24 @@ } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -4711,12 +4703,12 @@ } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, @@ -5223,10 +5215,10 @@ "acorn-walk": "^8.0.2" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, "peerDependencies": { "acorn": "^8" @@ -7965,9 +7957,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -10060,9 +10052,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/graphemer": { @@ -18280,9 +18272,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -18317,26 +18309,25 @@ } }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -18344,7 +18335,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -21912,21 +21903,13 @@ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -22498,9 +22481,9 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -22520,9 +22503,9 @@ "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, "@webassemblyjs/helper-numbers": { @@ -22543,15 +22526,15 @@ "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "@webassemblyjs/ieee754": { @@ -22579,28 +22562,28 @@ "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -22608,24 +22591,24 @@ } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -22634,12 +22617,12 @@ } }, "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, @@ -22995,10 +22978,10 @@ "acorn-walk": "^8.0.2" } }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, "requires": {} }, @@ -25040,9 +25023,9 @@ } }, "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -26580,9 +26563,9 @@ } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "graphemer": { @@ -32649,9 +32632,9 @@ } }, "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -32680,26 +32663,25 @@ "dev": true }, "webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "requires": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -32707,7 +32689,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "dependencies": { From 79ac0083381648d603cc1f3dd8932c2f800a49af Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 12:18:05 -0400 Subject: [PATCH 33/36] Bump version to 2.28.0 & update changelog --- future/includes/class-gv-view.php | 2 +- gravityview.php | 6 +-- includes/class-admin-welcome.php | 69 ++++++++++++++++--------------- includes/class-frontend-views.php | 2 +- readme.txt | 31 +++++++++----- 5 files changed, 61 insertions(+), 49 deletions(-) diff --git a/future/includes/class-gv-view.php b/future/includes/class-gv-view.php index faf5bf5bd4..bbdbd65e7c 100644 --- a/future/includes/class-gv-view.php +++ b/future/includes/class-gv-view.php @@ -1129,7 +1129,7 @@ public function get_entries( $request = null ) { * * @filter `gk/gravityview/view/entries/query/sorting-parameters` * - * @since TBD + * @since 2.28.0 * * @param array $sorting_parameters The array of sorting parameters, including field ID, field type (direction, and casting types. * @param View $this The View instance. diff --git a/gravityview.php b/gravityview.php index 491a9cb606..63a1ad3e5a 100644 --- a/gravityview.php +++ b/gravityview.php @@ -3,7 +3,8 @@ * Plugin Name: GravityView * Plugin URI: https://www.gravitykit.com * Description: The best, easiest way to display Gravity Forms entries on your website. - * Version: 2.27.1 + * Version: 2.28.0 + * Requires PHP: 7.4.0 * Author: GravityKit * Author URI: https://www.gravitykit.com * Text Domain: gk-gravityview @@ -26,13 +27,12 @@ return; } - /** Constants */ /** * The plugin version. */ -define( 'GV_PLUGIN_VERSION', '2.27.1' ); +define( 'GV_PLUGIN_VERSION', '2.28.0' ); /** * Full path to the GravityView file diff --git a/includes/class-admin-welcome.php b/includes/class-admin-welcome.php index 5993c2fdd3..76e1e87d9f 100644 --- a/includes/class-admin-welcome.php +++ b/includes/class-admin-welcome.php @@ -296,6 +296,42 @@ public function changelog_screen() { * - If 4.28, include to 4.26. */ ?> +

2.28.0 on August 28, 2024

+ +

This update adds support for plain-text URLs in entry moderation merge tags, and fixes several bugs, including critical errors in the View editor.

+ +

Note: GravityView now requires PHP 7.4 or newer.

+ +

πŸš€ Added

+ +
    +
  • Modifier for entry moderation merge tags to output plain-text URLs (e.g., {gv_approve_entry:url}).
  • +
+ +

πŸ› Fixed

+ +
    +
  • "Text domain not found" error when trying to install a layout during the View creation process.
  • +
  • Fatal error in the View editor when the user does not have the necessary capabilities to install plugins.
  • +
  • Merge tag support in the Source URL "Link Text" field setting.
  • +
  • Deprecated filter notice when using GravityView Maps 3.1.0 or newer.
  • +
  • PHP 8.2 deprecation notice due to passing an empty value to htmlspecialchars() and creating dynamic class properties.
  • +
  • The maximum number of files allowed in the File Upload field was not respected when editing an entry.
  • +
  • Sorting the View by the Name field yielded incorrect results.
  • +
+ +

πŸ”§ Updated

+ + + +

πŸ’» Developer Updates

+ +
    +
  • Added gk/gravityview/view/entries/query/sorting-parameters filter to modify the sorting parameters applied during the retrieval of View entries.
  • +
+

2.27.1 on August 14, 2024

This release fixes an issue with adding fields in the View editor's Edit Entry layout when the Multiple Forms extension is enabled.

@@ -366,39 +402,6 @@ public function changelog_screen() {
  • Added gk/gravityview/metabox/content/before and gk/gravityview/metabox/content/after actions, triggered before and after the View metabox is rendered.
  • -

    2.25 on June 5, 2024

    - -

    This update improves how entries are automatically marked as "Read" and adds a new View setting to control this functionality.

    - - Note: GravityView now requires Gravity Forms 2.6 (released in March 2022) or newer. - -

    πŸš€ Added

    - - - -

    ✨ Improved

    - -
      -
    • Marking an entry as "Read" is now handled in the backend and also supports the Multiple Forms extension.
    • -
    - -

    πŸ› Fixed

    - -
      -
    • Appearance of the Merge Tag picker in the field settings of the View editor.
    • -
    - -

    πŸ’» Developer Updates

    - -
      -
    • Removed the gk/gravityview/field/is-read/print-script filter in favor of the improved functionality that marks entries as "Read".
    • -
    -

    diff --git a/includes/class-frontend-views.php b/includes/class-frontend-views.php index b930516c87..47029b0b8e 100644 --- a/includes/class-frontend-views.php +++ b/includes/class-frontend-views.php @@ -1416,7 +1416,7 @@ public static function _override_sorting_id_by_field_type( $sort_field_id, $form * Override how to sort when sorting full name. * * @since 1.7.4 - * @since TBD Default sorting is set to first and last name. + * @since 2.28.0 Default sorting is set to first and last name. * * @param string $name_part Sort by `first`, `last` or `first-last` (default: `first-last`) * @param string $sort_field_id Field used for sorting diff --git a/readme.txt b/readme.txt index 5be8addaed..5334e97bbe 100644 --- a/readme.txt +++ b/readme.txt @@ -1,8 +1,8 @@ === GravityView === Tags: gravity forms, directory, gravity forms directory Requires at least: 4.7 -Tested up to: 6.6.0 -Requires PHP: 7.2.0 +Tested up to: 6.6.1 +Requires PHP: 7.4.0 Stable tag: trunk Contributors: The GravityKit Team License: GPL 3 or higher @@ -21,17 +21,26 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h == Changelog == -= develop = += 2.28 = -**Note: GravityView now requires PHP 7.4 or newer** +This update adds support for plain-text URLs in entry moderation merge tags, and fixes several bugs, including critical errors in the View editor. Starting with this version, PHP 7.4 or newer is required. -* Added: Modifier for entry moderation merge tags to output plain-text URLs (e.g., `{gv_approve_entry:url}`). -* Fixed: Fatal error in the View editor when the user does not have the necessary capabilities to install plugins. -* Fixed: Merge tag support in the Source URL "Link Text" field setting -* Fixed: Deprecated filter notice if using GravityView Maps 3.1.0 or newer. -* Fixed: PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. -* Fixed: The maximum number of files allowed in the File Upload field was not respected when editing an entry. -* Fixed: Sorting the View by the Name field would yield incorrect results. +**Note: GravityView now requires PHP 7.4 or newer.** + +#### πŸš€ Added +* Modifier for entry moderation merge tags to output plain-text URLs (e.g., `{gv_approve_entry:url}`). + +#### πŸ› Fixed +* "Text domain not found" error when trying to install a layout during the View creation process. +* Fatal error in the View editor when the user does not have the necessary capabilities to install plugins. +* Merge tag support in the Source URL "Link Text" field setting. +* Deprecated filter notice when using GravityView Maps 3.1.0 or newer. +* PHP 8.2 deprecation notice due to passing an empty value to `htmlspecialchars()` and creating dynamic class properties. +* The maximum number of files allowed in the File Upload field was not respected when editing an entry. +* Sorting the View by the Name field yielded incorrect results. + +#### πŸ”§ Updated +* [TrustedLogin](https://www.trustedlogin.com/) to version 1.9.0. #### πŸ’» Developer Updates * Added `gk/gravityview/view/entries/query/sorting-parameters` filter to modify the sorting parameters applied during the retrieval of View entries. From 50ae6cfcbb740f0967ab824bacfdf139f11691ac Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 14:07:50 -0400 Subject: [PATCH 34/36] Update release date [ci skip] --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 5334e97bbe..d5cd9d1e75 100644 --- a/readme.txt +++ b/readme.txt @@ -21,7 +21,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h == Changelog == -= 2.28 = += 2.28.0 on August 28, 2024 = This update adds support for plain-text URLs in entry moderation merge tags, and fixes several bugs, including critical errors in the View editor. Starting with this version, PHP 7.4 or newer is required. From 0848b1f79abb854e9eedcd41349b147ddd593538 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 28 Aug 2024 14:11:24 -0400 Subject: [PATCH 35/36] Fix "trying to access array offset on value of type bool" warning This happens under certain circumstances when opening the Gutenberg editor. --- includes/class-gravityview-admin-bar.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/includes/class-gravityview-admin-bar.php b/includes/class-gravityview-admin-bar.php index 9db702c33c..abf826b424 100644 --- a/includes/class-gravityview-admin-bar.php +++ b/includes/class-gravityview-admin-bar.php @@ -149,6 +149,10 @@ function add_edit_view_and_form_link() { $added_views = array(); foreach ( $views as $view ) { + if ( ! $view ) { + continue; + } + $view = \GV\View::by_id( $view['id'] ); $view_id = $view->ID; $form_id = $view->form ? $view->form->ID : null; From b80760d1f35bdc15ac322cf3275ee37eaf67a504 Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 29 Aug 2024 10:36:13 -0400 Subject: [PATCH 36/36] Update release date [ci skip] --- includes/class-admin-welcome.php | 2 +- readme.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/class-admin-welcome.php b/includes/class-admin-welcome.php index 76e1e87d9f..bf308adcdc 100644 --- a/includes/class-admin-welcome.php +++ b/includes/class-admin-welcome.php @@ -296,7 +296,7 @@ public function changelog_screen() { * - If 4.28, include to 4.26. */ ?> -

    2.28.0 on August 28, 2024

    +

    2.28.0 on August 29, 2024

    This update adds support for plain-text URLs in entry moderation merge tags, and fixes several bugs, including critical errors in the View editor.

    diff --git a/readme.txt b/readme.txt index d5cd9d1e75..3849f784a7 100644 --- a/readme.txt +++ b/readme.txt @@ -21,7 +21,7 @@ Beautifully display your Gravity Forms entries. Learn more on [gravitykit.com](h == Changelog == -= 2.28.0 on August 28, 2024 = += 2.28.0 on August 29, 2024 = This update adds support for plain-text URLs in entry moderation merge tags, and fixes several bugs, including critical errors in the View editor. Starting with this version, PHP 7.4 or newer is required.