summaryrefslogtreecommitdiff
path: root/rt/share/html/Elements/CollectionList
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Elements/CollectionList')
-rw-r--r--rt/share/html/Elements/CollectionList26
1 files changed, 21 insertions, 5 deletions
diff --git a/rt/share/html/Elements/CollectionList b/rt/share/html/Elements/CollectionList
index 6f21420..c7bdfd9 100644
--- a/rt/share/html/Elements/CollectionList
+++ b/rt/share/html/Elements/CollectionList
@@ -54,7 +54,9 @@ if (!$Collection && $Class eq 'RT::Tickets') {
my $TotalFound = $Collection->CountAll();
return '' if !$TotalFound && !$ShowEmpty;
-if ( @OrderBy ) {
+# XXX: ->{'order_by'} is hacky, but there is no way to check if
+# collection is ordered or not
+if ( @OrderBy && ($AllowSorting || !$Collection->{'order_by'}) ) {
if ( $OrderBy[0] =~ /\|/ ) {
@OrderBy = split /\|/, $OrderBy[0];
@Order = split /\|/,$Order[0];
@@ -122,13 +124,27 @@ my ($i, $column_map) = (0, {});
while ( my $record = $Collection->Next ) {
# Every ten rows, flush the buffer and put something on the page.
$m->flush_buffer unless ++$i % 10;
+
+ my $warning = 0;
+ my $Classes = '';
+
+ $m->callback(
+ CallbackName => 'EachRow',
+ Record => $record,
+ Warning => \$warning,
+ Classes => \$Classes,
+ Format => \@Format,
+ );
+
$m->comp('/Elements/CollectionAsTable/Row',
- i => $i,
- Format => \@Format,
- record => $record,
- maxitems => $maxitems,
+ i => $i,
+ Format => \@Format,
+ record => $record,
+ maxitems => $maxitems,
ColumnMap => $column_map,
Class => $Class,
+ Warning => $warning,
+ Classes => $Classes,
);
}