--- C:\wamp\www\drupal6\sites\all\modules\jobtrack\jobtrack.user.inc	2009-04-14 07:03:14.000000000 +1200
+++ C:\wamp\www\drupal6\sites\all\modules\jobtrack\jobtrack.user.inc.new	2009-04-17 20:36:12.015625000 +1200
@@ -3,7 +3,7 @@
 /**
  *
  */
-function jobtrack_page_user($user, $assigned = FALSE) {
+function jobtrack_page_user($user, $assigned = FALSE, $state = NULL) {
   drupal_add_css(drupal_get_path('module', 'jobtrack') .'/jobtrack-tickets.css');
   if ($assigned) {
     drupal_set_title(t("@username's assigned tickets", array('@username' => $user->name)));
@@ -11,6 +11,12 @@
   else {
     drupal_set_title(t("@username's latest tickets", array('@username' => $user->name)));
   }
+
+  if (!$state) {
+    $state = 'all open';
+  }
+  $state = _jobtrack_get_state($state);
+
   $rows = array();
   $header = array(
     array('data' => t('Id'), 'field' => 'n.nid', 'class' => 'id'),
@@ -21,13 +27,20 @@
     array('data' => t('Prioriy'), 'field' => 't.priority'),
     array('data' => t('Updates'), 'field' => 'l.comment_count'),
   );
+  
+  if ($state < 0) {
+    $state = 'AND t.state NOT IN ('. implode(', ', _jobtrack_get_state(JOBTRACK_STATE_CLOSED)) .')';
+  }
+  else {
+    $state = $state ? "AND t.state = $state" : '';
+  }
 
   if (_jobtrack_access_tickets() > 1) {
     $header[] = array('data' => t('Client'), 'field' => 't.client');
   }
 
   $clients = jobtrack_search_available_clients();
-  $sql = "SELECT DISTINCT(n.nid), n.title, n.type, n.changed, n.uid, u.name, GREATEST(n.changed, l.last_comment_timestamp) AS last_updated, l.comment_count, t.state, t.priority, t.client FROM {node} n LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid LEFT JOIN {comments} c ON n.nid = c.nid WHERE (c.status = ". COMMENT_PUBLISHED ." OR c.status IS NULL) AND n.status = 1 AND n.type = 'jobtrack_ticket' AND client IN (". implode(', ', $clients) .')';
+  $sql = "SELECT DISTINCT(n.nid), n.title, n.type, n.changed, n.uid, u.name, GREATEST(n.changed, l.last_comment_timestamp) AS last_updated, l.comment_count, t.state, t.priority, t.client FROM {node} n LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid LEFT JOIN {comments} c ON n.nid = c.nid WHERE (c.status = ". COMMENT_PUBLISHED ." OR c.status IS NULL) AND n.status = 1 AND n.type = 'jobtrack_ticket' AND client IN (". implode(', ', $clients) .") $state";
   if ($assigned) {
     $sql .= " AND t.assigned = $user->uid";
   }
@@ -35,7 +48,7 @@
     $sql .= " AND n.uid = $user->uid";
   }
   $sql = db_rewrite_sql($sql);
-  $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid LEFT JOIN {comments} c ON n.nid = c.nid WHERE (c.status = ". COMMENT_PUBLISHED ." OR c.status IS NULL) AND n.status = 1 AND n.type = 'jobtrack_ticket' AND t.assigned = $user->uid";
+  $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid LEFT JOIN {comments} c ON n.nid = c.nid WHERE (c.status = ". COMMENT_PUBLISHED ." OR c.status IS NULL) AND n.status = 1 AND n.type = 'jobtrack_ticket' AND t.assigned = $user->uid $state";
   $sql_count = db_rewrite_sql($sql_count);
 
   $sql .= tablesort_sql($header);
