Index: server/pifr_server.page.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.page.inc,v retrieving revision 1.10 diff -u -r1.10 pifr_server.page.inc --- server/pifr_server.page.inc 28 Oct 2009 03:06:30 -0000 1.10 +++ server/pifr_server.page.inc 28 Oct 2009 04:13:45 -0000 @@ -163,7 +163,7 @@ function pifr_server_page_status_client_list($client_type) { $clients = pifr_server_client_get_type($client_type); - $header = array(t('Client'), t('Environment(s)'), t('Status'), t('Last active'), t('Idle'), t('Manager')); + $header = array(t('Client'), t('Environment(s)'), t('Status'), t('Last ping'), t('Manager')); $rows = array(); foreach ($clients as $client) { if ($client['status'] == PIFR_SERVER_CLIENT_STATUS_DISABLED) { @@ -181,12 +181,30 @@ // Determine the last time the client was active. $last_active = pifr_server_client_get_last_active($client); + $link = array( + 'text' => pifr_server_client_status($client['status']), + 'href' => 'pifr/test/' . $client['test_id'], + ); + + if ($client['status'] == PIFR_SERVER_CLIENT_STATUS_ENABLED) { + if ($last_active && $last_active['code'] == PIFR_SERVER_LOG_CLIENT_REQUEST) { + $link['text'] .= ' - Reviewing'; + $link['href'] = 'pifr/test/' . $last_active['test_id']; + } + else { + $link['text'] .= ' - Idle'; + } + } + elseif ($client['status'] != PIFR_SERVER_CLIENT_STATUS_DISABLED) { + // Status must be: PIFR_SERVER_CLIENT_STATUS_TESTING or + // PIFR_SERVER_CLIENT_STATUS_FAILED so link to client test. + } + // Determine the amount of time the server has been idle. - $idletime = time() - $last_active; + $idletime = $last_active ? time() - $last_active['timestamp'] : 0; - $row[] = l(pifr_server_client_status($client['status']), 'pifr/test/' . $client['test_id']); - $row[] = pifr_server_format_date($last_active); - $row[] = $last_active ? format_interval($idletime) : '--'; + $row[] = l($link['text'], $link['href']); + $row[] = $last_active ? format_interval($idletime) . ' (' . pifr_server_format_date($last_active['timestamp']) . ')' : '--'; $row[] = theme('username', user_load($client['uid'])); // Determine the class to color the row with based on the idle time. Index: server/pifr_server.client.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.client.inc,v retrieving revision 1.44 diff -u -r1.44 pifr_server.client.inc --- server/pifr_server.client.inc 28 Oct 2009 03:06:30 -0000 1.44 +++ server/pifr_server.client.inc 28 Oct 2009 04:13:45 -0000 @@ -107,15 +107,15 @@ * Determine the last time a client was active. * * @param array $client Client information. - * @return integer Timestamp when client was last active, or FALSE. + * @return array Log information, or FALSE. */ function pifr_server_client_get_last_active(array $client) { - $result = db_query('SELECT timestamp + $result = db_query('SELECT * FROM {pifr_log} WHERE client_id = %d ORDER BY timestamp DESC LIMIT 1', $client['client_id']); - return db_result($result); + return db_fetch_array($result); } /**