Skip to content

Commit 959b3ca

Browse files
Daniel BerthereauDaniel Berthereau
authored andcommitted
Added messages for issues in batch edit.
1 parent 4cd3474 commit 959b3ca

1 file changed

Lines changed: 38 additions & 28 deletions

File tree

Module.php

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -464,19 +464,21 @@ public function handleResourceBatchUpdatePreprocess(Event $event): void
464464
return;
465465
}
466466

467+
/**
468+
* @var \Laminas\Log\Logger $logger
469+
* @var \Common\Stdlib\EasyMeta $easyMeta
470+
* @var \Omeka\Mvc\Controller\Plugin\Messenger $messenger
471+
*/
467472
$services = $this->getServiceLocator();
473+
$logger = $services->get('Omeka\Logger');
474+
$easyMeta = $services->get('EasyMeta');
475+
$messenger = $services->get('ControllerPluginManager')->get('messenger');
468476

469477
if (!empty($post['geometry']['convert_literal_to_coordinates'])
470478
&& empty($post['geometry']['convert_literal_strict'])
471479
/** @see \DataTypeGeometry\View\Helper\DatabaseVersion::supportRegexpExt() */
472480
&& !$services->get('ViewHelperManager')->get('databaseVersion')->supportRegexpExt()
473481
) {
474-
/**
475-
* @var \Laminas\Log\Logger $logger
476-
* @var \Omeka\Mvc\Controller\Plugin\Messenger $messenger
477-
*/
478-
$logger = $services->get('Omeka\Logger');
479-
$messenger = $services->get('ControllerPluginManager')->get('messenger');
480482
$message = new Message('Your database does not support the function `regexp_substr`. Upgrade it to MariaDB 10.0.5 or MySQL 8.0.'); // @translate
481483
$logger->err($message);
482484
$messenger->addError($message);
@@ -486,45 +488,53 @@ public function handleResourceBatchUpdatePreprocess(Event $event): void
486488
}
487489

488490
$manage = $post['geometry']['manage_coordinates_features'] ?? null;
489-
if (!in_array($manage, ['sync', 'coordinates_to_features', 'features_to_coordinates'])) {
491+
if ($manage && !in_array($manage, ['sync', 'coordinates_to_features', 'features_to_coordinates'])) {
490492
unset($data['geometry']);
491493
$event->setParam('data', $data);
492494
return;
493495
}
494496

495-
/** @var \Common\Stdlib\EasyMeta $easyMeta */
496-
$easyMeta = $services->get('EasyMeta');
497+
if (empty($post['geometry']['from_properties'])) {
498+
$message = new Message('No source property set for conversion of geometric or geographic data.'); // @translate
499+
$logger->err($message);
500+
$messenger->addError($message);
501+
unset($data['geometry']);
502+
$event->setParam('data', $data);
503+
return;
504+
} elseif (!in_array('all', $post['geometry']['from_properties'])
505+
&& !$easyMeta->propertyIds($post['geometry']['from_properties']
506+
)) {
507+
$message = new Message('Invalid source properties set for conversion of geometric or geographic data.'); // @translate
508+
$logger->err($message);
509+
$messenger->addError($message);
510+
unset($data['geometry']);
511+
$event->setParam('data', $data);
512+
return;
513+
}
497514

498-
if (empty($post['geometry']['from_properties'])
499-
|| in_array('all', $post['geometry']['from_properties'])
515+
if (in_array($manage, ['sync', 'features_to_coordinates'])
516+
&& !empty($post['geometry']['to_property'])
500517
) {
501-
$from = null;
502-
} else {
503-
$from = $easyMeta->propertyIds($post['geometry']['from_properties']);
504-
if (!$from) {
505-
unset($data['geometry']);
506-
$event->setParam('data', $data);
507-
return;
508-
}
518+
$message = new Message('A destination property is needed to convert geometric or geographic data.'); // @translate
519+
$logger->err($message);
520+
$messenger->addError($message);
521+
unset($data['geometry']);
522+
$event->setParam('data', $data);
523+
return;
509524
}
510525

511-
if (empty($post['geometry']['to_property'])) {
512-
$to = null;
513-
} else {
526+
if (!empty($post['geometry']['to_property'])) {
514527
$to = $easyMeta->propertyId($post['geometry']['to_property']);
515528
if (!$to) {
529+
$message = new Message('Invalid destination property set for conversion of geometric or geographic data.'); // @translate
530+
$logger->err($message);
531+
$messenger->addError($message);
516532
unset($data['geometry']);
517533
$event->setParam('data', $data);
518534
return;
519535
}
520536
}
521537

522-
if (in_array($manage, ['sync', 'features_to_coordinates']) && !$to) {
523-
unset($data['geometry']);
524-
$event->setParam('data', $data);
525-
return;
526-
}
527-
528538
$data['geometry'] = $post['geometry'];
529539
$data['geometry']['convert_literal_to_coordinates'] = !empty($data['geometry']['convert_literal_to_coordinates']);
530540
$data['geometry']['convert_literal_order'] = $data['geometry']['convert_literal_order'] ?? null;

0 commit comments

Comments
 (0)