X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fmenu.pl;h=3f439db89327f343cfaa522cfb12e59d853a5c45;hb=5f3f953a9ccd519fbe329d65a49239271b1b520d;hp=15c43efe53867ea290d704e12ef6e469d42f1c31;hpb=27ae86579fb8833067e9d6c02cf5429d98b28449;p=kivitendo-erp.git diff --git a/bin/mozilla/menu.pl b/bin/mozilla/menu.pl index 15c43efe5..3f439db89 100644 --- a/bin/mozilla/menu.pl +++ b/bin/mozilla/menu.pl @@ -59,7 +59,7 @@ sub display { $callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/; my $framesize = _calc_framesize(); - $::form->header; + $::form->header(doctype => 'frameset'); print qq| @@ -84,20 +84,13 @@ sub acc_menu { my $framesize = _calc_framesize() - 2; my $menu = Menu->new("menu.ini"); $mainlevel = $::form->{level}; - $::form->{title} = $::locale->text('Lx-Office'); + $::form->{title} = $::locale->text('kivitendo'); $::form->header; - print qq| - - -
\n\n|; - - section_menu($menu); - - print qq|
- - -|; + print $::form->parse_html_template('menu/menu', { + framesize => $framesize, + sections => [ section_menu($menu) ], + }); $::lxdebug->leave_sub; } @@ -106,6 +99,7 @@ sub section_menu { $::lxdebug->enter_sub; my ($menu, $level) = @_; my @menuorder = $menu->access_control(\%::myconfig, $level); + my @items; for my $item (@menuorder) { my $menuitem = $menu->{$item}; @@ -119,50 +113,68 @@ sub section_menu { $label = $::locale->text($label); - $menuitem->{target} ||= "main_window"; + menuitem($menuitem); - my $anchor = $menu->menuitem(\%::myconfig, $::form, $item, $level); + my $anchor = $menuitem->{href}; if (!$level) { # toplevel my $ml_ = $::form->escape($ml); - my $image = make_image(icon => $item . '.png', size => 24, label => $label, valign => 'middle'); - my $anchor = ""; + my $image = make_image(icon => $item . '.png', size => 24, label => $label); + my $anchor = "menu.pl?action=acc_menu&level=$ml_"; - print make_item(a => $anchor, img => $image, label => $label, height => 24); - section_menu($menu, $item); + push @items, make_item(href => $anchor, img => $image, label => $label, height => 24, class => 'menu'); + push @items, section_menu($menu, $item); } elsif ($menuitem->{submenu}) { my $image = make_image(submenu => 1); if ($mainlevel && $item =~ /^\Q$mainlevel\E/) { - print make_item(spacer => $spacer, bold => 1, img => $image, label => $label) if $show; - section_menu($menu, $item); + push @items, make_item(target => $menuitem->{target}, spacer => $spacer, bold => 1, img => $image, label => $label, class => 'submenu') if $show; + push @items, section_menu($menu, $item); } else { - print make_item(spacer => $spacer, a => $anchor, img => $image, label => $label . ' ...') if $show; + push @items, make_item(spacer => $spacer, href => $anchor, img => $image, label => $label . ' ...', class => 'submenu') if $show; } } elsif ($menuitem->{module}) { my $image = make_image(label => $label, icon => $label_icon); - print make_item(img => $image, a => $anchor, spacer => $spacer, label => $label) if $show; - section_menu($menu, $item) if $show && $::form->{$item} && $::form->{level} eq $item; + push @items, make_item(target => $menuitem->{target}, img => $image, href => $anchor, spacer => $spacer, label => $label, class => 'item') if $show; + push @items, section_menu($menu, $item) if $show && $::form->{$item} && $::form->{level} eq $item; } } $::lxdebug->leave_sub; + return @items; +} + +sub menuitem { + my ($item, $name) = @_; + + $item->{module} ||= $::form->{script}; + $item->{action} ||= "section_menu"; + $item->{target} ||= "main_window"; + $item->{href} ||= "$item->{module}?action=$item->{action}"; + + # add other params + foreach my $key (keys %$item) { + next if $key =~ /target|module|action|href/; + $item->{href} .= "&" . $::form->escape($key, 1) . "="; + my ($value, $conf) = split(/=/, $item->{$key}, 2); + $value = $::myconfig{$value} . "/$conf" if ($conf); + $item->{href} .= $::form->escape($value, 1); + } + +# my $str = ""; +# +# return $str; } sub make_item { my %params = @_; - my $anchor = $params{a} || ''; - my @chunks = multiline($params{label}); - my $spacer = $params{spacer} || ''; - my $image = $params{img}; - my $height = $params{height} || 16; - my $a_end = $anchor ? '' : ''; - my $bold = $params{bold} ? '' : ''; - my $b_end = $bold ? '' : ''; - my $hidden_image = make_image(hidden => 1); - return join "\n", - "$bold$spacer$anchor$image$chunks[0]$a_end$b_end\n", - map "$bold$spacer$hidden_image$anchor$chunks[$_]$a_end$b_end\n", - 1..$#chunks; + $params{a} ||= ''; + $params{spacer} ||= ''; + $params{height} ||= 16; + + return { + %params, + chunks => [ multiline($params{label}) ], + }; } # multi line hack, sschoeling jul06 @@ -190,23 +202,20 @@ sub make_image { my $label = $params{label}; my $icon = $params{icon}; - my $hidden = $params{hidden}; my $size = $params{size} || 16; - my $valign = $params{valign} || 'text-top'; return unless _show_images(); my $icon_found = $icon && -f _icon_path($icon, $size); my $image_url = $icon_found ? _icon_path($icon, $size) : "image/unterpunkt.png"; - my $style = $hidden ? "visibility:hidden" : "vertical-align:$valign"; - my $width = $hidden ? "width='$size'" : ''; + my $width = $icon_found ? $size : 24; - my $padding = $size == 16 && $icon_found || $hidden ? $nbsp x 2 - : $size == 24 ? $nbsp - : ''; + my $padding = $size == 16 && $icon_found ? $nbsp x 2 + : $size == 24 ? $nbsp + : ''; - return "$padding"; + return "$label$padding"; } sub _calc_framesize {