summaryrefslogtreecommitdiff
path: root/scripts/menu.pl
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-09-01 06:16:04 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-09-01 06:16:04 +0000
commitde5795278d3f8a52112d0f42bcf7716a76ff11ac (patch)
treefa86e66fcceb146ce482464b6767a862c3aa2a00 /scripts/menu.pl
parent77f23e8cb7af1caaa1122e712d721133bc71bc4b (diff)
More menu fixes
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1482 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'scripts/menu.pl')
-rw-r--r--scripts/menu.pl76
1 files changed, 47 insertions, 29 deletions
diff --git a/scripts/menu.pl b/scripts/menu.pl
index af5a428a..ee88f08e 100644
--- a/scripts/menu.pl
+++ b/scripts/menu.pl
@@ -15,7 +15,7 @@ use strict;
sub __default {
my ($request) = @_;
if ($request->{menubar}){
- # todo
+ drilldown_menu($request);
} else {
expanding_menu($request);
}
@@ -29,46 +29,64 @@ sub root_doc {
$request->{main} = "am.pl?action=recurring_transactions"
if $request->{main} eq 'recurring_transactions';
$template = LedgerSMB::Template->new(
- user =>$request->{_user},
- locale => $request->{_locale},
- path => 'UI',
- template => 'frameset',
- format => 'HTML'
- );
- } else {
- # TODO: Create Lynx Initial Menu
- }
- $template->render($request);
- }
+ user =>$request->{_user},
+ locale => $request->{_locale},
+ path => 'UI',
+ template => 'frameset',
+ format => 'HTML'
+ );
+ } else {
+ drilldown_menu($request);
+ return;
+ }
+ $template->render($request);
+}
- sub expanding_menu {
- my ($request) = @_;
- if ($request->{'open'} !~ s/:$request->{id}:/:/){
- $request->{'open'} .= ":$request->{id}:";
- }
+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;
+ # 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';
- }
- }
+ my $menu = LedgerSMB::DBObject::Menu->new({base => $request});
+ $menu->generate();
+ for my $item (@{$menu->{menu_items}}){
+ if ($request->{'open'} =~ /:$item->{id}:/ ){
+ $item->{'open'} = 'true';
+ }
+ }
my $template = LedgerSMB::Template->new(
user => $request->{_user},
locale => $request->{_locale},
- path => 'UI',
- template => 'menu_expand',
+ path => 'UI/menu',
+ template => 'expanding',
format => 'HTML',
);
$template->render($menu);
}
+sub drilldown_menu {
+ my ($request) = @_;
+ my $menu = LedgerSMB::DBObject::Menu->new({base => $request});
+
+ $menu->{parent_id} ||= 0;
+
+ print STDERR "Testing";
+ $menu->generate_section;
+ my $template = LedgerSMB::Template->new(
+ user => $request->{_user},
+ locale => $request->{_locale},
+ path => 'UI/menu',
+ template => 'drilldown',
+ format => 'HTML',
+ );
+ $template->render($menu);
+}
1;