import rt 3.6.4
[freeside.git] / rt / html / Elements / Menu
index 398e3ab..b5b2bda 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:
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
-%# font size depends on level
-% if ($level ge 3) {
-%   $size = $basesize-(6);
-% } elsif ($level gt 0) {
-%   $size = $basesize-($level * 2);
-%   $padding = 2;
-% }
-%  else {
-%   $size = $basesize;
-%   $padding = 5;
-% }
-<ul class="topnav" >
-% my $sep=0;
-% my $accesskey="1";
+<ul<% !$level ? ' id="system-menu"' : ''|n %><% $menu_class ? qq[ class="$menu_class"] : ''|n %>>
+<div<% $menu_class ? qq[ class="$menu_class"] : ''|n %>><div class="wrapper">
+% my $sep         = 0;
+% my $postsep     = 0;
+% my $accesskey   = 1;
+% 
+% $count = 0;
+% $class = {};
+% 
 % foreach $tab (sort keys %{$toptabs}) {
-% my $current = $current_toptab || "";
-% my $path = $toptabs->{$tab}->{'path'} || "";
-% $path =~ s#/index.html$##gi;
-% $current =~ s#/index.html$##gi;
-% if ( $path eq $current) {
-%     $class="currenttopnav"
-% } else {
-%     $class="topnav"
-% } 
-% my $style="";
-% if ($sep) {
-% $style="minor";
-% } elsif ($level == 0 ) {
-% $style="major";
-% }
-% if ($toptabs->{$tab}->{'separator'}) {
-% $sep=1;
-% } else {
-% $sep=0;
-% }
-% my $url = $toptabs->{$tab}->{'path'} =~ /^https?:/i ? $toptabs->{$tab}->{'path'} : $RT::WebPath . "/" . $toptabs->{$tab}->{'path'};
-<li class="<%$class%>-<%$level%>-<%$style%>"><A HREF="<% $url %>" class="<%$class%>-<%$level%>" 
-<%($class eq 'currenttopnav') ? "name='focus'" : ""|n %> 
-<% !$level && "accesskey='".$accesskey++."'" |n%>><% $toptabs->{$tab}->{'title'}%></A>
+%     $count++;
+%
+%     my $current = $current_toptab || "";
+%     my $path    = $toptabs->{$tab}->{'path'} || "";
+%     
+%     $path    =~ s#/index.html$##gi;
+%     $current =~ s#/index.html$##gi;
+%     
+%     $sep     = $toptabs->{$tab}->{'separator'} ? 1 : 0;
+%
+%     my @aclass;
+%     push @aclass, 'selected'
+%            if $path eq $current;
+%
+%     push @aclass, 'odd'
+%            if $level % 2;
+%
+%     $class->{a} = join ' ', @aclass;
+%
+%     my @li;
+%     push @li, 'first'
+%            if $count == 1;
+%
+%     push @li, 'pre-separator'
+%            if $sep;
+%
+%     push @li, 'post-separator'
+%            if $postsep;
+%
+%     $class->{li} = join ' ', @li;
+%
+%     my $url = ($toptabs->{$tab}->{'path'}||'') =~ /^https?:/i
+%         ? $toptabs->{$tab}->{'path'} || ''
+%         : $RT::WebPath . "/" . $toptabs->{$tab}->{'path'};
+%     
+  <li<% $class->{li} ? qq[ class="$class->{li}"] : ''|n %>>
+    <% $count > 1 && !$postsep && qq[<span class="bullet">&#183; </span>]|n%>
+    <a href="<% $url %>"
+    <% $class->{a} && qq[ class="$class->{a}"] |n%>
+    <% !$level && " accesskey='".$accesskey++."'" |n%>>
+    <% $toptabs->{$tab}->{'title'} || ''%></a>
 %# Second-level items
-%# if ($current_toptab eq $toptabs->{$tab}->{'path'}) {
-%# commented out by jesse on 4 jan 2003 so that tickets/search and ticket/# can
-%# both have menu items
-% if ($toptabs->{$tab}->{'subtabs'}) {
-        <& /Elements/Menu, level => $level+1, 
-                current_toptab => $toptabs->{$tab}->{'current_subtab'},
-                toptabs => $toptabs->{$tab}->{'subtabs'} &></li>
-% }
-%# }
+%     if ($toptabs->{$tab}->{'subtabs'}
+%         and keys %{$toptabs->{$tab}->{'subtabs'}})
+%     {
+          <& /Elements/Menu, level => $level+1, 
+                             current_toptab => $toptabs->{$tab}->{'current_subtab'},
+                             toptabs => $toptabs->{$tab}->{'subtabs'},
+                             last_level => $toptabs->{$tab}->{last_system_menu_level} &>
+%     }
+  </li>
+%     if ($sep) {
+  <li class="separator">&#183;&#183;&#183;</li>
+%     }
+%
+%     $postsep = $sep;
 % }
+</div></div>
 </ul>
 
 <%INIT>
-my ($tab, $subtab, $class, $size, $padding);
-my $basesize=16;
+my ($tab, $class, $count);
 
+my @ul;
+push @ul, 'last-menu-level'
+    if $last_level;
+push @ul, 'odd'
+    if $level % 2;
+my $menu_class = join ' ', @ul;
 </%INIT>
 
 <%ARGS>
 $current_toptab => ""
 $toptabs => undef
 $level => 0
+$last_level => 0
 </%ARGS>