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

SVN:trunk[2345]
This commit is contained in:
Denis Flaven
2012-10-24 14:17:27 +00:00
parent d7e492b711
commit bbd581e9c5
2 changed files with 13 additions and 1 deletions

View File

@@ -1411,7 +1411,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

@@ -536,6 +536,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,
),
'synchro_prevent_delete_all' => array(
'type' => 'bool',
'description' => 'Stop the synchro if all the replicas of a data source become obsolete at the same time.',