%# Every nonzero finite dimensional inner product space has an orthonormal basis.
%# It makes sense, when you don't think about it.
% if (!$NoUI) {
<& /Work/Elements/104Header, Title => 'Search', Refresh => $session{'tickets_refresh_interval'} &>
% }
%if ($ticketcount && !  $ARGS{'HideResults'}) {
<& TicketHeader, %ARGS &>
% my $i;
%while (my $Ticket = $session{'tickets'}->Next) {
% $i++;
<& $TicketRow, Ticket => $Ticket, i=> $i, %ARGS &>
%}
| <&|/l&>First page&>
  
%  if ( $session{'tickets'}->FirstRow >= $session{'tickets_rows_per_page'}-1 ) {
<<&|/l&>Previous page&>
  
%  }                                                                           
%  if ( $session{'tickets'}->FirstRow + $session{'tickets_rows_per_page'} < $ticketcount ) {
<&|/l&>Next page&>>
%  } | 
| (<&|/l, ($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage()  ) &>[_1] - [_2] shown&>) | <% $title %> | <&|/l&>Update all these tickets at once&> | 
% }
% if (!$NoUI) {
<& /Work/Elements/104Footer &>
% }
<%INIT>
my ($title, $ticketcount);
$session{'i'}++;
if ($session{'tickets'}) {
    if ($ARGS{'DeleteRestriction'}) {
	    $session{'tickets'}->DeleteRestriction($ARGS{'DeleteRestriction'});
    }
    if ( ($ARGS{'ClearRestrictions'}) || ($ARGS{'NewSearch'}) ) {
	    $session{'tickets'}->ClearRestrictions;
	}	
}
   ProcessSearchQuery(ARGS=>\%ARGS);
   $session{'tickets'}->RedoSearch();
   if ( $session{'tickets'}->DescribeRestrictions()) {
       $ticketcount = $session{tickets}->CountAll();
        $title = loc('Found [quant,_1,ticket]', $ticketcount);
    } else {
        $title = loc("Find tickets");
   }
%INIT>
<%CLEANUP>
$session{'tickets'}->PrepForSerialization();
%CLEANUP>
<%ARGS>
$NoUI	=> 0
$TicketRow => 'TicketRow'
%ARGS>