PriceRule: Korrektes Matching von Nulls
[kivitendo-erp.git] / SL / Layout / Javascript.pm
index 28731ec..5ddb4d7 100644 (file)
@@ -6,19 +6,23 @@ use parent qw(SL::Layout::Base);
 use List::Util qw(max);
 use URI;
 
-sub new {
-  my ($class, @slurp) = @_;
-
-  my $self = $class->SUPER::new(@slurp);
-
-  $self->add_sub_layouts([
+sub init_sub_layouts {
+  [
     SL::Layout::None->new,
-  ]);
+    SL::Layout::Top->new,
+  ]
+}
 
-  $self;
+sub use_javascript {
+  my $self = shift;
+  qw(
+    js/dhtmlsuite/menu-for-applications.js
+  ),
+  $self->SUPER::use_javascript(@_);
 }
 
 sub pre_content {
+  $_[0]->SUPER::pre_content .
   &display
 }
 
@@ -34,50 +38,22 @@ sub stylesheets {
   $_[0]->add_stylesheets(qw(
     dhtmlsuite/menu-item.css
     dhtmlsuite/menu-bar.css
+    icons16.css
+    frame_header/header.css
+    menu.css
   ));
   $_[0]->SUPER::stylesheets;
 }
 
 sub display {
   my ($self) = @_;
-  my $form     = $main::form;
-
-  my $callback            = $form->unescape($form->{callback});
-  $callback               = URI->new($callback)->rel($callback) if $callback;
-  $callback               = "login.pl?action=company_logo"      if $callback =~ /^(\.\/)?$/;
 
-  $self->render("menu/menunew", { partial => 1, no_output => 1 },
+  $self->presenter->render("menu/menunew",
     force_ul_width  => 1,
-    date            => $self->clock_line,
     menu_items      => $self->acc_menu,
-    callback        => $callback,
   );
 }
 
-sub clock_line {
-  my $form     = $main::form;
-
-  my ($Sekunden, $Minuten,   $Stunden,   $Monatstag, $Monat,
-      $Jahr,     $Wochentag, $Jahrestag, $Sommerzeit)
-    = localtime(time);
-  $Monat     += 1;
-  $Jahrestag += 1;
-  $Monat     = $Monat < 10     ? $Monat     = "0" . $Monat     : $Monat;
-  $Monatstag = $Monatstag < 10 ? $Monatstag = "0" . $Monatstag : $Monatstag;
-  $Jahr += 1900;
-  my @Wochentage = ("Sonntag",    "Montag",  "Dienstag", "Mittwoch",
-                    "Donnerstag", "Freitag", "Samstag");
-  my @Monatsnamen = ("",       "Januar",    "Februar", "M&auml;rz",
-                     "April",  "Mai",       "Juni",    "Juli",
-                     "August", "September", "Oktober", "November",
-                     "Dezember");
-  return
-      $Wochentage[$Wochentag] . ", der "
-    . $Monatstag . "."
-    . $Monat . "."
-    . $Jahr . " - ";
-}
-
 sub acc_menu {
   my ($self) = @_;
 
@@ -109,10 +85,13 @@ sub create_menu {
   my $form     = $main::form;
   my %myconfig = %main::myconfig;
 
+  $depth ||= 0;
+
   die if ($depth * 1 > 5);
 
   my @menuorder  = $menu->access_control(\%myconfig, $parent);
   $parent       .= "--" if ($parent);
+  $parent      ||= '';
 
   foreach my $name (@menuorder) {
     substr($name, 0, length($parent), "");
@@ -122,7 +101,7 @@ sub create_menu {
     my $item      = { 'title' => $::locale->text($name) };
     push @{ $all_items }, $item;
 
-    if ($menu_item->{submenu} || !defined($menu_item->{module}) || ($menu_item->{module} eq "menu.pl")) {
+    if ($menu_item->{submenu} || (!defined($menu_item->{module}) && !defined($menu_item->{href}))) {
       $item->{subitems} = [];
       $item->{image} = _icon_path("$name.png");
       $self->create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1);