import rt 3.6.4
[freeside.git] / rt / html / Ticket / Elements / Tabs
index 1a50586..1eb2aa8 100644 (file)
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse@bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# 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.
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/copyleft/gpl.html.
 %# 
 %# 
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -119,9 +121,11 @@ my $ticket_page_tabs = {
       { title => loc('People'), path => "Ticket/ModifyPeople.html?id=" . $id, },
     _E => { title => loc('Links'),
             path  => "Ticket/ModifyLinks.html?id=" . $id, },
-    _F => { title => loc('Jumbo'),
-            path  => "Ticket/ModifyAll.html?id=" . $id,
-            separator => 1
+    _F => { title => loc('Reminders'),
+            path  => "Ticket/Reminders.html?id=" . $id,
+            separator => 1, },
+    _X => { title => loc('Jumbo'),
+            path  => "Ticket/ModifyAll.html?id=" . $id, 
  },
 
 };
@@ -136,76 +140,102 @@ foreach my $tab ( sort keys %{$ticket_page_tabs} ) {
 $tabs->{'this'}->{"subtabs"} = $ticket_page_tabs;
 $current_tab = "Ticket/Display.html?id=" . $id;
 
+my %can = (
+    ModifyTicket => $Ticket->CurrentUserHasRight('ModifyTicket'),
+);
 
-
-
-
-if (    $Ticket->CurrentUserHasRight('ModifyTicket')
-     or $Ticket->CurrentUserHasRight('ReplyToTicket') ) {
-    $actions->{'A'} = { title => loc('Reply'),
-                        path  => "Ticket/Update.html?Action=Respond&id=" . $id,
+if ( $can{'ModifyTicket'} or $Ticket->CurrentUserHasRight('ReplyToTicket') ) {
+    $actions->{'F'} = {
+        title => loc('Reply'),
+        path  => "Ticket/Update.html?Action=Respond&id=" . $id,
     };
 }
 
-if ( $Ticket->CurrentUserHasRight('ModifyTicket') ) {
+if ( $can{'ModifyTicket'} ) {
     if ( $Ticket->Status ne 'resolved' ) {
-        $actions->{'B'} = {
-
+        $actions->{'G'} = {
             path => "Ticket/Update.html?Action=Comment&DefaultStatus=resolved&id=" . $id,
             title => loc('Resolve') };
     }
     if ( $Ticket->Status ne 'open' ) {
-        $actions->{'C'} = { path => "Ticket/Display.html?Status=open&id=" . $id,
+        $actions->{'A'} = { path => "Ticket/Display.html?Status=open&id=" . $id,
                             title => loc('Open it') };
     }
 }
 
 if ( $Ticket->CurrentUserHasRight('OwnTicket') ) {
-    if ( $Ticket->OwnerObj->id == $RT::Nobody->id ) {
-        $actions->{'D'} = { path => "Ticket/Display.html?Action=Take&id=" . $id,
-                            title => loc('Take') };
+    if ( $Ticket->OwnerObj->Id == $RT::Nobody->id
+         and ( $can{'ModifyTicket'} or $Ticket->CurrentUserHasRight('TakeTicket') ) )
+    {
+        $actions->{'B'} = {
+            path => "Ticket/Display.html?Action=Take&id=" . $id,
+            title => loc('Take'),
+        };
     }
-    elsif ( $Ticket->OwnerObj->id != $session{CurrentUser}->id ) {
-        $actions->{'E'} = {path => "Ticket/Display.html?Action=Steal&id=" . $id,
-                           title => loc('Steal') };
+    elsif ( $Ticket->OwnerObj->id != $session{CurrentUser}->id 
+            and ( $can{'ModifyTicket'} or $Ticket->CurrentUserHasRight('StealTicket') ) )
+    {
+        $actions->{'C'} = {
+            path => "Ticket/Display.html?Action=Steal&id=" . $id,
+            title => loc('Steal'),
+        };
     }
 }
 
-if (    $Ticket->CurrentUserHasRight('ModifyTicket')
-     or $Ticket->CurrentUserHasRight('CommentOnTicket') ) {
-    $actions->{'F'} = { title => loc('Comment'),
-                        path  => "Ticket/Update.html?Action=Comment&id=" . $id,
+if ( $can{'ModifyTicket'} or $Ticket->CurrentUserHasRight('CommentOnTicket') ) {
+    $actions->{'E'} = {
+        title => loc('Comment'),
+        path  => "Ticket/Update.html?Action=Comment&id=" . $id,
     };
 }
 }
 
-my $args = "?" . $m->comp(
+if ( (defined $actions->{A} || defined $actions->{B} || defined $actions->{C})
+    && (defined $actions->{E} || defined $actions->{F} || defined $actions->{G}) ) { 
+    
+    if    (defined $actions->{C}) { $actions->{C}->{separator} = 1 }
+    elsif (defined $actions->{B}) { $actions->{B}->{separator} = 1 }
+    elsif (defined $actions->{A}) { $actions->{A}->{separator} = 1 }
+}
+
+my $args;
+$args= "?" . $m->comp(
     '/Elements/QueryString',
     Query   => $ARGS{'Query'}   || $session{'CurrentSearchHash'}->{'Query'},
     Format  => $ARGS{'Format'}  || $session{'CurrentSearchHash'}->{'Format'},
     OrderBy => $ARGS{'OrderBy'} || $session{'CurrentSearchHash'}->{'OrderBy'},
     Order   => $ARGS{'Order'}   || $session{'CurrentSearchHash'}->{'Order'},
+    Page   => $ARGS{'Page'}   || $session{'CurrentSearchHash'}->{'Page'},
     Rows    => $ARGS{'Rows'},
   ) if ($ARGS{'Query'} or $session{'CurrentSearchHash'}->{'Query'});
 $args ||= '';
 
 $tabs->{"f"} = { path      => "Search/Build.html?NewQuery=1",
-                 title     => loc('New Query')};
+                 title     => loc('New Search')};
 $tabs->{"g"} = { path      => "Search/Build.html$args",
-                 title     => loc('Query Builder')};
+                 title     => loc('Edit Search')};
 $tabs->{"h"} = { path      => "Search/Edit.html$args",
                  title     => loc('Advanced'),
                  separator => 1 };
-if (defined $session{'tickets'} and $session{'tickets'}->Count) {
+if ($args) {
   $tabs->{"i"} = { path      => "Search/Results.html$args",
                    title     => loc('Show Results'),
-                   separator => 1,
-                   subtabs   => $searchtabs };
+                   };
   if ($current_tab =~  "Search/Results.html") {
     $current_tab = "Search/Results.html$args";
   }
+  $tabs->{"j"} = { path      => "Search/Bulk.html$args",
+                   title     => loc('Bulk Update'),
+                   };
+  if ($current_tab =~  "Search/Bulk.html") {
+    $current_tab = "Search/Bulk.html$args";
+  }
+  foreach my $searchtab (keys %{$searchtabs}) {
+    ($searchtab =~ /^_/) ? $tabs->{"s".$searchtab} = $searchtabs->{$searchtab} : $tabs->{"z_".$searchtab} = $searchtabs->{$searchtab};
+  }
 }
 
+
 </%INIT>