summaryrefslogtreecommitdiff
path: root/scripts/menu.pl
blob: af5a428aba4cd428e989a96db10b3871892b1011 (plain)
  1. #!/usr/bin/perl
  2. # This file is copyright (C) 2007the LedgerSMB core team and licensed under
  3. # the GNU General Public License. For more information please see the included
  4. # LICENSE and COPYRIGHT files
  5. package LedgerSMB::Scripts::menu;
  6. our $VERSION = '0.1';
  7. $menufile = "menu.ini";
  8. use LedgerSMB::DBObject::Menu;
  9. use LedgerSMB::Template;
  10. use strict;
  11. sub __default {
  12. my ($request) = @_;
  13. if ($request->{menubar}){
  14. # todo
  15. } else {
  16. expanding_menu($request);
  17. }
  18. }
  19. sub root_doc {
  20. my ($request) = @_;
  21. my $template;
  22. if (!$request->{menubar}){
  23. $request->{main} = "splash.html" if $request->{main} eq 'company_logo';
  24. $request->{main} = "am.pl?action=recurring_transactions"
  25. if $request->{main} eq 'recurring_transactions';
  26. $template = LedgerSMB::Template->new(
  27. user =>$request->{_user},
  28. locale => $request->{_locale},
  29. path => 'UI',
  30. template => 'frameset',
  31. format => 'HTML'
  32. );
  33. } else {
  34. # TODO: Create Lynx Initial Menu
  35. }
  36. $template->render($request);
  37. }
  38. sub expanding_menu {
  39. my ($request) = @_;
  40. if ($request->{'open'} !~ s/:$request->{id}:/:/){
  41. $request->{'open'} .= ":$request->{id}:";
  42. }
  43. # The above system can lead to extra colons.
  44. $request->{'open'} =~ s/:+/:/g;
  45. my $menu = LedgerSMB::DBObject::Menu->new({base => $request});
  46. $menu->generate();
  47. for my $item (@{$menu->{menu_items}}){
  48. if ($request->{'open'} =~ /:$item->{id}:/ ){
  49. $item->{'open'} = 'true';
  50. }
  51. }
  52. my $template = LedgerSMB::Template->new(
  53. user => $request->{_user},
  54. locale => $request->{_locale},
  55. path => 'UI',
  56. template => 'menu_expand',
  57. format => 'HTML',
  58. );
  59. $template->render($menu);
  60. }
  61. 1;