diff --git a/core/modules/node/config/schema/node.views.schema.yml b/core/modules/node/config/schema/node.views.schema.yml index 0b16f94..942e89b 100644 --- a/core/modules/node/config/schema/node.views.schema.yml +++ b/core/modules/node/config/schema/node.views.schema.yml @@ -157,7 +157,7 @@ views.field.node_path: label: 'Use absolute link (begins with "http://")' views.field.node_revision: - type: views_field + type: views.field.node label: 'Node revision' mapping: link_to_node_revision: diff --git a/core/modules/node/src/Plugin/views/wizard/Node.php b/core/modules/node/src/Plugin/views/wizard/Node.php index 2ce97ca..d8f4b32 100644 --- a/core/modules/node/src/Plugin/views/wizard/Node.php +++ b/core/modules/node/src/Plugin/views/wizard/Node.php @@ -42,7 +42,8 @@ class Node extends WizardPluginBase { 'alter' => array( 'alter_text' => TRUE, 'text' => 'node/[nid]' - ) + ), + 'plugin_id' => 'node', ); /** @@ -53,7 +54,7 @@ class Node extends WizardPluginBase { 'value' => TRUE, 'table' => 'node_field_data', 'field' => 'status', - 'provider' => 'node' + 'plugin_id' => 'boolean' ) ); @@ -148,6 +149,7 @@ protected function defaultDisplayOptions() { $display_options['fields']['title']['hide_empty'] = 0; $display_options['fields']['title']['empty_zero'] = 0; $display_options['fields']['title']['link_to_node'] = 1; + $display_options['fields']['title']['plugin_id'] = 'node'; return $display_options; } diff --git a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php index 3297b1c..82ad93a 100644 --- a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php +++ b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php @@ -40,7 +40,8 @@ class NodeRevision extends WizardPluginBase { 'alter' => array( 'alter_text' => TRUE, 'text' => 'node/[nid]/revisions/[vid]/view' - ) + ), + 'plugin_id' => 'node_revision', ); /** @@ -52,7 +53,8 @@ class NodeRevision extends WizardPluginBase { 'table' => 'node', 'field' => 'nid', 'exclude' => TRUE, - 'link_to_node' => FALSE + 'link_to_node' => FALSE, + 'plugin_id' => 'node', ) ); @@ -64,7 +66,7 @@ class NodeRevision extends WizardPluginBase { 'value' => TRUE, 'table' => 'node_field_revision', 'field' => 'status', - 'provider' => 'node' + 'plugin_id' => 'boolean' ) ); @@ -88,7 +90,7 @@ protected function defaultDisplayOptions() { // Add permission-based access control. $display_options['access']['type'] = 'perm'; - $display_options['access']['perm'] = 'view revisions'; + $display_options['access']['options']['perm'] = 'view revisions'; // Remove the default fields, since we are customizing them here. unset($display_options['fields']); @@ -107,6 +109,7 @@ protected function defaultDisplayOptions() { $display_options['fields']['changed']['alter']['html'] = FALSE; $display_options['fields']['changed']['hide_empty'] = FALSE; $display_options['fields']['changed']['empty_zero'] = FALSE; + $display_options['fields']['changed']['plugin_id'] = 'date'; /* Field: Content revision: Title */ $display_options['fields']['title']['id'] = 'title'; @@ -125,6 +128,7 @@ protected function defaultDisplayOptions() { $display_options['fields']['title']['empty_zero'] = 0; $display_options['fields']['title']['link_to_node'] = 0; $display_options['fields']['title']['link_to_node_revision'] = 1; + $display_options['fields']['title']['plugin_id'] = 'node_revision'; return $display_options; } diff --git a/core/modules/user/src/Plugin/views/wizard/Users.php b/core/modules/user/src/Plugin/views/wizard/Users.php index 92b29a9..d715dc1 100644 --- a/core/modules/user/src/Plugin/views/wizard/Users.php +++ b/core/modules/user/src/Plugin/views/wizard/Users.php @@ -41,7 +41,8 @@ class Users extends WizardPluginBase { 'alter' => array( 'alter_text' => TRUE, 'text' => 'user/[uid]' - ) + ), + 'plugin_id' => 'user', ); /** @@ -52,7 +53,7 @@ class Users extends WizardPluginBase { 'value' => TRUE, 'table' => 'users_field_data', 'field' => 'status', - 'provider' => 'user' + 'plugin_id' => 'boolean', ) ); @@ -64,7 +65,7 @@ protected function defaultDisplayOptions() { // Add permission-based access control. $display_options['access']['type'] = 'perm'; - $display_options['access']['perm'] = 'access user profiles'; + $display_options['access']['options']['perm'] = 'access user profiles'; // Remove the default fields, since we are customizing them here. unset($display_options['fields']); @@ -86,6 +87,7 @@ protected function defaultDisplayOptions() { $display_options['fields']['name']['empty_zero'] = 0; $display_options['fields']['name']['link_to_user'] = 1; $display_options['fields']['name']['overwrite_anonymous'] = 0; + $display_options['fields']['name']['plugin_id'] = 'user_name'; return $display_options; } diff --git a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php index 28e7afa..c906296 100644 --- a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php +++ b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php @@ -865,10 +865,6 @@ protected function defaultDisplayOptions() { 'id' => $default_field, ); - // Load the plugin ID and module. - $base_field = $data['table']['base']['field']; - $display_options['fields'][$base_field]['plugin_id'] = $data[$base_field]['field']['id']; - return $display_options; } diff --git a/core/modules/views/src/Tests/NewViewConfigSchemaTest.php b/core/modules/views/src/Tests/NewViewConfigSchemaTest.php new file mode 100644 index 0000000..7ee6862 --- /dev/null +++ b/core/modules/views/src/Tests/NewViewConfigSchemaTest.php @@ -0,0 +1,51 @@ +drupalLogin($this->drupalCreateUser(array('administer views'))); + + // Create views with all core Views wizards. + $wizards = array('node', 'node_revision', 'users', 'comment', 'file_managed', 'taxonomy_term', 'watchdog'); + foreach($wizards as $wizard_key) { + $edit = array(); + $edit['label'] = $this->randomString(); + $edit['id'] = strtolower($this->randomMachineName()); + $edit['show[wizard_key]'] = $wizard_key; + $edit['description'] = $this->randomString(); + $this->drupalPostForm('admin/structure/views/add', $edit, t('Save and edit')); + } + } + +} diff --git a/core/modules/views/src/Tests/Wizard/WizardTestBase.php b/core/modules/views/src/Tests/Wizard/WizardTestBase.php index 0a2e998..16907b8 100644 --- a/core/modules/views/src/Tests/Wizard/WizardTestBase.php +++ b/core/modules/views/src/Tests/Wizard/WizardTestBase.php @@ -15,6 +15,15 @@ abstract class WizardTestBase extends ViewTestBase { /** + * Set to TRUE to strict check all configuration saved. + * + * @see \Drupal\Core\Config\Testing\ConfigSchemaChecker + * + * @var bool + */ + protected $strictConfigSchema = TRUE; + + /** * Modules to enable. * * @var array