Revert "Issue #3208247 by sukr_s, smustgrave, alexpott, Nikolay Shapovalov, orb, catch, quietone, pwolanin: After deleting a translated article, search wants to reindex it"
This reverts commitmerge-requests/8200/head249039adfc
. (cherry picked from commit6980ddf0a7
)
parent
344c809e05
commit
5ab5605228
|
@ -154,30 +154,10 @@ class Node extends EditorialContentEntityBase implements NodeInterface {
|
|||
// Reindex the node when it is updated. The node is automatically indexed
|
||||
// when it is added, simply by being added to the node table.
|
||||
if ($update) {
|
||||
$this->nodeSearchRemoveDeletedTranslations();
|
||||
node_reindex_node_search($this->id());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove deleted translations from the search index.
|
||||
*
|
||||
* @return bool
|
||||
* TRUE if a translation was removed, FALSE otherwise.
|
||||
*/
|
||||
private function nodeSearchRemoveDeletedTranslations(): bool {
|
||||
$removed = FALSE;
|
||||
if (\Drupal::moduleHandler()->moduleExists('search')) {
|
||||
foreach ($this->translations as $langcode => $translation) {
|
||||
if ($translation['status'] === static::TRANSLATION_REMOVED) {
|
||||
\Drupal::service('search.index')->clear('node_search', $this->id(), $langcode);
|
||||
$removed = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $removed;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -616,66 +616,4 @@ class NodeTranslationUITest extends ContentTranslationUITestBase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test deletion of translated content from search and index rebuild.
|
||||
*/
|
||||
public function testSearchIndexRebuildOnTranslationDeletion(): void {
|
||||
\Drupal::service('module_installer')->install(['search']);
|
||||
$admin_user = $this->drupalCreateUser([
|
||||
'administer site configuration',
|
||||
'access administration pages',
|
||||
'administer content types',
|
||||
'delete content translations',
|
||||
'administer content translation',
|
||||
'translate any entity',
|
||||
'administer search',
|
||||
'search content',
|
||||
'delete any article content',
|
||||
]);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
// Create a node.
|
||||
$node = $this->drupalCreateNode([
|
||||
'type' => $this->bundle,
|
||||
]);
|
||||
|
||||
// Add a French translation.
|
||||
$translation = $node->addTranslation('fr');
|
||||
$translation->title = 'First rev fr title';
|
||||
$translation->setNewRevision(FALSE);
|
||||
$translation->save();
|
||||
|
||||
// Check if 1 page is listed for indexing.
|
||||
$this->drupalGet('admin/config/search/pages');
|
||||
$this->assertSession()->pageTextContains('There is 1 item left to index.');
|
||||
|
||||
// Run cron.
|
||||
$this->drupalGet('admin/config/system/cron');
|
||||
$this->getSession()->getPage()->pressButton('Run cron');
|
||||
|
||||
// Assert no items are left for indexing.
|
||||
$this->drupalGet('admin/config/search/pages');
|
||||
$this->assertSession()->pageTextContains('There are 0 items left to index.');
|
||||
|
||||
// Search for French content.
|
||||
$this->drupalGet('search/node', ['query' => ['keys' => urlencode('First rev fr title')]]);
|
||||
$this->assertSession()->pageTextContains('First rev fr title');
|
||||
|
||||
// Delete translation.
|
||||
$this->drupalGet('fr/node/' . $node->id() . '/delete');
|
||||
$this->getSession()->getPage()->pressButton('Delete French translation');
|
||||
|
||||
// Run cron.
|
||||
$this->drupalGet('admin/config/system/cron');
|
||||
$this->getSession()->getPage()->pressButton('Run cron');
|
||||
|
||||
// Assert no items are left for indexing.
|
||||
$this->drupalGet('admin/config/search/pages');
|
||||
$this->assertSession()->pageTextContains('There are 0 items left to index.');
|
||||
|
||||
// Search for French content.
|
||||
$this->drupalGet('search/node', ['query' => ['keys' => urlencode('First rev fr title')]]);
|
||||
$this->assertSession()->pageTextNotContains('First rev fr title');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue