mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-19 07:12:26 +02:00
Implementation of AllowedValues for fields that depend on other fields
SVN:code[148]
This commit is contained in:
@@ -368,12 +368,14 @@ switch($operation)
|
||||
{
|
||||
$aNewFieldsMap[$sFieldCode] = $id;
|
||||
}
|
||||
$iFieldsCount = count($aFieldsMap);
|
||||
$sJsonFieldsMap = json_encode($aNewFieldsMap);
|
||||
|
||||
$oP->add("
|
||||
// Initializes the object once at the beginning of the page...
|
||||
var oWizardHelper = new WizardHelper('$sClass');
|
||||
oWizardHelper.SetFieldsMap($sJsonFieldsMap);
|
||||
oWizardHelper.SetFieldsCount($iFieldsCount);
|
||||
|
||||
ActivateStep(1);
|
||||
</script>\n");
|
||||
|
||||
@@ -77,25 +77,21 @@ switch($operation)
|
||||
$sJson = utils::ReadParam('json_obj', '');
|
||||
$oWizardHelper = WizardHelper::FromJSON($sJson);
|
||||
$oObj = $oWizardHelper->GetTargetObject();
|
||||
$sClass = $oWizardHelper->GetTargetClass();
|
||||
foreach($oWizardHelper->GetFieldsForDefaultValue() as $sAttCode)
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode);
|
||||
$oWizardHelper->SetDefaultValue($sAttCode, $oAttDef->GetDefaultValue());
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
$defaultValue = $oAttDef->GetDefaultValue();
|
||||
$oWizardHelper->SetDefaultValue($sAttCode, $defaultValue);
|
||||
$oObj->Set($sAttCode, $defaultValue);
|
||||
}
|
||||
foreach($oWizardHelper->GetFieldsForAllowedValues() as $sAttCode)
|
||||
{
|
||||
$aAllowedValues = MetaModel::GetAllowedValues_att(get_class($oObj), $sAttCode, array('this' => $oObj));
|
||||
// Few choices, use a normal 'select'
|
||||
$sHTMLValue = "<select name=\"attr_{$sAttCode}\"\n";
|
||||
$sHTMLValue .= "<option value=\"0\">-- select one --</option>\n";
|
||||
foreach($aAllowedValues as $key => $display_value)
|
||||
{
|
||||
$sSelected = ''; //($value == $key) ? ' selected' : '';
|
||||
$sHTMLValue .= "<option value=\"$key\"$sSelected>$display_value</option>\n";
|
||||
}
|
||||
$sHTMLValue .= "</select>\n";
|
||||
$sId = $oWizardHelper->GetIdForField($sAttCode);
|
||||
$value = $oObj->Get($sAttCode);
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
$sHTMLValue = cmdbAbstractObject::GetFormElementForField($oPage, $sClass, $sAttCode, $oAttDef, $value, '', 'att_'.$sId, '', 0, array('this' => $oObj));
|
||||
|
||||
// Improvement: what if the list is too long?
|
||||
$oWizardHelper->SetAllowedValuesHtml($sAttCode, $sHTMLValue);
|
||||
}
|
||||
$oPage->add($oWizardHelper->ToJSON());
|
||||
|
||||
Reference in New Issue
Block a user