From 0113422b740289ce16bf2e602d6261c8f76a31a9 Mon Sep 17 00:00:00 2001 From: Martin Renvoize <martin.renvoize@ptfs-europe.com> Date: Wed, 8 Nov 2023 09:59:30 +0000 Subject: [PATCH] Bug 35285: Add non-html template support to html_content wrapping This patch adds support for messages generated using non-html formatted notice templates to the html_content method of Koha::Notice::Message. We continue to wrap content for html generated messages with the appropriate headers, css and title. For non-html generated content we wrap in the <div style="white-space: pre-wrap"> block to maintain text formatting as defined in the original plaintext template. Test Follow the test plan for bug 30287, nothing should outwardly change. --- Koha/Notice/Message.pm | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/Koha/Notice/Message.pm b/Koha/Notice/Message.pm index a44107a59c2..70b9e901c3b 100644 --- a/Koha/Notice/Message.pm +++ b/Koha/Notice/Message.pm @@ -31,6 +31,20 @@ Koha::Notice::Message - Koha notice message Object class, related to the message =cut +=head3 is_html + + my $bool = $message->is_html; + +Returns a boolean denoting whether the message was generated using a preformatted html template. + +=cut + +sub is_html { + my ($self) = @_; + my $content_type = $self->content_type // ''; + return $content_type =~ m/html/io; +} + =head3 html_content my $wrapped_content = $message->html_content; @@ -45,10 +59,14 @@ sub html_content { my $title = $self->subject; my $content = $self->content; - my $css = C4::Context->preference("NoticeCSS") || ''; - $css = qq{<link rel="stylesheet" type="text/css" href="$css">} if $css; - return <<EOS; + my $wrapped; + if ( $self->is_html ) { + + my $css = C4::Context->preference("NoticeCSS") || ''; + $css = qq{<link rel="stylesheet" type="text/css" href="$css">} if $css; + + $wrapped = <<EOS; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> @@ -62,7 +80,12 @@ sub html_content { </body> </html> EOS - + } else { + $wrapped = "<div style=\"white-space: pre-wrap;\">\n"; + $wrapped .= $content . "\n"; + $wrapped .= "</div>\n"; + } + return $wrapped; } =head3 type -- 2.41.0