diff --git a/modules/core/import/modules/csv/farm_import_csv.services.yml b/modules/core/import/modules/csv/farm_import_csv.services.yml index a74eecd39..0b7a5f3a8 100644 --- a/modules/core/import/modules/csv/farm_import_csv.services.yml +++ b/modules/core/import/modules/csv/farm_import_csv.services.yml @@ -9,3 +9,8 @@ services: arguments: [ '@database', '@current_user', '@tempstore.private' ] tags: - { name: 'event_subscriber' } + farm_import_csv.config_subscriber: + class: Drupal\farm_import_csv\EventSubscriber\CsvMigrationConfigSubscriber + arguments: [ '@router.builder' ] + tags: + - { name: 'event_subscriber' } diff --git a/modules/core/import/modules/csv/src/EventSubscriber/CsvMigrationConfigSubscriber.php b/modules/core/import/modules/csv/src/EventSubscriber/CsvMigrationConfigSubscriber.php new file mode 100644 index 000000000..7864c68a0 --- /dev/null +++ b/modules/core/import/modules/csv/src/EventSubscriber/CsvMigrationConfigSubscriber.php @@ -0,0 +1,54 @@ +routerBuilder = $router_builder; + } + + /** + * {@inheritdoc} + */ + public static function getSubscribedEvents() { + $events[ConfigEvents::SAVE][] = ['rebuildRouter']; + $events[ConfigEvents::DELETE][] = ['rebuildRouter']; + return $events; + } + + /** + * Informs the router builder a rebuild is needed when necessary. + * + * @param \Drupal\Core\Config\ConfigCrudEvent $event + * The Event to process. + */ + public function rebuildRouter(ConfigCrudEvent $event) { + $config = $event->getConfig(); + if (str_starts_with($config->getName(), 'migrate_plus.migration.')) { + $this->routerBuilder->setRebuildNeeded(); + } + } + +}