Precat checkout in the browser client no longer
requires the use of a circ modifier(when circ
modifiers exist). Similarly, no circ modifier
is chosen by default.
Mike Rylander [Tue, 31 Jan 2017 17:35:05 +0000 (12:35 -0500)]
LP#1660059: Protect against null value in group field
If a nullable event grouping field is configured, and a null value is indeed
encountered when pulling together events, the Action/Trigger code will exit
unceremoniously. To prevent this, we will now collect events with either
a null grouping object or grouping field, and use a new batch invalidation
API call to get rid of them as quickly as possible after group sorting is
complete.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Change references of nonexistant scope variable args.date
to args.due_date, enabling edit due date to correctly
submit.
Signed-off-by: Kyle Huckins <khuckins@catalystdevworks.com>
Changes to be committed:
modified: Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
Add Address Alert to the alerts pane when address alert
is detected in the patron editor. This implements functionality
that was originally added tot he XUL patron editor in LP#898248.
To test:
[1] Define an address alert.
[2] Open a patron record in the webstaff patron editor and
create or update an address that would match the alert
set up in step 1. Verify, upon blur of street 1, street 2,
or the city inputs that an alert is displayed.
Note that the feature does not call for the presence of an
address alert to prevent the operator from saving the record;
the alert is purely advisory.
Bill Erickson [Tue, 10 Jan 2017 17:19:35 +0000 (12:19 -0500)]
LP#1655399 webstaff: User perm editor grantable fix
Correctly handle the boolean grantable flag in the user permission
editor. In some cases, the boolean 0/1 values returned from storage are
returned as strings. Cast them to numbers before checking truthiness.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jason Stephenson [Sat, 20 Aug 2016 17:42:31 +0000 (13:42 -0400)]
LP#1485374: Add missing comma on line 667 of oils_auth.c.
Fixes the following compiler error:
oils_auth.c: In function ‘oilsAuthComplete’:
oils_auth.c:668:9: error: expected ‘)’ before string constant
"open-ils.auth_internal",
^
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Use of a 'local' variable causes the TZ to be dropped prematurely. So,
instead, we set $ENV{TZ} globally and reset it when the mod_perl handler
object is destroyed.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Tue, 23 Feb 2016 17:09:15 +0000 (12:09 -0500)]
LP#1485374: add way for C code to make TZ-aware subrequests
This patch adds a helper routine to allow C
methods to make subrequests that pass the client
time zone along. This helper is in turn used during
authentication to ensure that the user object
that is returned has timestamps that are in the
time zone of the client that makes the original
authentication request.
Testing shows this to be needed to make strftime()
return the time in the client's time zone.
This is a bit confusing, however, as strftime per
POSIX should be acting as if it always calls tzset()
when doing formatting that involves the local timezone.
Mike Rylander [Fri, 11 Sep 2015 15:19:34 +0000 (11:19 -0400)]
LP#1485374: Allow server timezone via CStoreEditor
In rare cases, the server's timezone may be preferable to the client's.
To plan for such cases we provide a way to signal that we want to use the
server's timezone.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Mike Rylander [Mon, 3 Aug 2015 17:27:56 +0000 (13:27 -0400)]
LP#1485374: Use client TZ in the database when supplied to the server
In LP#1485371 we teach OpenSRF how to discover and pass the client timezone
to the server. Now we can use that information to temporarily put the server
into that timezone, including database sessions, so that dates and times
are calculated and reported based on the timezone of the client.
To do that we:
* Teach CStore and friends to use the client-supplied time zone
* Teach Storage to use $ENV{TZ} for the db timezone inside transactions,
and by default except for search-y methods
* Teach the TPAC to set the client TZ at login
This requires javascript to be enabled in the TPAC, and investigates the
client timezone at patron login time. No times are displayed in TPAC
interfaces before the patron logs in, so there is no point in detecting
the timezone before this point.
Mike Rylander [Wed, 25 Jan 2017 17:33:24 +0000 (12:33 -0500)]
LP#1657885: Inform Vandelay of new chunking/bundling logic, part deux
Here we conditionally use the old "max_chunk_count" method provided by OpenSRF
when Evergreen is running atop a version that doesn't know about the bundling
rename.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Mike Rylander [Wed, 25 Jan 2017 15:56:23 +0000 (10:56 -0500)]
LP#1657885: Inform Vandelay of new chunking/bundling logic
There is a naive attempt to force immediate streaming of results in Vandelay
for certain processes, but it both only helps a little, and breaks under the
new OpenSRF bundling/chunking logic. So, we'll drop it where it's not
directly configurable, and test for the appropriate features where we can.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Mike Rylander [Thu, 19 Jan 2017 20:54:53 +0000 (15:54 -0500)]
LP#1657885: Account for new bundling/chunking logic in OpenSRF 2.5+
When chunking was renamed bundling and actually chunking added in OpenSRF 2.5,
the few places in Evergreen that tried to make use of the old mechanism
directly now break. The most obvious breakage is in the alternate printable
hold pull list, which we fix here. Evidence of other broken code should
be fixed as needed, though spots to look our for are z39.50 results and
Vandelay processing.
To test:
1) In Evergreen 2.11 running on top of OpenSRF 2.5+, attempt to use the
alt pull list printing interface at a location with many holds on their
pull list. The progress bar will spin forever.
2) After applying this patch, do the same. The interface should work
quickly.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
We fixed the trigger that caused the problem in bug 167237, but now we need
to rewrite reporter.hold_request_record because T-holds are probably all
wrong. No data was lost, we're just addressing the contents of a materialized
view.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Galen Charlton [Tue, 17 Jan 2017 21:58:39 +0000 (16:58 -0500)]
LP#1657282: fix redirect of one-hit metarecord searches
This patches fixes a bug where, when performing a metarecord
("Group Formats and Editions") search, one-hit result sets
get redirected to a "/eg/opac/record/0.0..." page, which
results in a "Bad Request" error being shown to the user.
To test:
[1] Perform a metarecord search that would result in exactly
one metarecord search. Observe that the browser displays
a "Bad Request" error page.
[2] Apply the patch and perform step 1 again. This time, the
search should succeed. Note that if the metarecord contains
more than one component, a results page with one grouped
hit is displayed; if the metarecord has exactly one component,
that bib's record page is displayed.
Mike Rylander [Tue, 17 Jan 2017 19:46:36 +0000 (14:46 -0500)]
LP#1657237: Properly constrain matview trigger function
The function maintaining the reporter.hold_request_record table
was performing an unconstrained update when a hold was moved. This
fixes that.
To test:
[1] Apply the patch, the perform an asset merge that would
change the target of a hold request. Verify that
reporter.hold_request_record is properly update.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Wed, 28 Dec 2016 19:43:34 +0000 (14:43 -0500)]
LP#1655149: Badges need CDBI support for location groups
The badge code needs to inspect copy location groups, and tries to do so using
Class::DBI classes. But we haven't told CDBI about aclg and friends. Here we
tell Class::DBI about asset.copy_location_group so that storage can retrieve
directly.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Display the patron alerts pane only once per patron instance per
browser tab. This is done by setting a new session storage value which
tracks the last alerted patron. This value is replaced each time a new
patron is loaded into the main patron app (e.g. double-clicking the
patron row in patron search) and is maintained separately per browser
tab.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Jason Etheridge [Tue, 3 Jan 2017 11:58:25 +0000 (06:58 -0500)]
webstaff: booking options from Patron interface
Includes some workarounds for xulG errors, and lets the booking interfaces
receive the patron barcode via a query param instead of xulG. The XUL client
spawns a new tab for these interfaces, but we stick with web norms and load in
the current tab (control+click will open a new tab). This does, however, blow
away the patron interface; it doesn't embed like most of the options from the
Other menu. One other change: we don't have support for nested drop-down menus
in the web client, so I've flattened the entries like so:
* Booking: Create or Cancel Reservations
* Booking: Pick Up Reservations
* Booking: Return Reservations
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Wed, 30 Nov 2016 10:25:52 +0000 (05:25 -0500)]
webstaff: throw a kitchen sink at double-scrollbar issues
This patch ameliorates, but does not eliminate, a bunch
of cases where double-scrollbars could appear.
[1] Adds iframe-resizer (https://github.com/davidjbradshaw/iframe-resizer, MIT license)
as an option for automatically adjusting the height of an iframe
to fit the contents. This can be enabled by ensuring that
the page to be embedded brings in
and adding an 'autoresize' attribute to the egEmbedFrame directive.
This is now used by the legacy reports page.
[2] Gives a 'min-height' attribute to egEmbedFrame and sets a
value for Dojo grid interfaces embedded by local and server admistration.
[3] Adds a 'allow-escape' attribute to egEmbedFrame; when set to
true, adds buttons to allow the user to open the embedded page
in a new tab.
[4] Removes some extraneous <div>s that were interferring with resizing
for some grids.
Galen Charlton [Tue, 29 Nov 2016 21:34:14 +0000 (16:34 -0500)]
webstaff: add printing to transit list page
Adds a 'Print Transits' button and a transit_list print template. Using
the button prints _all_ transits that match the filter criteria, not just
the ones that happen to be displayed on the table.
Galen Charlton [Wed, 16 Nov 2016 05:34:06 +0000 (00:34 -0500)]
webstaff: fix support of the disabled automatic print attempt type list
This patch ensures that the disabled automatic print attempt type list
setting is now honored. In addition, if bill payment receipts are
disabled via the setting, the "Receipt on Pay" and "# Copies" widgets
are not displayed on the bill payment page.
Galen Charlton [Mon, 28 Nov 2016 16:55:24 +0000 (11:55 -0500)]
webstaff: fix misalignment of ‡ in MARC editor
This patch sets the font used to display the "‡" character in the
MARC editor to the same font used for input fields, fixing a
vertical misalginment that displayed in Chrome and Firefox
on some platforms.
Kathy Lussier [Thu, 5 Jan 2017 18:55:49 +0000 (13:55 -0500)]
Docs: 2.11 Release Note corrections and clarifications.
Fixes several typos in the 2.11 Release Notes and in the template for release
notes acknowledgements. Also resets the acknowledgements as TODOs for the
next release. Added clarification to the email checkout receipts to let users
know that email receipts are not available in the XUL client, but only in the
web client.
Remington Steed [Thu, 5 Jan 2017 15:03:48 +0000 (10:03 -0500)]
Docs: Add "export non-imported records"
This commit briefly describes the queue actions, summary and filter
sections of the Inspect Queue page in Vandelay, as well as explaining
the new "Export Non-Imported Records" action. This commit includes
updated screenshots.
Galen Charlton [Wed, 21 Dec 2016 21:32:26 +0000 (16:32 -0500)]
LP#1651808: avoid a class of intermittent search failures
This patch fixes a bug where catalog searches can sometimes fail
with a PostgreSQL error that looks like this:
ERROR: type of parameter 56 (double precision) does not match that when preparing the plan (numeric)
CONTEXT: PL/pgSQL function search.query_parser_fts(integer,integer,text,integer[],integer[],integer,integer,integer,boolean,boolean,boolean,integer) line 319 at assignment
In particular, it ensures that the relevance values are coerced
to the Pg NUMERIC data type regardless of how the core query is
constructed; otherwise, it can sometimes end up as a double
precision value. Because of how Pg backends cache query plans,
that change of type can result in the error above.
To test
-------
[1] (Optional) Configure the max_children values for open-ils.storage
to permit only one drone, which in turn forces all catalog
search requests to go through a single Pg backend.
[2] Set the default_preferred_language_weight opensrf.xml setting
to 0.
[3] Perform a catalog search that has just a filter, e.g.,
item_lang(eng).
[4] Perform a catalog search that includes search term, e.g.,
cats
[5] The second search should fail.
[6] Apply the patch and try steps 3 and 4 again; this time, both
searches should work.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Pearl [Thu, 2 Jun 2016 19:17:44 +0000 (15:17 -0400)]
LP#1586509 Bug fix to LP#1352542 caused extraneous blank line to appear in
spine label. This affected LC call numbers that had only one cutter number
plus additional text following.
Signed-off-by: Dan Pearl <dpearl@cwmars.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
The switch to toISOString() to format dates introduced an off-by-one error in
the closed dates display, showing one extra day of closure due to the timezone
being ignored in toISOString().
toLocaleDateString() is the future of locale-sensitive date formats. In XUL,
because it is an old version of Firefox, it lacks locale sensitivity, but for
the purposes of the web staff client it's a good base to build on as even
Internet Explorer supports the locale and options arguments as of IE 11.
And for the immediate purposes of showing the right dates in the closed dates
editor, it works.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Dan Scott [Mon, 12 Dec 2016 20:39:08 +0000 (15:39 -0500)]
LP#1432753 Restore "All day" verbiage to Closed Dates editor
Commit ede7e78925 replaced the JSAN calls to util.date.formatted_date() with
inline date/time handling, in the process returning times with granularity to
the minute instead of to the second. This resulted in the test for "all day"
closings always failing.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Galen Charlton [Wed, 16 Nov 2016 02:36:15 +0000 (21:36 -0500)]
webstaff: add import and export of print templates
The workstation print template page now has Import
and Export buttons to import or export any customized
templates from/to JSON files. Toasts are emitted
on import success or failure and export failure (if
there are no customized templates to export).
Galen Charlton [Wed, 16 Nov 2016 02:20:24 +0000 (21:20 -0500)]
webstaff: teach egJsonExporter about generators
This patch adds an attribute called 'generator' to the eg-json-exporter
directive as an alternative to using 'container' to pass a JavaScript
object. 'generator' should be a function that returns a promise with
the data to be exported.
Jason Etheridge [Thu, 17 Nov 2016 20:38:17 +0000 (15:38 -0500)]
add Print Bills to Bill History
FIXME: duplicated a code chunk, should probably refactor into a shared printBills
FIXME: disable actions or make otherwise obvious that they only work on selected rows
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Tue, 15 Nov 2016 20:40:39 +0000 (15:40 -0500)]
webstaff: tweaks to egPrint
This patch attempts to unbreak receipt and CSV printing
by fetching and injecting the print CSS into a style element,
as a link element in the print div doesn't seem to get
processed. It also automatically clears the content
of the print div so that after you print a receipt, the
browser print command will print the page, not the receipt.