- In the "actions" menu, list only the relations that have a meaning for the selected class.

SVN:trunk[490]
This commit is contained in:
Denis Flaven
2010-06-28 12:46:16 +00:00
parent 13f85f00b6
commit 06ead1f543
2 changed files with 17 additions and 5 deletions

View File

@@ -835,7 +835,7 @@ class MenuBlock extends DisplayBlock
//if ($bIsModifyAllowed) { $aActions[] = array ('label' => 'Clone...', 'url' => "../pages/$sUIPage?operation=clone&class=$sClass&id=$id&$sContext"); }
if ($bIsModifyAllowed) { $aActions[] = array ('label' => Dict::S('UI:Menu:Modify'), 'url' => "../pages/$sUIPage?operation=modify&class=$sClass&id=$id&$sContext"); }
if ($bIsDeleteAllowed) { $aActions[] = array ('label' => Dict::S('UI:Menu:Delete'), 'url' => "../pages/$sUIPage?operation=delete&class=$sClass&id=$id&$sContext"); }
$aRelations = MetaModel::EnumRelations();
$aRelations = MetaModel::EnumRelations($sClass);
foreach($aRelations as $sRelationCode)
{
$aActions[] = array ('label' => MetaModel::GetRelationVerbUp($sRelationCode), 'url' => "../pages/$sUIPage?operation=swf_navigator&relation=$sRelationCode&class=$sClass&id=$id&$sContext");

View File

@@ -722,12 +722,24 @@ abstract class MetaModel
public static function EnumRelations($sClass = '')
{
if (empty($sClass))
$aResult = array_keys(self::$m_aRelationInfos);
if (!empty($sClass))
{
return array_keys(self::$m_aRelationInfos);
// Return only the relations that have a meaning (i.e. for which at least one query is defined)
// for the specified class
$aClassRelations = array();
foreach($aResult as $sRelCode)
{
$aQueries = self::EnumRelationQueries($sClass, $sRelCode);
if (count($aQueries) > 0)
{
$aClassRelations[] = $sRelCode;
}
}
return $aClassRelations;
}
return array_keys(self::EnumRelationQueries($sClass, $sRelCode));
return $aResult;
}
public static function EnumRelationProperties($sRelCode)