Optimize "Customer has a referring customer" condition, RT#74452
[freeside.git] / httemplate / elements / notify-tickets.html
1 % if ($enabled) {
2 <div style="font-weight: bold; vertical-align: bottom; text-align: left">
3 %   if ( $UnrepliedTickets->Count > 0 ) {
4   <a href="<% $fsurl %>rt/Search/UnrepliedTickets.html">
5     <div class="dot" style="background-color: green"></div>
6     <% emt('New activity on [quant,_1,ticket]', $UnrepliedTickets->Count) %>
7   </a>
8 %   } else {
9   <% emt('No new activity on tickets') %>
10 %   }
11 </div>
12 % }
13 <%init>
14 use Class::Load 'load_class';
15
16 my $enabled = $FS::TicketSystem::system eq 'RT_Internal';
17 $enabled = 0 unless $FS::CurrentUser::CurrentUser->access_right('RT activity notification');
18 my $UnrepliedTickets;
19 if ($enabled) {
20   my $class = 'RT::Search::UnrepliedTickets';
21   load_class($class);
22   my $session = eval { FS::TicketSystem->session; };
23   if ( $session ) {
24     my $CurrentUser = $session->{CurrentUser};
25     # if there are no tickets the current user could see, always hide it
26     my $AnyTickets = RT::Tickets->new($CurrentUser);
27     foreach my $status (qw(resolved rejected deleted)) {
28       $AnyTickets->LimitStatus( OPERATOR => '!=', VALUE => $status );
29     }
30     $enabled = 0 if $AnyTickets->Count == 0;
31
32     $UnrepliedTickets = RT::Tickets->new($CurrentUser);
33     my $search = $class->new(TicketsObj => $UnrepliedTickets);
34     $search->Prepare;
35   } else {
36     $enabled = 0;
37   }
38 }
39 </%init>