- #=====================================================================
- # LedgerSMB
- # Small Medium Business Accounting software
- # http://www.ledgersmb.org/
- #
- #
- # See COPYRIGHT file for copyright information
- #======================================================================
- #
- # This file has undergone whitespace cleanup.
- #
- #======================================================================
- #
- # two frame layout with refractured menu
- #
- #######################################################################
- $menufile = "menu.ini";
- use LedgerSMB::Menu;
- 1;
- # 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";
- @menuorder = $menu->access_control(\%myconfig);
- $form->{title} = "LedgerSMB $form->{version}";
- $form->header(1);
- $offset = int (21 - $#menuorder)/2;
- print "<pre>";
- print "\n" x $offset;
- print "</pre>";
- print qq|<center><table>|;
- map { print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $_).$locale->text($_).qq|</a></td></tr>|; } @menuorder;
- print qq'</table></body></html>';
- } else {
- $menuwidth = ($ENV{HTTP_USER_AGENT} =~ /links/i) ? "240" : "155";
- $menuwidth = $myconfig{menuwidth} if $myconfig{menuwidth};
- $form->header(!$form->{duplicate});
- 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" />
- </frameset>
- </html>
- |;
- }
- }
- sub acc_menu {
- if($form->{lynx}){
- §ion_menu;
- } 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";
- $form->{title} = $locale->text('Accounting Menu');
- my $headeradd = q|
- <script type="text/javascript">
- function SwitchMenu(obj) {
- if (document.getElementById) {
- var el = document.getElementById(obj);
- if (el.style.display == "none") {
- el.style.display = "block"; //display the block of info
- } else {
- el.style.display = "none";
- }
- }
- }
- function ChangeClass(menu, newClass) {
- if (document.getElementById) {
- document.getElementById(menu).className = newClass;
- }
- }
- document.onselectstart = new Function("return false");
- </script>|;
- $form->header(undef, $headeradd);
- print q|
- <body class="menu">
- <img class="cornerlogo" src="images/ledger-smb_small.png" width="100" height="50" border="1" alt="ledger-smb" />
- |;
- if ($form->{js}) {
- &js_menu($menu);
- } else {
- §ion_menu($menu);
- }
- print q|
- </body>
- </html>
- |;
- }
- }
- sub section_menu {
- if($form->{lynx}){
- $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";
- # build tiered menus
- @menuorder = $menu->access_control(\%myconfig, $form->{level});
- foreach $item (@menuorder) {
- $a = $item;
- $item =~ s/^$form->{level}--//;
- push @neworder, $a unless ($item =~ /--/);
- }
- @menuorder = @neworder;
- $level = $form->{level};
- $level =~ s/--/ /g;
- $form->{title} = $locale->text($level);
- $form->header;
- $offset = int (21 - $#menuorder)/2;
- print "<pre>";
- print "\n" x $offset;
- print "</pre>";
- print qq|<center><table>|;
- foreach $item (@menuorder) {
- $label = $item;
- $label =~ s/$form->{level}--//g;
- # remove target
- $menu->{$item}{target} = "";
- print "<tr><td>".$menu->menuitem(\%myconfig, \%$form, $item, $form->{level}).$locale->text($label)."</a></td></tr>";
- }
- print qq'</table></body></html>';
- } else {
- my ($menu, $level) = @_;
- # build tiered menus
- my @menuorder = $menu->access_control(\%myconfig, $level);
- while (@menuorder) {
- $item = shift @menuorder;
- $label = $item;
- $label =~ s/$level--//g;
- my $spacer = " " x (($item =~ s/--/--/g) * 2);
- $label =~ s/.*--//g;
- $label = $locale->text($label);
- $label =~ s/ / /g if $label !~ /<img /i;
- $menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
- if ($menu->{$item}{submenu}) {
- $menu->{$item}{$item} = !$form->{$item};
- if ($form->{level} && $item =~ $form->{level}) {
- # 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;
- §ion_menu($menu, $item);
- print qq|<br />\n|;
- } else {
- print qq|<br />\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label ...</a>|;
- # remove same level items
- map { shift @menuorder } grep /^$item/, @menuorder;
- }
- } else {
- if ($menu->{$item}{module}) {
- print qq|<br />\n$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a>|;
- } else {
- $form->{tag}++;
- print qq|<a name="id$form->{tag}"></a><p><b>$label</b></p>|;
- §ion_menu($menu, $item);
- print qq|<br />\n|;
- }
- }
- }
- }
- }
- sub js_menu {
- my ($menu, $level) = @_;
- print qq| <div id="div_$menu_$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);
- $menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
- if ($menu->{$item}{submenu}) {
- $display = "display: none;" unless $level eq ' ';
- 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;
- &js_menu($menu, $item);
- print qq|
- </div>
- |;
- } else {
- 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>|;
- # remove same level items
- map { shift @menuorder } grep /^$item/, @menuorder;
- &js_menu($menu, $item);
- } else {
- print qq|<div class="submenu"> |.
- $menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></div>|;
- }
- } else {
- $display = "display: none;" unless $item eq ' ';
- 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);
- print qq| </div> |;
- }
- }
- }
- print qq| </div> |;
- }
- sub menubar {
- if($form->{lynx}){
- $menu = new Menu "$menufile", "";
- # build menubar
- @menuorder = $menu->access_control(\%myconfig, "");
- @neworder = ();
- map { push @neworder, $_ unless ($_ =~ /--/) } @menuorder;
- @menuorder = @neworder;
- print "<p>";
- $form->{script} = "menu.pl";
- print "| ";
- foreach $item (@menuorder) {
- $label = $item;
- # remove target
- $menu->{$item}{target} = "";
- print $menu->menuitem(\%myconfig, \%$form, $item, "").$locale->text($label)."</a> | ";
- }
- } else {
- 1;
- }
- }
|