enable via a class and no more need to set enabled='javascript:nm...' for enableClass or disableClass

This commit is contained in:
Ralf Becker 2011-04-27 16:54:35 +00:00
parent 653d4991d7
commit 60edb83929
2 changed files with 29 additions and 3 deletions

View File

@ -486,8 +486,10 @@ class nextmatch_widget
$name = is_object($extension_data['template']) ? $extension_data['template']->name : $extension_data['template']; $name = is_object($extension_data['template']) ? $extension_data['template']->name : $extension_data['template'];
list($app) = explode('.',$name); list($app) = explode('.',$name);
$definition = $GLOBALS['egw_info']['user']['preferences'][$app]['nextmatch-export-definition']; $definition = $GLOBALS['egw_info']['user']['preferences'][$app]['nextmatch-export-definition'];
if(!$value['no_csv_export'] && ($definition || !is_array($value['csv_fields']))) { if(!$value['no_csv_export'] && ($definition || !is_array($value['csv_fields'])))
if($GLOBALS['egw_info']['user']['apps']['importexport'] && ($definition || $value['csv_fields'])) { {
if($GLOBALS['egw_info']['user']['apps']['importexport'] && ($definition || $value['csv_fields']) && is_object($nextmatch))
{
$nextmatch->set_cell_attribute('export', 'onclick', $nextmatch->set_cell_attribute('export', 'onclick',
"egw_openWindowCentered2('". egw::link('/index.php', array( "egw_openWindowCentered2('". egw::link('/index.php', array(
'menuaction' => 'importexport.importexport_export_ui.export_dialog', 'menuaction' => 'importexport.importexport_export_ui.export_dialog',
@ -512,7 +514,6 @@ class nextmatch_widget
$value['rows']['_actions'] =& $value['actions']; $value['rows']['_actions'] =& $value['actions'];
$value['rows']['_action_links'] =& $value['action_links']; $value['rows']['_action_links'] =& $value['action_links'];
$value['rows']['_row_id'] =& $value['row_id']; $value['rows']['_row_id'] =& $value['row_id'];
$value['action'] = $value['selected'] = $value['select_all'] = null; // nothing yet
return False; // NO extra Label return False; // NO extra Label
} }
@ -591,6 +592,18 @@ class nextmatch_widget
if (!is_array($action)) $action = array('caption' => $action); if (!is_array($action)) $action = array('caption' => $action);
$action['id'] = $prefix.$id; $action['id'] = $prefix.$id;
// set some default onExecute
foreach(array(
'enableClass' => 'javaScript:nm_enableClass',
'disableClass' => 'javaScript:nm_not_disableClass',
) as $attr => $check)
{
if (isset($action[$attr]) && !isset($action['enabled']))
{
$action['enabled'] = $check;
}
}
// add all first level actions plus ones with enabled = 'javaScript:...' to action_links // add all first level actions plus ones with enabled = 'javaScript:...' to action_links
if ($first_level || substr($action['enabled'],0,11) == 'javaScript:') if ($first_level || substr($action['enabled'],0,11) == 'javaScript:')
{ {

View File

@ -183,6 +183,19 @@ function nm_not_disableClass(_action, _senders, _target)
return !$(_target.iface.getDOMNode()).hasClass(_action.data.disableClass); return !$(_target.iface.getDOMNode()).hasClass(_action.data.disableClass);
} }
/**
* Callback to check if all of _senders rows have enableClass set
*
* @param _action egwAction object, we use _action.data.enableClass to check
* @param _senders array of egwActionObject objects
* @param _target egwActionObject object, get's called for every object in _senders
* @returns boolean true if none has disableClass, false otherwise
*/
function nm_enableClass(_action, _senders, _target)
{
return $(_target.iface.getDOMNode()).hasClass(_action.data.enableClass);
}
/** /**
* Callback to check if a certain field (_action.data.fieldId) is (not) equal to given value (_action.data.fieldValue) * Callback to check if a certain field (_action.data.fieldId) is (not) equal to given value (_action.data.fieldValue)
* *