diff options
Diffstat (limited to 'modules/trigger/trigger.admin.inc')
-rw-r--r-- | modules/trigger/trigger.admin.inc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/modules/trigger/trigger.admin.inc b/modules/trigger/trigger.admin.inc index 7568bbb2b..8e462fe98 100644 --- a/modules/trigger/trigger.admin.inc +++ b/modules/trigger/trigger.admin.inc @@ -153,10 +153,21 @@ function trigger_assign_form($form, $form_state, $module, $hook, $label) { $form[$hook]['assigned']['#type'] = 'value'; $form[$hook]['assigned']['#value'] = array(); foreach ($actions as $aid => $info) { - $form[$hook]['assigned']['#value'][$aid] = array( - 'label' => $info['label'], - 'link' => l(t('unassign'), "admin/structure/trigger/unassign/$module/$hook/" . md5($aid)), - ); + // If action is defined unassign it, otherwise offer to delete all orphaned + // actions. + if (actions_function_lookup(md5($aid))) { + $form[$hook]['assigned']['#value'][$aid] = array( + 'label' => $info['label'], + 'link' => l(t('unassign'), "admin/structure/trigger/unassign/$module/$hook/" . md5($aid)), + ); + } + else { + // Link to system_actions_remove_orphans() to do the clean up. + $form[$hook]['assigned']['#value'][$aid] = array( + 'label' => $info['label'], + 'link' => l(t('Remove orphaned actions'), "admin/config/system/actions/orphan"), + ); + } } $form[$hook]['parent'] = array( |