From e67f6a08c3be74c6d3f4da75e4951aeb295c037c Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Tue, 24 Apr 2018 14:15:22 +0100 Subject: [PATCH] Bug 20639: Add ILLOpacbackends syspref This adds the ILLOpacbackends syspref, allowing users to refine the ill backends available to opac users for initiating ill requests --- Koha/Illrequest/Config.pm | 9 +++++++-- .../atomicupdate/bug_20639-add_ILLOpacbackends_syspref.sql | 11 +++++++++++ installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/circulation.pref | 5 +++++ opac/opac-illrequests.pl | 3 ++- 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.sql diff --git a/Koha/Illrequest/Config.pm b/Koha/Illrequest/Config.pm index 28e80ce0f6..9f4f0b58c8 100644 --- a/Koha/Illrequest/Config.pm +++ b/Koha/Illrequest/Config.pm @@ -104,16 +104,21 @@ sub backend_dir { =head3 available_backends -Return a list of available backends. + $backends = $config->available_backends; + $backends = $config->abailable_backends($reduced); + +Return a list of available backends, if passed a | delimited list it +will filter those backends down to only those present in the list. =cut sub available_backends { - my ( $self ) = @_; + my ( $self, $reduce ) = @_; my $backend_dir = $self->backend_dir; my @backends = (); @backends = glob "$backend_dir/*" if ( $backend_dir ); @backends = map { basename($_) } @backends; + @backends = grep { $_ =~ /$reduce/ } @backends if $reduce; return \@backends; } diff --git a/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.sql b/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.sql new file mode 100644 index 0000000000..00ec27774d --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_20639-add_ILLOpacbackends_syspref.sql @@ -0,0 +1,11 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + # $dbh->do(q| + INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) + VALUES ('ILLOpacbackends',NULL,NULL,'ILL backends to enabled for OPAC initiated requests','multiple'); + |); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20639 - Add ILLOpacbackends syspref)\n"; +} diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 53bea298db..a66c765e68 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -205,6 +205,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('IdRef','0','','Disable/enable the IdRef webservice from the OPAC detail page.','YesNo'), ('ILLModule','0','If ON, enables the interlibrary loans module.','','YesNo'), ('ILLModuleCopyrightClearance','','70|10','Enter text to enable the copyright clearance stage of request creation. Text will be displayed','Textarea'), +('ILLOpacbackends',NULL,NULL,'ILL backends to enabled for OPAC initiated requests','multiple'), ('ILS-DI','0','','Enables ILS-DI services at OPAC.','YesNo'), ('ILS-DI:AuthorizedIPs','','Restricts usage of ILS-DI to some IPs','.','Free'), ('ImageLimit','5','','Limit images stored in the database by the Patron Card image manager to this number.','Integer'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 8c66afee21..1e0fcd02e3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -739,6 +739,11 @@ Circulation: - pref: ILLModuleCopyrightClearance type: textarea class: long + - + - "ILL backends to enabled for OPAC initiated requests:" + - pref: ILLOpacbackends + class: multi + - (separated with |). Fines Policy: - - Calculate fines based on days overdue diff --git a/opac/opac-illrequests.pl b/opac/opac-illrequests.pl index 6f2b33cd14..550c283afc 100755 --- a/opac/opac-illrequests.pl +++ b/opac/opac-illrequests.pl @@ -50,7 +50,8 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ }); # Are we able to actually work? -my $backends = Koha::Illrequest::Config->new->available_backends; +my $reduced = C4::Context->preference('ILLOpacbackends') ||= undef; +my $backends = Koha::Illrequest::Config->new->available_backends($reduced); my $backends_available = ( scalar @{$backends} > 0 ); $template->param( backends_available => $backends_available ); -- 2.14.2