diff options
Diffstat (limited to 'rt/html/Elements/Menu')
-rw-r--r-- | rt/html/Elements/Menu | 128 |
1 files changed, 77 insertions, 51 deletions
diff --git a/rt/html/Elements/Menu b/rt/html/Elements/Menu index 398e3ab07..b5b2bdad5 100644 --- a/rt/html/Elements/Menu +++ b/rt/html/Elements/Menu @@ -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: @@ -43,66 +45,90 @@ %# 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">· </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">···</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> |