diff options
author | Steven Wittens <steven@10.no-reply.drupal.org> | 2004-09-14 20:01:00 +0000 |
---|---|---|
committer | Steven Wittens <steven@10.no-reply.drupal.org> | 2004-09-14 20:01:00 +0000 |
commit | 9c9905d9a077830e371d91b57527984c3cee96e3 (patch) | |
tree | f1c3324ff1815a92e1f75abb21ac263ababaf701 | |
parent | 5dfcdf0e28efc8bec416407c1c566058726cbb27 (diff) | |
download | brdo-9c9905d9a077830e371d91b57527984c3cee96e3.tar.gz brdo-9c9905d9a077830e371d91b57527984c3cee96e3.tar.bz2 |
#10648: Fix watchdog-related tablesort coloring bug in IE, add support for <tr> attributes to theme_table() and reduce specificy of watchdog coloring CSS rules.
-rw-r--r-- | includes/theme.inc | 55 | ||||
-rw-r--r-- | misc/drupal.css | 26 | ||||
-rw-r--r-- | modules/watchdog.module | 17 | ||||
-rw-r--r-- | modules/watchdog/watchdog.module | 17 |
4 files changed, 82 insertions, 33 deletions
diff --git a/includes/theme.inc b/includes/theme.inc index 57c2b1724..c59a7f11f 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -581,10 +581,29 @@ function theme_submenu($links) { * - "sort": A default sort order for this column ("asc" or "desc"). * - Any HTML attributes, such as "colspan", to apply to the column header cell. * @param $rows - * An array of arrays containing the table cells. Each cell can be either a - * string or and associative array with the following keys: + * An array of table rows. Every row is an array of cells, or an associative + * array with the following keys: + * - "data": an array of cells + * - Any HTML attributes, such as "class", to apply to the table row. + * + * Each cell can be either a string or an associative array with the following keys: * - "data": The string to display in the table cell. * - Any HTML attributes, such as "colspan", to apply to the table cell. + * + * Here's an example for $rows: + * @verbatim + * $rows = array( + * // Simple row + * array( + * 'Cell 1', 'Cell 2', 'Cell 3' + * ), + * // Row with attributes on the row and some of its cells. + * array( + * 'data' => array('Cell 1', array('data' => 'Cell 2', 'colspan' => 2)), 'class' => 'funky' + * ) + * ); + * @endverbatim + * * @param $attributes * An array of HTML attributes to apply to the table tag. * @return @@ -608,18 +627,38 @@ function theme_table($header, $rows, $attributes = NULL) { // Format the table rows: if (is_array($rows)) { foreach ($rows as $number => $row) { - if ($number % 2 == 1) { - $output .= ' <tr class="light">'; + $attributes = array(); + + // Check if we're dealing with a simple or complex row + if (isset($row['data'])) { + foreach ($row as $key => $value) { + if ($key == 'data') { + $cells = $value; + } + else { + $attributes[$key] = $value; + } + } + } + else { + $cells = $row; + } + + // Add light/dark class + $class = ($number % 2 == 1) ? 'light': 'dark'; + if (isset($attributes['class'])) { + $attributes['class'] .= ' '. $class; } else { - $output .= ' <tr class="dark">'; + $attributes['class'] = $class; } + // Build row + $output .= ' <tr'. drupal_attributes($attributes) .'>'; $i = 0; - foreach ($row as $cell) { - $cell = tablesort_cell($cell, $header, $ts, $i); + foreach ($cells as $cell) { + $cell = tablesort_cell($cell, $header, $ts, $i++); $output .= _theme_table_cell($cell, 0); - $i++; } $output .= " </tr>\n"; } diff --git a/misc/drupal.css b/misc/drupal.css index 0c341eaa4..bcc8b1156 100644 --- a/misc/drupal.css +++ b/misc/drupal.css @@ -37,14 +37,14 @@ th { th.active img { display: inline; } -tr.dark td, tr.light td { +tr.dark, tr.light { background-color: #eee; border-bottom: 1px solid #ccc; } -tr.dark td, tr.light td { +tr.dark, tr.light { padding: 0.1em 0.6em; } -tr td.active { +td.active { background-color: #ddd; } @@ -390,34 +390,34 @@ img.screenshot { font-size: 0.85em; text-align: right; } -tr td.watchdog-user { +tr.watchdog-user { background: #ffd; } -tr td.watchdog-user.active { +tr.watchdog-user .active { background: #eed; } -tr td.watchdog-special { +tr.watchdog-special { background: #ddf; } -tr td.watchdog-special.active { +tr.watchdog-special .active { background: #cce; } -tr td.watchdog-warning { +tr.watchdog-warning { background: #fda; } -tr td.watchdog-warning.active { +tr.watchdog-warning .active { background: #ec9; } -tr td.watchdog-httpd { +tr.watchdog-httpd { background: #dfd; } -tr td.watchdog-httpd.active { +tr.watchdog-httpd .active { background: #cec; } -tr td.watchdog-error { +tr.watchdog-error { background: #ffc9c9; } -tr td.watchdog-error.active { +tr.watchdog-error .active { background: #eeb9b9; } diff --git a/modules/watchdog.module b/modules/watchdog.module index c37ff3b2b..9be7a45f7 100644 --- a/modules/watchdog.module +++ b/modules/watchdog.module @@ -95,12 +95,17 @@ function watchdog_overview($type = '') { $result = pager_query($sql, 50); while ($watchdog = db_fetch_object($result)) { - $rows[] = array( - array('data' => format_date($watchdog->timestamp, 'small'), 'class' => "watchdog-$watchdog->type"), - array('data' => truncate_utf8(strip_tags($watchdog->message), 64), 'class' => "watchdog-$watchdog->type"), - array('data' => format_name($watchdog), 'class' => "watchdog-$watchdog->type"), - array('data' => $watchdog->link, 'class' => "watchdog-$watchdog->type"), - array('data' => l(t('details'), "admin/logs/view/$watchdog->wid"), 'class' => "watchdog-$watchdog->type") + $rows[] = array('data' => + array( + // Cells + format_date($watchdog->timestamp, 'small'), + truncate_utf8(strip_tags($watchdog->message), 64), + format_name($watchdog), + $watchdog->link, + l(t('details'), "admin/logs/view/$watchdog->wid") + ), + // Attributes for tr + 'class' => "watchdog-$watchdog->type" ); } diff --git a/modules/watchdog/watchdog.module b/modules/watchdog/watchdog.module index c37ff3b2b..9be7a45f7 100644 --- a/modules/watchdog/watchdog.module +++ b/modules/watchdog/watchdog.module @@ -95,12 +95,17 @@ function watchdog_overview($type = '') { $result = pager_query($sql, 50); while ($watchdog = db_fetch_object($result)) { - $rows[] = array( - array('data' => format_date($watchdog->timestamp, 'small'), 'class' => "watchdog-$watchdog->type"), - array('data' => truncate_utf8(strip_tags($watchdog->message), 64), 'class' => "watchdog-$watchdog->type"), - array('data' => format_name($watchdog), 'class' => "watchdog-$watchdog->type"), - array('data' => $watchdog->link, 'class' => "watchdog-$watchdog->type"), - array('data' => l(t('details'), "admin/logs/view/$watchdog->wid"), 'class' => "watchdog-$watchdog->type") + $rows[] = array('data' => + array( + // Cells + format_date($watchdog->timestamp, 'small'), + truncate_utf8(strip_tags($watchdog->message), 64), + format_name($watchdog), + $watchdog->link, + l(t('details'), "admin/logs/view/$watchdog->wid") + ), + // Attributes for tr + 'class' => "watchdog-$watchdog->type" ); } |