X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLayout%2FMenuLeft.pm;h=d740640c6edae1dd2321ec9de08fbab4f6b79077;hb=87e65e6c1cc64bfb2d73b6914ed2ef136861dd42;hp=d78f0e6e095c5583ef2c3f29ffc1119702e0a282;hpb=0b2e3624d926451f60d085d6e201a22557a647b3;p=kivitendo-erp.git diff --git a/SL/Layout/MenuLeft.pm b/SL/Layout/MenuLeft.pm index d78f0e6e0..d740640c6 100644 --- a/SL/Layout/MenuLeft.pm +++ b/SL/Layout/MenuLeft.pm @@ -8,17 +8,25 @@ use URI; use List::MoreUtils qw(apply); sub stylesheets { - qw(css/icons16.css css/icons24.css) + qw(icons16.css icons24.css menu.css) } sub javascripts_inline { my $self = shift; + $self->SUPER::javascripts_inline; my $sections = [ section_menu($self->menu) ]; - $self->render('menu/menu', { partial => 1, no_output => 1 }, + $self->render('menu/menu', { output => 0 }, sections => $sections, ) } +sub javascripts { + qw( + js/jquery.cookie.js + js/switchmenuframe.js + ); +} + sub pre_content { "
\n"; } @@ -63,8 +71,6 @@ sub section_menu { $menuitem->{href} .= $::form->escape($value, 1); } - my $anchor = $menuitem->{href}; - my @common_args = ($label, $spacer, "$id_prefix\_$id"); if (!$level) { # toplevel @@ -76,7 +82,7 @@ sub section_menu { #make_image(label => 'submenu'), push @items, section_menu($menu, $item, "$id_prefix\_$id"); } elsif ($menuitem->{module}) { - push @items, [ @common_args, "icon16 $icon_class", 'i', $anchor ]; + push @items, [ @common_args, "icon16 $icon_class", 'i', $menuitem->{href}, $menuitem->{target} ]; #make_image(size => 16, label => $item), } } continue { @@ -103,3 +109,81 @@ sub _show_images { } 1; + +__END__ + +=encoding utf-8 + +=head1 NAME + +SL::Layout::MenuLeft - ex html meanu, now only left menu + +=head1 DOM MODEL + +Data will be embedded into the page as a json array of entries. +Each entry is another array with the following fields: + + 0: title + 1: indentation classes + 2: unique id + 3: icon classes + 4: role classes + 5: href + 6: target + +From each entry the following dom will be generated, with [0] being entry 0 of +the data array: + +
+ + +
+
+ [0] +
+
+ +The classes are minified to keep the json somewhat in check, their meaning is as follows: + +=over 4 + +=item Indentation Classes + + s0: No indentation + s1: One level of indentation + s2: Two levels of indentation + +=item Icon Classes + +Each icon consists of two classes, one for the icon, and one for the size. +The icon classes are taken from the file names, for example C is +the icon for master data, and refers to Master-Icon.png. + + icon16: 16x16 icon + icon24: 24x24 icon + icon32: 32x32 icon + +=item Role Classes + +Role classes may be used to style types of links differently. Currently used: + + ml: menu link, any tag will have this + mi: menu item, the enclosing div for each entry has this + mii: menu item icon, the enclosing div for the icons has this + ms: menu spacer, the first in the link will have this + m: menu, only top level entries have this + i: item, only leaf entries have this + sm: sub menu, eveything that is not top nor leaf has this + mic: menu item content, the span with the human readable description has this + +=back + +=head1 BUGS + +none yet + +=head1 AUTHOR + +Sven Schoeling Es.schoeling@linet-services.deE + +=cut