diff options
Diffstat (limited to 'bin/menu.pl')
-rw-r--r-- | bin/menu.pl | 373 |
1 files changed, 200 insertions, 173 deletions
diff --git a/bin/menu.pl b/bin/menu.pl index 9b426b5f..1d44caaf 100644 --- a/bin/menu.pl +++ b/bin/menu.pl @@ -1,9 +1,9 @@ #===================================================================== -# LedgerSMB +# LedgerSMB # Small Medium Business Accounting software # http://www.ledgersmb.org/ # -# +# # See COPYRIGHT file for copyright information #====================================================================== # @@ -19,42 +19,48 @@ $menufile = "menu.ini"; use LedgerSMB::Menu; 1; -# end of main +# end of main sub display { - if($form->{lynx}){ - - $menu = new Menu "$menufile"; - $menu->add_file("custom_$menufile") if -f "custom_$menufile"; - $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile"; + if ( $form->{lynx} ) { - @menuorder = $menu->access_control(\%myconfig); + $menu = new Menu "$menufile"; + $menu->add_file("custom_$menufile") if -f "custom_$menufile"; + $menu->add_file("$form->{login}_$menufile") + if -f "$form->{login}_$menufile"; - $form->{title} = "LedgerSMB $form->{version}"; - $form->header(1); + @menuorder = $menu->access_control( \%myconfig ); - $offset = int (21 - $#menuorder)/2; + $form->{title} = "LedgerSMB $form->{version}"; + $form->header(1); - print "<pre>"; - print "\n" x $offset; - print "</pre>"; - print qq|<center><table>|; + $offset = int( 21 - $#menuorder ) / 2; - map { print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $_).$locale->text($_).qq|</a></td></tr>|; } @menuorder; + print "<pre>"; + print "\n" x $offset; + print "</pre>"; + print qq|<center><table>|; - print qq'</table></body></html>'; + map { + print "<tr><td>" + . $menu->menuitem( \%myconfig, \%$form, $_ ) + . $locale->text($_) + . qq|</a></td></tr>|; + } @menuorder; + print qq'</table></body></html>'; - } else { + } + else { - $menuwidth = ($ENV{HTTP_USER_AGENT} =~ /links/i) ? "240" : "155"; - $menuwidth = $myconfig{menuwidth} if $myconfig{menuwidth}; + $menuwidth = ( $ENV{HTTP_USER_AGENT} =~ /links/i ) ? "240" : "155"; + $menuwidth = $myconfig{menuwidth} if $myconfig{menuwidth}; - $form->header(!$form->{duplicate}); + $form->header( !$form->{duplicate} ); - print qq| + print qq| <frameset cols="$menuwidth,*" border="1"> <frame name="acc_menu" src="menu.pl?login=$form->{login}&sessionid=$form->{sessionid}&action=acc_menu&path=$form->{path}&js=$form->{js}" /> <frame name="main_window" src="locale/html/splash.html" /> @@ -62,27 +68,27 @@ sub display { </html> |; - } + } } - - sub acc_menu { - if($form->{lynx}){ + if ( $form->{lynx} ) { - §ion_menu; + §ion_menu; - } else { + } + else { - my $menu = new Menu "$menufile"; - $menu->add_file("custom_$menufile") if -f "custom_$menufile"; - $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile"; + my $menu = new Menu "$menufile"; + $menu->add_file("custom_$menufile") if -f "custom_$menufile"; + $menu->add_file("$form->{login}_$menufile") + if -f "$form->{login}_$menufile"; - $form->{title} = $locale->text('Accounting Menu'); + $form->{title} = $locale->text('Accounting Menu'); - my $headeradd = q| + my $headeradd = q| <script type="text/javascript"> function SwitchMenu(obj) { @@ -105,247 +111,268 @@ sub acc_menu { document.onselectstart = new Function("return false"); </script>|; - $form->header(undef, $headeradd); - print q| + $form->header( undef, $headeradd ); + print q| <body class="menu"> <img class="cornerlogo" src="images/ledgersmb_small.png" width="100" height="50" border="1" alt="LedgerSMB" /> |; - if ($form->{js}) { - &js_menu($menu); - } else { - §ion_menu($menu); - } + if ( $form->{js} ) { + &js_menu($menu); + } + else { + §ion_menu($menu); + } - print q| + print q| </body> </html> |; - } + } } - sub section_menu { - if($form->{lynx}){ + if ( $form->{lynx} ) { - $menu = new Menu "$menufile", $form->{level}; + $menu = new Menu "$menufile", $form->{level}; - $menu->add_file("custom_$menufile") if -f "custom_$menufile"; - $menu->add_file("$form->{login}_$menufile") if -f "$form->{login}_$menufile"; + $menu->add_file("custom_$menufile") if -f "custom_$menufile"; + $menu->add_file("$form->{login}_$menufile") + if -f "$form->{login}_$menufile"; - # build tiered menus - @menuorder = $menu->access_control(\%myconfig, $form->{level}); + # build tiered menus + @menuorder = $menu->access_control( \%myconfig, $form->{level} ); - foreach $item (@menuorder) { - $a = $item; - $item =~ s/^$form->{level}--//; - push @neworder, $a unless ($item =~ /--/); - } + foreach $item (@menuorder) { + $a = $item; + $item =~ s/^$form->{level}--//; + push @neworder, $a unless ( $item =~ /--/ ); + } - @menuorder = @neworder; + @menuorder = @neworder; - $level = $form->{level}; - $level =~ s/--/ /g; + $level = $form->{level}; + $level =~ s/--/ /g; - $form->{title} = $locale->text($level); - $form->header; + $form->{title} = $locale->text($level); + $form->header; - $offset = int (21 - $#menuorder)/2; + $offset = int( 21 - $#menuorder ) / 2; - print "<pre>"; - print "\n" x $offset; - print "</pre>"; - print qq|<center><table>|; + print "<pre>"; + print "\n" x $offset; + print "</pre>"; + print qq|<center><table>|; - foreach $item (@menuorder) { - $label = $item; - $label =~ s/$form->{level}--//g; + foreach $item (@menuorder) { + $label = $item; + $label =~ s/$form->{level}--//g; - # remove target - $menu->{$item}{target} = ""; + # remove target + $menu->{$item}{target} = ""; - print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $item, $form->{level}).$locale->text($label)."</a></td></tr>"; - } + print "<tr><td>" + . $menu->menuitem( \%myconfig, \%$form, $item, $form->{level} ) + . $locale->text($label) + . "</a></td></tr>"; + } - print qq'</table></body></html>'; + print qq'</table></body></html>'; - } else { + } + else { - my ($menu, $level) = @_; + my ( $menu, $level ) = @_; - # build tiered menus - my @menuorder = $menu->access_control(\%myconfig, $level); + # build tiered menus + my @menuorder = $menu->access_control( \%myconfig, $level ); - while (@menuorder) { - $item = shift @menuorder; - $label = $item; - $label =~ s/$level--//g; + while (@menuorder) { + $item = shift @menuorder; + $label = $item; + $label =~ s/$level--//g; - my $spacer = " " x (($item =~ s/--/--/g) * 2); + my $spacer = " " x ( ( $item =~ s/--/--/g ) * 2 ); - $label =~ s/.*--//g; - $label = $locale->text($label); - $label =~ s/ / /g if $label !~ /<img /i; + $label =~ s/.*--//g; + $label = $locale->text($label); + $label =~ s/ / /g if $label !~ /<img /i; - $menu->{$item}{target} = "main_window" unless $menu->{$item}{target}; + $menu->{$item}{target} = "main_window" + unless $menu->{$item}{target}; - if ($menu->{$item}{submenu}) { + if ( $menu->{$item}{submenu} ) { - $menu->{$item}{$item} = !$form->{$item}; + $menu->{$item}{$item} = !$form->{$item}; - if ($form->{level} && $item =~ $form->{level}) { + if ( $form->{level} && $item =~ $form->{level} ) { - # expand menu - print qq|<br />\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a>|; + # expand menu + print qq|<br />\n$spacer| + . $menu->menuitem( \%myconfig, \%$form, $item, $level ) + . qq|$label</a>|; - # remove same level items - map { shift @menuorder } grep /^$item/, @menuorder; + # remove same level items + map { shift @menuorder } grep /^$item/, @menuorder; - §ion_menu($menu, $item); + §ion_menu( $menu, $item ); - print qq|<br />\n|; + print qq|<br />\n|; - } else { + } + else { - print qq|<br />\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label ...</a>|; + print qq|<br />\n$spacer| + . $menu->menuitem( \%myconfig, \%$form, $item, $level ) + . qq|$label ...</a>|; - # remove same level items - map { shift @menuorder } grep /^$item/, @menuorder; + # remove same level items + map { shift @menuorder } grep /^$item/, @menuorder; - } + } - } else { + } + else { - if ($menu->{$item}{module}) { + if ( $menu->{$item}{module} ) { - print qq|<br />\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a>|; + print qq|<br />\n$spacer| + . $menu->menuitem( \%myconfig, \%$form, $item, $level ) + . qq|$label</a>|; - } else { + } + else { - $form->{tag}++; - print qq|<a name="id$form->{tag}"></a><p><b>$label</b></p>|; + $form->{tag}++; + print qq|<a name="id$form->{tag}"></a><p><b>$label</b></p>|; - §ion_menu($menu, $item); + §ion_menu( $menu, $item ); - print qq|<br />\n|; + print qq|<br />\n|; - } - } - } - } + } + } + } + } } - sub js_menu { - my ($menu, $level) = @_; + my ( $menu, $level ) = @_; - print qq| <div id="div_$menu_$level"> |; + print qq| <div id="div_$menu_$level"> |; - # build tiered menus - my @menuorder = $menu->access_control(\%myconfig, $level); + # build tiered menus + my @menuorder = $menu->access_control( \%myconfig, $level ); - while (@menuorder){ - $i++; - $item = shift @menuorder; - $label = $item; - $label =~ s/.*--//g; - $label = $locale->text($label); + while (@menuorder) { + $i++; + $item = shift @menuorder; + $label = $item; + $label =~ s/.*--//g; + $label = $locale->text($label); - $menu->{$item}{target} = "main_window" unless $menu->{$item}{target}; + $menu->{$item}{target} = "main_window" unless $menu->{$item}{target}; - if ($menu->{$item}{submenu}) { + if ( $menu->{$item}{submenu} ) { - $display = "display: none;" unless $level eq ' '; + $display = "display: none;" unless $level eq ' '; - print qq| + print qq| <div id="menu$i" class="menuOut" onclick="SwitchMenu('sub$i')" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')">$label</div> <div class="submenu" id="sub$i" style="$display">|; - # remove same level items - map { shift @menuorder } grep /^$item/, @menuorder; + # remove same level items + map { shift @menuorder } grep /^$item/, @menuorder; - &js_menu($menu, $item); + &js_menu( $menu, $item ); - print qq| + print qq| </div> |; - } else { + } + else { - if ($menu->{$item}{module}) { + if ( $menu->{$item}{module} ) { - if ($level eq "") { - print qq|<div id="menu$i" class="menuOut" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')"> |. - $menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></div>|; + if ( $level eq "" ) { + print +qq|<div id="menu$i" class="menuOut" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')"> | + . $menu->menuitem( \%myconfig, \%$form, $item, $level ) + . qq|$label</a></div>|; - # remove same level items - map { shift @menuorder } grep /^$item/, @menuorder; + # remove same level items + map { shift @menuorder } grep /^$item/, @menuorder; - &js_menu($menu, $item); + &js_menu( $menu, $item ); - } else { + } + else { - print qq|<div class="submenu"> |. - $menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></div>|; - } + print qq|<div class="submenu"> | + . $menu->menuitem( \%myconfig, \%$form, $item, $level ) + . qq|$label</a></div>|; + } - } else { + } + else { - $display = "display: none;" unless $item eq ' '; + $display = "display: none;" unless $item eq ' '; - print qq| + print qq| <div id="menu$i" class="menuOut" onclick="SwitchMenu('sub$i')" onmouseover="ChangeClass('menu$i','menuOver')" onmouseout="ChangeClass('menu$i','menuOut')">$label</div> <div class="submenu" id="sub$i" style="$display">|; - &js_menu($menu, $item); + &js_menu( $menu, $item ); - print qq| </div> |; + print qq| </div> |; - } + } - } + } - } + } - print qq| </div> |; + print qq| </div> |; } - sub menubar { - if($form->{lynx}){ + if ( $form->{lynx} ) { - $menu = new Menu "$menufile", ""; + $menu = new Menu "$menufile", ""; - # build menubar - @menuorder = $menu->access_control(\%myconfig, ""); + # build menubar + @menuorder = $menu->access_control( \%myconfig, "" ); - @neworder = (); - map { push @neworder, $_ unless ($_ =~ /--/) } @menuorder; - @menuorder = @neworder; + @neworder = (); + map { push @neworder, $_ unless ( $_ =~ /--/ ) } @menuorder; + @menuorder = @neworder; - print "<p>"; - $form->{script} = "menu.pl"; + print "<p>"; + $form->{script} = "menu.pl"; - print "| "; + print "| "; - foreach $item (@menuorder) { - $label = $item; + foreach $item (@menuorder) { + $label = $item; - # remove target - $menu->{$item}{target} = ""; + # remove target + $menu->{$item}{target} = ""; - print $menu->menuitem(\%myconfig, \%$form, $item, "").$locale->text($label)."</a> | "; - } + print $menu->menuitem( \%myconfig, \%$form, $item, "" ) + . $locale->text($label) + . "</a> | "; + } - } else { + } + else { - 1; - } + 1; + } } - |