X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLayout%2FJavascript.pm;h=85454c4ee658869f19ef7fdcfbf980e316ef045e;hb=c577d18a4c0b9527192e6bbd8b90c3259e485967;hp=e900012c0bbe5b476004af4d4195c090bfc8f385;hpb=46c987b8b139347af65a470ed377ed6cccca545c;p=kivitendo-erp.git diff --git a/SL/Layout/Javascript.pm b/SL/Layout/Javascript.pm index e900012c0..85454c4ee 100644 --- a/SL/Layout/Javascript.pm +++ b/SL/Layout/Javascript.pm @@ -3,27 +3,37 @@ package SL::Layout::Javascript; use strict; use parent qw(SL::Layout::Base); +use SL::Layout::None; +use SL::Layout::Top; +use SL::Layout::ActionBar; +use SL::Layout::Content; + use List::Util qw(max); +use List::MoreUtils qw(uniq); use URI; sub init_sub_layouts { + $_[0]->sub_layouts_by_name->{actionbar} = SL::Layout::ActionBar->new; [ SL::Layout::None->new, SL::Layout::Top->new, + SL::Layout::Content->new, ] } -sub use_javascript { - my $self = shift; - qw( - js/dhtmlsuite/menu-for-applications.js - ), - $self->SUPER::use_javascript(@_); +sub javascripts { + my ($self) = @_; + + return uniq grep { $_ } map { $self->_find_javascript($_) } + map({ $_->javascripts } $self->sub_layouts), + qw(dhtmlsuite/menu-for-applications.js), + $_[0]->sub_layouts_by_name->{actionbar}->javascripts, + $self->use_javascript; } sub javascripts_inline { $_[0]->SUPER::javascripts_inline, -<<'EOJS' +<<'EOJS', DHTMLSuite.createStandardObjects(); DHTMLSuite.configObj.setImagePath('image/dhtmlsuite/'); var menu_model = new DHTMLSuite.menuModel(); @@ -34,6 +44,7 @@ sub javascripts_inline { menu_bar.setTarget('main_menu_div'); menu_bar.init(); EOJS + $_[0]->sub_layouts_by_name->{actionbar}->javascripts_inline, } sub pre_content { @@ -41,27 +52,29 @@ sub pre_content { $_[0]->presenter->render("menu/menunew", force_ul_width => 1, menu => $_[0]->menu, - icon_path => sub { my $img = "image/icons/16x16/$_[0].png"; -f $img ? $img : () }, + icon_path => sub { my $simg = "image/icons/svg/$_[0].svg"; my $pimg="image/icons/16x16/$_[0].png"; -f $simg ? $simg : ( -f $pimg ? $pimg : ()) }, max_width => sub { 10 * max map { length $::locale->text($_->{name}) } @{ $_[0]{children} || [] } }, - ); -} - -sub start_content { - "
\n"; -} - -sub end_content { - "
\n"; + ) . + ($_[0]->sub_layouts_by_name->{actionbar}->pre_content // ''); } sub stylesheets { - $_[0]->add_stylesheets(qw( - dhtmlsuite/menu-item.css - dhtmlsuite/menu-bar.css - icons16.css - menu.css - )); - $_[0]->SUPER::stylesheets; + my ($self) = @_; + my $css_path = $self->get_stylesheet_for_user; + + return + uniq + grep { $_ } + map { $self->_find_stylesheet($_, $css_path) } + qw( + dhtmlsuite/menu-item.css + dhtmlsuite/menu-bar.css + icons16.css + menu.css + ), + ( map { $_->stylesheets } $_[0]->sub_layouts ), + $_[0]->sub_layouts_by_name->{actionbar}->stylesheets, + $_[0]->use_stylesheet; } 1;