Index: project_release.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v retrieving revision 1.58 diff -u -r1.58 project_release.module --- project_release.module 21 Jan 2008 23:32:12 -0000 1.58 +++ project_release.module 22 Jan 2008 00:49:17 -0000 @@ -1609,6 +1609,7 @@ if (empty($title)) { $title = t('Version'); } + $recommended = ($table_type == 'recommended'); // Generate the cache ID. $cid = 'table:'. $project->nid .':'. $table_type .':'. $release_type .':'. $title .':'. (int)$print_size; if ($cached = cache_get($cid, 'cache_project_release')) { @@ -1628,9 +1629,10 @@ } } - if ($table_type == 'recommended') { + if ($recommended) { if ($tids) { - $join .= ' INNER JOIN {project_release_supported_versions} prsv ON prsv.nid = r.pid AND prsv.tid = tn.tid AND prsv.major = r.version_major AND prsv.recommended = 1 '; + $selects[] = 'prsv.recommended'; + $join .= ' INNER JOIN {project_release_supported_versions} prsv ON prsv.nid = r.pid AND prsv.tid = tn.tid AND prsv.major = r.version_major AND prsv.supported = 1 '; } else { // TODO @@ -1651,14 +1653,13 @@ $orderby[] = 'r.rebuild'. (($table_type == 'recommended') ? ' DESC' : ''); break; } - $orderby[] = 'r.version_major'; $orderby[] = 'r.version_minor'; $orderby[] = 'r.version_patch'; $orderby[] = 'r.file_date'; if ($orderby) { - $order_by = ' ORDER BY '. implode(', ', $orderby); + $order_by = ' ORDER BY '. implode($recommended ? ' DESC, ' : ', ', $orderby); } if ($selects) { $select = implode(', ', $selects) .','; @@ -1677,54 +1678,92 @@ "INNER JOIN {project_release_nodes} r ON r.nid = n.nid ". "WHERE (r.pid = %d) AND (n.status = 1) ". $where), $project->nid); } - $items = array(); $can_edit = node_access('update', $project); + $added_majors = array(); + $icons = array('ok' => theme('image', 'misc/watchdog-ok.png', t('ok'), t('ok')), + 'warning' => theme('image', 'misc/watchdog-warning.png', t('warning'), t('warning')), + 'error' => theme('image', 'misc/watchdog-error.png', t('error'), t('error'))); + $stable_version = FALSE; while ($release = db_fetch_object($result)) { - $links = array(); - if (!empty($release->file_path)) { - $links['project_release_download'] = theme('project_release_download_link', $release->file_path, t('Download'), TRUE); - } - $links['project_release_notes'] = array( - 'title' => t('Release notes'), - 'href' => "node/$release->nid", - ); - if ($can_edit) { - $links['project_release_edit'] = array( - 'title' => t('Edit'), - 'href' => "node/$release->nid/edit", + if (!in_array($release->version_major, $added_majors)) { + $links = array(); + if (!empty($release->file_path)) { + $links['project_release_download'] = theme('project_release_download_link', $release->file_path, t('Download'), TRUE); + } + $links['project_release_notes'] = array( + 'title' => t('Release notes'), + 'href' => "node/$release->nid", ); - } - if (!isset($items[$release->tid]) || !is_array($items[$release->tid])) { - $items[$release->tid] = array(); - } - - $row = array( - // class of