Commit b7dd4872 authored by Paulo Henrique Cota Starling's avatar Paulo Henrique Cota Starling Committed by Colan Schwartz
Browse files

Issue #3217413 by paulocs, colan, marcusvsouza: Move all...

Issue #3217413 by paulocs, colan, marcusvsouza: Move all conditional_fields_element_after_build logic to a service
parent d955d61f
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class ConditionalFieldsElementAlterHelper {
          $bundle = $bundle->getPluginId();
        }

        $dependencies = $this->conditionalFieldsLoadDependencies($entity_type, $bundle);
        $dependencies = $this->loadDependencies($entity_type, $bundle);

        if (!$dependencies) {
          return $element;
@@ -74,16 +74,16 @@ class ConditionalFieldsElementAlterHelper {
        // Attach dependent.
        if (isset($dependencies['dependents'][$field_name])) {
          foreach ($dependencies['dependents'][$field_name] as $id => $dependency) {
            if (!isset($form['#conditional_fields'][$field_name]['dependees'][$id]) || $this->conditionalFieldsIsPriorityField($field)) {
              $this->conditionalFieldsAttachDependency($form, $form_state, ['#field_name' => $dependency['dependee']], $field, $dependency['options'], $id);
            if (!isset($form['#conditional_fields'][$field_name]['dependees'][$id]) || $this->isPriorityField($field)) {
              $this->attachDependency($form, $form_state, ['#field_name' => $dependency['dependee']], $field, $dependency['options'], $id);
            }
          }
        }

        if (isset($dependencies['dependees'][$field_name])) {
          foreach ($dependencies['dependees'][$field_name] as $id => $dependency) {
            if (!isset($form['#conditional_fields'][$field_name]['dependents'][$id]) || $this->conditionalFieldsIsPriorityField($field)) {
              $this->conditionalFieldsAttachDependency($form, $form_state, $field, ['#field_name' => $dependency['dependent']], $dependency['options'], $id);
            if (!isset($form['#conditional_fields'][$field_name]['dependents'][$id]) || $this->isPriorityField($field)) {
              $this->attachDependency($form, $form_state, $field, ['#field_name' => $dependency['dependent']], $dependency['options'], $id);
            }
          }
        }
@@ -96,7 +96,7 @@ class ConditionalFieldsElementAlterHelper {
  /**
   * Loads all dependencies from the database for a given bundle.
   */
  public function conditionalFieldsLoadDependencies($entity_type, $bundle) {
  public function loadDependencies($entity_type, $bundle) {
    static $dependency_helper;
    if (!isset($dependency_helper)) {
      $dependency_helper = new DependencyHelper($entity_type, $bundle);
@@ -115,7 +115,7 @@ class ConditionalFieldsElementAlterHelper {
   * @return bool
   *   Check the fields is priority and return the boolean result
   */
  public function conditionalFieldsIsPriorityField(array $field) {
  public function isPriorityField(array $field) {
    $priority_fields = [
      'datelist',
    ];
@@ -182,7 +182,7 @@ class ConditionalFieldsElementAlterHelper {
   *   Note that you don't need to manually set all these options, since default
   *   settings are always provided.
   */
  public function conditionalFieldsAttachDependency(array &$form, &$form_state, $dependee, $dependent, array $options, $id = 0) {
  public function attachDependency(array &$form, &$form_state, $dependee, $dependent, array $options, $id = 0) {
    // The absence of the $id parameter identifies a custom dependency.
    if (!$id) {
      // String values are accepted to simplify usage of this function with custom