Commit be2cd6c5 authored by Jimmy Henderickx's avatar Jimmy Henderickx Committed by Jimmy Henderickx
Browse files

Issue #3306634 by StryKaizer: Support exposed forms not rendered in separate block

parent ab048345
Loading
Loading
Loading
Loading
+24 −24
Original line number Diff line number Diff line
@@ -22,11 +22,15 @@ class FacetsViewsAjaxController extends ViewAjaxController {
  public function ajaxView(Request $request) {
    $this->facetsRemoveQueryParams($request);
    $response = parent::ajaxView($request);
    $metadata = $this->addExposedBlockToResponse($response);

    $view = $response->getView();
    $display = $view->getDisplay();
    if ($display->getOption('exposed_block') && $display->usesExposedFormInBlock()) {
      $metadata = $this->addExposedBlockToResponse($response);
      if ($response instanceof CacheableResponseInterface) {
        $response->addCacheableDependency($metadata);
      }
    }

    return $response;
  }
@@ -56,9 +60,6 @@ class FacetsViewsAjaxController extends ViewAjaxController {
   * Adds the exposed form to the response if necessary.
   */
  protected function addExposedBlockToResponse(ViewAjaxResponse $response): CacheableMetadata {
    $view = $response->getView();
    $display = $view->getDisplay();
    if ($display->getOption('exposed_block') && $display->usesExposedFormInBlock()) {

    $context = new RenderContext();
    $exposed_block = $this->renderer->executeInRenderContext($context, function () use ($view) {
@@ -80,7 +81,6 @@ class FacetsViewsAjaxController extends ViewAjaxController {
    // Replace exposed block.
    $selector = 'views-exposed-form-' . strtr($view->id(), '_', '-') . '-' . strtr($view->current_display, '_', '-');
    $response->addCommand(new ReplaceCommand("#" . $selector, $exposed_block));
    }

    return CacheableMetadata::createFromRenderArray($exposed_block);
  }