You are here

public function ManageContext::addRelationship in Chaos Tool Suite (ctools) 8.3

File

src/Form/ManageContext.php, line 193

Class

ManageContext

Namespace

Drupal\ctools\Form

Code

public function addRelationship(array &$form, FormStateInterface $form_state) {
  $relationship = $form_state
    ->getValue('relationships');
  $content = $this->formBuilder
    ->getForm($this
    ->getRelationshipClass(), $relationship, $this
    ->getTempstoreId(), $this->machine_name);
  $content['#attached']['library'][] = 'core/drupal.dialog.ajax';
  $cached_values = $form_state
    ->getTemporaryValue('wizard');
  list(, $route_parameters) = $this
    ->getRelationshipOperationsRouteInfo($cached_values, $this->machine_name, $relationship);
  $route_name = $this
    ->getRelationshipAddRoute($cached_values);
  $route_options = [
    'query' => [
      FormBuilderInterface::AJAX_FORM_REQUEST => TRUE,
    ],
  ];
  $url = Url::fromRoute($route_name, $route_parameters, $route_options);
  $content['submit']['#attached']['drupalSettings']['ajax'][$content['submit']['#id']]['url'] = $url
    ->toString();
  $response = new AjaxResponse();
  $response
    ->addCommand(new OpenModalDialogCommand($this
    ->t('Configure Relationship'), $content, [
    'width' => '700',
  ]));
  return $response;
}