Skip to content
Snippets Groups Projects
Verified Commit 6a685718 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #2329253 by tstoeckler, Bhanu951, hchonov, golddragon007, DieterHolvoet,...

Issue #2329253 by tstoeckler, Bhanu951, hchonov, golddragon007, DieterHolvoet, casey, Sam152, mikelutz, junaidpv, codebymikey, mkalkbrenner, dawehner, smustgrave, kksandr, muthuraman-s, weekbeforenext, Gunjan Rao Naik, Wim Leers, DamienMcKenna, longwave, Berdir, quietone, claudiu.cristea, heddn: Allow ChangedItem to skip updating the entity's "changed" timestamp when synchronizing
parent 3f03a0aa
No related branches found
No related tags found
20 merge requests!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!9470[10.3.x-only-DO-NOT-MERGE]: #3331771 Fix file_get_contents(): Passing null to parameter,!8736Update the Documention As per the Function uses.,!8513Issue #3453786: DefaultSelection should document why values for target_bundles NULL and [] behave as they do,!3878Removed unused condition head title for views,!3818Issue #2140179: $entity->original gets stale between updates,!3742Issue #3328429: Create item list field formatter for displaying ordered and unordered lists,!3731Claro: role=button on status report items,!3154Fixes #2987987 - CSRF token validation broken on routes with optional parameters.,!3133core/modules/system/css/components/hidden.module.css,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!2812Issue #3312049: [Followup] Fix Drupal.Commenting.FunctionComment.MissingReturnType returns for NULL,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2062Issue #3246454: Add weekly granularity to views date sort,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!877Issue #2708101: Default value for link text is not saved,!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493
Pipeline #230478 passed
Pipeline: drupal

#230482

    ...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
    use Drupal\Core\Field\Attribute\FieldType; use Drupal\Core\Field\Attribute\FieldType;
    use Drupal\Core\Field\ChangedFieldItemList; use Drupal\Core\Field\ChangedFieldItemList;
    use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\Core\StringTranslation\TranslatableMarkup;
    use Drupal\Core\Entity\SynchronizableInterface;
    /** /**
    * Defines the 'changed' entity field type. * Defines the 'changed' entity field type.
    ...@@ -44,13 +45,15 @@ public function preSave() { ...@@ -44,13 +45,15 @@ public function preSave() {
    // \Drupal\content_translation\ContentTranslationMetadataWrapperInterface::setChangedTime(). // \Drupal\content_translation\ContentTranslationMetadataWrapperInterface::setChangedTime().
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    $entity = $this->getEntity(); $entity = $this->getEntity();
    /** @var \Drupal\Core\Entity\ContentEntityInterface $original */ if (!$entity instanceof SynchronizableInterface || !$entity->isSyncing()) {
    $original = $entity->original; /** @var \Drupal\Core\Entity\ContentEntityInterface $original */
    $langcode = $entity->language()->getId(); $original = $entity->original;
    if (!$entity->isNew() && $original && $original->hasTranslation($langcode)) { $langcode = $entity->language()->getId();
    $original_value = $original->getTranslation($langcode)->get($this->getFieldDefinition()->getName())->value; if (!$entity->isNew() && $original && $original->hasTranslation($langcode)) {
    if ($this->value == $original_value && $entity->hasTranslationChanges()) { $original_value = $original->getTranslation($langcode)->get($this->getFieldDefinition()->getName())->value;
    $this->value = \Drupal::time()->getRequestTime(); if ($this->value == $original_value && $entity->hasTranslationChanges()) {
    $this->value = \Drupal::time()->getRequestTime();
    }
    } }
    } }
    } }
    ......
    ...@@ -472,6 +472,29 @@ public function testRevisionChanged(): void { ...@@ -472,6 +472,29 @@ public function testRevisionChanged(): void {
    } }
    /**
    * Tests the changed functionality when an entity is syncing.
    */
    public function testChangedSyncing(): void {
    $entity = EntityTestMulChanged::create();
    $entity->save();
    $changed_time_1 = $entity->getChangedTime();
    // Without the syncing flag the changed time will increment when content is
    // changed.
    $entity->setName($this->randomString());
    $entity->save();
    $changed_time_2 = $entity->getChangedTime();
    $this->assertTrue($changed_time_2 > $changed_time_1);
    // With the syncing flag, the changed time will not change.
    $entity->setName($this->randomString());
    $entity->setSyncing(TRUE);
    $entity->save();
    $changed_time_3 = $entity->getChangedTime();
    $this->assertEquals($changed_time_2, $changed_time_3);
    }
    /** /**
    * Retrieves the revision translation affected flag value. * Retrieves the revision translation affected flag value.
    * *
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment