1 package SL::Layout::Javascript;
 
   4 use parent qw(SL::Layout::Base);
 
   6 use List::Util qw(max);
 
  10   my ($class, @slurp) = @_;
 
  12   my $self = $class->SUPER::new(@slurp);
 
  14   $self->add_sub_layouts([
 
  15     SL::Layout::None->new,
 
  26   "<div id='content'>\n";
 
  34   $_[0]->add_stylesheets(qw(
 
  35     dhtmlsuite/menu-item.css
 
  36     dhtmlsuite/menu-bar.css
 
  38   $_[0]->SUPER::stylesheets;
 
  43   my $form     = $main::form;
 
  45   my $callback            = $form->unescape($form->{callback});
 
  46   $callback               = URI->new($callback)->rel($callback) if $callback;
 
  47   $callback               = "login.pl?action=company_logo"      if $callback =~ /^(\.\/)?$/;
 
  49   $self->render("menu/menunew", { partial => 1, no_output => 1 },
 
  51     date            => $self->clock_line,
 
  52     menu_items      => $self->acc_menu,
 
  53     callback        => $callback,
 
  58   my $form     = $main::form;
 
  60   my ($Sekunden, $Minuten,   $Stunden,   $Monatstag, $Monat,
 
  61       $Jahr,     $Wochentag, $Jahrestag, $Sommerzeit)
 
  65   $Monat     = $Monat < 10     ? $Monat     = "0" . $Monat     : $Monat;
 
  66   $Monatstag = $Monatstag < 10 ? $Monatstag = "0" . $Monatstag : $Monatstag;
 
  68   my @Wochentage = ("Sonntag",    "Montag",  "Dienstag", "Mittwoch",
 
  69                     "Donnerstag", "Freitag", "Samstag");
 
  70   my @Monatsnamen = ("",       "Januar",    "Februar", "März",
 
  71                      "April",  "Mai",       "Juni",    "Juli",
 
  72                      "August", "September", "Oktober", "November",
 
  75       $Wochentage[$Wochentag] . ", der "
 
  84   my $menu      = $self->menu;
 
  87   $self->create_menu($menu, $all_items);
 
  89   my $item = { 'subitems' => $all_items };
 
  90   calculate_width($item);
 
  98   $item->{max_width} = max map { length $_->{title} } @{ $item->{subitems} };
 
 100   foreach my $subitem (@{ $item->{subitems} }) {
 
 101     calculate_width($subitem) if ($subitem->{subitems});
 
 106   my ($self, $menu, $all_items, $parent, $depth) = @_;
 
 109   my $form     = $main::form;
 
 110   my %myconfig = %main::myconfig;
 
 112   die if ($depth * 1 > 5);
 
 114   my @menuorder  = $menu->access_control(\%myconfig, $parent);
 
 115   $parent       .= "--" if ($parent);
 
 117   foreach my $name (@menuorder) {
 
 118     substr($name, 0, length($parent), "");
 
 119     next if (($name eq "") || ($name =~ /--/));
 
 121     my $menu_item = $menu->{"${parent}${name}"};
 
 122     my $item      = { 'title' => $::locale->text($name) };
 
 123     push @{ $all_items }, $item;
 
 125     if ($menu_item->{submenu} || !defined($menu_item->{module}) || ($menu_item->{module} eq "menu.pl")) {
 
 126       $item->{subitems} = [];
 
 127       $item->{image} = _icon_path("$name.png");
 
 128       $self->create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1);
 
 131       $item->{image} = _icon_path("${parent}${name}.png");
 
 132       $menu->menuitem_new("${parent}${name}", $item);
 
 138   my ($label, $size) = @_;
 
 142   my $img = "image/icons/${size}x${size}/$label";
 
 144   return unless -f $img;