[open-ils-commits] [GIT] Evergreen ILS branch master updated. 19685ce120646a4eec75322f387d93d7d64a4e38
Evergreen Git
git at git.evergreen-ils.org
Mon Jun 6 15:14:21 EDT 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, master has been updated
via 19685ce120646a4eec75322f387d93d7d64a4e38 (commit)
from 989579ab508ede9747b9e60a42c103b77f8eb016 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 19685ce120646a4eec75322f387d93d7d64a4e38
Author: Dan Scott <dan at coffeecode.net>
Date: Mon Jun 6 12:11:58 2011 -0400
LP 791546: advanced search ISBN/ISSN in .staff mode
In 1.6, advanced search ISBN/ISSN searches always operated in .staff
mode, returning results whether the results should have been visible to
the user or not. This confused patrons who saw records to which they had
no access.
In 2.0, this behaviour changed so that advanced search ISBN/ISSN
searches never operated in .staff mode. This confused staff who were
used to retrieving records via the ISBN/ISSN search when they wanted to
add holdings for their own library to the records.
The pattern for addressing this problem and satisfying both use cases is
the same - use the multiclass.query.staff method if we invoke the ISBN
or ISSN searches with the .staff method name.
One could easily refactor many of the search method bodies in this
module to use the exact same logic, keying off the method name to
identify the identifier field and the .staff portion of the method name
to determine whether to invoke .staff mode or not. For now we just
address the ISBN and ISSN entry points.
Signed-off-by: Dan Scott <dscott at laurentian.ca>
Signed-off-by: Dan Wells <dbw2 at calvin.edu>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
index bef8eb7..b0d4fc8 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
@@ -2195,11 +2195,15 @@ sub marc_search {
}
+foreach my $isbn_method (qw/
+ open-ils.search.biblio.isbn
+ open-ils.search.biblio.isbn.staff
+/) {
__PACKAGE__->register_method(
method => "biblio_search_isbn",
- api_name => "open-ils.search.biblio.isbn",
+ api_name => $isbn_method,
signature => {
- desc => 'Retrieve biblio IDs for a given ISBN',
+ desc => 'Retrieve biblio IDs for a given ISBN. The .staff version of the call includes otherwise hidden hits.',
params => [
{desc => 'ISBN', type => 'string'}
],
@@ -2209,6 +2213,7 @@ __PACKAGE__->register_method(
}
}
);
+}
sub biblio_search_isbn {
my( $self, $client, $isbn ) = @_;
@@ -2220,7 +2225,13 @@ sub biblio_search_isbn {
# reworking 'open-ils.storage.id_list.biblio.record_entry.search.isbn',
# which is functionally deprecated at this point, or a custom call to
# 'open-ils.storage.biblio.multiclass.search_fts'
- my $method = $self->method_lookup('open-ils.search.biblio.multiclass.query');
+
+ my $isbn_method = 'open-ils.search.biblio.multiclass.query';
+ if ($self->api_name =~ m/.staff$/) {
+ $isbn_method .= '.staff';
+ }
+
+ my $method = $self->method_lookup($isbn_method);
my ($search_result) = $method->run({'limit' => 1000000}, "identifier|isbn:$isbn");
my @recs = map { $_->[0] } @{$search_result->{'ids'}};
return { ids => \@recs, count => $search_result->{'count'} };
@@ -2250,9 +2261,13 @@ sub biblio_search_isbn_batch {
return { ids => \@recs, count => scalar(@recs) };
}
+foreach my $issn_method (qw/
+ open-ils.search.biblio.issn
+ open-ils.search.biblio.issn.staff
+/) {
__PACKAGE__->register_method(
method => "biblio_search_issn",
- api_name => "open-ils.search.biblio.issn",
+ api_name => $issn_method,
signature => {
desc => 'Retrieve biblio IDs for a given ISSN',
params => [
@@ -2264,6 +2279,7 @@ __PACKAGE__->register_method(
}
}
);
+}
sub biblio_search_issn {
my( $self, $client, $issn ) = @_;
@@ -2275,7 +2291,13 @@ sub biblio_search_issn {
# reworking 'open-ils.storage.id_list.biblio.record_entry.search.issn',
# which is functionally deprecated at this point, or a custom call to
# 'open-ils.storage.biblio.multiclass.search_fts'
- my $method = $self->method_lookup('open-ils.search.biblio.multiclass.query');
+
+ my $issn_method = 'open-ils.search.biblio.multiclass.query';
+ if ($self->api_name =~ m/.staff$/) {
+ $issn_method .= '.staff';
+ }
+
+ my $method = $self->method_lookup($issn_method);
my ($search_result) = $method->run({'limit' => 1000000}, "identifier|issn:$issn");
my @recs = map { $_->[0] } @{$search_result->{'ids'}};
return { ids => \@recs, count => $search_result->{'count'} };
diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js
index 287a126..3011c4a 100644
--- a/Open-ILS/web/opac/common/js/config.js
+++ b/Open-ILS/web/opac/common/js/config.js
@@ -336,8 +336,8 @@ var FETCH_TOC = "open-ils.search:open-ils.search.added_content.toc.retrieve
var FETCH_ACONT_SUMMARY = "open-ils.search:open-ils.search.added_content.summary.retrieve";
var FETCH_USER_BYBARCODE = "open-ils.actor:open-ils.actor.user.fleshed.retrieve_by_barcode";
var FETCH_ADV_MARC_MRIDS = "open-ils.search:open-ils.search.biblio.marc:1";
-var FETCH_ADV_ISBN_RIDS = "open-ils.search:open-ils.search.biblio.isbn";
-var FETCH_ADV_ISSN_RIDS = "open-ils.search:open-ils.search.biblio.issn";
+var FETCH_ADV_ISBN_RIDS = "open-ils.search:open-ils.search.biblio.isbn:1";
+var FETCH_ADV_ISSN_RIDS = "open-ils.search:open-ils.search.biblio.issn:1";
var FETCH_ADV_TCN_RIDS = "open-ils.search:open-ils.search.biblio.tcn";
var FETCH_CNBROWSE = 'open-ils.search:open-ils.search.callnumber.browse';
var FETCH_CONTAINERS = 'open-ils.actor:open-ils.actor.container.retrieve_by_class';
-----------------------------------------------------------------------
Summary of changes:
.../lib/OpenILS/Application/Search/Biblio.pm | 32 ++++++++++++++++---
Open-ILS/web/opac/common/js/config.js | 4 +-
2 files changed, 29 insertions(+), 7 deletions(-)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list