Loading core/modules/node/src/Controller/NodeController.php +10 −2 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ public function revisionOverview(NodeInterface $node) { $rows = []; $default_revision = $node->getRevisionId(); $current_revision_displayed = FALSE; foreach ($this->getRevisionIds($node, $node_storage) as $vid) { /** @var \Drupal\node\NodeInterface $revision */ Loading @@ -187,11 +188,18 @@ public function revisionOverview(NodeInterface $node) { // Use revision link to link to revisions that are not active. $date = $this->dateFormatter->format($revision->revision_timestamp->value, 'short'); if ($vid != $node->getRevisionId()) { // We treat also the latest translation-affecting revision as current // revision, if it was the default revision, as its values for the // current language will be the same of the current default revision in // this case. $is_current_revision = $vid == $default_revision || (!$current_revision_displayed && $revision->wasDefaultRevision()); if (!$is_current_revision) { $link = $this->l($date, new Url('entity.node.revision', ['node' => $node->id(), 'node_revision' => $vid])); } else { $link = $node->link($date); $current_revision_displayed = TRUE; } $row = []; Loading @@ -210,7 +218,7 @@ public function revisionOverview(NodeInterface $node) { $this->renderer->addCacheableDependency($column['data'], $username); $row[] = $column; if ($vid == $default_revision) { if ($is_current_revision) { $row[] = [ 'data' => [ '#prefix' => '<em>', Loading core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php +9 −2 Original line number Diff line number Diff line Loading @@ -160,10 +160,17 @@ public function testNodeRevisionsTabWithDefaultRevision() { $this->drupalGet('node/' . $node_id . '/revisions'); // Verify that the latest affected revision having been a default revision // is displayed as the current one. $this->assertNoLinkByHref('/node/' . $node_id . '/revisions/1/revert'); $elements = $this->xpath('//tr[contains(@class, "revision-current")]/td/a[1]'); // The site may be installed in a subdirectory, so check if the URL is // contained in the retrieved one. $this->assertContains('/node/1', current($elements)->getAttribute('href')); // Verify that the default revision can be an older revision than the latest // one. // Assert that the revisions with translations changes are shown: 1 and 4. $this->assertLinkByHref('/node/' . $node_id . '/revisions/1/revert'); // Assert that the revisions with translations changes are shown. $this->assertLinkByHref('/node/' . $node_id . '/revisions/4/revert'); // Assert that the revisions without translations changes are filtered out: Loading Loading
core/modules/node/src/Controller/NodeController.php +10 −2 Original line number Diff line number Diff line Loading @@ -173,6 +173,7 @@ public function revisionOverview(NodeInterface $node) { $rows = []; $default_revision = $node->getRevisionId(); $current_revision_displayed = FALSE; foreach ($this->getRevisionIds($node, $node_storage) as $vid) { /** @var \Drupal\node\NodeInterface $revision */ Loading @@ -187,11 +188,18 @@ public function revisionOverview(NodeInterface $node) { // Use revision link to link to revisions that are not active. $date = $this->dateFormatter->format($revision->revision_timestamp->value, 'short'); if ($vid != $node->getRevisionId()) { // We treat also the latest translation-affecting revision as current // revision, if it was the default revision, as its values for the // current language will be the same of the current default revision in // this case. $is_current_revision = $vid == $default_revision || (!$current_revision_displayed && $revision->wasDefaultRevision()); if (!$is_current_revision) { $link = $this->l($date, new Url('entity.node.revision', ['node' => $node->id(), 'node_revision' => $vid])); } else { $link = $node->link($date); $current_revision_displayed = TRUE; } $row = []; Loading @@ -210,7 +218,7 @@ public function revisionOverview(NodeInterface $node) { $this->renderer->addCacheableDependency($column['data'], $username); $row[] = $column; if ($vid == $default_revision) { if ($is_current_revision) { $row[] = [ 'data' => [ '#prefix' => '<em>', Loading
core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php +9 −2 Original line number Diff line number Diff line Loading @@ -160,10 +160,17 @@ public function testNodeRevisionsTabWithDefaultRevision() { $this->drupalGet('node/' . $node_id . '/revisions'); // Verify that the latest affected revision having been a default revision // is displayed as the current one. $this->assertNoLinkByHref('/node/' . $node_id . '/revisions/1/revert'); $elements = $this->xpath('//tr[contains(@class, "revision-current")]/td/a[1]'); // The site may be installed in a subdirectory, so check if the URL is // contained in the retrieved one. $this->assertContains('/node/1', current($elements)->getAttribute('href')); // Verify that the default revision can be an older revision than the latest // one. // Assert that the revisions with translations changes are shown: 1 and 4. $this->assertLinkByHref('/node/' . $node_id . '/revisions/1/revert'); // Assert that the revisions with translations changes are shown. $this->assertLinkByHref('/node/' . $node_id . '/revisions/4/revert'); // Assert that the revisions without translations changes are filtered out: Loading