Added support for auto-renewal ages. If a checkout occurs and the item is already checked out to the same patron and they have had the item for more than a configred amount of time, tell the caller and let the caller decide if it should force a renewal
better support for ils events where .ils_event == null. Can now include the textcode string in the list of overridable events one feeds the network.request methods.
new feature: Added max-claims-returned-count setting. if a patron hits this amount, it requires staff override to mark an additional item as claims returned.
new perm SET_CIRC_CLAIMS_RETURNED.override
new api call open-ils.circ.circulation.set_claims_returned.override
changing the value of a datepicker within a change event handler can fire another event.. alert boxes also seem to make it act funny. Replacing with a sound effect for now
Bug reported by Wiktor Rzeczkowski from McMaster University: [parallel_]pg_loader.pl was not taught about the changes to the materialized_simple_record trigger
loop-based targeting (does not need the views defined the other day ... may remove those at some point), cut the first; org unit weighting for hold targeting
Added org setting for overriding the circ lib when creating a new pre-cat copy. This allows the lib to automatically
route all pre-cat copies to a different branch at post-circ checkin time.
Add ISBN and Circ Modifier options to Pre-Cat dialog. Circ Modifier value gets remembered between pre-cat invocations for a given staff client session. General reworking of the dialog to better handle closure of the window on
non-submits.
TODO: Test against middle layer .checkout.full once it supports circ_modifier argument. We're broken until then.
use Safe to protect against EVIL evals coming in from the outside world -- we share the environment into the Safe compartment using the name $current_environment
Make building & installing the core components of Evergreen optional.
For now, this will be of most interest to those interested in building only
the staff client, say, on platforms where many of the dependencies of the
other components of Evergreen are not readily available. If you disable the
core components using configure, then dependency checking for those core
components is skipped and the staff client will be build and installed to
the desired location.
For example:
./autogen.sh
./configure --prefix=/openils --disable-core --disable-apache-modules
sudo make install
... will result in the Evergreen Web files, reporter, and staff client
being built and their respective server components installed in
/openils/var/web/...
moving the the upgrade SQL scripts to an unversioned "upgrade" directory instead of one labeled for 1.6; adding the min-version insert for config.upgrade_log; adding views and an index for hold loop calculation
Initial stab at modeling database changes as atomic mini-scripts for ease of development and eventual automatic upgrades
Created new upgrade directory for the 1.6 to trunk upgrade path.
fire a command event on checkboxes if persist_helper makes them checked. This handles checkboxes like Stack Subfields and Fast Item Add in the marc editor
Patch from Warren Layton for asciibetical ordering of services in z39.50 client. Native Catalog always goes to the top. Thanks!
---
The attached patch presents the Z39.50 targets in the Staff Client in
alphabetical order - a problem for us because we're starting to have
quite a few configured.
I'm not sure if this is the most elegant solution so feedback is
definitely welcome.
Catch a few more common problems in settings-tester.pl:
* Check for <database> elements to ensure that Evergreen version of opensrf.xml is in place
* Check for oils_web.xml (required as of Evergreen 1.6)
Also, a bit of clean-up:
* Ensure all output is available to be gathered
* Short-circuit pointless database tests if the database connection fails
there's no valid reason to call ingest from within the bib create/overlay code before the changes have been committed. removed embedded ingest logic and the no-ingest flags passed by everyone that uses them
tighter control over displaying mark-recived and update-barcodes links in lineitem table. showing lineitem and PO state in the UI. Added PO activate routine which effectively marks a PO as 'ready to send to vendor'
Loosened constraint on group penalty thresholds. You can now define threholds for the same group as long as they have a different context org unit
To Update:
ALTER TABLE permission.grp_penalty_threshold DROP CONSTRAINT penalty_grp_once;
ALTER TABLE permission.grp_penalty_threshold ADD CONSTRAINT penalty_grp_once UNIQUE (grp,penalty,org_unit);
This is a work in process and I expect a lot of churn; I promise to I18N-ize it before it leaves trunk. Some stuff like Rolling Counter is more mock-up than anything; I have no idea what a Rolling Counter is. :D
The main notion here is that we want a quick toggle in Item Status for a denser view of information for a single item. Something less like the current Actions -> Show Item Details and more like the MARC View button in the Z39.50
interface. Note, you can scan in new barcodes while remaining in this view. In general, I want to move away from pop-up dialogs and interfaces in any case, and this sort of deck swapping is probably the future.
This changeset isn't as scary as it looks, I promise. :-)
In XUL you can say, <element attribute1="foo" attribute2="bar" persist="attribute1 attribute2" />
and whenever those specified attributes change, the new values will be remembered the next time that element is loaded.
Problems with persist:
* No longer works with remote XUL in Xulrunner 1.9 series, only chrome. Mozilla did this for security reasons.
* Persist was tied to the window.location of each interface, so:
1) Settings would be lost on any "upgrade" that effectively changed the URL. For example, /xul/rel_1_2/server/ versus /xul/rel_1_4/server/
2) Some interfaces still make use of URL params, which effectively breaks persistance (because the URL changes constantly), and allows localstore.rdf to grow without limit (thanks to Jeff for noticing that last bit)
The solution:
* We renamed all occurances of @persist to @oils_persist, in case Mozilla changes the behavior again.
* We created a persist_helper() function and call it alongside font_helper() in the @onload for most windows (all that currently have elements using @oils_persist, at least)
persist_helper grabs all elements that have an @oils_persist, and constructs look-up keys based on the location.hostname, location.path, and element.id, and uses the Mozilla preference system to look for preferences with those
keys. These keys don't include URL parameters. For <checkbox> elements, an event listener is added that will set the preference whenever the element fires a command event (is checked or unchecked).
TODO:
* Tweak the keys further so that they're BUILD_ID (version) agnostic
* Add more event listeners to accomodate @oils_persist on other elements like window, splitter, and grippy.
* Possibly remove persist_helper (and font_helper) from the inline @onload, and load it through a window.addEventListener('load',function(){ persist_helper(); },false); in the global util overlay instead.
Simple in-client "activity log" interface (Admin -> Local Administration -> Work Log), and an example of such logging in the Checkout interface.
The log function itself is part of util/error.js. Example:
JSAN.use('util.error'); var logger = new util.error();
logger.work_log(
"Staff member Foo circulated item Bar to patron Baz", // The log message
// Additional Row data to pass to a util.list construct in the work log interface, which can be used in rendering columns, and accessed by actions acting on the list
{
au_id : 1, // Id for patron Baz; needed if you want the Retrieve Patron action to work with this log entry
acp_barcode : 'Bar', // Barcode of the item; needed if you want the Retrieve Item action to work with this log entry
}
);
TODO:
* Add logging statements to the Check In interface (complication there is that we don't have patron data, which would be useful) and Patron Registration
* Possibly add explicit columns for the type of action, the item involved, the patron involved, and the staff involved (to compliment Operator Change), rather than just Message and When.
* Add filtering support for action types
use a separate pcrud instance for each object deletion so that a single instances isn't trying to create transactions while it's already in the middle of transactions, pending async responses. added some docs