diff options
-rw-r--r-- | UI/menu_expand.html | 20 | ||||
-rw-r--r-- | scripts/menu.pl | 43 |
2 files changed, 47 insertions, 16 deletions
diff --git a/UI/menu_expand.html b/UI/menu_expand.html index daf31007..7a4ef447 100644 --- a/UI/menu_expand.html +++ b/UI/menu_expand.html @@ -48,16 +48,26 @@ ?>?login=<?lsmb login ?>&<?lsmb FOREACH arg IN item.args ?><?lsmb arg - ?>&<?lsmb END ?>" - target = "main_window" - onclick="return <?lsmb IF item.menu - ?>SwitchMenu('sub_<?lsmb item.id ?>')<?lsmb END ?>" + ?><?lsmb END + ?><?lsmb IF item.menu + ?>&id=<?lsmb item.id + ?>&open=<?lsmb open + ?><?lsmb END ?>" + <?lsmb IF item.module ?> + target = "main_window" + <?lsmb END ?> + <?lsmb IF item.menu ?> + onclick="return SwitchMenu('sub_<?lsmb item.id ?>')" + <?lsmb END ?> class = "<?lsmb IF item.module ?>Menu<?lsmb ELSE ?>Item<?lsmb END ?>" ><?lsmb text(item.label) ?></a> </div> <?lsmb IF item.menu ?> - <div id="sub_<?lsmb item.id ?>" class=submenu> + <div id="sub_<?lsmb item.id ?>" class=submenu + <?lsmb IF item.open ?> + style="display: block" + <?lsmb END ?>> <?lsmb END ?> <?lsmb old_level = item.level ?> <?lsmb END ?> 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}, |