diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-09-01 05:35:34 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2007-09-01 05:35:34 +0000 |
commit | 77f23e8cb7af1caaa1122e712d721133bc71bc4b (patch) | |
tree | e922968e9df07c6044f671833067e09940449500 /scripts | |
parent | 26ec8246f92e47cd62520b0cd83819c077713f32 (diff) |
Expanding menu now works with or without Javascript.
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1481 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/menu.pl | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/scripts/menu.pl b/scripts/menu.pl index 51ec1551..af5a428a 100644 --- a/scripts/menu.pl +++ b/scripts/menu.pl @@ -13,6 +13,12 @@ use LedgerSMB::Template; use strict; sub __default { + my ($request) = @_; + if ($request->{menubar}){ + # todo + } else { + expanding_menu($request); + } } sub root_doc { @@ -27,18 +33,33 @@ sub root_doc { locale => $request->{_locale}, path => 'UI', template => 'frameset', - format => 'HTML' - ); - } else { - # TODO: Create Lynx Initial Menu - } - $template->render($request); -} + format => 'HTML' + ); + } else { + # TODO: Create Lynx Initial Menu + } + $template->render($request); + } + + sub expanding_menu { + my ($request) = @_; + if ($request->{'open'} !~ s/:$request->{id}:/:/){ + $request->{'open'} .= ":$request->{id}:"; + } + + # The above system can lead to extra colons. + $request->{'open'} =~ s/:+/:/g; + + + + my $menu = LedgerSMB::DBObject::Menu->new({base => $request}); + $menu->generate(); + for my $item (@{$menu->{menu_items}}){ + if ($request->{'open'} =~ /:$item->{id}:/ ){ + $item->{'open'} = 'true'; + } + } -sub expanding_menu { - my ($request) = @_; - my $menu = LedgerSMB::DBObject::Menu->new({base => $request}); - $menu->generate(); my $template = LedgerSMB::Template->new( user => $request->{_user}, locale => $request->{_locale}, |