diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index d14dd6b4f..189d8921a 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -2151,16 +2151,20 @@ EOF /** * Updates the object from the POSTed parameters */ - public function UpdateObject($sFormPrefix = '') + public function UpdateObject($sFormPrefix = '', $aAttList = null) { $aErrors = array(); - foreach(MetaModel::ListAttributeDefs(get_class($this)) as $sAttCode=>$oAttDef) + if (!is_array($aAttList)) { + $sAttList = $this->FlattenZList(MetaModel::GetZListItems(get_class($this), 'details')); + } + foreach($sAttList as $sAttCode) + { + $oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode); + if ($oAttDef->IsLinkSet() && $oAttDef->IsIndirect()) { $aLinks = utils::ReadPostedParam("attr_{$sFormPrefix}{$sAttCode}", null); - if (is_null($aLinks)) continue; - $sLinkedClass = $oAttDef->GetLinkedClass(); $sExtKeyToRemote = $oAttDef->GetExtKeyToRemote(); $sExtKeyToMe = $oAttDef->GetExtKeyToMe(); diff --git a/application/ui.linkswidget.class.inc.php b/application/ui.linkswidget.class.inc.php index 3b862c8da..1e6ffc54d 100644 --- a/application/ui.linkswidget.class.inc.php +++ b/application/ui.linkswidget.class.inc.php @@ -271,7 +271,7 @@ EOF $sHtml .= "

".Dict::S('UI:Message:EmptyList:UseSearchForm')."

\n"; $sHtml .= "\n"; $sHtml .= "m_sAttCode}{$this->m_sNameSuffix}\" value=\"0\"/>"; - $sHtml .= "m_sAttCode}{$this->m_sNameSuffix}').dialog('close');\">  m_sAttCode}{$this->m_sNameSuffix}\" type=\"submit\" value=\"".Dict::S('UI:Button:Add')."\">"; + $sHtml .= "m_sAttCode}{$this->m_sNameSuffix}').dialog('close');\">  m_sAttCode}{$this->m_sNameSuffix}\" disabled=\"disabled\" type=\"submit\" value=\"".Dict::S('UI:Button:Add')."\">"; $sHtml .= "\n"; $sHtml .= "\n"; $sHtml .= "\n"; diff --git a/synchro/synchrodatasource.class.inc.php b/synchro/synchrodatasource.class.inc.php index 2dd667ecf..905fde94b 100644 --- a/synchro/synchrodatasource.class.inc.php +++ b/synchro/synchrodatasource.class.inc.php @@ -456,9 +456,9 @@ EOF return parent::GetAttributeFlags($sAttCode, $aReasons); } - public function UpdateObject($sFormPrefix = '') + public function UpdateObject($sFormPrefix = '', $sAttList = null) { - parent::UpdateObject($sFormPrefix); + parent::UpdateObject($sFormPrefix, $sAttList); // And now read the other post parameters... $oAttributeSet = $this->Get('attribute_list'); $aAttributes = array();