use CGI qw ( -utf8 );
use DateTime::TimeZone;
+use File::Spec;
use List::MoreUtils qw/ any /;
use LWP::Simple;
+use Module::Load::Conditional qw(can_load);
use XML::Simple;
use Config;
use Search::Elasticsearch;
use Try::Tiny;
+use YAML qw/LoadFile/;
use C4::Output;
use C4::Auth;
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/) ) {
};
}
-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'
}
}
+if ( ! C4::Context->config('tmp_path') ) {
+ my $temporary_directory = C4::Context::temporary_directory;
+ push @xml_config_warnings, {
+ error => 'tmp_path_missing',
+ effective_tmp_dir => $temporary_directory,
+ }
+}
+
# Test QueryParser configuration sanity
if ( C4::Context->preference( 'UseQueryParser' ) ) {
# Get the QueryParser configuration file name
# 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
$warnILLConfiguration = 1;
}
+
+ if ( !$ill_config_from_file->{branch} ) {
+ # branch not defined
+ $template->param( ill_branch_not_defined => 1 );
+ $warnILLConfiguration = 1;
+ }
+
$template->param( warnILLConfiguration => $warnILLConfiguration );
}
}
}
+if ( C4::Context->preference('RESTOAuth2ClientCredentials') ) {
+ # Do we have the required deps?
+ unless ( can_load( modules => { 'Net::OAuth2::AuthorizationServer' => undef }) ) {
+ $template->param( oauth2_missing_deps => 1 );
+ }
+}
+
# Sco Patron should not contain any other perms than circulate => self_checkout
if ( C4::Context->preference('WebBasedSelfCheck')
and C4::Context->preference('AutoSelfCheckAllowed')
);
}
+# 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(
## ------------------------------------------
-## Koha time line code
-
-#get file location
+## Koha contributions
my $docdir;
if ( defined C4::Context->config('docdir') ) {
$docdir = C4::Context->config('docdir');
$docdir = C4::Context->config('intranetdir') . '/docs';
}
+## Contributors
+my $contributors =
+ -e "$docdir" . "/contributors.yaml"
+ ? LoadFile( "$docdir" . "/contributors.yaml" )
+ : {};
+my @people = map {
+ {
+ name => $_,
+ (
+ exists( $contributors->{$_}->{openhub} )
+ ? ( openhub => $contributors->{$_}->{openhub} )
+ : ()
+ ),
+ (
+ exists( $contributors->{$_}->{roles} )
+ ? ( roles => $contributors->{$_}->{roles} )
+ : ()
+ ),
+ (
+ exists( $contributors->{$_}->{commits} )
+ ? ( commits => $contributors->{$_}->{commits} )
+ : ()
+ ),
+ (
+ exists( $contributors->{$_}->{notes} )
+ ? ( notes => $contributors->{$_}->{notes} )
+ : ()
+ )
+ }
+} sort {
+ my ($alast) = $a =~ /(\S+)$/;
+ my ($blast) = $b =~ /(\S+)$/;
+ lc($alast) cmp lc($blast)
+} keys %{$contributors};
+
+$template->param( contributors => \@people );
+
+## Timeline
if ( open( my $file, "<:encoding(UTF-8)", "$docdir" . "/history.txt" ) ) {
my $i = 0;