Merge branch 'master' of git.uio.no:usit-rt
[usit-rt.git] / share / html / m / _elements / ticket_list
1 %# BEGIN BPS TAGGED BLOCK {{{
2 %#
3 %# COPYRIGHT:
4 %#
5 %# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
6 %#                                          <sales@bestpractical.com>
7 %#
8 %# (Except where explicitly superseded by other copyright notices)
9 %#
10 %#
11 %# LICENSE:
12 %#
13 %# This work is made available to you under the terms of Version 2 of
14 %# the GNU General Public License. A copy of that license should have
15 %# been provided with this software, but in any event can be snarfed
16 %# from www.gnu.org.
17 %#
18 %# This work is distributed in the hope that it will be useful, but
19 %# WITHOUT ANY WARRANTY; without even the implied warranty of
20 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 %# General Public License for more details.
22 %#
23 %# You should have received a copy of the GNU General Public License
24 %# along with this program; if not, write to the Free Software
25 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 %# 02110-1301 or visit their web page on the internet at
27 %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28 %#
29 %#
30 %# CONTRIBUTION SUBMISSION POLICY:
31 %#
32 %# (The following paragraph is not intended to limit the rights granted
33 %# to you to modify and distribute this software under the terms of
34 %# the GNU General Public License and is only of importance to you if
35 %# you choose to contribute your changes and enhancements to the
36 %# community by submitting them to Best Practical Solutions, LLC.)
37 %#
38 %# By intentionally submitting any modifications, corrections or
39 %# derivatives to this work, or any other work intended for use with
40 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41 %# you are the copyright holder for those contributions and you grant
42 %# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
43 %# royalty-free, perpetual, license to use, copy, create derivative
44 %# works based on those contributions, and sublicense and distribute
45 %# those contributions and any derivatives thereof.
46 %#
47 %# END BPS TAGGED BLOCK }}}
48 <%args>
49 $order => undef
50 $order_by => undef
51 $query => ''
52 $page => 1
53 </%args>
54 <%init>
55
56 my $rows = 10;
57
58 my $collection = RT::Tickets->new($session{'CurrentUser'});
59 $collection->FromSQL($query);
60 $collection->RowsPerPage($rows);
61 $collection->GotoPage($page-1);
62 # XXX: ->{'order_by'} is hacky, but there is no way to check if
63 # collection is ordered or not
64 if ( $order_by) {
65         my @order_by = split /\|/, $order_by;
66         my @order = split /\|/,$order;
67     $collection->OrderByCols(
68         map { { FIELD => $order_by[$_], ORDER => $order[$_] } }
69         ( 0 .. $#order_by )
70     );
71 }
72
73
74
75 $collection->RedoSearch();
76  
77 if ($page > 1 && ! @{$collection->ItemsArrayRef||[]}) {
78     RT::Interface::Web::Redirect( RT->Config->Get('WebURL')."m/tickets/search?page=".($page-1)."&query=".$query."&order=$order&order_by=$order_by");
79 }
80
81 </%init>
82 <&| /m/_elements/wrapper, title => 
83 loc("Found [quant,_1,ticket,tickets]",$collection->CountAll) &>
84 <&|/Widgets/TitleBox, class => 'search'
85 &>
86 <ul class="ticketlist">
87 % while (my $ticket = $collection->Next()) {
88 <li class="ticket">
89 <a class="ticket" href="<%RT->Config->Get('WebPath')%>/m/ticket/show?id=<%$ticket->id%>"><%$ticket->id%>: <%$ticket->Subject%></a>
90 <div class="metadata">
91 <%perl>
92
93 </%perl>
94 <div class="requestors"><span class="label"><&|/l&>Requestors</&>:</span> <& /Ticket/Elements/ShowGroupMembers, Group => $ticket->Requestors, Ticket => $ticket, Link => 0 &></div>
95 <div class="status"><span class="label"><&|/l&>Status</&>:</span> <%$ticket->Status%></div>
96 <div class="owner"><span class="label"><&|/l&>Owner</&>:</span> <& /Elements/ShowUser, User => $ticket->OwnerObj, Ticket => $ticket, Link => 0 &></div>
97 <div class="created"><span class="label"><&|/l&>Created</&>:</span> <%$ticket->CreatedObj->AgeAsString()%></div>
98 % if ($ticket->Priority) {
99 <div class="priority"><span class="label"><&|/l&>Priority</&>:</span> <%$ticket->Priority%></div>
100 % }
101 <div class="bookmark"><span class="label"><&|/l&>Bookmark</&>:</span> <& /Ticket/Elements/Bookmark, id => $ticket->id &></div>
102
103 </div>
104 </li>
105 % }
106 </ul>
107 <div id="paging">
108 % if ($page > 1) { 
109 <a href="<%RT->Config->Get('WebPath')%>/m/tickets/search?page=<%$page-1%>&query=<%$query%>&order=<%$order%>&order_by=<%$order_by%>">Back</a>
110 % }
111 Page <%$page%>
112
113 % if ($collection->CountAll > $page * $rows) {
114 <a href="<%RT->Config->Get('WebPath')%>/m/tickets/search?page=<%$page+1%>&query=<%$query%>&order=<%$order%>&order_by=<%$order_by%>">Next</a>
115 % }
116 </div>
117 </&>
118 </&>