diff options
Diffstat (limited to 'rt/html/Elements/TicketList')
-rw-r--r-- | rt/html/Elements/TicketList | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/rt/html/Elements/TicketList b/rt/html/Elements/TicketList new file mode 100644 index 000000000..1a531274f --- /dev/null +++ b/rt/html/Elements/TicketList @@ -0,0 +1,154 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# <jesse@bestpractical.com> +%# +%# (Except where explicitly superseded by other copyright notices) +%# +%# +%# LICENSE: +%# +%# This work is made available to you under the terms of Version 2 of +%# the GNU General Public License. A copy of that license should have +%# been provided with this software, but in any event can be snarfed +%# from www.gnu.org. +%# +%# This work is distributed in the hope that it will be useful, but +%# WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%# General Public License for more details. +%# +%# You should have received a copy of the GNU General Public License +%# along with this program; if not, write to the Free Software +%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# +%# +%# CONTRIBUTION SUBMISSION POLICY: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# END BPS TAGGED BLOCK }}} +<TABLE BORDER=0 cellspacing=0 cellpadding=1 WIDTH=100%> + +% if ($ShowHeader) { +<& /Elements/CollectionAsTable/Header, + Format => \@Format, + FormatString => $Format, + AllowSorting => $AllowSorting, + Order => $Order, + Query => $Query, + Rows => $Rows, + Page => $Page, + OrderBy => $OrderBy , + BaseURL => $BaseURL, + maxitems => $maxitems &> +% } + +% my $i; +% while (my $record = $Collection->Next) { +% $i++; +% # Every ten rows, flush the buffer and put something on the page. +% $m->flush_buffer() unless ($i % 10); +<& /Elements/CollectionAsTable/Row, Format => \@Format, i => $i, record => $record, maxitems => $maxitems &> +% } + +</TABLE> + +% if ($Rows && $ShowNavigation) { +<hr> +% my $oddRows; +% if (($TotalFound % $Rows) == 0) { +% $oddRows = 0; +% } else { $oddRows = 1; } +<&|/l, $Page, int($TotalFound/$Rows)+$oddRows&>Page [_1] of [_2]</&> + +<%perl> +my $prev = $m->comp( + '/Elements/QueryString', + Query => $Query, + Format => $Format, + Rows => $Rows, + OrderBy => $OrderBy, + Order => $Order, + Page => ( $Page - 1 ) +); +my $next = $m->comp( + '/Elements/QueryString', + Query => $Query, + Format => $Format, + Rows => $Rows, + OrderBy => $OrderBy, + Order => $Order, + Page => ( $Page + 1 ) +); +</%perl> +% if ($Page > 1) { +<A href="<%$BaseURL%><%$prev%>"><&|/l&>Previous Page</&></a> +% } +% if (($Page * $Rows) < $TotalFound) { +<A href="<%$BaseURL%><%$next%>"><&|/l&>Next Page</&></a> +% } +% } +<%INIT> +my $maxitems = 0; + +$Format ||= $RT::DefaultSearchResultFormat; +# Scrub the html of the format string to remove any potential nasties. +$Format = $m->comp('/Elements/ScrubHTML', Content => $Format); + + +unless ($Collection) { + $Collection = RT::Tickets->new($session{'CurrentUser'}); + $Collection->FromSQL($Query); +} + +my (@Format) = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $Format); + +# Find the maximum number of items in any row, so we can pad the table. +my $item = 0; +foreach my $col (@Format) { + $item++; + if ( $col->{title} eq 'NEWLINE' ) { + $item = 0; + } + else { + $maxitems = $item if $item > $maxitems; + } +} + + +$Collection->OrderBy(FIELD => $OrderBy, ORDER => $Order); +$Collection->RowsPerPage($Rows) if ($Rows); +$Collection->GotoPage($Page-1); # SB uses page 0 as the first page +my $TotalFound = $Collection->CountAll(); + +</%INIT> +<%ARGS> +$Query => undef +$Rows => 50 +$Page => 1 +$Title => 'Ticket Search' +$Collection => undef +$AllowSorting => undef +$Order => undef +$OrderBy => undef +$BaseURL => undef +$Format => $RT::DefaultSearchResultFormat +$ShowNavigation => 1 +$ShowHeader => 1 +</%ARGS> |