scottmk [Sun, 15 Aug 2010 02:27:01 +0000 (02:27 +0000)]
Pedantic changes for const-correctness:
1. Add the const qualifier to most of the parameters of SELECT().
2. In almost all cases: replace calls to jsonObjectGetKey() with
calls to jsonObjectGetKeyConst(). A couple of calls remain that
would be more trouble to replace than they're likely to be worth.
senator [Fri, 13 Aug 2010 18:15:46 +0000 (18:15 +0000)]
merge seials-integration [sic] branch into trunk
Dan Wells has provided tremendous efforts in developing a user interface
and middle-layer logic for controlling serials. His work builds on the
serial schema hashed out earlier in the year, also with his heavy involvement,
and it provides ways to manage subscriptions, distribution, prediction,
receiving and more. Although this code is but a beginning, much of it
is functional today.
This commit brings Dan's work into trunk. Dan has provided some release
notes here: http://www.open-ils.org/dokuwiki/doku.php?id=acq:serials:release_notes:initial_trunk_merge
dbs [Fri, 13 Aug 2010 17:57:54 +0000 (17:57 +0000)]
Add Debian Squeeze prereq support, drop out-of-date items
* Drop Debian Etch ("Security updates have been discontinued as of the end of February 2010.")
* Drop PostgreSQL server packages pre-8.4 as they are no longer supported
TODO: To continue to support Ubuntu Hardy and Debian Lenny, we'll need to
start pulling in backports of postgresql-8.4.
phasefx [Fri, 13 Aug 2010 14:48:15 +0000 (14:48 +0000)]
go ahead and expose the Find in Page functionality, but hide it under the Debug label for now. Other than being incomplete (no Find Next, etc.), the main problem I see are our dynamic dojo interfaces where the text one might be tempted to search for won't actually be rendered yet on the screen (say in a scrolling list)
phasefx [Fri, 13 Aug 2010 08:18:42 +0000 (08:18 +0000)]
spawn external text editor for Patron Letter during Mark Item Missing Pieces workflow. Put configuration option under Admin -> Local System Administration -> External Text Editor Command
erickson [Thu, 12 Aug 2010 13:33:31 +0000 (13:33 +0000)]
created batch/streaming versions of hold placement and possibility check calls: open-ils.circ.holds.create[.override].batch and open-ils.circ.title_hold.is_possible.batch. Arguments are the same as non-batch, just delivered as an array; responses are delivered in order inbound params
dbs [Thu, 12 Aug 2010 07:42:20 +0000 (07:42 +0000)]
Remove broken old JavaScript in Google Book preview code
I /think/ this was supposed to change the title of the "Preview" link to
"Read this online" or the like in the case that the full text is available,
but it was relying on a function that didn't exist (setText) and trying
to reference an ID that didn't exists. So it broke in those rare cases
where Google Books did provide the full text.
scottmk [Wed, 11 Aug 2010 20:59:25 +0000 (20:59 +0000)]
Plug some memory leaks.
In many places we were creating dbi_results without freeing them;
pretty much everything involving transactions, savepoints,
inserts, updates, and deletes.
erickson [Wed, 11 Aug 2010 20:42:07 +0000 (20:42 +0000)]
Gave the base login code the ability to find username/password from a
cookie. for security reasons, we don't put login data into cookies, but if the
login info is available to us in that format already (say, via external means), we'll
use it. This can be useful for persistent logins (e.g. self-check) or
automatic logins (pushing cookie data out to workstations)
Minor cleanup of the login code to make it more re-use friendly.
Added self-check support for verifying the staff login before each patron
login.
phasefx [Wed, 11 Aug 2010 06:33:37 +0000 (06:33 +0000)]
change Check Barcodes? checkbox in Volume/Item creator to Use Checkdigit. In addition to checking the barcodes, it also dictates whether the Auto-Generate Barcodes function will use checkdigits or not
phasefx [Wed, 11 Aug 2010 06:33:34 +0000 (06:33 +0000)]
tweak auto-barcode method to support barcodes of arbitrary length. trims last digit from seed barcode if 9 or 14 digits. works with alphanumeric barcodes like b1, test1, demo1 with no checkdigits (so it'll generate demo2, demo3, etc.)
gmc [Tue, 10 Aug 2010 21:10:53 +0000 (21:10 +0000)]
bug 592777: allow authoritative version of open-ils.circ.retrieve
Part of a fix to avoid race condition that can occur
when patron renews an item in the OPAC in a database
that uses pgpool and replication, which sometimes
results in an erroneous 'action_circulation_not_found' error.
erickson [Tue, 10 Aug 2010 14:45:21 +0000 (14:45 +0000)]
similar to findbib, replace dojox.data.dom.textContent (which fails for unknown reasons) with node.textContent for bibtemplate rendering in related lineitems page
miker [Mon, 9 Aug 2010 20:54:35 +0000 (20:54 +0000)]
In order to speed up the API call where we ask for the number of visible (or total, in the staff client), available and "unshadow" (aka total) copies, as well as record transcendance visiblity, we create here 10 stored procedures. Eight of them implement the record/metarecord, staff/opac, OU/lasso varients, and two more are wrappers simplifying the calling API.
dbs [Mon, 9 Aug 2010 20:33:26 +0000 (20:33 +0000)]
Teach the staff client volume copy creator to respect OU call number preferences
To teach the "Add volumes" dialog in the staff client how to show the correct
set of call numbers based on the workstation OU's default classification
scheme, this commit:
* Adds a column "field" to the asset.call_number_class table that specifies
the list of tag/subfield combinations to search for a candidate call number
for a given classification scheme
* Adds a new OU setting, 'cat.default_classification_scheme', that points
to the asset.call_number_class ID
* Extends the open-ils.cat.biblio.record.marc_cn.retrieve method to support
a second argument, identifying the classification scheme for the call
number extraction
* Fixes the IDL for asset.call_number_class to include the ID as an explicit
field
* Makes the "Add volumes" dialog look up the 'cat.default_classification_scheme'
setting for the workstation OU and apply that to the call to the
open-ils.cat.biblio.record.marc_cn.retrieve method
TODO:
* Provide a means of switching the classification scheme for the current volume,
repopulating the call number selector widget
* Save the chosen scheme as part of the acn object
dbs [Mon, 9 Aug 2010 13:13:36 +0000 (13:13 +0000)]
Patch from Ben Ostrowsky <ben@esilibrary.com> to specify "staff account" in proxied pages
This change will make it a bit more clear that we're not looking for a
patron barcode/PIN in the Selfcheck Login screen (and make the wording
consistent across similar login pages).
dbs [Sat, 7 Aug 2010 03:53:01 +0000 (03:53 +0000)]
Basic call-number sorting by classification scheme
Until now, call numbers like 'K 22 .U748 v.18' and 'K 215 .E53 W37 1997' would
sort incorrectly in Evergreen, making call number browsing painful.
The following patch adds the following to Evergreen to support better call
number sorting:
* asset.call_number gains two new columns:
- label_class - identifies the classification scheme for the given callnumber
- label_sortkey - holds the normalized callnumber suitable for sorting
* a new table, asset.call_number_class, which holds the names of each
classification scheme and the name of the assorted normalization function
* implementations of three normalization functions:
* a generic normalizer
* a Dewey Decimal Classification normalizer (courtesy the Koha project)
* an LC classification normalizer (courtesy Bill Dueber's Library::CallNumber::LC)
* a routine in Makefile.install to checkout and install Library::CallNumber::LC
* call number sorting routines were modified to use label_sortkey instead of
label, where I could find them
* corresponding changes to fm_IDL.xml for the new columns + table
A suggested means for applying this to an existing library would be to issue
update statements against asset.call_number setting label_class to the value
in asset.call_number_class that corresponds to owning_lib's scheme, for example:
UPDATE asset.call_number SET label_class = 3 WHERE owning_lib IN (4,5);
We need to teach the staff client holdings maintenance interfaces how to set
the classification scheme for a given call number, and we should also create
an org_unit setting that can set the preferred default classification scheme
that the staff client should inherit. Or maybe we could just make that a
sticky value and have a BEFORE trigger check the incoming value of label_class
and only set it to the org_unit default value if it is NULL (to support bulk
loads).
dbs [Sat, 7 Aug 2010 03:26:11 +0000 (03:26 +0000)]
Build 210.serial before 200.acq, because 200.acq references serials
Confusing due to the order implied by the filename numbers, but priority
has to be on getting trunk to build cleanly again; we can sort out a
better way later.
gmc [Fri, 6 Aug 2010 20:39:35 +0000 (20:39 +0000)]
bug 532217: work around caching issue resulting doubled title display
Quick hack shamelessly borrowed from Dan Scott to fix problem
of title being displayed twice on bib details page when back
button is used in OPAC or staff client.
This is a temporary fix in lieu of rewriting the bib details
display to use BibTemplate exclusively.
phasefx [Fri, 6 Aug 2010 19:45:49 +0000 (19:45 +0000)]
menu.js and patron/display.js were passing xulG functions to browser.js differently. This makes browser.js a little smarter (so that it doesn't trampled xulG-destined members sent via passthru_content_params) and sidesteps some security blockers with inspecting xulG. xulG is a namespace/object for shoving foreign data and/or functions into a given window
scottmk [Fri, 6 Aug 2010 15:33:11 +0000 (15:33 +0000)]
Refine the way we detect loss of the database connection.
This is a terrible, horrible, no good, very bad kludge.
We do an innocuous SELECT 1. If this query succeeds, then we know that the
connection is still good. If it fails, well...
Sometimes the SELECT 1 query fails, not because the database connection is dead,
but because (due to a previous error) the database is ignoring all commands,
even innocuous SELECTs, until the current transaction is rolled back. The only
known way to detect this condition via the dbi library is by looking at the error
message returned by dbi_conn_error(). This approach will break if the language
or wording of the message ever changes.
Note: the dbi_conn_ping function purports to determine whether the database
connection is live. At this writing, it follows the same approach as described
above: try a SELECT 1 and see if it works. Consequently it presumably suffers
from the same shortcoming: it may erroneously report a dead connection when the
database is in fact just ignoring commands due to a previous error. In addition,
if it determines (rightly or wrongly) that the connection is dead, it silently
tries to reconnect; if the reconnect is succesful, the function reports that the
connection is still alive, as if nothing had happened. If you were in the middle
of a transaction at the time, you wouldn't know that it got rolled back.
gmc [Fri, 6 Aug 2010 01:21:31 +0000 (01:21 +0000)]
bug 614150: bail out on ACTOR_USER_NOT_FOUND
This fixes a bug where uploading an offline checkout
that refers to a missing patron returns an INTERNAL_SERVER_ERROR
instead of ACTOR_USER_NOT_FOUND. More generally, this avoids
an exception in case case where a circ operation is made
without checking the existence of the patron record beforehand.
phasefx [Thu, 5 Aug 2010 21:16:01 +0000 (21:16 +0000)]
Fixed form validation with surveys (the filteringSelect dijits were treating themselves as invalid if not set)
Some I18N for form validation
Removed some lingering (and annoying) scrollOnFocus behavior with the non-autoField widgets
erickson [Thu, 5 Aug 2010 20:19:46 +0000 (20:19 +0000)]
updated IDL parser to 1) load oils_object:required attr at field level
instead of class level and 2) added the oils_persist:i18n attr as
another field-level boolean
phasefx [Thu, 5 Aug 2010 19:08:08 +0000 (19:08 +0000)]
fix open-ils.circ.prev_renewal_chain.retrieve_by_circ.summary to return the correct user for the previous circ chain, and some debugging tweaks to Item Status Alternate View and avoid a widget collision with hold patrons
dbs [Thu, 5 Aug 2010 14:40:40 +0000 (14:40 +0000)]
The old default skin is the new default skin
We need people willing to maintain the craftsman skin, as it is falling
behind "default" in functionality and goes for long periods in a broken state.
This change gives Evergreen the most functional and most likely to work skin
by default, which is important for making positive first impressions on
possible adopters of the project.
phasefx [Wed, 4 Aug 2010 22:28:34 +0000 (22:28 +0000)]
add Required to copy stat cat editor, add User Summary to patron stat cat editor for initial stat cat creation, and fix a bug where editing an existing copy stat cat would attempt to set usr_summary. Modified behavior a bit so that an update is attempted whenever the user presses update, and not just if data is changed (this was me punting instead of trying to modify the test for both copy and patron stat cats)
erickson [Wed, 4 Aug 2010 20:19:14 +0000 (20:19 +0000)]
require latest last_xact_id for payments
To prevent accidental multiple payments on the transaction or payments
against stale information, require the latest user last_xact_id to be
passed into the payment API call. Update staff client (thanks jason)
and self-check payment interfaces to match.