Version 1
[yaffs-website] / web / core / modules / views_ui / src / Form / Ajax / Analyze.php
diff --git a/web/core/modules/views_ui/src/Form/Ajax/Analyze.php b/web/core/modules/views_ui/src/Form/Ajax/Analyze.php
new file mode 100644 (file)
index 0000000..52784d3
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+namespace Drupal\views_ui\Form\Ajax;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\views\Views;
+
+/**
+ * Displays analysis information for a view.
+ */
+class Analyze extends ViewsFormBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormKey() {
+    return 'analyze';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'views_ui_analyze_view_form';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $view = $form_state->get('view');
+
+    $form['#title'] = $this->t('View analysis');
+    $form['#section'] = 'analyze';
+
+    $analyzer = Views::analyzer();
+    $messages = $analyzer->getMessages($view->getExecutable());
+
+    $form['analysis'] = [
+      '#prefix' => '<div class="js-form-item form-item">',
+      '#suffix' => '</div>',
+      '#markup' => $analyzer->formatMessages($messages),
+    ];
+
+    // Inform the standard button function that we want an OK button.
+    $form_state->set('ok_button', TRUE);
+    $view->getStandardButtons($form, $form_state, 'views_ui_analyze_view_form');
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    /** @var $view \Drupal\views_ui\ViewUI */
+    $view = $form_state->get('view');
+    $form_state->setRedirectUrl($view->urlInfo('edit-form'));
+  }
+
+}