X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLayout%2FBase.pm;h=cd5ace9391fc43637f8b6c121da187643954e115;hb=67ca0f93194b1d0c8f0a3d090c6c1f604670837d;hp=56d5b8e2fc94923c666851fac602db63d504998a;hpb=b6fd15a8dc44f9b09d5a2bce766cda14b87c6e13;p=kivitendo-erp.git diff --git a/SL/Layout/Base.pm b/SL/Layout/Base.pm index 56d5b8e2f..cd5ace939 100644 --- a/SL/Layout/Base.pm +++ b/SL/Layout/Base.pm @@ -3,14 +3,16 @@ package SL::Layout::Base; use strict; use parent qw(SL::Controller::Base); +use List::MoreUtils qw(uniq); + use Rose::Object::MakeMethods::Generic ( 'scalar --get_set_init' => qw(menu), 'scalar' => qw(focus), 'array' => [ 'add_stylesheets_inline' => { interface => 'add', hash_key => 'stylesheets_inline' }, 'add_javascripts_inline' => { interface => 'add', hash_key => 'javascripts_inline' }, - 'sub_layouts', - 'add_sub_layouts' => { interface => 'add', hash_key => 'sub_layouts' }, + 'sub_layouts', => { interface => 'get_set_init' }, + 'add_sub_layouts' => { interface => 'add', hash_key => 'sub_layouts' }, ], ); @@ -49,20 +51,26 @@ sub post_content { } sub stylesheets_inline { - ( map { $_->stylesheets_inline } $_[0]->sub_layouts ), + uniq ( map { $_->stylesheets_inline } $_[0]->sub_layouts ), @{ $_[0]->{stylesheets_inline} || [] }; } sub javascripts_inline { - ( map { $_->javascripts_inline } $_[0]->sub_layouts ), + uniq ( map { $_->javascripts_inline } $_[0]->sub_layouts ), @{ $_[0]->{javascripts_inline} || [] }; } +sub init_sub_layouts { [] } + ######################################### # Interface ######################################## +sub add_stylesheets { + &use_stylesheet; +} + sub use_stylesheet { my $self = shift; push @{ $self->{stylesheets} ||= [] }, @_ if @_; @@ -73,7 +81,7 @@ sub stylesheets { my ($self) = @_; my $css_path = $self->get_stylesheet_for_user; - return grep { $_ } map { $self->_find_stylesheet($_, $css_path) } + return uniq grep { $_ } map { $self->_find_stylesheet($_, $css_path) } $self->use_stylesheet, map { $_->stylesheets } $self->sub_layouts; } @@ -93,16 +101,19 @@ sub get_stylesheet_for_user { -f "$css_path/$user_style/main.css") { $css_path = "$css_path/$user_style"; } else { - $css_path = "$css_path/lx-office-erp"; + $css_path = "$css_path/kivitendo"; } } else { - $css_path = "$css_path/lx-office-erp"; + $css_path = "$css_path/kivitendo"; } $::myconfig{css_path} = $css_path; # needed for menunew, FIXME: don't do this here return $css_path; } +sub add_javascripts { + &use_javascript +} sub use_javascript { my $self = shift; @@ -113,8 +124,8 @@ sub use_javascript { sub javascripts { my ($self) = @_; - return map { $self->_find_javascript($_) } - $self->use_javascript, map { $_->javascripts } $self->sub_layouts; + return uniq map { $self->_find_javascript($_) } + map({ $_->javascripts } $self->sub_layouts), $self->use_javascript; } sub _find_javascript {