Bug 14407: Follow up to add test case and clean noise
[srvgit] / about.pl
index 308737d..b5edf56 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -32,6 +32,7 @@ use XML::Simple;
 use Config;
 use Search::Elasticsearch;
 use Try::Tiny;
+use YAML;
 
 use C4::Output;
 use C4::Auth;
@@ -176,58 +177,16 @@ my @xml_config_warnings;
 
 my $context = new C4::Context;
 
-if ( ! defined C4::Context->config('zebra_bib_index_mode') ) {
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_warn'
-    };
-    if ($context->{'server'}->{'biblioserver'}->{'config'} !~ /zebra-biblios-dom.cfg/) {
-        push @xml_config_warnings, {
-            error => 'zebra_bib_mode_seems_grs1'
-        };
-    }
-    else {
-        push @xml_config_warnings, {
-            error => 'zebra_bib_mode_seems_dom'
-        };
-    }
-} else {
-    push @xml_config_warnings, { error => 'zebra_bib_grs_warn' }
-        if C4::Context->config('zebra_bib_index_mode') eq 'grs1';
-}
-
-if ( (C4::Context->config('zebra_bib_index_mode') eq 'dom') &&
-     ($context->{'server'}->{'biblioserver'}->{'config'} !~ /zebra-biblios-dom.cfg/) ) {
-
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_mismatch_warn'
-    };
-}
-
-if ( (C4::Context->config('zebra_bib_index_mode') eq 'grs1') &&
-     ($context->{'server'}->{'biblioserver'}->{'config'} =~ /zebra-biblios-dom.cfg/) ) {
-
-    push @xml_config_warnings, {
-        error => 'zebra_bib_index_mode_mismatch_warn'
-    };
+if (    C4::Context->config('zebra_bib_index_mode')
+    and C4::Context->config('zebra_bib_index_mode') eq 'grs1' )
+{
+    push @xml_config_warnings, { error => 'zebra_bib_index_mode_is_grs1' };
 }
 
-if ( ! defined C4::Context->config('zebra_auth_index_mode') ) {
-    push @xml_config_warnings, {
-        error => 'zebra_auth_index_mode_warn'
-    };
-    if ($context->{'server'}->{'authorityserver'}->{'config'} !~ /zebra-authorities-dom.cfg/) {
-        push @xml_config_warnings, {
-            error => 'zebra_auth_mode_seems_grs1'
-        };
-    }
-    else {
-        push @xml_config_warnings, {
-            error => 'zebra_auth_mode_seems_dom'
-        };
-    }
-} else {
-    push @xml_config_warnings, { error => 'zebra_auth_grs_warn' }
-        if C4::Context->config('zebra_auth_index_mode') eq 'grs1';
+if (    C4::Context->config('zebra_auth_index_mode')
+    and C4::Context->config('zebra_auth_index_mode') eq 'grs1' )
+{
+    push @xml_config_warnings, { error => 'zebra_auth_index_mode_is_grs1' };
 }
 
 if ( (C4::Context->config('zebra_auth_index_mode') eq 'dom') && ($context->{'server'}->{'authorityserver'}->{'config'} !~ /zebra-authorities-dom.cfg/) ) {
@@ -236,12 +195,6 @@ if ( (C4::Context->config('zebra_auth_index_mode') eq 'dom') && ($context->{'ser
     };
 }
 
-if ( (C4::Context->config('zebra_auth_index_mode') eq 'grs1') && ($context->{'server'}->{'authorityserver'}->{'config'} =~ /zebra-authorities-dom.cfg/) ) {
-    push @xml_config_warnings, {
-        error => 'zebra_auth_index_mode_mismatch_warn'
-    };
-}
-
 if ( ! defined C4::Context->config('log4perl_conf') ) {
     push @xml_config_warnings, {
         error => 'log4perl_entry_missing'
@@ -261,10 +214,11 @@ if ( ! defined C4::Context->config('upload_path') ) {
     }
 }
 
-if ( ! defined C4::Context->config('tmp_path') ) {
+if ( ! C4::Context->config('tmp_path') ) {
+    my $temporary_directory = C4::Context::temporary_directory;
     push @xml_config_warnings, {
-        error             => 'tmp_path_entry_missing',
-        effective_tmp_dir => File::Spec->tmpdir
+        error             => 'tmp_path_missing',
+        effective_tmp_dir => $temporary_directory,
     }
 }
 
@@ -300,14 +254,6 @@ if ( C4::Context->preference( 'UseQueryParser' ) ) {
 # Test Zebra facets configuration
 if ( !defined C4::Context->config('use_zebra_facets') ) {
     push @xml_config_warnings, { error => 'use_zebra_facets_entry_missing' };
-} else {
-    if ( C4::Context->config('use_zebra_facets') &&
-         C4::Context->config('zebra_bib_index_mode') ) {
-        # use_zebra_facets works with DOM
-        push @xml_config_warnings, {
-            error => 'use_zebra_facets_needs_dom'
-        } if C4::Context->config('zebra_bib_index_mode') ne 'dom' ;
-    }
 }
 
 # ILL module checks
@@ -337,6 +283,13 @@ if ( C4::Context->preference('ILLModule') ) {
         $warnILLConfiguration = 1;
     }
 
+
+    if ( !$ill_config_from_file->{branch} ) {
+        # branch not defined
+        $template->param( ill_branch_not_defined => 1 );
+        $warnILLConfiguration = 1;
+    }
+
     $template->param( warnILLConfiguration => $warnILLConfiguration );
 }
 
@@ -433,6 +386,31 @@ if (  C4::Context->preference('WebBasedSelfCheck')
     );
 }
 
+# Test YAML system preferences
+# FIXME: This is list of current YAML formatted prefs, should by type of preference
+my @yaml_prefs = (
+    "UpdateNotForLoanStatusOnCheckin",
+    "OpacHiddenItems",
+    "BibtexExportAdditionalFields",
+    "RisExportAdditionalFields",
+    "UpdateItemWhenLostFromHoldList",
+    "MarcFieldsToOrder",
+    "MarcItemFieldsToOrder",
+    "UpdateitemLocationOnCheckin",
+    "ItemsDeniedRenewal"
+);
+my @bad_yaml_prefs;
+foreach my $syspref (@yaml_prefs) {
+    my $yaml = C4::Context->preference( $syspref );
+    if ( $yaml ) {
+        eval { YAML::Load( "$yaml\n\n" ); };
+        if ($@) {
+            push @bad_yaml_prefs, $syspref;
+        }
+    }
+}
+$template->param( 'bad_yaml_prefs' => \@bad_yaml_prefs ) if @bad_yaml_prefs;
+
 {
     my $dbh       = C4::Context->dbh;
     my $patrons = $dbh->selectall_arrayref(