--- C:\wamp\www\drupal6\sites\all\modules\jobtrack\jobtrack.module	2009-04-17 21:19:51.937500000 +1200
+++ C:\wamp\www\drupal6\sites\all\modules\jobtrack\jobtrack.module.new	2009-04-17 21:14:38.937500000 +1200
@@ -69,7 +69,7 @@
       'access callback' => 'jobtrack_access_clients',
       'access arguments' => array($client, TRUE),
     );
-    $states = array('all' => 'all', 'all open' => 'all open') + _jobtrack_states();
+    $states = array('all' => 'all', 'all open' => 'all open', 'my open' => 'my open') + _jobtrack_states();
     foreach ($states as $sid => $state) {
       $items["jobtrack/$client->path/$state"] = array(
         'title' => "$state",
@@ -98,6 +98,7 @@
     'access arguments' => array(1),
     'file' => 'jobtrack.user.inc',
   );
+  $states = array('all' => 'all', 'all open' => 'all open') + _jobtrack_states();
   foreach ($states as $sid => $state) {
     $items["jobtrack/%user_uid_optional/assigned/$state"] = array(
       'title' => "$state",
@@ -1562,6 +1563,9 @@
   else if ($state == 'all open') {
     return -1;
   }
+  else if ($state == 'my open') {
+    return -2;
+  }
   else if ($state == JOBTRACK_STATE_CLOSED) {
     $result = db_query("SELECT sid FROM {jobtrack_states} WHERE isclosed = 1");
     $states = array();
@@ -1633,19 +1637,27 @@
     array('data' => t('Priority'), 'field' => 't.priority'),
     array('data' => t('Updates'), 'field' => 'l.comment_count'),
   );
+  if ($state == -2) {
+    $my_open = " AND t.assigned = $user->uid";
+  }
+  else {
+    $my_open = "";
+  }
+
   if ($state < 0) {
     $state = 'AND t.state NOT IN ('. implode(', ', _jobtrack_get_state(JOBTRACK_STATE_CLOSED)) .')';
   }
   else {
     $state = $state ? "AND t.state = $state" : '';
   }
-  $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.assigned 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 = $client $state";
+
+  $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.assigned 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 = $client $state $my_open";
   if (user_access('only view own tickets') && !user_access('administer jobtrack')) {
     $sql .= " AND n.uid = $user->uid";
   }
   $sql = db_rewrite_sql($sql);
   $sql .= tablesort_sql($header);
-  $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid AND (c.status = %d OR c.status IS NULL) LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid WHERE n.status = 1 AND client = $client $state";
+  $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid AND (c.status = %d OR c.status IS NULL) LEFT JOIN {jobtrack_ticket} t ON n.nid = t.nid WHERE n.status = 1 AND client = $client $state $my_open";
   $sql_count = db_rewrite_sql($sql_count);
   $result = pager_query($sql, 50, 0, $sql_count);
   $rows = array();
