Bill Erickson [Wed, 6 Mar 2013 21:02:37 +0000 (16:02 -0500)]
TPAC my-list call number includes child orgs
For my-list call number display, if the most relevant call number is a
child of any of the context org units (physical/pref/search), it is
considered relevant for purposes of call number display.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Tue, 12 Feb 2013 17:19:58 +0000 (12:19 -0500)]
tpac avoid more org_unit template var leaks
Avoid using the variable name 'org_unit' in misc_utils (when compiling
copy visibility info) since the value can leak into the org_selector
template, disrupting the rendering of the org selector.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Mon, 28 Jan 2013 18:40:12 +0000 (13:40 -0500)]
Consistent response type from TPAC pref lib lookup
In some contexts, the $user->home_ou field is fleshed with a real org
unit object. Ensure that the response value from _get_pref_lib in the
TPAC takes this into consideration when finding the ID of the user's
home org unit.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Thu, 13 Dec 2012 16:34:50 +0000 (11:34 -0500)]
Show local call number in TPAC My Lists display
If an opac-visible call number exists that is owned by an org unit
relevant to the patron, show the (most relevant) call number label in
the My Lists display for each record in the list. Call number is
displayed in both saved and temporary lists.
A call number is considered relevant if its owner is one of:
This code leverages the new "exclude_invisible_acn" unapi filter to
ensure that we are only required to retrieve 1 call number in the unapi
output instead of an arbitrarily large set of call numbers, against
which we may have to filter non-visible call numbers.
This commit also addresses and outstanding TODO item in the tpac Perl:
Replace the last use of fetch_marc_xml_by_id with get_records_and_facets
and remove fetch_marc_xml_by_id
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Thu, 7 Feb 2013 18:43:19 +0000 (13:43 -0500)]
rank_ou() honors pref-lib in non-global context
When determining how to sort an org unit (e.g. sorting copies by circ
lib for display in the catalog), allow the pref-lib to affect the sort
order in global and non-global searches.
Org units are now sorted with the following criteria in the following
order. For example, assume we are sorting a copy circ_lib:
1. circ_lib matches the search_lib
2. circ_lib matches pref_lib
3. distance of circ_lib from pref_lib when pref_lib is a child of
search_lib, if circ_lib is a child of pref_lib.
(For example, searching CONS with pref_lib SYS1, items at BR1 will
sort ahead of items at BR3, since BR1 is a child of the pref_lib).
4. proximity of circ_lib to search_lib, when circ_lib is a child of
search_lib.
5. In all other cases, circ_lib is sorted to the bottom with the rest of
the riffraff.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Wed, 21 Nov 2012 15:12:39 +0000 (10:12 -0500)]
extract PO name from picklist upload
If a PO name is encoded in a lineitem (via provider attribute
definition), extract that PO name when creating a new purchase order
from lineitems that were previously only linked to a selection list.
This allows staff to create selection lists first, then orders second,
while retaining the encoded purchase order name.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Fix divergence of stock serials schema and upgraded schema
And additionally make a function used in a constraint on
serial.issuance.holding_code a little bit smarter.
These issues were reported to me by Galen Charlton.
The upgrade script included here will set serial.issuance.holding_code
to NULL in cases where the value doesn't validate, but in those cases
there is no part of Evergreen that could have made use of the data
anyway, and the data is just plain bad.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Exclude copies that have been deleted from showing up on the browse holds shelf list.
If an item had been deleted while it had a status of On Holds Shelf, it would permanently show up on
the browse holds list. This will exclude deleted copies from the results.
Signed-off-by: Steven Callender <stevecallender@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Tue, 11 Dec 2012 20:50:56 +0000 (15:50 -0500)]
Remote Account Conify UI
Admin interface for config.remote_account. To date, remote accounts
have been managed solely as EDI accounts, which have their own
interface. If one wishes to add/manage non-EDI remote accounts, then
this new UI is needed.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
Galen Charlton [Tue, 5 Feb 2013 18:12:02 +0000 (13:12 -0500)]
LP#1116509: prevent null SVF attribute value from breaking record import
Fix problem where a record could fail to be staged for import
with the following error:
ERROR: query string argument of EXECUTE is null
CONTEXT: PL/pgSQL function "extract_rec_attrs" line 72 at EXECUTE statement
SQL function "extract_rec_attrs" statement 1
This error would be triggered if at least one SVF attribute has a normalization
function defined that is applied to a null value during record import.
Patch is based on a suggestion by Bob Wicksall.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Mon, 11 Mar 2013 17:40:46 +0000 (13:40 -0400)]
Reify required authority fixed field names
Adam (and Art, by way of Adam's patch) added a goodly pile of fixed
field definitions that were lacking previously. The change in this
commit simply changes the label of two (008/11 and 008/15) to those
in use by other parts of the code. In particular, internally, we call
the field holding a thesaurus code value "Subj" and use that name during
ingest of authority records. Therefore, that should not change. This
required a subsequent change to the label of another, to SubjUse.
I've included a duplication in the backend-only (probably deprecated)
version of this mapping to allow the front-end labels to work.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
This is consistent with commit's e675b854 change to the
OCLC labels, and also fixes a problem where changing the
008/11 and 008/15 was not reflected in the fixed field boxes.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adam Bowling [Fri, 26 Oct 2012 14:59:54 +0000 (10:59 -0400)]
Add fixed fields missing from previous configuration, namely for MAP and SER record types. Incoporate previous changes for AUT record types from 1040381.
Signed-off-by: Adam Bowling <adbowling@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Mon, 4 Feb 2013 20:46:20 +0000 (15:46 -0500)]
Default ACQ copies use workstation org as owning lib
When creating default copies for new lineitems or lineitems added to
POs, use the workstation org unit as the owning lib for each copy. With
this, it's possible to order items for "here" without having to edit any
single copies. This also resolves a confusing issue where opening the
copies in the copies grid made it appear that each copy had an
owning_lib applied (via the autofieldwidget) when none was yet set.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Bill Erickson [Wed, 30 Jan 2013 14:36:17 +0000 (09:36 -0500)]
Default number of ACQ copies per provider
Acquisitions providers have a new "Default # Copies" field. When the value
is set, this number of copies will be automatically added to each lineitem
added to a purchase order for the provider. This takes place during PO
creation from a selection list or existing bib record and when a lineitem is
added to an existing purchase order. If a lineitem already has copies
attached, no default copies are added.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
This patch updates the seed data from the target list at
http://www.loc.gov/z3950/lcserver.html#addr. It also changes the
structure attribute for the 'lccn' search attribute to wordlist,
which means that LCCNs can be searched without having to enter
the leading spaces.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
When the max fine amount is not a multiple of the recurring fine amount,
fines will actually max out at an amount greater than the max fine
value. This commit adds YAOUS and some simple functionality to
optionally truncate the final amount billed to the max fine amount.
For example, if max fine is $5.00 and recurring fine is $0.30, the 17th
billing will bring the total amount billed to $5.10 (17 x $0.30),
thereby exceeding the max fine amount. With this commit, if
circ.fines.truncate_to_max_fine is true, the final billing amount will
be reduced and the total amount billed will be $5.00.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Thu, 28 Feb 2013 17:39:40 +0000 (12:39 -0500)]
LP#1136084: drop silent dependency on 'bsdmainutils' Debian/Ubuntu package
colrm is a perfectly good command, but isn't guaranteed to be
present on a minimal Ubuntu system. This patch replaces ti with
with cut, which is more likely to be present (including on *BSD
servers).
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Galen Charlton [Sat, 19 Jan 2013 05:46:32 +0000 (00:46 -0500)]
LP#1086458: clean up after event listeners in circ/patron interface
Upon window unload, now removes event listeners, both ones explicitly
created by the page JavsScript as well as ones created by
util.list, util.controller, and persist_helper().
The same approach of defining cleanup fnctions used by unload
events can be applied to the rest of the staff client, but
this patch focuses on circulation first.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
EventListenerList allows one to maintain a list
of event listeners, then remove them all when it's
time to clean up a window.
Usage is:
var list = new EventListenerList();
// attach an event listener
list.add(node, 'command', function(ev) { alert('BOO!'); }, false);
...
// get rid of them
list.removeAll();
Based on an idea by Jason Etheridge.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
After discussion with Mike Rylander, moved the new flags
to internal flags, as exposing them to the staff client's
global flag admin page could lead to records getting incompletely
ingested without there being an easy way to rectify the problem
from the staff client.
Also, sync up with other recent work on ingest.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Sat, 13 Oct 2012 15:38:55 +0000 (11:38 -0400)]
LP#1066326: Allow component partitioning of ingest
The component parts of the indexing process are fairly flexible. In some
places they can be called with parameters that control the behavior, and
other places will respond to global and/or internal flags. However, there
is some inconsistency to which parts will react to each mechanism.
Previous to this commit, there was no way to cause ingest to skip specific
parts of the indexing process (search / facet / browse, in particular)
even though the stored procedure responsible for this had the ability to
perform, and parameters for the control of, this behavior. Now, when any
of the parameters are false (the default, saying "do not skip") it will
check the value of a related global flag and, if enabled, skip that part
of the ingest.
This will allow one to do perform massive, batch, parallel ingests of bib
records, something that was effectively blocked by the way browse ingest
is performed. By disabling browse ingest during the main record loading,
and then performing only the browse ingest later, one can significantly
reduce the time required to load massive batches of records.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Wed, 16 Jan 2013 20:05:17 +0000 (15:05 -0500)]
TPAC: Don't display serial headers without content
Currently, the TPAC serial display code will print a section
header, then see if there is any content to show. This causes
headers to show up when they are unnecessary or unwanted.
Now, we only show the header if we have content needing heading.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Scott [Tue, 22 Jan 2013 14:52:52 +0000 (09:52 -0500)]
Provide some level of support for legacy install locations
If someone really wants to keep OpenSRF and Evergreen installed in
/openils, then enable the configure script to find the osrf_config
script and add the library location to the test to prevent it from
failing.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Fri, 19 Oct 2012 21:05:53 +0000 (17:05 -0400)]
Reduce hard-coded configure defaults
We can and should be smarter about how we set configuration variables.
Rather than using hard-coded defaults for the OpenSRF header and library
locations, ask osrf_config what values to use.
Also be smarter about how we check for the OpenSRF library as a dependency.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Fri, 19 Oct 2012 19:23:28 +0000 (15:23 -0400)]
Generate Apache config files for increased portability
Continue weaning ourselves off of hardcoded paths such as /openils in config
files. Also, install the Apache config example files into a docs directory
instead of just leaving them in the source tree. Similarly, remove some
hardcoded paths from eg_db_config.pl.
At the same time, drop the '.pl' suffix from the scripts that we're touching,
and make the Apache startup script a little less generic in name.
The change from "startup.pl" to "eg_startup" and from "eg_db_config.pl"
to "eg_db_config" also results in updates to installation and upgrading
documentation.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
The asset.merge_record_assets function was not checking for deleted call numbers
and merging items onto deleted call numbers that of course causes issues.
Signed-off-by: Steve Callender <stevecallender@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Jason Etheridge [Thu, 20 Dec 2012 18:40:41 +0000 (13:40 -0500)]
lp1092644 refresh row with Item Status Edit Volume
Assuming the Trim List box is not selected, this simply refreshes selected rows
in the Item Status interface that were used to provide context for the Actions
for Catalogers -> Edit Volumes command. If Trim List is selected, then the items
are instead re-added to top of the list.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Tue, 26 Feb 2013 19:33:58 +0000 (14:33 -0500)]
Repair clear holds shelf transaction timeout
Initiate our cstore transaction after making the initial, potentially
long-running call to collect the clear-shelf holds to process.
Otherwise, the cstore transaction may time out while waiting on the
holds retrieval to complete.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Mike Rylander [Fri, 8 Feb 2013 15:15:39 +0000 (10:15 -0500)]
Speed up sorted-related-holds query
In several interfaces, we use a server side method which gathers statistics
about a hold: related holds, it's position in the (approximate) queue, the
estimated wait time, etc. Within this method is a relatively complicated
json_query that returns the list of related, (FIFO-ish) sorted holds -- ones
that could be filled by a copy which could fill the hold in question. This
commit restructures that query so as to make it faster when the list of
related holds is large, by removing duplicate (cartesian product, actually)
hold ids that were being fed into an INNER JOIN clause.
Testing shows a speed increase of 4x for related-hold queue of around 675
holds [~2s -> ~0.5s] on a relatively large Evergreen installation,
appropriately tuned. The speed improvement gets larger with longer queues.
There is no observed decrease in speed for smaller queue sizes.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Mike Rylander [Tue, 12 Feb 2013 16:51:16 +0000 (11:51 -0500)]
Use LIMIT to speed EXISTS subqueries
EXISTS without LIMIT is considered harmful in many cases. Thus, we will
apply such an explicit planner hint in SuperCat. This reduces the runtime
of URI lookups on some records from 1.2s+ to less than 1ms.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ben Shum <bshum@biblio.org>
The ranking algorithm that chooses the best hold to target a copy in
hand at a capture time used to be fairly simple. It had two modes, FIFO
and not-FIFO, and that was it.
This change allows full configuration of that algorithm. In other
words, when the system captures a copy and sets out to evaluate what
hold, if any, that copy might best fulfull, site staff of sufficient
permission level are now empowered to choose exactly which comparisons
the systems makes in what order. This gives said staff much greater
flexibililty than they have today over holds policy.
For more information, see the included tech spec documents.
Allows customization to the way that Evergreen measures the distance
between org units for the purposes of 1) determining what copy at what
org unit is best suited for targeting a title-level hold, and 2)
determining what hold is best suited for fulfillment by a copy-in-hand
at capture (checkin) time. The customization is based on a table
'actor.org_unit_proximity_adjustment', with certain matching criteria
that the system compares to properties of the holds and copies in
question.
This feature is actually side-ported from the FulfILLment project, where
it was originally developed by Mike Rylander. Lebbeous Fogle-Weekley
was responsible for integration into current Evergreen code, some
testing and bug-fixing, and minor refinement of documentation.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jeff Davis [Wed, 17 Oct 2012 23:19:36 +0000 (16:19 -0700)]
Vandelay: default match set
Adds an org unit setting to specify a default Record Match Set when
importing MARC records with Vandelay. NB: If this is set, it will not
be possible to leave the Record Match Set field blank; it may be
necessary to define a default match set that replicates the current
default behavior.
A new "Vandelay" settings group is also created.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Ben Shum <bshum@biblio.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
If a given node contains only negative atoms the rank query was coming out as
an empty string, which was generating bad SQL. This causes the default to be a
null tsquery instead.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Wed, 20 Feb 2013 16:37:08 +0000 (11:37 -0500)]
TPAC: Make Google Books Preview depend on Dojo
It would be possible, but painful, to do all of this in raw JavaScript,
so make the preview functionality depend on Dojo. Also, split out the
relevant JavaScript into its own file. Also, don't search for a preview
if no ISBNs have been gathered; I'm sure Google is never going to return
a result for ISBN:undefined.
You can test this functionality in the sample record set using ISBN 4431287752.
Thanks to Ben Shum for the review comments!
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Tue, 5 Feb 2013 17:25:24 +0000 (12:25 -0500)]
TPAC: Google Books preview loader
Refinements should include checking more than just the first ISBN for
embeddability and passing more identifiers to the preview loader.
Roughly equivalent to what JSPAC had though.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
In XML-RPC Gateway, substitute __ for - in method names
Dashes have never actually been valid in XML-RPC method names, and some
clients (like newer versions of Perl's RPC::XML) enforce this rule on
their clients. This way we give XML-RPC clients a way they can still reach
our methods.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/extras/Makefile.install
Chris Sharp [Thu, 21 Feb 2013 18:33:31 +0000 (13:33 -0500)]
Install CPAN on Fedora
Fedora 18 split CPAN out into its own separate package, rather
bizarrely, and as we sadly still need to install some unpackaged
dependencies from CPAN we had better try to install it.
Serials: change more carp() to croak() to avoid infinite loops
This addresses a problem very similar to that in LP #1075167, where
certain loops never end because problems with the data elicited calls to
carp(), which fills up log, but never gives our loops notice to end.
Visible symptoms include 1) a greate volume of log spew and 2) an
open-ils.serial drone that ties up a CPU.
The fault lies maybe in our loops rather than in the MFHD
package, but this fixes the problem fastest, and should not have
undesirable side-effects.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Scott [Tue, 29 Jan 2013 10:55:10 +0000 (12:55 +0200)]
LP1108867: i18n support for holds in record details
Rather than constructing a string of "Place hold on " + "copy", etc,
just display more complete "Copy hold" / "Volume hold" / "Issue hold"
strings that have a chance of being translatable.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
Dan Wells [Fri, 1 Feb 2013 19:39:23 +0000 (14:39 -0500)]
Standardize on 'My' for user pronoun labels
The TPAC currently uses a mish-mash of 'My' and 'Your' when
labeling user elements (e.g. 'my list', 'your account', etc.).
This commit settles on the use of 'My', but only for labels, not
for "dialog" (e.g. 'Your payment has been approved') or for
imperative statements (e.g. 'Please change your password'). One
text which is borderline is 'Log in to Your Account', but I
decided to treat it as imperative and leave it alone for now.
This commit also changes a heading on the list page which was
lacking title case, as the rest of the interface uses title
case for all headings.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/templates/opac/myopac/lists.tt2
Pasi Kallinen [Tue, 22 Jan 2013 10:53:46 +0000 (12:53 +0200)]
TPAC: Allow multiline buttons and other minor button work.
Allows using multiline buttons; instead of using opac-button
-class in the a-tag, wrap the a-tag in a div with
opac-multiline-button -class.
Changes the login help button so a longer button text
behaves properly and looks good.
Unifies the green OPAC button behaviour when hovering
a mouse over them; the input and button -tag buttons
did not change their color.
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Dan Scott <dan@coffeecode.net>
Conflicts:
Open-ILS/src/templates/opac/css/style.css.tt2