mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°2293 Saves changes in DBObjet::DBUpdate, just before the AfterUpdate call
This will allow to get changes made in ComputeValues, OnUpdate, etc
This commit is contained in:
@@ -56,8 +56,6 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
|
||||
protected $m_iFormId; // The ID of the form used to edit the object (when in edition mode !)
|
||||
protected static $iGlobalFormId = 1;
|
||||
protected $aFieldsMap;
|
||||
/** @var array attname => currentvalue Persists changes for {@link DBUpdate} */
|
||||
protected $m_aChanges;
|
||||
|
||||
/**
|
||||
* If true, bypass IsActionAllowedOnAttribute when writing this object
|
||||
@@ -3733,8 +3731,6 @@ EOF
|
||||
|
||||
public function DBUpdate()
|
||||
{
|
||||
$this->m_aChanges = $this->ListChanges();
|
||||
|
||||
$res = parent::DBUpdate();
|
||||
|
||||
$this->SetWarningsAsSessionMessages('update');
|
||||
@@ -3767,8 +3763,6 @@ EOF
|
||||
unset($aUpdateReentrance[$sKey]);
|
||||
}
|
||||
|
||||
$this->m_aChanges = array();
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
@@ -133,6 +133,11 @@ abstract class DBObject implements iDisplay
|
||||
* * false => not modified (the same value as the original value was set)
|
||||
*/
|
||||
protected $m_aModifiedAtt = array();
|
||||
/**
|
||||
* @var array attname => currentvalue Persists changes for {@link DBUpdate}
|
||||
* @since 2.7.0 N°2293
|
||||
*/
|
||||
protected $m_aChanges;
|
||||
/**
|
||||
* @var array Set of Synch data related to this object
|
||||
* <ul>
|
||||
@@ -3015,6 +3020,8 @@ abstract class DBObject implements iDisplay
|
||||
throw new CoreException("DBUpdate: could not update a newly created object, please call DBInsert instead");
|
||||
}
|
||||
|
||||
$this->m_aChanges = array(); // reset attribute to avoid stack collisions
|
||||
|
||||
$iNbTryRemaining = 3;
|
||||
while ($iNbTryRemaining > 0)
|
||||
{
|
||||
@@ -3164,6 +3171,8 @@ abstract class DBObject implements iDisplay
|
||||
$this->DBWriteLinks();
|
||||
$this->WriteExternalAttributes();
|
||||
|
||||
$this->m_aChanges = $this->ListChanges(); // N°2293 save changes for use in user callbacks
|
||||
|
||||
$this->AfterUpdate();
|
||||
|
||||
$this->m_bDirty = false;
|
||||
|
||||
Reference in New Issue
Block a user