diff --git a/business_rules.module b/business_rules.module index 6c42714..01561e8 100644 --- a/business_rules.module +++ b/business_rules.module @@ -203,8 +203,8 @@ function business_rules_field_widget_form_alter(&$element, FormStateInterface $f $parent_field = NULL; foreach ($fields_definitions as $field_name => $field_definition) { $handler = $field_definition->getSetting('handler'); - if ($handler == 'business_rules_views') { - $handle_settings = $field_definition->getSetting('handler_settings'); + $handle_settings = $field_definition->getSetting('handler_settings'); + if ($handler == 'business_rules_views' && $handle_settings['business_rules_view']['parent_field'] == $items->getName()) { $parent_field = $handle_settings['business_rules_view']['parent_field']; $child_field = $field_name; $child_title = $field_definition->label(); @@ -213,7 +213,7 @@ function business_rules_field_widget_form_alter(&$element, FormStateInterface $f } // Add ajax to parent field. - if (!is_null($parent_field) && $parent_field == $items->getName()) { + if (!is_null($parent_field)) { $element['#ajax'] = [ 'callback' => '\Drupal\business_rules\Plugin\EntityReferenceSelection\BusinessRulesViewsSelection::updateDependentField', 'event' => 'change', diff --git a/src/Plugin/EntityReferenceSelection/BusinessRulesViewsSelection.php b/src/Plugin/EntityReferenceSelection/BusinessRulesViewsSelection.php index a1b6ed1..f0364d7 100644 --- a/src/Plugin/EntityReferenceSelection/BusinessRulesViewsSelection.php +++ b/src/Plugin/EntityReferenceSelection/BusinessRulesViewsSelection.php @@ -110,8 +110,7 @@ class BusinessRulesViewsSelection extends PluginBase implements SelectionInterfa * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { - $selection_handler_settings = $this->configuration['handler_settings']; - $view_settings = !empty($selection_handler_settings['business_rules_view']) ? $selection_handler_settings['business_rules_view'] : []; + $view_settings = !empty($this->configuration['business_rules_view']) ? $this->configuration['business_rules_view'] : []; $displays = Views::getApplicableViews('entity_reference_display'); // Filter views that list the entity type we want, and group the separate // displays by view. @@ -237,9 +236,8 @@ class BusinessRulesViewsSelection extends PluginBase implements SelectionInterfa * Return TRUE if the view was initialized, FALSE otherwise. */ protected function initializeView($match = NULL, $match_operator = 'CONTAINS', $limit = 0, $ids = NULL) { - $handler_settings = $this->configuration['handler_settings']; - $view_name = $handler_settings['business_rules_view']['view_name']; - $display_name = $handler_settings['business_rules_view']['display_name']; + $view_name = $this->configuration['business_rules_view']['view_name']; + $display_name = $this->configuration['business_rules_view']['display_name']; // Check that the view is valid and the display still exists. $this->view = Views::getView($view_name); @@ -267,10 +265,9 @@ class BusinessRulesViewsSelection extends PluginBase implements SelectionInterfa * {@inheritdoc} */ public function getReferenceableEntities($match = NULL, $match_operator = 'CONTAINS', $limit = 0) { - $handler_settings = $this->configuration['handler_settings']; - $display_name = $handler_settings['business_rules_view']['display_name']; - $arguments = $handler_settings['business_rules_view']['arguments']; - $parent_field = $handler_settings['business_rules_view']['parent_field']; + $display_name = $this->configuration['business_rules_view']['display_name']; + $arguments = $this->configuration['business_rules_view']['arguments']; + $parent_field = $this->configuration['business_rules_view']['parent_field']; /** @var \Drupal\Core\Entity\Entity $entity */ $entity = $this->configuration['entity']; @@ -306,10 +303,9 @@ class BusinessRulesViewsSelection extends PluginBase implements SelectionInterfa * {@inheritdoc} */ public function validateReferenceableEntities(array $ids) { - $handler_settings = $this->configuration['handler_settings']; - $display_name = $handler_settings['business_rules_view']['display_name']; - $arguments = $handler_settings['business_rules_view']['arguments']; - $parent_field = $handler_settings['business_rules_view']['parent_field']; + $display_name = $this->configuration['business_rules_view']['display_name']; + $arguments = $this->configuration['business_rules_view']['arguments']; + $parent_field = $this->configuration['business_rules_view']['parent_field']; $parent_field_value = $this->util->request->get($parent_field); $arguments = !empty($parent_field_value) ? [$parent_field_value] + $arguments : $arguments; $result = []; @@ -333,9 +329,8 @@ class BusinessRulesViewsSelection extends PluginBase implements SelectionInterfa * Array with valid ids. */ private function getValidIds($parent_field_value) { - $handler_settings = $this->configuration['handler_settings']; - $display_name = $handler_settings['business_rules_view']['display_name']; - $arguments = $handler_settings['business_rules_view']['arguments']; + $display_name = $this->configuration['business_rules_view']['display_name']; + $arguments = $this->configuration['business_rules_view']['arguments']; $arguments = !empty($parent_field_value) ? [$parent_field_value] + $arguments : $arguments; $result = []; if ($this->initializeView(NULL, 'CONTAINS', 0)) {