Index: modules/actions/actions-display.tpl.php
===================================================================
RCS file: modules/actions/actions-display.tpl.php
diff -N modules/actions/actions-display.tpl.php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/actions/actions-display.tpl.php	17 Jul 2007 05:06:31 -0000
@@ -0,0 +1,42 @@
+<?php
+// $Id
+/**
+ * @file actions-display.tpl.php
+ * Default theme implementation to list and assign actions.
+ *
+ * Available variables:
+ * - $actions: An array of actions to display.
+ * - $form_assign_action: Drop-down list of actions to assign.
+ *
+ * Each $action in $actions contains:
+ * - $action->description: Short description of listed action.
+ * - $action->link: Remove link of listed action.
+ *
+ * @see template_preprocess_actions_display()
+ * @see theme_actions_display()
+ */
+?>
+<?php if ($actions): ?>
+  <?php drupal_add_js('misc/tableheader.js'); ?>
+  
+  <table>
+    <thead>
+      <tr>
+        <th><?php print t('Name'); ?></th>
+        <th><?php print t('Operation'); ?></th>
+      </tr>
+    </thead>
+    <tbody>
+      <?php $row = 0; ?>
+      <?php foreach ($actions as $action): ?>
+        <tr class="<?php print $row % 2 == 0 ? 'odd' : 'even'; ?>">
+          <td><?php print $action->description; ?></td>
+          <td><?php print $action->link; ?></td>
+        </tr>
+        <?php $row++; ?>
+      <?php endforeach; ?>
+    </tbody>
+  </table>
+<?php endif; ?>
+
+<?php print $form_assign_action; ?>
Index: modules/actions/actions.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/actions/actions.module,v
retrieving revision 1.2
diff -u -p -r1.2 actions.module
--- modules/actions/actions.module	2 Jul 2007 14:41:35 -0000	1.2
+++ modules/actions/actions.module	17 Jul 2007 05:06:31 -0000
@@ -663,35 +663,29 @@ function actions_assign_form_submit($for
 function actions_theme() {
   return array(
     'actions_display' => array(
-      'arguments' => array('element')
+      'file' => 'actions-display',
+      'arguments' => array('element' => NULL),
     ),
   );
 }
 
 /**
- * Display actions assigned to this hook-op combination in a table.
+ * Process variables for actions-display.tpl.php.
  *
- * @param array $element
- *   The fieldset including all assigned actions.
- * @return
- *   The rendered form with the table prepended.
+ * The $variables array contains the following arguments:
+ * - $element
+ *
+ * @see actions-display.tpl.php
+ * @see theme_actions_display()
  */
-function theme_actions_display($element) {
-  $header = array();
-  $rows = array();
-  if (count($element['assigned']['#value'])) {
-    $header = array(array('data' => t('Name')), array('data' => t('Operation')));
-    $rows = array();
-    foreach ($element['assigned']['#value'] as $aid => $info) {
-      $rows[] = array(
-        $info['description'],
-        $info['link']
-      );
-    }
+function template_preprocess_actions_display(&$variables) {
+  $variables['actions'] = array();
+  foreach ($variables['element']['assigned']['#value'] as $aid => $info) {
+    $variables['actions'][$aid]->description = $info['description'];
+    $variables['actions'][$aid]->link = $info['link'];
   }
 
-  $output = theme('table', $header, $rows) . drupal_render($element);
-  return $output;
+  $variables['form_assign_action'] = drupal_render($variables['element']);
 }
 
 /**
