From 3c166855d39877a0e370b009d52caa9a7b3986c4 Mon Sep 17 00:00:00 2001
From: Mirko Tietgen <mirko@abunchofthings.net>
Date: Sun, 7 Dec 2014 18:39:51 +0100
Subject: [PATCH] =?UTF-8?q?Bug=2013404=20-=20More=20=C2=BBSystem=20information=C2=AB=20about=20GRS1=20vs=20DOM=20settings?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

System information indicates missing <zebra_bib_index_mode> and <zebra_auth_index_mode> entries in koha-conf.xml.

This patch

- adds warnings about a possible mismatch between these settings and the actual setup
- adds info about the actual setup/what values to use for <zebra_bib_index_mode> and <zebra_auth_index_mode> if they are not set.

The assumption is that a path including 'zebra-*-dom.cfg' in the respective section indicates a DOM setup.
---
 about.pl                                         |   46 ++++++++++++++++++++++
 koha-tmpl/intranet-tmpl/prog/en/modules/about.tt |   42 ++++++++++++++++++++
 2 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/about.pl b/about.pl
index 4fbc7e8..cd55133 100755
--- a/about.pl
+++ b/about.pl
@@ -80,24 +80,70 @@ my $warnIsRootUser   = (! $loggedinuser);
 my $warnNoActiveCurrency = (! defined C4::Budgets->GetCurrency());
 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_auth_index_mode') eq 'grs1') && ($context->{'server'}->{'biblioserver'}->{'config'} =~ /zebra-biblios-dom.cfg/) ) {
+    push @xml_config_warnings, {
+        error => 'zebra_bib_index_mode_mismatch_warn'
+    };
+}
+
 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') eq 'dom') && ($context->{'server'}->{'authorityserver'}->{'config'} !=~ /zebra-authorities-dom.cfg/) ) {
+    push @xml_config_warnings, {
+        error => 'zebra_auth_index_mode_mismatch_warn'
+    };
+}
+
+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'
+    };
+}
+
 # Test QueryParser configuration sanity
 if ( C4::Context->preference( 'UseQueryParser' ) ) {
     # Get the QueryParser configuration file name
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt
index fa3a081..8301181 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt
@@ -152,6 +152,20 @@
                         It will default to <strong>dom</strong>.
                     </td>
                 </tr>
+                [% ELSIF config_entry.error == 'zebra_bib_mode_seems_grs1' %]
+                <tr>
+                    <th scope="row"><b>Info</b></th>
+                    <td>Your configuration file indicates that <strong>grs1</strong> is the correct setting
+                    for &lt;zebra_bib_index_mode&gt;.
+                    </td>
+                </tr>
+                [% ELSIF config_entry.error == 'zebra_bib_mode_seems_dom' %]
+                <tr>
+                    <th scope="row"><b>Info</b></th>
+                    <td>Your configuration file indicates that <strong>dom</strong> is the correct setting
+                    for &lt;zebra_bib_index_mode&gt;.
+                    </td>
+                </tr>
                 [% ELSIF config_entry.error == 'zebra_auth_index_mode_warn' %]
                 <tr>
                     <th scope="row"><b>Warning</b></th>
@@ -160,6 +174,20 @@
                         It will default to <strong>dom</strong>.
                     </td>
                 </tr>
+                [% ELSIF config_entry.error == 'zebra_auth_mode_seems_grs1' %]
+                <tr>
+                    <th scope="row"><b>Info</b></th>
+                    <td>Your configuration file indicates that <strong>grs1</strong> is the correct setting
+                    for &lt;zebra_auth_index_mode&gt;.
+                    </td>
+                </tr>
+                [% ELSIF config_entry.error == 'zebra_auth_mode_seems_dom' %]
+                <tr>
+                    <th scope="row"><b>Info</b></th>
+                    <td>Your configuration file indicates that <strong>dom</strong> is the correct setting
+                    for &lt;zebra_auth_index_mode&gt;.
+                    </td>
+                </tr>
                 [% ELSIF config_entry.error == 'zebra_bib_grs_warn' %]
                 <tr>
                     <th scope="row"><b>Warning</b></th>
@@ -169,6 +197,13 @@
                         <strong>dom</strong> (full reindex required).
                     </td>
                 </tr>
+                [% ELSIF config_entry.error == 'zebra_bib_index_mode_mismatch_warn' %]
+                <tr>
+                    <th scope="row"><b>Warning</b></th>
+                    <td>The &lt;zebra_bib_index_mode&gt; entry is set to <strong>dom</strong>, but your system appears to be set up for <strong>grs1</strong> indexing.
+                    It is safe to ignore this warning if biblio search is working.
+                    </td>
+                </tr>
                 [% ELSIF config_entry.error == 'zebra_auth_grs_warn' %]
                 <tr>
                     <th scope="row"><b>Warning</b></th>
@@ -178,6 +213,13 @@
                         <strong>dom</strong> (full reindex required).
                     </td>
                 </tr>
+                [% ELSIF config_entry.error == 'zebra_auth_index_mode_mismatch_warn' %]
+                <tr>
+                    <th scope="row"><b>Warning</b></th>
+                    <td>The &lt;zebra_auth_index_mode&gt; entry is set to <strong>dom</strong>, but your system appears to be set up for <strong>grs1</strong> indexing.
+                    It is safe to ignore this warning if authority search is working.
+                    </td>
+                </tr>
                 [% ELSIF config_entry.error == 'queryparser_entry_missing' %]
                 <tr>
                     <th scope="row"><b>Warning</b></th>
-- 
1.7.2.5