Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / settings_tray / src / Block / BlockEntityOffCanvasForm.php
diff --git a/web/core/modules/settings_tray/src/Block/BlockEntityOffCanvasForm.php b/web/core/modules/settings_tray/src/Block/BlockEntityOffCanvasForm.php
deleted file mode 100644 (file)
index 2c6f80d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php
-
-namespace Drupal\settings_tray\Block;
-
-use Drupal\block\BlockForm;
-use Drupal\block\BlockInterface;
-use Drupal\Component\Utility\Html;
-use Drupal\Core\Ajax\AjaxResponse;
-use Drupal\Core\Ajax\RedirectCommand;
-use Drupal\Core\Ajax\ReplaceCommand;
-use Drupal\Core\Block\BlockPluginInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Plugin\PluginWithFormsInterface;
-use Drupal\Core\Url;
-
-/**
- * Provides form for block instance forms when used in the off-canvas dialog.
- *
- * This form removes advanced sections of regular block form such as the
- * visibility settings, machine ID and region.
- *
- * @internal
- */
-class BlockEntityOffCanvasForm extends BlockForm {
-
-  /**
-   * Provides a title callback to get the block's admin label.
-   *
-   * @param \Drupal\block\BlockInterface $block
-   *   The block entity.
-   *
-   * @return \Drupal\Core\StringTranslation\TranslatableMarkup
-   *   The title.
-   */
-  public function title(BlockInterface $block) {
-    // @todo Wrap "Configure " in <span class="visually-hidden"></span> once
-    //   https://www.drupal.org/node/2359901 is fixed.
-    return $this->t('Configure @block', ['@block' => $block->getPlugin()->getPluginDefinition()['admin_label']]);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function form(array $form, FormStateInterface $form_state) {
-    $form = parent::form($form, $form_state);
-
-    // Create link to full block form.
-    $query = [];
-    if ($destination = $this->getRequest()->query->get('destination')) {
-      $query['destination'] = $destination;
-    }
-    $form['advanced_link'] = [
-      '#type' => 'link',
-      '#title' => $this->t('Advanced block options'),
-      '#url' => $this->entity->toUrl('edit-form', ['query' => $query]),
-      '#weight' => 1000,
-    ];
-
-    // Remove the ID and region elements.
-    unset($form['id'], $form['region'], $form['settings']['admin_label']);
-
-    if (isset($form['settings']['label_display']) && isset($form['settings']['label'])) {
-      // Only show the label input if the label will be shown on the page.
-      $form['settings']['label_display']['#weight'] = -100;
-      $form['settings']['label']['#states']['visible'] = [
-        ':input[name="settings[label_display]"]' => ['checked' => TRUE],
-      ];
-
-      // Relabel to "Block title" because on the front-end this may be confused
-      // with page title.
-      $form['settings']['label']['#title'] = $this->t("Block title");
-      $form['settings']['label_display']['#title'] = $this->t("Display block title");
-    }
-    return $form;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function actions(array $form, FormStateInterface $form_state) {
-    $actions = parent::actions($form, $form_state);
-    $actions['submit']['#value'] = $this->t('Save @block', ['@block' => $this->entity->getPlugin()->getPluginDefinition()['admin_label']]);
-    $actions['delete']['#access'] = FALSE;
-    return $actions;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function buildVisibilityInterface(array $form, FormStateInterface $form_state) {
-    // Do not display the visibility.
-    return [];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function validateVisibility(array $form, FormStateInterface $form_state) {
-    // Intentionally empty.
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function submitVisibility(array $form, FormStateInterface $form_state) {
-    // Intentionally empty.
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getPluginForm(BlockPluginInterface $block) {
-    if ($block instanceof PluginWithFormsInterface) {
-      return $this->pluginFormFactory->createInstance($block, 'settings_tray', 'configure');
-    }
-    return $block;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state) {
-    $form = parent::buildForm($form, $form_state);
-    $form['actions']['submit']['#ajax'] = [
-      'callback' => '::submitFormDialog',
-    ];
-    $form['#attached']['library'][] = 'core/drupal.dialog.ajax';
-
-    // static::submitFormDialog() requires data-drupal-selector to be the same
-    // between the various Ajax requests. A bug in
-    // \Drupal\Core\Form\FormBuilder prevents that from happening unless
-    // $form['#id'] is also the same. Normally, #id is set to a unique HTML ID
-    // via Html::getUniqueId(), but here we bypass that in order to work around
-    // the data-drupal-selector bug. This is okay so long as we assume that this
-    // form only ever occurs once on a page.
-    // @todo Remove this workaround once https://www.drupal.org/node/2897377 is
-    //   fixed.
-    $form['#id'] = Html::getId($form_state->getBuildInfo()['form_id']);
-
-    return $form;
-  }
-
-  /**
-   * Submit form dialog #ajax callback.
-   *
-   * @param array $form
-   *   An associative array containing the structure of the form.
-   * @param \Drupal\Core\Form\FormStateInterface $form_state
-   *   The current state of the form.
-   *
-   * @return \Drupal\Core\Ajax\AjaxResponse
-   *   An AJAX response that display validation error messages or redirects
-   *   to a URL
-   *
-   * @todo Repalce this callback with generic trait in
-   *   https://www.drupal.org/node/2896535.
-   */
-  public function submitFormDialog(array &$form, FormStateInterface $form_state) {
-    $response = new AjaxResponse();
-    if ($form_state->hasAnyErrors()) {
-      $form['status_messages'] = [
-        '#type' => 'status_messages',
-        '#weight' => -1000,
-      ];
-      $command = new ReplaceCommand('[data-drupal-selector="' . $form['#attributes']['data-drupal-selector'] . '"]', $form);
-    }
-    else {
-      if ($redirect_url = $this->getRedirectUrl()) {
-        $command = new RedirectCommand($redirect_url->setAbsolute()->toString());
-      }
-      else {
-        // Settings Tray always provides a destination.
-        throw new \Exception("No destination provided by Settings Tray form");
-      }
-    }
-    return $response->addCommand($command);
-  }
-
-  /**
-   * Gets the form's redirect URL from 'destination' provide in the request.
-   *
-   * @return \Drupal\Core\Url|null
-   *   The redirect URL or NULL if dialog should just be closed.
-   */
-  protected function getRedirectUrl() {
-    // \Drupal\Core\Routing\RedirectDestination::get() cannot be used directly
-    // because it will use <current> if 'destination' is not in the query
-    // string.
-    if ($this->getRequest()->query->has('destination') && $destination = $this->getRedirectDestination()->get()) {
-      return Url::fromUserInput('/' . $destination);
-    }
-  }
-
-}