From d91225ddb3e4e0e647e4a243e27429262542a78f Mon Sep 17 00:00:00 2001
From: Nick Clemens <nick@bywatersolutions.com>
Date: Thu, 2 Nov 2023 10:56:30 +0000
Subject: [PATCH] Bug 35181: Don't pass undef to header

It seems passing an undef value causes the headers to be malformed.

To test:
1 - Visit http://localhost:8081/cgi-bin/koha/svc/bib/303
2 - Note 'Invalid-metadata' at top of page, as well as other headers
3 - Apply patch, restart all
4 - Visit http://localhost:8081/cgi-bin/koha/svc/bib/303
5 - Page should now appear as xml
6 - Edit record 303, or any record with valid metadata in the advanced cataloging editor
7 - Confirm there is no error or alert
8 - Edit record 369 in the advanced cataloging editor
9 - Confirm there is an alert
---
 koha-tmpl/intranet-tmpl/lib/koha/cateditor/koha-backend.js | 2 +-
 svc/bib                                                    | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/lib/koha/cateditor/koha-backend.js b/koha-tmpl/intranet-tmpl/lib/koha/cateditor/koha-backend.js
index 3a73bc11312..5410f775633 100644
--- a/koha-tmpl/intranet-tmpl/lib/koha/cateditor/koha-backend.js
+++ b/koha-tmpl/intranet-tmpl/lib/koha/cateditor/koha-backend.js
@@ -108,7 +108,7 @@ define( [ '/cgi-bin/koha/svc/cataloguing/framework?frameworkcode=&callback=defin
                 '/cgi-bin/koha/svc/bib/'+ id
             ).done( function( metadata, status, xhr ) {
                 let encoding_issues = xhr.getResponseHeader('invalid-metadata');
-                if( encoding_issues ){
+                if( encoding_issues > 0 ){
                     humanMsg.displayAlert( _("Record had encoding issues, please switch to the basic editor to view details") );
                 }
                 $.get(
diff --git a/svc/bib b/svc/bib
index 0667c0de4ba..d265a55c0fa 100755
--- a/svc/bib
+++ b/svc/bib
@@ -69,7 +69,7 @@ sub fetch_bib {
     my $biblio = Koha::Biblios->find( $biblionumber );
     my $record;
     my $exception;
-    my $invalid_metadata;
+    my $invalid_metadata = 0;
     eval { $record = $biblio->metadata->record( { embed_items => scalar $query->param('items') } ) };
     if ($@) {
         $exception = $@;
@@ -79,6 +79,7 @@ sub fetch_bib {
     }
     if ( defined $record ) {
         print $query->header( -type => 'text/xml', -charset => 'utf-8', -invalid_metadata => $invalid_metadata );
+#        print $query->header( -type => 'text/xml', -charset => 'utf-8' );
         print $record->as_xml_record();
     } else {
         print $query->header( -type => 'text/xml', -status => '404 Not Found' );
-- 
2.30.2