From dc5031633d8a37186823715ebe58aaf5d3562416 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Mon, 13 Nov 2023 15:31:53 +0000 Subject: [PATCH] Bug 35267: Apply preferences to preview and mailing This patch applies the new style preferences to the preview display and email sending code. Sponsored-by: PTFS Europe --- C4/Letters.pm | 34 ++++++++++---- Koha/Notice/Message.pm | 44 ++++++++++++++++--- circ/transfer-slip.pl | 11 +++-- .../prog/en/modules/circ/printslip.tt | 4 +- .../prog/en/modules/members/printnotice.tt | 6 +-- members/printslip.pl | 3 +- opac/sco/printslip.pl | 2 +- preservation/print_slip.pl | 2 +- 8 files changed, 74 insertions(+), 32 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index 0e17d4c23dd..2ffc8921900 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -342,7 +342,7 @@ sub SendAlerts { ); if ( $letter->{is_html} ) { - $mail->html_body( _wrap_html( $letter->{content}, "" . $letter->{title} ) ); + $mail->html_body( _wrap_html( $letter->{content}, "" . $letter->{title}, 'email' ) ); } else { $mail->text_body( $letter->{content} ); } @@ -514,7 +514,7 @@ sub SendAlerts { ); if ( $letter->{is_html} ) { - $mail->html_body( _wrap_html( $letter->{content}, "" . $letter->{title} ) ); + $mail->html_body( _wrap_html( $letter->{content}, "" . $letter->{title}, 'email' ) ); } else { $mail->text_body( "" . $letter->{content} ); } @@ -1324,7 +1324,7 @@ sub _add_attachments { my $message = Koha::Email->new; if ( $letter->{is_html} ) { - $message->html_body( _wrap_html( $letter->{content}, $letter->{title} ) ); + $message->html_body( _wrap_html( $letter->{content}, $letter->{title}, 'email' ) ); } else { $message->text_body( $letter->{content} ); } @@ -1553,7 +1553,7 @@ sub _send_message_by_email { } else { $email = Koha::Email->create($params); if ($is_html) { - $email->html_body( _wrap_html( $content, $subject ) ); + $email->html_body( _wrap_html( $content, $subject, 'email' ) ); } else { $email->text_body($content); } @@ -1635,10 +1635,26 @@ sub _send_message_by_email { } sub _wrap_html { - my ( $content, $title ) = @_; - - my $css = C4::Context->preference("NoticeCSS") || ''; - $css = qq{} if $css; + my ( $content, $title, $type ) = @_; + my $stylesheets = ''; + + my $all_stylesheets = C4::Context->preference("AllNoticeStylesheet") || ''; + $stylesheets .= qq{} if $all_stylesheets; + my $all_style_pref = C4::Context->preference("AllNoticeCSS"); + $stylesheets .= qq{} if $all_style_pref; + if ( $type eq 'email' ) { + my $email_stylesheet = C4::Context->preference("EmailNoticeStylesheet") || ''; + $stylesheets .= qq{} if $email_stylesheet; + my $email_style_pref = C4::Context->preference("EmailNoticeCSS"); + $stylesheets .= qq{} if $email_style_pref; + } + if ( $type eq 'print' ) { + my $print_stylesheet = C4::Context->preference("PrintNoticeStylesheet") || ''; + $stylesheets .= qq{} if $print_stylesheet; + my $print_style_pref = C4::Context->preference("PrintNoticeCSS"); + $stylesheets .= qq{} if $print_style_pref; + } + $stylesheets =~ s/\n+\z//; return < @@ -1646,7 +1662,7 @@ sub _wrap_html { $title -$css +$stylesheets $content diff --git a/Koha/Notice/Message.pm b/Koha/Notice/Message.pm index 56798071063..ead471c231e 100644 --- a/Koha/Notice/Message.pm +++ b/Koha/Notice/Message.pm @@ -58,15 +58,12 @@ with HTML headers and CSS includes for HTML formatted notices. sub html_content { my ($self) = @_; - my $title = $self->subject; - my $content = $self->content; + my $title = $self->subject; + my $content = $self->content; + my $stylesheets = $self->stylesheets; my $wrapped; if ( $self->is_html ) { - - my $css = C4::Context->preference("NoticeCSS") || ''; - $css = qq{} if $css; - $wrapped = < @@ -74,7 +71,7 @@ sub html_content { $title - $css + $stylesheets $content @@ -124,6 +121,39 @@ sub restrict_patron_when_notice_fails { return $self; } +=head3 stylesheets + + my $stylesheets = $message->stylesheets; + +Returns a string of all the stylesheet links for the message + +=cut + +sub stylesheets { + my ($self) = @_; + my $stylesheets = ''; + + my $all_stylesheets = C4::Context->preference("AllNoticeStylesheet") || ''; + $stylesheets .= qq{\n} if $all_stylesheets; + my $all_style_pref = C4::Context->preference("AllNoticeCSS"); + $stylesheets .= qq{} if $all_style_pref; + if ( $self->message_transport_type eq 'email' ) { + my $email_stylesheet = C4::Context->preference("EmailNoticeStylesheet") || ''; + $stylesheets .= qq{\n} if $email_stylesheet; + my $email_style_pref = C4::Context->preference("EmailNoticeCSS"); + $stylesheets .= qq{} if $email_style_pref; + } + if ( $self->message_transport_type eq 'print' ) { + my $print_stylesheet = C4::Context->preference("PrintNoticeStylesheet") || ''; + $stylesheets .= qq{\n} if $print_stylesheet; + my $print_style_pref = C4::Context->preference("PrintNoticeCSS"); + $stylesheets .= qq{\n} if $print_style_pref; + } + $stylesheets =~ s/\n+\z//; + + return $stylesheets; +} + =head3 type =cut diff --git a/circ/transfer-slip.pl b/circ/transfer-slip.pl index ce9619499d4..ae28d823694 100755 --- a/circ/transfer-slip.pl +++ b/circ/transfer-slip.pl @@ -53,12 +53,11 @@ if ( my $letter = TransferSlip( $session->param('branch') || $userenv->{branch}, $slip = "Item not found"; } $template->param( - slip => $slip, - plain => !$is_html, - caller => 'cud-transfer', - stylesheet => C4::Context->preference("SlipCSS"), - style => $style, - id => 'transfer_slip', + slip => $slip, + plain => !$is_html, + caller => 'cud-transfer', + style => $style, + id => 'transfer_slip', ); output_html_with_http_headers $input, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt index a4d3d52f737..945ab6d7aae 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt @@ -32,8 +32,8 @@ [% Asset.css("css/print.css") | $raw %] -[% IF ( Koha.Preference('SlipCSS') ) %] - +[% IF ( Koha.Preference('PrintSlipStylesheet') ) %] + [% END %] [% FOR slip IN slips %] [% IF slip.style %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt index 95bb4634514..dd031b34fb2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt @@ -15,11 +15,7 @@ -[% Asset.css("css/print.css") | $raw %] -[% IF ( Koha.Preference('SlipCSS') ) %] - -[% END %] - +[% Asset.css("css/print.css") | $raw %] [% IF style %][% END %] diff --git a/members/printslip.pl b/members/printslip.pl index 4b612378a60..c801fe713a1 100755 --- a/members/printslip.pl +++ b/members/printslip.pl @@ -117,10 +117,11 @@ $template->param( plain => !$is_html, borrowernumber => $borrowernumber, caller => 'members', - stylesheet => C4::Context->preference("SlipCSS"), error => $error, style => $letter->{style}, id => $print, + stylesheet => C4::Context->preference("PrintSlipStylesheet"), + error => $error, ); $template->param( IntranetSlipPrinterJS => C4::Context->preference('IntranetSlipPrinterJS') ); diff --git a/opac/sco/printslip.pl b/opac/sco/printslip.pl index a43d9a29815..ec21c4765db 100755 --- a/opac/sco/printslip.pl +++ b/opac/sco/printslip.pl @@ -82,7 +82,7 @@ if ( my $letter = $template->{VARS}->{slip} = $slip; $template->{VARS}->{plain} = !$is_html; $template->{VARS}->{borrowernumber} = $patron->borrowernumber; -$template->{VARS}->{stylesheet} = C4::Context->preference("SlipCSS"); +$template->{VARS}->{stylesheet} = C4::Context->preference("PrintSlipStylesheet"); $template->{VARS}->{error} = $error; output_html_with_http_headers $input, $cookie, $template->output; diff --git a/preservation/print_slip.pl b/preservation/print_slip.pl index 5ad589d3b70..4859b6c12f7 100755 --- a/preservation/print_slip.pl +++ b/preservation/print_slip.pl @@ -64,7 +64,7 @@ for my $train_item_id (@train_item_ids) { $template->param( slips => \@slips, caller => 'preservation', - stylesheet => C4::Context->preference("SlipCSS"), + stylesheet => C4::Context->preference("PrintSlipStylesheet"), ); $template->param( IntranetSlipPrinterJS => C4::Context->preference('IntranetSlipPrinterJS') ); -- 2.48.1