X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/fb005f3fd6f8684441c12d821c8d30a8720dcf16..b6fd15a8dc44f9b09d5a2bce766cda14b87c6e13:/SL/Controller/Layout/Base.pm diff --git a/SL/Controller/Layout/Base.pm b/SL/Controller/Layout/Base.pm deleted file mode 100644 index ed25f1b78..000000000 --- a/SL/Controller/Layout/Base.pm +++ /dev/null @@ -1,140 +0,0 @@ -package SL::Controller::Layout::Base; - -use strict; -use parent qw(SL::Controller::Base); - -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' }, - ], -); - -use SL::Menu; - -my %menu_cache; - -sub new { - my ($class, @slurp) = @_; - - my $self = $class->SUPER::new(@slurp); -} - -sub init_menu { - Menu->new('menu.ini'); -} - -########################################## -# inheritable/overridable -########################################## - -sub pre_content { - join '', map { $_->pre_content } $_[0]->sub_layouts; -} - -sub start_content { - join '', map { $_->start_content } $_[0]->sub_layouts; -} - -sub end_content { - join '', map { $_->end_content } $_[0]->sub_layouts; -} - -sub post_content { - join '', map { $_->post_content } $_[0]->sub_layouts; -} - -sub stylesheets_inline { - ( map { $_->stylesheets_inline } $_[0]->sub_layouts ), - @{ $_[0]->{stylesheets_inline} || [] }; -} - -sub javascripts_inline { - ( map { $_->javascripts_inline } $_[0]->sub_layouts ), - @{ $_[0]->{javascripts_inline} || [] }; -} - - -######################################### -# Interface -######################################## - -sub use_stylesheet { - my $self = shift; - push @{ $self->{stylesheets} ||= [] }, @_ if @_; - @{ $self->{stylesheets} ||= [] }; -} - -sub stylesheets { - my ($self) = @_; - my $css_path = $self->get_stylesheet_for_user; - - return grep { $_ } map { $self->_find_stylesheet($_, $css_path) } - $self->use_stylesheet, map { $_->stylesheets } $self->sub_layouts; -} - -sub _find_stylesheet { - my ($self, $stylesheet, $css_path) = @_; - - return "$css_path/$stylesheet" if -f "$css_path/$stylesheet"; - return "css/$stylesheet" if -f "css/$stylesheet"; - return $stylesheet if -f $stylesheet; -} - -sub get_stylesheet_for_user { - my $css_path = 'css'; - if (my $user_style = $::myconfig{stylesheet}) { - $user_style =~ s/\.css$//; # nuke trailing .css, this is a remnand of pre 2.7.0 stylesheet handling - if (-d "$css_path/$user_style" && - -f "$css_path/$user_style/main.css") { - $css_path = "$css_path/$user_style"; - } else { - $css_path = "$css_path/lx-office-erp"; - } - } else { - $css_path = "$css_path/lx-office-erp"; - } - $::myconfig{css_path} = $css_path; # needed for menunew, FIXME: don't do this here - - return $css_path; -} - - -sub use_javascript { - my $self = shift; - push @{ $self->{javascripts} ||= [] }, @_ if @_; - @{ $self->{javascripts} ||= [] }; -} - -sub javascripts { - my ($self) = @_; - - return map { $self->_find_javascript($_) } - $self->use_javascript, map { $_->javascripts } $self->sub_layouts; -} - -sub _find_javascript { - my ($self, $javascript) = @_; - - return "js/$javascript" if -f "js/$javascript"; - return $javascript if -f $javascript; -} - - -############################################ -# track state of form header -############################################ - -sub header_done { - $_[0]{_header_done} = 1; -} - -sub need_footer { - $_[0]{_header_done}; -} - -1;