You are here

public function FlowForm::enableAllReferenced in CMS Content Sync 2.1.x

Same name and namespace in other branches
  1. 8 src/Form/FlowForm.php \Drupal\cms_content_sync\Form\FlowForm::enableAllReferenced()
  2. 2.0.x src/Form/FlowForm.php \Drupal\cms_content_sync\Form\FlowForm::enableAllReferenced()

Show all field settings not just the summary.

Parameters

array $form:

File

src/Form/FlowForm.php, line 442

Class

FlowForm
Form handler for the Flow add and edit forms.

Namespace

Drupal\cms_content_sync\Form

Code

public function enableAllReferenced($form, FormStateInterface $form_state) {
  $trigger = $form_state
    ->getTriggeringElement();
  $entity_type_name = $trigger['#entity_type'];
  $bundle_name = $trigger['#bundle'];
  $this->triggeringType = $entity_type_name;
  $this->triggeringBundle = $bundle_name;
  $this->triggeredAction = 'properties';
  $this
    ->fixMissingFormStateFromAjax($form, $form_state);
  $referenced_type = $trigger['#referenced_type'];
  $referenced_bundles = $trigger['#referenced_bundles'];
  if ('all' === $referenced_bundles) {
    $entity_types = $this->bundleInfoService
      ->getAllBundleInfo();
    foreach ($entity_types[$referenced_type] as $bundle => $set) {
      if (empty($current_values['per_bundle_settings'][$referenced_type][$bundle]['settings']['handler']) || Flow::HANDLER_IGNORE == $current_values['per_bundle_settings'][$referenced_type][$bundle]['settings']['handler']) {
        $form_state
          ->setValue([
          $referenced_type,
          $bundle,
          'edit',
        ], '1');
        $this->ajaxReplaceElements[] = [
          $referenced_type,
          $bundle,
        ];
      }
    }
  }
  else {
    foreach ($referenced_bundles as $bundle) {
      if (empty($current_values['per_bundle_settings'][$referenced_type][$bundle]['settings']['handler']) || Flow::HANDLER_IGNORE == $current_values['per_bundle_settings'][$referenced_type][$bundle]['settings']['handler']) {
        $form_state
          ->setValue([
          $referenced_type,
          $bundle,
          'edit',
        ], '1');
        $this->ajaxReplaceElements[] = [
          $referenced_type,
          $bundle,
        ];
      }
    }
  }
  $form_state
    ->setRebuild();
}