X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=186e661511cb108499bd6480707799251fd88870;hb=3811978cfec7c0a6022219aa0c19b36dbd998458;hp=12a38c8196531c0e4d8bd24b70145829c0231c7b;hpb=3880d6570d3ee1d0f26e54887defcf49f359b9a9;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 12a38c819..186e66151 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -447,55 +447,33 @@ sub create_http_response { return $output; } -sub use_stylesheet { - my $self = shift; - - $self->{stylesheet} = [ $self->{stylesheet} ] unless ref $self->{stylesheet} eq 'ARRAY'; - $self->{stylesheet} = [ grep { -f } - map { m:^css/: ? $_ : "css/$_" } - grep { $_ } - (@{ $self->{stylesheet} }, @_) - ]; - - return @{ $self->{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 header { $::lxdebug->enter_sub; - # extra code is currently only used by menuv3 and menuv4 to set their css. - # it is strongly deprecated, and will be changed in a future version. my ($self, %params) = @_; my $db_charset = $::lx_office_conf{system}->{dbcharset} || Common::DEFAULT_CHARSET; my @header; + my $layout = $::request->{layout}; + $::lxdebug->leave_sub and return if !$ENV{HTTP_USER_AGENT} || $self->{header}++; - my $layout; - $layout = $self->layout unless $params{no_menu}; + # standard css for all + $layout->use_stylesheet("$_.css") for qw( + main menu tabcontent list_accounts jquery.autocomplete + jquery.multiselect2side frame_header/header + ui-lightness/jquery-ui-1.8.12.custom + js/jscalendar/calendar-win2k-1 + ); - my $css_path = $self->get_stylesheet_for_user; + $layout->use_javascript("$_.js") for qw( + jquery common jscalendar/calendar jscalendar/lang/calendar-de + jscalendar/calendar-setup part_selection jquery-ui jquery.cookie jqModal + switchmenuframe + ); $self->{favicon} ||= "favicon.ico"; - $self->{titlebar} = "$self->{title} - $self->{titlebar}" if $self->{title}; + $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title}; # build includes if ($self->{refresh_url} || $self->{refresh_time}) { @@ -504,25 +482,19 @@ sub header { push @header, ""; } - push @header, map { qq|| } $self->use_stylesheet; - - push @header, "" if $self->{landscape}; - push @header, "" if -f $self->{favicon}; - push @header, map { qq|| } - qw(jquery common jscalendar/calendar jscalendar/lang/calendar-de jscalendar/calendar-setup part_selection jquery-ui jqModal switchmenuframe); + push @header, map { qq|| } $layout->stylesheets; + push @header, " " if $self->{landscape}; + push @header, "" if -f $self->{favicon}; + push @header, map { qq|| } $layout->javascripts; push @header, $self->{javascript} if $self->{javascript}; - push @header, map { qq|| } - qw(main menu tabcontent list_accounts jquery.autocomplete jquery.multiselect2side frame_header/header ui-lightness/jquery-ui-1.8.12.custom); - push @header, map { qq|| } push @header, map { $_->show_javascript } @{ $self->{AJAX} || [] }; push @header, "" if $self->{fokus}; - push @header, sprintf "", - join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title}; my %doctypes = ( strict => qq||, transitional => qq||, frameset => qq||, + html5 => qq||, ); # output @@ -546,18 +518,34 @@ EOT ***********************************************/ - $params{extra_code} EOT - print $layout; + print $::request->{layout}->pre_content; + print $::request->{layout}->start_content; - print "
\n"; + $layout->header_done; $::lxdebug->leave_sub; } +sub footer { + return unless $::request->{layout}->need_footer; + + print $::request->{layout}->end_content; + print $::request->{layout}->post_content; + + if (my @inline_scripts = $::request->{layout}->javascripts_inline) { + print "\n"; + } + + print < + +EOL +} + sub ajax_response_header { $main::lxdebug->enter_sub();