From d1335cf6e68876a5e3d1f17c13cc9de00f613c3e Mon Sep 17 00:00:00 2001
From: Daniel Wehner <daniel.wehner@erdfisch.de>
Date: Sat, 28 Jul 2012 18:57:50 -0500
Subject: [PATCH] Make the wizard working again

---
 includes/admin.inc                                        | 2 +-
 .../Type/{WizardManager.php => WizardPluginManager.php}   | 4 ++--
 .../views/Plugins/views/wizard/WizardPluginBase.php       | 8 +++++++-
 views.module                                              | 4 ++++
 views_ui.module                                           | 3 ++-
 5 files changed, 16 insertions(+), 5 deletions(-)
 rename lib/Drupal/views/Plugins/Type/{WizardManager.php => WizardPluginManager.php} (76%)

diff --git a/includes/admin.inc b/includes/admin.inc
index 38bb8efe0888..0c83614f5b9a 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -381,7 +381,7 @@ function views_ui_add_form($form, &$form_state) {
   $wizard_key = $show_form['wizard_key']['#default_value'];
 
   views_include_handlers();
-  $manager = new WizardManager();
+  $manager = views_get_plugin_manager('wizard');
   $info = $manager->getDefinition($wizard_key);
   $wizard_instance = $manager->createInstance($wizard_key, $info);
   $form = $wizard_instance->build_form($form, $form_state);
diff --git a/lib/Drupal/views/Plugins/Type/WizardManager.php b/lib/Drupal/views/Plugins/Type/WizardPluginManager.php
similarity index 76%
rename from lib/Drupal/views/Plugins/Type/WizardManager.php
rename to lib/Drupal/views/Plugins/Type/WizardPluginManager.php
index f04e93bfca2f..f480331fdf13 100644
--- a/lib/Drupal/views/Plugins/Type/WizardManager.php
+++ b/lib/Drupal/views/Plugins/Type/WizardPluginManager.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Definition of Drupal\views\Plugins\Type\WizardManager.
+ * Definition of Drupal\views\Plugins\Type\WizardPluginManager.
  */
 
 namespace Drupal\views\Plugins\Type;
@@ -11,7 +11,7 @@
 use Drupal\Component\Plugin\Factory\DefaultFactory;
 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
-class WizardManager extends PluginManagerBase {
+class WizardPluginManager extends PluginManagerBase {
   public function __construct() {
     $this->discovery = new AnnotatedClassDiscovery('views', 'wizard');
     $this->factory = new DefaultFactory($this->discovery);
diff --git a/lib/Drupal/views/Plugins/views/wizard/WizardPluginBase.php b/lib/Drupal/views/Plugins/views/wizard/WizardPluginBase.php
index c1af643c32da..6c4227d26131 100644
--- a/lib/Drupal/views/Plugins/views/wizard/WizardPluginBase.php
+++ b/lib/Drupal/views/Plugins/views/wizard/WizardPluginBase.php
@@ -120,7 +120,7 @@ function build_form($form, &$form_state) {
       '#size' => 5,
       '#element_validate' => array('views_element_validate_integer'),
     );
-    $form['displays']['page']['options']['pagerz'] = array(
+    $form['displays']['page']['options']['pager'] = array(
       '#title' => t('Use a pager'),
       '#type' => 'checkbox',
       '#default_value' => TRUE,
@@ -431,6 +431,12 @@ protected function build_sorts(&$form, &$form_state) {
       $sorts += $this->plugin['available_sorts'];
     }
 
+    foreach ($sorts as &$option) {
+      if (is_object($option)) {
+        $option = $option->get();
+      }
+    }
+
     // If there is no sorts option available continue.
     if (!empty($sorts)) {
       $form['displays']['show']['sort'] = array(
diff --git a/views.module b/views.module
index cb26fa8844ec..25ee4b18dea4 100644
--- a/views.module
+++ b/views.module
@@ -27,6 +27,7 @@
 use Drupal\views\Plugins\Type\ExposedFormPluginManager;
 use Drupal\views\Plugins\Type\HandlerPluginManager;
 use Drupal\views\Plugins\Type\DisplayExtenderPluginManager;
+use Drupal\views\Plugins\Type\WizardPluginManager;
 
 /**
  * Advertise the current views api version
@@ -1427,6 +1428,9 @@ function views_get_plugin_manager($type) {
     case 'display_extender':
       $manager = new DisplayExtenderPluginManager();
       break;
+    case 'wizard':
+      $manager = new WizardPluginManager();
+      break;
     case 'field':
     case 'filter':
     case 'argument':
diff --git a/views_ui.module b/views_ui.module
index 7d8bb45ffc0d..f271818e4910 100644
--- a/views_ui.module
+++ b/views_ui.module
@@ -578,7 +578,8 @@ function views_ui_get_wizard($wizard_type) {
  */
 function views_ui_get_wizards() {
   ctools_include('plugins');
-  $wizard_plugins = module_invoke_all('views_wizard');
+  $manager = views_get_plugin_manager('wizard');
+  $wizard_plugins = $manager->getDefinitions();
   $wizard_tables = array();
   foreach ($wizard_plugins as $name => $info) {
     $wizard_tables[$info['base_table']] = TRUE;
-- 
GitLab