diff options
Diffstat (limited to 'rt/share/html/Elements/Menu')
-rwxr-xr-x | rt/share/html/Elements/Menu | 123 |
1 files changed, 34 insertions, 89 deletions
diff --git a/rt/share/html/Elements/Menu b/rt/share/html/Elements/Menu index c87981a3b..b56bacda8 100755 --- a/rt/share/html/Elements/Menu +++ b/rt/share/html/Elements/Menu @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -45,95 +45,40 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<ul<% !$level ? ' id="system-menu"' : ''|n %><% $menu_class ? qq[ class="$menu_class"] : ''|n %>> -<div<% $menu_class ? qq[ class="$menu_class"] : ''|n %>><div class="wrapper"> -<%perl> - my $sep = 0; - my $postsep = 0; - my $accesskey = 1; - - $count = 0; - $class = {}; - -my @tabs = sort keys %$toptabs; - foreach $tab (@tabs) { - $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; - - push @li, 'last' if ( $tab eq $tabs[-1]); - $class->{li} = join ' ', @li; - - my $url = ($toptabs->{$tab}->{'path'}||'') =~ /^(?:https?|mailto):/i - ? $toptabs->{$tab}->{'path'} || '' - : RT->Config->Get('WebPath') . "/" . $toptabs->{$tab}->{'path'}; - -</%perl> - <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 ($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; +% return unless ($menu); +<%" " x $depth%><ul<%$id ? ' id="'.$id.'"' : '' |n%><% $toplevel? ' class="toplevel"' : '' |n %>> +% for my $child ($menu->children) { +% my $item_id = lc(($parent_id? $parent_id."-" : "") .$child->key); +% $item_id =~ s/\s/-/g; +% my @classes; +% push @classes, 'has-children' if $child->has_children; +% push @classes, 'active' if $child->active; +<%" " x ($depth+1)%><li id="li-<%$item_id%>"\ +% if (@classes) { + class="<% join ' ', @classes %>"\ % } -</div></div> -</ul> - -<%INIT> -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> +>\ +% if ($child->raw_html) { +<% $child->raw_html |n %> +% } else { +% my $url = (not $child->path or $child->path =~ m{^\w+:/}) ? $child->path : RT->Config->Get('WebPath').$child->path; +<a id="<%$item_id%>" class="menu-item <% $child->class || '' %>"<% $child->path ? ' href="'.$url.'"' : '' |n%><% $child->target ? ' target="'.$child->target.'"' : '' |n %>>\ +<% $child->escape_title ? $m->interp->apply_escapes($child->title, 'h') : $child->title |n %>\ +</a>\ +% } +% if ($child->has_children) { +<& Menu, menu => $child, toplevel => 0, parent_id => ($parent_id? $parent_id."-": '').$child->key, depth=> ($depth+1) &> +<%" " x ($depth+1)%></li> +% } else { +</li> +% } +% } +<%" " x $depth%></ul>\ <%ARGS> -$toptabs => {} -$current_toptab => '' -$level => 0 -$last_level => 0 +$menu +$id => undef +$toplevel => 1 +$parent_id => '' +$depth => 0 </%ARGS> |