diff --git a/core/modules/node/config/optional/views.view.content_revisions.yml b/core/modules/node/config/optional/views.view.content_revisions.yml index bafa640..4066c62 100644 --- a/core/modules/node/config/optional/views.view.content_revisions.yml +++ b/core/modules/node/config/optional/views.view.content_revisions.yml @@ -338,6 +338,70 @@ display: entity_type: node entity_field: uid plugin_id: field + revision_log: + id: revision_log + table: node_revision + field: revision_log + relationship: none + group_type: group + admin_label: '' + label: 'Log message' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: basic_string + settings: { } + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: revision_log + plugin_id: field link_to_revision: id: link_to_revision table: node_field_revision diff --git a/core/modules/node/node.install b/core/modules/node/node.install index c754880..74e2fe9 100644 --- a/core/modules/node/node.install +++ b/core/modules/node/node.install @@ -5,6 +5,8 @@ * Install, update and uninstall functions for the node module. */ +use Drupal\Core\Config\FileStorage; +use Drupal\Core\Config\InstallStorage; use Drupal\Core\Field\BaseFieldDefinition; use Drupal\user\RoleInterface; @@ -218,3 +220,24 @@ function node_update_8003() { $manager->updateFieldStorageDefinition($manager->getFieldStorageDefinition($field_name, 'node')); } } + +/** + * Replace content revisions page callback with a content revisions view. + */ +function node_update_8004() { + $module_handler = \Drupal::moduleHandler(); + // Skip the update if views module is not installed. + if (!$module_handler->moduleExists('views')) { + return NULL; + } + + // Save the content revisions view to config. + $optional_install_path = drupal_get_path('module', 'node') . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY; + $storage = new FileStorage($optional_install_path); + \Drupal::entityManager() + ->getStorage('view') + ->create($storage->read('views.view.content_revisions')) + ->save(); + + return \Drupal::translation()->translate('Replaced content revisions with a view'); +} diff --git a/core/modules/node/src/Tests/NodeRevisionsViewsUpdateTest.php b/core/modules/node/src/Tests/NodeRevisionsViewsUpdateTest.php new file mode 100644 index 0000000..8cce41c --- /dev/null +++ b/core/modules/node/src/Tests/NodeRevisionsViewsUpdateTest.php @@ -0,0 +1,49 @@ +databaseDumpFiles = [ + __DIR__ . '/../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz', + ]; + } + + /** + * Tests that comment revisions view is enabled after update. + */ + public function testUpdateHookN() { + $this->runUpdates(); + // Ensure we can load the view from the storage after the update and it's + // enabled. + $entity_type_manager = \Drupal::entityTypeManager(); + /** @var \Drupal\views\ViewEntityInterface $view */ + $view = $entity_type_manager->getStorage('view')->load('content_revisions'); + $this->assertNotNull($view, 'Content revisions view exist in storage.'); + $this->assertTrue($view->enable(), 'Content revisions view is enabled.'); + } + +}