Do not perform time consuming computations for building the menus if there are too many objects in a list (limit is configurable).

SVN:1.2[2344]
This commit is contained in:
Denis Flaven
2012-10-24 14:04:57 +00:00
parent 3330fd79d0
commit 11d0e9f52b
2 changed files with 13 additions and 1 deletions

View File

@@ -1179,7 +1179,10 @@ class MenuBlock extends DisplayBlock
// Stimuli
$aStates = MetaModel::EnumStates($sClass);
if (count($aStates) > 0)
// Do not perform time consuming computations if there are too may objects in the list
$iLimit = MetaModel::GetConfig()->Get('complex_actions_limit');
if ((count($aStates) > 0) && (($iLimit == 0) || ($oSet->Count() < $iLimit)))
{
// Life cycle actions may be available... if all objects are in the same state
$oSet->Rewind();

View File

@@ -471,6 +471,15 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => true,
),
'complex_actions_limit' => array(
'type' => 'integer',
'description' => 'Display the "actions" menu items that require long computation only if the list of objects is contains less objects than this number (0 means no limit)',
// examples... not used
'default' => 50,
'value' => 50,
'source_of_value' => '',
'show_in_conf_sample' => false,
),
);
public function IsProperty($sPropCode)