diff --git a/application/ui.extkeywidget.class.inc.php b/application/ui.extkeywidget.class.inc.php
index d5be22940..1e71ef6d9 100644
--- a/application/ui.extkeywidget.class.inc.php
+++ b/application/ui.extkeywidget.class.inc.php
@@ -126,7 +126,14 @@ class UIExtKeyWidget
}
else
{
- $sWizHelper = 'oWizardHelper'.$sFormPrefix;
+ if (isset($aArgs['wizHelper']))
+ {
+ $sWizHelper = $aArgs['wizHelper'];
+ }
+ else
+ {
+ $sWizHelper = 'oWizardHelper'.$sFormPrefix;
+ }
$sWizHelperJSON = $sWizHelper.'.ToJSON()';
$sJSSearchMode = 'false';
}
diff --git a/application/ui.linkswidget.class.inc.php b/application/ui.linkswidget.class.inc.php
index 6f104237f..0c5bc0842 100644
--- a/application/ui.linkswidget.class.inc.php
+++ b/application/ui.linkswidget.class.inc.php
@@ -104,12 +104,14 @@ class UILinksWidget
{
$sPrefix = "$this->m_sAttCode{$this->m_sNameSuffix}";
$aRow = array();
+ $aFieldsMap = array();
if(is_object($linkObjOrId))
{
$key = $linkObjOrId->GetKey();
$sPrefix .= "[$key][";
$sNameSuffix = "]"; // To make a tabular form
$aArgs['prefix'] = $sPrefix;
+ $aArgs['wizHelper'] = "oWizardHelper{$this->m_iInputId}{$key}";
$aArgs['this'] = $linkObjOrId;
$aRow['form::checkbox'] = "m_iInputId.".OnSelectChange();\" value=\"$key\">";
$aRow['form::checkbox'] .= "";
@@ -119,7 +121,9 @@ class UILinksWidget
$sSafeId = str_replace(array('[',']','-'), '_', $sFieldId);
$oAttDef = MetaModel::GetAttributeDef($this->m_sLinkedClass, $sFieldCode);
$aRow[$sFieldCode] = cmdbAbstractObject::GetFormElementForField($oP, $this->m_sLinkedClass, $sFieldCode, $oAttDef, $linkObjOrId->Get($sFieldCode), '' /* DisplayValue */, $sSafeId, $sNameSuffix, 0, $aArgs);
+ $aFieldsMap[$sFieldCode] = $sFieldId;
}
+ $sState = $linkObjOrId->GetState();
}
else
{
@@ -131,6 +135,7 @@ class UILinksWidget
$oNewLinkObj->Set($this->m_sExtKeyToMe, $oCurrentObj); // Setting the extkey with the object alsoo fills the related external fields
$sNameSuffix = "]"; // To make a tabular form
$aArgs['prefix'] = $sPrefix;
+ $aArgs['wizHelper'] = "oWizardHelper{$this->m_iInputId}_".(-$linkObjOrId);
$aArgs['this'] = $oNewLinkObj;
$aRow['form::checkbox'] = "m_iInputId.".OnSelectChange();\" value=\"$linkObjOrId\">";
$aRow['form::checkbox'] .= "";
@@ -140,9 +145,21 @@ class UILinksWidget
$sSafeId = str_replace(array('[',']','-'), '_', $sFieldId);
$oAttDef = MetaModel::GetAttributeDef($this->m_sLinkedClass, $sFieldCode);
$aRow[$sFieldCode] = cmdbAbstractObject::GetFormElementForField($oP, $this->m_sLinkedClass, $sFieldCode, $oAttDef, '' /* TO DO/ call GetDefaultValue($oObject->ToArgs()) */, '' /* DisplayValue */, $sSafeId /* id */, $sNameSuffix, 0, $aArgs);
+ $aFieldsMap[$sFieldCode] = $sFieldId;
}
+ $sState = '';
}
-
+
+ $iFieldsCount = count($aFieldsMap);
+ $sJsonFieldsMap = json_encode($aFieldsMap);
+
+ $oP->add_script(
+<<m_sLinkedClass}', '', '$sState');
+{$aArgs['wizHelper']}.SetFieldsMap($sJsonFieldsMap);
+{$aArgs['wizHelper']}.SetFieldsCount($iFieldsCount);
+EOF
+ );
$aRow['static::key'] = $oLinkedObj->GetHyperLink();
foreach(MetaModel::GetZListItems($this->m_sRemoteClass, 'list') as $sFieldCode)
{