Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.794
diff -u -p -r1.794 node.module
--- modules/node/node.module	27 Mar 2007 05:13:54 -0000	1.794
+++ modules/node/node.module	31 Mar 2007 12:40:17 -0000
@@ -1485,6 +1485,14 @@ function node_admin_nodes_submit($form_i
     cache_clear_all();
     drupal_set_message(t('The update has been performed.'));
   }
+  unset($get['q']);
+  if (count($get)) {
+    foreach ($get as $key => $value) {
+      $url[] = "$key=$value";
+    }
+    return array('admin/content/node', implode('&', $url));
+  }
+  return 'admin/content/node';
 }
 
 function node_admin_nodes_validate($form_id, $form_values) {
@@ -1513,7 +1521,20 @@ function node_admin_nodes() {
   global $form_values;
   $filter = node_build_filter_query();
 
-  $result = pager_query('SELECT n.*, u.name, u.uid FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC', 50, 0, NULL, $filter['args']);
+  $header = array(
+    ' ',
+    array('data' => t('Title'), 'field' => 'n.title'),
+    array('data' => t('Type'), 'field' => 'n.type'),
+    array('data' => t('User'), 'field' => 'u.name'),
+    array('data' => t('Status'), 'field' => 'n.status'),
+    array('data' => t('Operations')),
+    );
+
+  $sql = 'SELECT n.*, u.name, u.uid FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC';
+
+  $tablesort = tablesort_sql($header);
+
+  $result = pager_query($sql .' '. $tablesort, 50, 0, NULL, $filter['args']);
 
   $form['options'] = array('#type' => 'fieldset',
     '#title' => t('Update options'),
@@ -1547,7 +1568,15 @@ function node_admin_nodes() {
  */
 function theme_node_admin_nodes($form) {
   // Overview table:
-  $header = array(theme('table_select_header_cell'), t('Title'), t('Type'), t('Author'), t('Status'), t('Operations'));
+  $header = array(
+    theme('table_select_header_cell'),
+    array('data' => t('Title'), 'field' => 'n.title'),
+    array('data' => t('Type'), 'field' => 'n.type'),
+    array('data' => t('User'), 'field' => 'u.name'),
+    array('data' => t('Status'), 'field' => 'n.status'),
+    array('data' => t('Operations')),
+    );
+
   $output = '';
 
   $output .= drupal_render($form['options']);
@@ -1602,6 +1631,13 @@ function node_multiple_delete_confirm_su
     }
     drupal_set_message(t('The items have been deleted.'));
   }
+  unset($get['q']);
+  if (count($get)) {
+    foreach ($get as $key => $value) {
+      $url[] = "$key=$value";
+    }
+    return array('admin/content/node', implode('&', $url));
+  }
   return 'admin/content/node';
 }
 
