Mercurial > hg > isophonics-drupal-site
view core/modules/layout_builder/src/Controller/LayoutRebuildTrait.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 1fec387a4317 |
children | af1871eacc83 |
line wrap: on
line source
<?php namespace Drupal\layout_builder\Controller; use Drupal\Core\Ajax\AjaxResponse; use Drupal\Core\Ajax\CloseDialogCommand; use Drupal\Core\Ajax\ReplaceCommand; use Drupal\layout_builder\SectionStorageInterface; /** * Provides AJAX responses to rebuild the Layout Builder. * * @internal */ trait LayoutRebuildTrait { /** * The class resolver. * * @var \Drupal\Core\DependencyInjection\ClassResolverInterface */ protected $classResolver; /** * Rebuilds the layout. * * @param \Drupal\layout_builder\SectionStorageInterface $section_storage * The section storage. * * @return \Drupal\Core\Ajax\AjaxResponse * An AJAX response to either rebuild the layout and close the dialog, or * reload the page. */ protected function rebuildAndClose(SectionStorageInterface $section_storage) { $response = $this->rebuildLayout($section_storage); $response->addCommand(new CloseDialogCommand('#drupal-off-canvas')); return $response; } /** * Rebuilds the layout. * * @param \Drupal\layout_builder\SectionStorageInterface $section_storage * The section storage. * * @return \Drupal\Core\Ajax\AjaxResponse * An AJAX response to either rebuild the layout and close the dialog, or * reload the page. */ protected function rebuildLayout(SectionStorageInterface $section_storage) { $response = new AjaxResponse(); $layout_controller = $this->classResolver->getInstanceFromDefinition(LayoutBuilderController::class); $layout = $layout_controller->layout($section_storage, TRUE); $response->addCommand(new ReplaceCommand('#layout-builder', $layout)); return $response; } }