You are here

function apigee_api_catalog_form_node_form_alter in Apigee API Catalog 8.2

Implements hook_form_FORM_ID_alter().

File

./apigee_api_catalog.module, line 149
Copyright 2019 Google Inc.

Code

function apigee_api_catalog_form_node_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $node = $form_state
    ->getFormObject()
    ->getEntity();
  if ($node
    ->bundle() != 'apidoc') {
    return;
  }
  $form['field_apidoc_spec']['#states'] = [
    'visible' => [
      ':input[name="field_apidoc_spec_file_source"]' => [
        'value' => SpecFetcherInterface::SPEC_AS_FILE,
      ],
    ],
  ];

  // @todo: #states does not work on managed files.
  // @see: https://www.drupal.org/project/drupal/issues/2847425
  $form['field_apidoc_spec']['widget'][0]['#states'] = [
    'required' => [
      ':input[name="field_apidoc_spec_file_source"]' => [
        'value' => SpecFetcherInterface::SPEC_AS_FILE,
      ],
    ],
  ];
  $form['field_apidoc_file_link']['#states'] = [
    'visible' => [
      [
        ':input[name="field_apidoc_spec_file_source"]' => [
          'value' => SpecFetcherInterface::SPEC_AS_URL,
        ],
      ],
    ],
  ];
  $form['field_apidoc_file_link']['widget'][0]['uri']['#states'] = [
    'required' => [
      [
        ':input[name="field_apidoc_spec_file_source"]' => [
          'value' => SpecFetcherInterface::SPEC_AS_URL,
        ],
      ],
    ],
  ];
  $form['#validate'][] = '_apigee_api_catalog_form_node_form_validate';
}