Issue #2914938 by timmillwood, RajabNatshah, xjm, Manuel Garcia, amateescu, Wim Leers: Preview of content - Notice: Undefined offset: 0 in _quickedit_entity_is_latest_revision() (line 196 of core/modules/quickedit/quickedit.module)

8.5.x
Nathaniel Catchpole 2017-12-18 14:08:10 +00:00
parent 968da88d76
commit 522ed00526
2 changed files with 15 additions and 9 deletions

View File

@ -180,18 +180,16 @@ function quickedit_entity_view_alter(&$build, EntityInterface $entity, EntityVie
* @internal
*/
function _quickedit_entity_is_latest_revision(ContentEntityInterface $entity) {
$entity_type_manager = \Drupal::entityTypeManager();
$entity_definition = $entity_type_manager->getDefinition($entity->getEntityTypeId());
if (!$entity_definition->isRevisionable()) {
if (!$entity->getEntityType()->isRevisionable() || $entity->isNew()) {
return TRUE;
}
$revision_ids = $entity_type_manager
$latest_revision = \Drupal::entityTypeManager()
->getStorage($entity->getEntityTypeId())
->getQuery()
->allRevisions()
->condition($entity_definition->getKey('id'), $entity->id())
->sort($entity_definition->getKey('revision'), 'DESC')
->range(0, 1)
->latestRevision()
->condition($entity->getEntityType()->getKey('id'), $entity->id())
->execute();
return $entity->getLoadedRevisionId() == array_keys($revision_ids)[0];
return !empty($latest_revision) && $entity->getLoadedRevisionId() == key($latest_revision) ? TRUE : FALSE;
}

View File

@ -330,6 +330,13 @@ class QuickEditLoadingTest extends WebTestBase {
public function testWithPendingRevision() {
$this->drupalLogin($this->editorUser);
// Verify that the preview is loaded correctly.
$this->drupalPostForm('node/add/article', ['title[0][value]' => 'foo'], 'Preview');
$this->assertResponse(200);
// Verify that quickedit is not active on preview.
$this->assertNoRaw('data-quickedit-entity-id="node/' . $this->testNode->id() . '"');
$this->assertNoRaw('data-quickedit-field-id="node/' . $this->testNode->id() . '/title/' . $this->testNode->language()->getId() . '/full"');
$this->drupalGet('node/' . $this->testNode->id());
$this->assertRaw('data-quickedit-entity-id="node/' . $this->testNode->id() . '"');
$this->assertRaw('data-quickedit-field-id="node/' . $this->testNode->id() . '/title/' . $this->testNode->language()->getId() . '/full"');
@ -340,6 +347,7 @@ class QuickEditLoadingTest extends WebTestBase {
$this->testNode->save();
$this->drupalGet('node/' . $this->testNode->id());
$this->assertResponse(200);
$this->assertNoRaw('data-quickedit-entity-id="node/' . $this->testNode->id() . '"');
$this->assertNoRaw('data-quickedit-field-id="node/' . $this->testNode->id() . '/title/' . $this->testNode->language()->getId() . '/full"');
}