- Upon applying the patch, verify that browse in the public
catalog uses See, broader or narrower term, and see also
as labels.
- Verify that scope notes now only display under the main
heading in the browse list.
- Verify that turning off the Display related headings (see-also) in browse
global flag disables display of see-also (related headings)
in the public headings browse. Note that it may be necessary to
clear memcached caching of cgf.
- Verify that see references are consistently shown.
- Verify that Server Administration | Authority Headings Fields works
- Verify that Server Administration | Thesauri now includes fields for
short code and URI.
Now that the primary key of the authority.thesarus table
has changed from the single-character code to the LC-assigned
authority code, a bit of additional translation is required.
Srey Seng [Fri, 5 Sep 2014 21:28:07 +0000 (14:28 -0700)]
LP#1358392: See references not always displaying on browse search
When browsing for an unauthorized heading, See references are not always
displaying on browse search. Those that do display surface due to the
existence of cross-reference(s).
Desired behaviour is that unauthorized headings should also surface in browse
results, even without the existence of cross-reference(s), as long as the
authority record containing the unauthorized heading controls at least one bib.
There are many authority records that do not have cross-references but do contain
unauthorized headings, so browse results that would otherwise be hidden would now
be exposed.
This fix adds an additional logic to check if the browse term is an
unauthorized term and if so, perform a slightly modified procedure
but otherwise, perform the usual procedure so as not to break any existing
functionality.
Galen Charlton [Fri, 6 Jan 2017 22:43:34 +0000 (17:43 -0500)]
LP#1638299: improve extraction of headings from authority records
This patch sets up configuration tables, seed data,
and functions for extracting headings from authority records based on
(usually) the MARCXML to MADS XSLT.
Ben Shum [Tue, 15 Aug 2017 22:43:09 +0000 (18:43 -0400)]
LP#1710991: Do not translate username and workstation in webclient navbar
In the web client's navbar, do not translate username and workstation. This
causes errors with rendering the menus if other locales translate the
variables.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Suzanne Paterno [Thu, 10 Aug 2017 17:15:39 +0000 (13:15 -0400)]
LP#1688398: revamp public catalog bill payment page
- Changed table layout of the credit card charges on the Account screen.
Moved checkbox to left of screen, added a column for Billing Type.
- Add button to Pay Selected vs All Charges.
- Include image of credit cards accepted (need to update with one with
AmEx)
- Reformatted page for inputting credit card
- Updated confirmation screen to bold amount, and list the titles as
the ones the user is paying for.
- Changed Print reciept template in seed data to look more readable and
like other itemized reciepts.
Suzanne Paterno [Thu, 10 Aug 2017 15:38:53 +0000 (11:38 -0400)]
LP#1688398: change wording on OPAC bill payment pages
On the credit card screens replaced the word "Fines" with "Charges"
since not all charges are fines. Can be cost of replacement materials,
as well as other non-circulation fees.
Galen Charlton [Tue, 22 Aug 2017 20:13:54 +0000 (16:13 -0400)]
LP#1373690: add USE_ID_FOR_OWNING_LIB EDI attribute
This attribute specifies that the copy owning library
should have its ID emitted rather than its shortname, which can
be used for Baker & Taylor, which imposes a five-character limit
on certain fields. This takes effect only when the INCLUDE_OWNING_LIB
EDI attribute is also in effect.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
The EDItEUR book ORDERS message allows two 35-character
item description data elements in IMD segments; this patch
accounts for that. It also, for IMD fields, uses the EDIFACT
release character to escape certain characters, better matching
how the Ruby EDI translator did it.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new configuration option for EDI accounts specifying wether
purchase orders delivered via a given account should be constructed
using the new EDI Attributes in lieu of the traditional JEDI A/T
template.
The PurchaseOrderEDIRequired A/T validator now bypasses orders with
use_attrs=true accounts. The new edi_order_pusher.pl script only
process providers whose default EDI accounts have use_attrs=true (except
when a specific PO ID is provided).
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new default collection of EDI attributes for Midwest Library
Service. This includes 2 new attributes to support their EDI format:
1. BUYER_ID_ONLY_VENDCODE -- similar to BUYER_ID_INCLUDE_VENDCODE,
except the buyer SAN is excluded from the NAD+BY segement.
2. INCLUDE_EMPTY_IMD_VALUES -- Render IMD+ fields (title, author,
edition, etc.) as if they contain values even when they don't. Empty
values are included as single-space strings.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new edi_order_pusher.pl script for generating EDI ORDERS from
purchase orders via EDIWriter.pm. This is a replacement for
edi_pusher.pl, but edi_pusher.pl remains for backwards compat.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
- wrong password
- type = staff but user doesn't have STAFF_LOGIN
- repeated failed attempts
- barcode is inactive
- using "identifier" in conjunction with opac.barcode_regex set
- using "username" or "barcode"
- supplying a workstation name that exists
- ... or does not
- user is inactive
- user is marked barrred
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Adds a new open-ils.auth API call 'open-ils.auth.login' which performs
the combined steps of open-ils.auth.authenticate.init and
open-ils.auth.authenticate.complete so the caller only need call one API
to login.
API params are consistent with open-ils.auth.authenticate.complete with
2 notable excpetions. The API uses the bare password instead of the
hashed password, so the caller also need not perform the extra hashing
steps. Also, no 'nonce' parameter is used as it's no longer needed,
because there is no intermediate authentication cache object as with
.init.
Response data is consistent with open-ils.auth.authenticate.complete.
1. Using the generic "identifier" parameter in combination with the
"org" parameter allows the API to reliably determine if a value
is a username or barcode.
2. Once a caller has reached the configured maximum number of login
failures, no further attempts to track failures occurs, based on the
idea that no additional cpu/network cycles should be used on a lost
cause.
3. A failure count object is only added to memcache when failures
occur, unlike open-ils.auth.authenticate.init which creates a
failure tracking object for every login.
4. The code avoids use of the jsonParseFmt() and va_list_to_string()
functions as these functions require extra data cleansing.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
When entering the Manage Predictions or Manage Issues tab
and only one subscription is present in the current OU
scope, automatically select it rather than making the operator
have to select it manually.
This patch adds a serials module to the web staff client, implementing
a unified serials interface allowing for the following actions supported
by the XUL staff client:
- creating subscriptions, distributions, and streams
- creating and editing prediction patterns
- receiving serial issues, with or without barcodes (units)
- batch and quick receiving
This module also implements some new features, including
- the ability to save prediction pattern codes as templates
that can be shared and reused within an Evergreen database
- a more streamlined interface for managing subscriptions,
distributions, and streams
- it is no longer necessary to create a starting issue in
order to predict a run of issues; the dialog box for
generating a set of predicted issues now lets you specify
the starting point directly.
- the ability to more directly edit MFHDs
The new serials interfaces can be accessed from the record
details page via a Serials drop-down button that links to
a subscription management page, a quick-receive action, and
a MFHD management page. There is also a new Serials Administration
page where prediction pattern and serial copy templates can
be managed.
To test
-------
* Create, edit, and delete subscriptions, distribution streams,
and routing lists.
* Use the prediction pattern wizard to create patterns.
* Save prediction pattern templates and use them to apply
a pattern to new subscriptions.
* Verify that sets of issues can be predicted and received.
* Create and apply serial copy templates and verify that
they are applied when receiving barcoded issues.
This patch represents a group coding effort by Galen Charlton,
Jason Etheridge, and Mike Rylander.
egI18N is a module that will serve as a grab-bag of functions
related to I18N and L10N. The initial function it provides
takes a acpl IDL object and returns a formatted name qualified
by the org unit, with the underlying template accessible
to the translation subsystem.
Mike Rylander [Mon, 24 Apr 2017 16:40:37 +0000 (12:40 -0400)]
LP#1152753: make it possible for serial units to be added to copy buckets
This patch replaces the baseline asset.copy.id fkey constraints with ones
that understand inheritance, and change all existing contstraints to do the
same via upgrade script.
To test
-------
Create some serial units and verify that they can be added to a copy
bucket.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Mike Rylander [Thu, 25 May 2017 00:37:17 +0000 (20:37 -0400)]
LP#1708291: teach egEmbedFrame about an afterload function
The 'afterload' attribute added by this patch allows specifying
the name of a function (to be supplied by the embedded content)
to run after the frame has been loaded.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Won't delete if there are attached serial.item records with a status other
than Expected, or if there are any attached non-deleted serial.unit
records.
The dry_run variants behave exactly the same except they don't actually
delete anything.
Signed-off-by: Jason Etheridge <jason@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
egEditFmRecord now knows how to specify that a custom Angular template
be used to supply the input widget for a given field; the initial use
of this will be allowing the prediction pattern template editor to be
used to set the pattern in a pattern template. The customFieldTemplates
attribute is used for this purpose.
This patch also teaches egEditFmRecord when to allow an org unit
selector to default to the workstation OU. The orgDefaultAllowed
attribute is used for this purpose.
Finally, a fixes a bug that ensures that the Save button is active
only when the entire form is valid.
This directive implements a selector for OU-sharing depths; depths
and names come from the actor.org_unit_type table. If there are
multiple types defined for a given depth, the display value in
the selector is the concatenation of their names.
The initial use of this directive is for specifying how broadly
prediction pattern templates should be seen.
LP#1708291: teach egIDL a new fieldmapper object representation
This patch teaches egIDL how to represent fieldmapper objects
as objects with attributes rather than getter/setters. This
allows FM objects to be more easily bound to common to Angular
input widgets, avoiding the verbosity of getterSetter ng-options
and the fact that some widgets like uib-datepicker-popup don't
support getterSetter in the first place.
Load the max recent patrons setting directly in the patron service
instead of requring the calling UI to apply it. This fixes an issue
where recent patrons are not set from the checkout-by-barcode
interface.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
blake [Thu, 31 Aug 2017 20:33:17 +0000 (20:33 +0000)]
LP1655158 Patron Search by Date of Birth
Adds three UI boxes to the WBSC "Show Extra" patron search. One for the year, month and day.
The javascript on the page is altered to deliver group "4" to the backend. Local javascript
strips out non-numeric user entered data. The backend is updated to handle the new group.
SQL is genereated using the DATE_PART postgres function.
1. Open the web based staff client and browse to the patron search UI.
2. Click the show more down arrow button. Notice the lack of birth date field.
3. Apply the patch, repeat step one. Notice the addition of birth date boxes.
4. Type 1975 into the birth year box and press enter. Notice search results.
5. Try searching for partial names and partial birthdates.
6. Try entering non-numeric data into the birth date boxes.
7. Try searching for patrons without including the dob. Try with only the dob. Try a mix.
Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Support default values for boolean user opt-in settings during patron
registration. A default value of True, true, T, or t (or really
anything starting with a 't') is treated as true. Any other value
(including null) means false.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Cesar Velez [Tue, 27 Jun 2017 19:06:48 +0000 (15:06 -0400)]
LP#1695029-Webstaff Fix Patron Registration page never loading
It looks like there was a variable mistype causing the page
to not load, but the setting that the lp bug mentions wasn't being
properly bound and needed to be wrapped to a boolean.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Adds a new library setting 'ui.staff.max_recent_patrons' which
specifices the number of recently accessed patrons staff may quickly
refetch from the browser client interface. If no value is set, it
defaults to 1 for backwards compatibility.
If the value is 0 or less, no recent patrons may be retrieved and the
'Retrieve Last Patron' action is hidden. If the value is > 1 a new
'Retrieve Recent Patrons' menu item appears. When clicked, the list
of recent patrons is displayed in the patron search interface, most
recently accessed patrons sorted to the top.
For privacy, the recent patrons list expires from the browser when the
authenticion token expires.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Cesar Velez [Wed, 16 Aug 2017 21:39:30 +0000 (17:39 -0400)]
LP#1683575 - Webstaff fix silent fail of bad barcodes in ItemStatus
This address the current issue in master, that causes bad barcodes
to fail silently.
To test
-------
[1] In the web staff client, go to Item Status and enter an item
barcode that is not present in the database. Note that no
warning message displayed.
[2] Apply the patch and repeat step 1. This tie, an 'Item Not Found'
message is displayed.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
* Tell git to ignore Open-ILS/web/js/ui/default/common/build/ since it
only contains generated files.
* Add jquery to Karma unit test dependencies. This is not strictly
required, since angular includes a slim jquery shim, but having the
unit tests load the same base JS as the UI is probably best.
Confirmed tests still pass.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Mon, 7 Aug 2017 14:05:05 +0000 (10:05 -0400)]
offline: Remove reference to nonexistent file
When the status bar was removed back in commit 7814064, the reference to its
backing JS file was removed from base_js.tt2. It looks like that slipped
back in at some point in the combined serials/offline branch. This removes
that references, which causes offline failure.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Here is implemented an offline mode interface for the web staff client.
It is made available during both network and server outages by using the
UpUp[1] service worker wrapper.
We leverage Lovefield[2] for local storage of library settings, configuration
data, offline transactions, and the standalone offline block list.
In order to make use of the offline interface, users should first log into
the web staff client and navigate to the "Search -> Search for Patrons"
interface, perform a search, select a user from the results, and open the
Patron Editor interface. This will allow the offline interface to collect
all the relevant configuration information for the workstation. In addition,
the offline interface available from the Circulation menu provides a "Download
block list" button when accessed while logged in.
Cesar Velez [Thu, 24 Aug 2017 21:17:11 +0000 (17:17 -0400)]
LP#1710512 - OPAC js strings need to be i18n-izable
Adds a way to translate displayed string messages, in OPAC
JS source code alerts and other outputs. This is done by having
js.tt2 include i18n-strings.tt2 which contains an explosed/global
JS blob variable called eg_opac_i18n. This is intended to work
in similar fashion as base_js.tt2 in the webstaff ng client.
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
blake [Tue, 17 May 2016 21:27:00 +0000 (16:27 -0500)]
LP1582354 report able to show bibs where the last copy was deleted cancels
Created a view for ease of reporting. This source table allows you to construct
a clever aggregate report template which will report bibliographic ID's where a
library or a group of libraries no longer have a copy attached but had* a copy
attached. This is especially useful when a holdings sync is required with an
external vendor.
Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
LP#1048822 - Fuller Title for reporter.super_simple_record
The simplified pull list uses reporter.super_simple_record for
title information. reporter.super_simple_record currently only
pulls the first 245a value for the title. For titles that
use 245(n|p) to fully identify the title this leaves out information
that staff need to find the item.
This patch adds all of the 245(n|p) to the 245a in the title. I've found
this covers most cases where staff need a fuller title. The order of
the 245(n|p) also matters, so steps are taken to keep the marc ordering
of those fields.
Testing:
Before Patch - find a title that uses a 245(n|p) field to fully identify the
title. Place a hold on the title. Use the simplified pull list to view the
location that has that item on the shelf. Observe that only the 245a is in
the title field.
After Patch - Look at the simplified pull list again and see that the title now
includes more information.
Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Dan Pearl <dpearl@cwmars.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Skye Howard [Thu, 17 Aug 2017 21:52:08 +0000 (21:52 +0000)]
LP#1629298: Web Client Checkout Fails For Barcodes With Spaces
Web Client checkout trims spaces from patron barcodes differently than xul client checkout
The web client was not removing the whitespaces before checking barcode searches
this commit includes a step where the whitespaces are removed.
Signed off by Skye Howard <showard@catalyte.io>
Signed off by Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
New optional SMS text notification to be sent 3 days prior to the due
date of any circulating item for patrons who have an SMS text number
and carrier stored in their accounts. This action trigger is disabled
by default and can be enabled in Admin > Local Administration >
Notifications / Action Triggers.
Mike Rylander [Wed, 9 Aug 2017 18:14:42 +0000 (14:14 -0400)]
LP#1698206: Remove remaining SQL uses of the old copy visibility cache
There were two remaining uses of the old copy vis cache in SQL functions used
to render OPAC pages. This commit gets rid of those.
There is still one reference to the asset.opac_visible_copies table in the old
staged-search function, but that is not used anywhere in the code now, so no
need to change that. Instead, we should start pruning old code.