From dbd71c15d1a3d1925f19621b882857f481b7b0c7 Mon Sep 17 00:00:00 2001 From: mateuswetah Date: Tue, 23 Apr 2024 16:53:09 -0300 Subject: [PATCH 1/5] Fixes issues with draggable components on Chrome. --- src/views/admin/components/lists/collection-metadata-list.vue | 4 ++-- src/views/admin/components/lists/repository-metadata-list.vue | 2 +- .../metadata-types/compound/child-metadata-list.vue | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/admin/components/lists/collection-metadata-list.vue b/src/views/admin/components/lists/collection-metadata-list.vue index f3b32337e..bd7b1f8fb 100644 --- a/src/views/admin/components/lists/collection-metadata-list.vue +++ b/src/views/admin/components/lists/collection-metadata-list.vue @@ -682,7 +682,7 @@ export default { if ( !$event.from.classList.contains('active-metadata-area') ) { this.addNewMetadatum(this.getMetadatumTypes()[$event.oldIndex], $event.newIndex, sectionIndex); - $event.originalTarget.removeChild($event.item) + $event.to.removeChild($event.item) } else { this.isLoadingMetadataSections = true; @@ -698,7 +698,7 @@ export default { newMetadataSectionsList[previousSectionIndex].metadata_object_list = previousSectionMetadataObjectList; this.updateMetadataSections(newMetadataSectionsList); - $event.originalTarget.removeChild($event.item); + $event.to.removeChild($event.item); this.updateMetadatum({ collectionId: this.collectionId, diff --git a/src/views/admin/components/lists/repository-metadata-list.vue b/src/views/admin/components/lists/repository-metadata-list.vue index c10c53550..c17f8eda2 100644 --- a/src/views/admin/components/lists/repository-metadata-list.vue +++ b/src/views/admin/components/lists/repository-metadata-list.vue @@ -371,7 +371,7 @@ export default { case 'add': if ( !$event.from.classList.contains('active-metadata-area') ) { this.addNewMetadatum(this.getMetadatumTypes()[$event.oldIndex], $event.newIndex); - $event.originalTarget.removeChild($event.item); + $event.to.removeChild($event.item); } break; case 'remove': diff --git a/src/views/admin/components/metadata-types/compound/child-metadata-list.vue b/src/views/admin/components/metadata-types/compound/child-metadata-list.vue index 9b1bcf63b..e72ad2dac 100644 --- a/src/views/admin/components/metadata-types/compound/child-metadata-list.vue +++ b/src/views/admin/components/metadata-types/compound/child-metadata-list.vue @@ -338,7 +338,7 @@ case 'add': if ( !$event.from.classList.contains('active-metadata-area') ) { this.addNewMetadatum(this.getMetadatumTypes()[$event.oldIndex], $event.newIndex); - $event.originalTarget.removeChild($event.item); + $event.to.removeChild($event.item); } break; case 'remove': From 0a9a9fed3fe380b2ad8e2281be4108d316d73e0c Mon Sep 17 00:00:00 2001 From: mateuswetah Date: Tue, 23 Apr 2024 16:53:23 -0300 Subject: [PATCH 2/5] Bump version number to 0.21.1. --- src/readme.txt | 2 +- src/tainacan.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/readme.txt b/src/readme.txt index 2a1729c81..48350fa01 100644 --- a/src/readme.txt +++ b/src/readme.txt @@ -4,7 +4,7 @@ Tags: museums, archives, GLAM, collections, repository Requires at least: 5.9 Tested up to: 6.5 Requires PHP: 7.0 -Stable tag: 0.21.0 +Stable tag: 0.21.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-3.0.html diff --git a/src/tainacan.php b/src/tainacan.php index 572e48dd8..37c68284e 100644 --- a/src/tainacan.php +++ b/src/tainacan.php @@ -5,17 +5,17 @@ Plugin URI: https://tainacan.org/ Description: Open source, powerful and flexible repository platform for WordPress. Manage and publish you digital collections as easily as publishing a post to your blog, while having all the tools of a professional repository platform. Author: Tainacan.org Author URI: https://tainacan.org/ -Version: 0.21.0 +Version: 0.21.1 Requires at least: 5.9 Tested up to: 6.5 Requires PHP: 7.0 -Stable tag: 0.21.0 +Stable tag: 0.21.1 Text Domain: tainacan License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-3.0.html */ -const TAINACAN_VERSION = '0.21.0'; +const TAINACAN_VERSION = '0.21.1'; defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); $TAINACAN_BASE_URL = plugins_url('', __FILE__); From b46316178218b8c0be09935715deb5f82b65c7f0 Mon Sep 17 00:00:00 2001 From: mateuswetah Date: Thu, 25 Apr 2024 11:15:39 -0300 Subject: [PATCH 3/5] Adds missing style rules for URL metadata now that is part of core. --- src/views/admin/scss/tainacan-admin.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/views/admin/scss/tainacan-admin.scss b/src/views/admin/scss/tainacan-admin.scss index b3ff64015..7f1498925 100644 --- a/src/views/admin/scss/tainacan-admin.scss +++ b/src/views/admin/scss/tainacan-admin.scss @@ -304,6 +304,7 @@ html.is-clipped .page-container-small:not(.is-filters-menu-open) { .taginput-container .input:hover { border: none !important; } +.metadata-type-url .multivalue-separator, .metadata-type-ainacan_url_plugin_metadata_type .multivalue-separator, .metadata-type-tainacan_url_plugin_metadata_type .multivalue-separator { display: block; @@ -314,10 +315,12 @@ html.is-clipped .page-container-small:not(.is-filters-menu-open) { color: transparent !important; margin: 1em auto 1em 0 !important; } +.metadata-type-url .wp-block-buttons, .metadata-type-ainacan_url_plugin_metadata_type .wp-block-buttons, .metadata-type-tainacan_url_plugin_metadata_type .wp-block-buttons { display: flex !important; } +.metadata-type-url .wp-block-buttons>.wp-block-button, .metadata-type-ainacan_url_plugin_metadata_type .wp-block-buttons>.wp-block-button, .metadata-type-tainacan_url_plugin_metadata_type .wp-block-buttons>.wp-block-button { width: auto !important; From d651594d4a0c97df1996abaf1a2994ce9f0f5519 Mon Sep 17 00:00:00 2001 From: vnmedeiros Date: Fri, 26 Apr 2024 09:19:15 -0300 Subject: [PATCH 4/5] fix: some adjuts to avoid `NOTICE` and `WARNING` --- ...ass-tainacan-rest-background-processes-controller.php | 9 +++++---- src/classes/class-tainacan-background-process.php | 4 ++-- src/classes/exporter/class-tainacan-exporter.php | 4 ++++ .../repositories/class-tainacan-item-metadata.php | 4 ++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php b/src/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php index 2074195d1..0574b2e96 100644 --- a/src/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php +++ b/src/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php @@ -253,6 +253,7 @@ class REST_Background_Processes_Controller extends REST_Controller { $item->log = $this->get_log_url($key_log, $item->action); $item->error_log = $this->get_log_url($key_log, $item->action, 'error'); $nonce = wp_create_nonce( 'wp_rest' ); + $item->output = $item->output ?? ''; $item->output = str_replace("&_wpnonce=[nonce]", "&_wpnonce=$nonce", $item->output); return $item; } @@ -376,14 +377,14 @@ class REST_Background_Processes_Controller extends REST_Controller { $upload_url = wp_upload_dir(); $path = $upload_url['basedir'] . '/tainacan/' . $guid; if ( file_exists( $path ) ) { - $finfo = finfo_open(FILEINFO_MIME_TYPE); - $mime_type = finfo_file($finfo, $path); - $file_name = basename($path); + $finfo = @finfo_open(FILEINFO_MIME_TYPE); + $mime_type = @finfo_file($finfo, $path); + $file_name = @basename($path); http_response_code(200); header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename=$file_name"); header("Content-Type: $mime_type"); - header("Content-Length: " . filesize( $path )); + header("Content-Length: " . @filesize( $path )); \readfile($path); } else { return new \WP_REST_Response("file not found", 404, array('content-type' => 'text/html; charset=utf-8')); diff --git a/src/classes/class-tainacan-background-process.php b/src/classes/class-tainacan-background-process.php index 1dfa5db38..1337ec5e6 100644 --- a/src/classes/class-tainacan-background-process.php +++ b/src/classes/class-tainacan-background-process.php @@ -347,7 +347,7 @@ abstract class Background_Process extends \Tainacan_WP_Background_Process { $this->debug('Shutdown with Fatal error captured'); $this->debug($error_str); - $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Fatal Error: ' . $error_str]] ); + $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Fatal Error: see the server error log for more details']] ); $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Process aborted']]); $this->close( $batch->key, 'errored' ); $this->debug('Batch closed due to captured error'); @@ -363,7 +363,7 @@ abstract class Background_Process extends \Tainacan_WP_Background_Process { } catch (\Exception $e) { // TODO: Add Stacktrace $this->debug('Fatal Error: ' . $e->getMessage()); - $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Try Fatal Error: ' . $e->getMessage()]]); + $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Try Fatal Error: see the server error log for more details']]); $this->write_error_log($batch->key, [['datetime' => date("Y-m-d H:i:s"), 'message' => 'Process aborted']]); $task = false; $close_status = 'errored'; diff --git a/src/classes/exporter/class-tainacan-exporter.php b/src/classes/exporter/class-tainacan-exporter.php index 62dd95cd6..e7ca3c0ac 100644 --- a/src/classes/exporter/class-tainacan-exporter.php +++ b/src/classes/exporter/class-tainacan-exporter.php @@ -721,6 +721,10 @@ abstract class Exporter { public function append_to_file($key, $data) { if ( array_key_exists ( $key , $this->output_files ) ) { $fp = fopen($this->output_files[$key]['filename'], 'a'); + if($fp == false) { + $file_name = $this->output_files[$key]['filename']; + throw new \Exception("Cannot open file $file_name"); + } fwrite($fp, $data); fclose($fp); } else { // serĂ¡? diff --git a/src/classes/repositories/class-tainacan-item-metadata.php b/src/classes/repositories/class-tainacan-item-metadata.php index c4f2cd94c..2d418c8ab 100644 --- a/src/classes/repositories/class-tainacan-item-metadata.php +++ b/src/classes/repositories/class-tainacan-item-metadata.php @@ -372,6 +372,10 @@ class Item_Metadata extends Repository { $terms = wp_get_object_terms( $item_metadata->get_item()->get_id(), $taxonomy_slug ); + if( is_wp_error($terms) ) { + return null; + } + if ( $unique ) { $terms = reset( $terms ); From d9cb515624fff75900a9fac8086ea5cf5d89adfe Mon Sep 17 00:00:00 2001 From: vnmedeiros Date: Fri, 26 Apr 2024 11:15:48 -0300 Subject: [PATCH 5/5] fix: tainacan plugin slug --- src/views/system-check/class-tainacan-system-check.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/system-check/class-tainacan-system-check.php b/src/views/system-check/class-tainacan-system-check.php index 258cbe691..493146b54 100644 --- a/src/views/system-check/class-tainacan-system-check.php +++ b/src/views/system-check/class-tainacan-system-check.php @@ -538,7 +538,7 @@ class System_Check { $current_version = TAINACAN_VERSION; $args = array( - 'slug' => 'Tainacan', + 'slug' => 'tainacan', 'fields' => array( 'version' => true, )