From 27673b54c97643d2665f011e5cdbffa58c35270b Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Thu, 16 Feb 2023 09:32:27 +0100 Subject: [PATCH] chg: [metaTemplate:migrateMetaField] Ignore metafield with empty value --- src/Controller/MetaTemplatesController.php | 5 ++++- src/Model/Table/MetaFieldsTable.php | 3 --- src/Model/Table/MetaTemplatesTable.php | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Controller/MetaTemplatesController.php b/src/Controller/MetaTemplatesController.php index a695351..4328961 100644 --- a/src/Controller/MetaTemplatesController.php +++ b/src/Controller/MetaTemplatesController.php @@ -226,13 +226,16 @@ class MetaTemplatesController extends AppController foreach ($newestMetaTemplate->meta_template_fields as $i => $newMetaTemplateField) { if ($metaTemplateField->field == $newMetaTemplateField->field && empty($newMetaTemplateField->metaFields)) { $movedMetaTemplateFields[] = $metaTemplateField->id; + $nonEmptyMetaFields = array_filter($metaTemplateField->metaFields, function ($e) { + return $e->value !== ''; + }); $copiedMetaFields = array_map(function ($e) use ($newMetaTemplateField) { $e = $e->toArray(); $e['meta_template_id'] = $newMetaTemplateField->meta_template_id; $e['meta_template_field_id'] = $newMetaTemplateField->id; unset($e['id']); return $e; - }, $metaTemplateField->metaFields); + }, $nonEmptyMetaFields); $newMetaTemplateField->metaFields = $this->MetaTemplates->MetaTemplateFields->MetaFields->newEntities($copiedMetaFields); } } diff --git a/src/Model/Table/MetaFieldsTable.php b/src/Model/Table/MetaFieldsTable.php index 92ebf83..4b0338b 100644 --- a/src/Model/Table/MetaFieldsTable.php +++ b/src/Model/Table/MetaFieldsTable.php @@ -94,9 +94,6 @@ class MetaFieldsTable extends AppTable public function isValidType($value, $metaTemplateField) { - if (empty($value)) { - return __('Metafield value cannot be empty.'); - } $typeHandler = $this->MetaTemplateFields->getTypeHandler($metaTemplateField['type']); if (!empty($typeHandler)) { $success = $typeHandler->validate($value); diff --git a/src/Model/Table/MetaTemplatesTable.php b/src/Model/Table/MetaTemplatesTable.php index 0353e2b..40a2a1b 100644 --- a/src/Model/Table/MetaTemplatesTable.php +++ b/src/Model/Table/MetaTemplatesTable.php @@ -1305,7 +1305,7 @@ class MetaTemplatesTable extends AppTable $updateStatus['next_version'] = $template['version']; $updateStatus['new'] = false; $updateStatus['automatically-updateable'] = false; - if ($metaTemplate->version >= $template['version']) { + if (intval($metaTemplate->version) >= intval($template['version'])) { $updateStatus['up-to-date'] = true; $updateStatus['conflicts'][] = __('Could not update the template. Local version is equal or newer.'); return $updateStatus;