|
@@ -1156,47 +1156,49 @@ EOF
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- $aAllowedValues = MetaModel::GetAllowedValues_flt($sClassName, $sFilterCode, $aExtraParams);
|
|
|
|
- if ($aAllowedValues != null)
|
|
|
|
|
|
+
|
|
|
|
+ $oAttDef = MetaModel::GetAttributeDef($sClassName, $sFilterCode);
|
|
|
|
+ if ($oAttDef->IsExternalKey())
|
|
{
|
|
{
|
|
- $oAttDef = MetaModel::GetAttributeDef($sClassName, $sFilterCode);
|
|
|
|
|
|
+ $sTargetClass = $oAttDef->GetTargetClass();
|
|
|
|
+ $oAllowedValues = new DBObjectSet(new DBObjectSearch($sTargetClass));
|
|
|
|
|
|
- if ($oAttDef->IsExternalKey())
|
|
|
|
|
|
+ $iFieldSize = $oAttDef->GetMaxSize();
|
|
|
|
+ $iMaxComboLength = $oAttDef->GetMaximumComboLength();
|
|
|
|
+ $oWidget = new UIExtKeyWidget($sFilterCode, $sClassName, $oAttDef->GetLabel(), $oAllowedValues, $sFilterValue, 'search_'.$sFilterCode, false, '', '', '');
|
|
|
|
+ $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> ";
|
|
|
|
+ $sHtml .= $oWidget->Display($oPage, $aExtraParams, true /* bSearchMode */);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ $aAllowedValues = MetaModel::GetAllowedValues_flt($sClassName, $sFilterCode, $aExtraParams);
|
|
|
|
+ if (is_null($aAllowedValues))
|
|
{
|
|
{
|
|
- $iFieldSize = $oAttDef->GetMaxSize();
|
|
|
|
- $iMaxComboLength = $oAttDef->GetMaximumComboLength();
|
|
|
|
- $oWidget = new UIExtKeyWidget($sFilterCode, $sClassName, $oAttDef->GetLabel(), $aAllowedValues, $sFilterValue, 'search_'.$sFilterCode, false, '', '', '');
|
|
|
|
- $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> ";
|
|
|
|
- $sHtml .= $oWidget->Display($oPage, $aExtraParams, true /* bSearchMode */);
|
|
|
|
|
|
+ // Any value is possible, display an input box
|
|
|
|
+ $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> <input class=\"textSearch\" name=\"$sFilterCode\" value=\"$sFilterValue\"/>\n";
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- //Enum field or external key, display a combo
|
|
|
|
- $sValue = "<select name=\"$sFilterCode\">\n";
|
|
|
|
- $sValue .= "<option value=\"\">".Dict::S('UI:SearchValue:Any')."</option>\n";
|
|
|
|
- foreach($aAllowedValues as $key => $value)
|
|
|
|
- {
|
|
|
|
- if ($sFilterValue == $key)
|
|
|
|
- {
|
|
|
|
- $sSelected = ' selected';
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
|
|
+ //Enum field, display a combo
|
|
|
|
+ $sValue = "<select name=\"$sFilterCode\">\n";
|
|
|
|
+ $sValue .= "<option value=\"\">".Dict::S('UI:SearchValue:Any')."</option>\n";
|
|
|
|
+ foreach($aAllowedValues as $key => $value)
|
|
{
|
|
{
|
|
- $sSelected = '';
|
|
|
|
|
|
+ if ($sFilterValue == $key)
|
|
|
|
+ {
|
|
|
|
+ $sSelected = ' selected';
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ $sSelected = '';
|
|
|
|
+ }
|
|
|
|
+ $sValue .= "<option value=\"$key\"$sSelected>$value</option>\n";
|
|
}
|
|
}
|
|
- $sValue .= "<option value=\"$key\"$sSelected>$value</option>\n";
|
|
|
|
- }
|
|
|
|
- $sValue .= "</select>\n";
|
|
|
|
- $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> $sValue\n";
|
|
|
|
|
|
+ $sValue .= "</select>\n";
|
|
|
|
+ $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> $sValue\n";
|
|
}
|
|
}
|
|
- unset($aExtraParams[$sFilterCode]);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- // Any value is possible, display an input box
|
|
|
|
- $sHtml .= "<label>".MetaModel::GetFilterLabel($sClassName, $sFilterCode).":</label> <input class=\"textSearch\" name=\"$sFilterCode\" value=\"$sFilterValue\"/>\n";
|
|
|
|
- unset($aExtraParams[$sFilterCode]);
|
|
|
|
}
|
|
}
|
|
|
|
+ unset($aExtraParams[$sFilterCode]);
|
|
$index++;
|
|
$index++;
|
|
$sHtml .= '</span> ';
|
|
$sHtml .= '</span> ';
|
|
}
|
|
}
|
|
@@ -1406,10 +1408,10 @@ EOF
|
|
$aEventsList[] ='validate';
|
|
$aEventsList[] ='validate';
|
|
$aEventsList[] ='change';
|
|
$aEventsList[] ='change';
|
|
|
|
|
|
- $aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, $aArgs);
|
|
|
|
|
|
+ $oAllowedValues = MetaModel::GetAllowedValuesAsObjectSet($sClass, $sAttCode, $aArgs);
|
|
$iFieldSize = $oAttDef->GetMaxSize();
|
|
$iFieldSize = $oAttDef->GetMaxSize();
|
|
$iMaxComboLength = $oAttDef->GetMaximumComboLength();
|
|
$iMaxComboLength = $oAttDef->GetMaximumComboLength();
|
|
- $oWidget = new UIExtKeyWidget($sAttCode, $sClass, $oAttDef->GetLabel(), $aAllowedValues, $value, $iId, $bMandatory, $sNameSuffix, $sFieldPrefix, $sFormPrefix);
|
|
|
|
|
|
+ $oWidget = new UIExtKeyWidget($sAttCode, $sClass, $oAttDef->GetLabel(), $oAllowedValues, $value, $iId, $bMandatory, $sNameSuffix, $sFieldPrefix, $sFormPrefix);
|
|
$sHTMLValue = $oWidget->Display($oPage, $aArgs);
|
|
$sHTMLValue = $oWidget->Display($oPage, $aArgs);
|
|
$sHTMLValue .= "<!-- iFlags: $iFlags bMandatory: $bMandatory -->\n";
|
|
$sHTMLValue .= "<!-- iFlags: $iFlags bMandatory: $bMandatory -->\n";
|
|
break;
|
|
break;
|
|
@@ -1777,20 +1779,36 @@ EOF
|
|
// Now fill-in the fields with default/supplied values
|
|
// Now fill-in the fields with default/supplied values
|
|
foreach($aList as $sAttCode)
|
|
foreach($aList as $sAttCode)
|
|
{
|
|
{
|
|
- $aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, $aArgs);
|
|
|
|
if (isset($aArgs['default'][$sAttCode]))
|
|
if (isset($aArgs['default'][$sAttCode]))
|
|
{
|
|
{
|
|
$oObj->Set($sAttCode, $aArgs['default'][$sAttCode]);
|
|
$oObj->Set($sAttCode, $aArgs['default'][$sAttCode]);
|
|
}
|
|
}
|
|
- elseif (count($aAllowedValues) == 1)
|
|
|
|
|
|
+ else
|
|
{
|
|
{
|
|
- // If the field is mandatory, set it to the only possible value
|
|
|
|
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
|
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
|
|
|
+
|
|
|
|
+ // If the field is mandatory, set it to the only possible value
|
|
$iFlags = $oObj->GetAttributeFlags($sAttCode);
|
|
$iFlags = $oObj->GetAttributeFlags($sAttCode);
|
|
- if ( (!$oAttDef->IsNullAllowed()) || ($iFlags & OPT_ATT_MANDATORY))
|
|
|
|
|
|
+ if ((!$oAttDef->IsNullAllowed()) || ($iFlags & OPT_ATT_MANDATORY))
|
|
{
|
|
{
|
|
- $aValues = array_keys($aAllowedValues);
|
|
|
|
- $oObj->Set($sAttCode, $aValues[0]);
|
|
|
|
|
|
+ if ($oAttDef->IsExternalKey())
|
|
|
|
+ {
|
|
|
|
+ $oAllowedValues = MetaModel::GetAllowedValuesAsObjectSet($sClass, $sAttCode, $aArgs);
|
|
|
|
+ if ($oAllowedValues->Count() == 1)
|
|
|
|
+ {
|
|
|
|
+ $oRemoteObj = $oAllowedValues->Fetch();
|
|
|
|
+ $oObj->Set($sAttCode, $oRemoteObj->GetKey());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ $aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, $aArgs);
|
|
|
|
+ if (count($aAllowedValues) == 1)
|
|
|
|
+ {
|
|
|
|
+ $aValues = array_keys($aAllowedValues);
|
|
|
|
+ $oObj->Set($sAttCode, $aValues[0]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|